数据库教程之修改数据
¶首先来首歌曲来放松一下吧!
关系数据库的基本操作就是增删改查,即CRUD:Create、Retrieve(检索)、Update、Delete。其中,对于查询,我们已经详细讲述了SELECT语句的详细用法。
而对于增、删、改,对应的SQL语句分别是:
INSERT:插入新记录;
UPDATE:更新已有记录;
DELETE:删除已有记录。
¶一、INSERT
¶1、插入一条记录
语法:INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);
id字段是一个自增主键,它的值可以由数据库自己推算出来。
如果一个字段有默认值或设置为允许NULL值,那么在INSERT语句中也可以不出现。
要注意,字段顺序不必和数据库表的字段顺序一致,但值的顺序必须和字段顺序一致。
可以不指定插入列,但必须和表的列完全匹配,这样并不安全,高度依赖于表中的定义顺序,表结构变动后,就不一定匹配了!一般不这样使用!
12345678910111213141516171819202122232425262728293031323334 ...
JS实战之油猴脚本编写之知乎一键转载
¶首先来首歌曲来放松一下吧!
¶一、准备工作
根据所学JS知识以及又拍云小哥直播的讲解实战开发的一个小脚本!
所有链接:
又拍云上直播地址:点击这里!
又拍云油猴脚本开发:点击这里!
我的油猴知乎实战脚本,点击这里!
¶二、实现功能
隐藏回答界面的右边侧栏,提升阅读舒适性!
加宽回答的可视区域,让您看的更加舒服!
增加一个一键转载按钮(一键复制),禁止转载的给出提示信息!
实现效果如下:
¶三、完整代码
脚本地址,点击这里!
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394// ==UserScript==// @name 知乎一键转载// @namespace http://tampermonkey.net/// @versio ...
数据库教程之查询数据
¶首先来首歌曲来放松一下吧!
¶一、准备数据
廖雪峰SQL教程例子:例子代码点击这里!
将上方链接或者下方代码保存到文本文件,改名为init-test-data.sql。然后再本地cmd运行$ mysql -u root -p < init-test-data.sql即可创建一个名为test的数据库,有两张表classes和students!
注意要在cmd,不要使用powershell,powershell无法识别命令行<这个符号!
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647-- 如果test数据库不存在,就创建test数据库:CREATE DATABASE IF NOT EXISTS test;-- 切换到test数据库USE test;-- 删除classes表和students表(如果存在):DROP TABLE IF EXISTS classes;DROP TABLE IF EXISTS students;-- 创建cla ...
数据库教程之基础知识
¶一、什么是数据库
¶1、数据库(database)
保存有组织的数据的容器(通常是一个文件或一组文件)。
¶2、数据库与数据库软件
数据库(database):数据库可以是保存在硬设备上的文件,但也可以不是。
数据库软件(DBMS数据库管理系统):数据库是通过DBMS创建和操纵的容器,使用DBMS来替你访问数据库。
¶3、表
在你将资料放入自己的文件柜时,并不是随便将它们扔进某个抽屉就完事了,而是在文件柜中创建文件,然后将相关的资料放入特定的文件中。
在数据库领域中,这种文件称为表。表是一种结构化的文件,可用来存储某种特定类型的数据。表可以保存顾客清单、产品目录,或者其他信息清单。
表(table): 某种特定类型数据的结构化清单。
¶表名
数据库中的每个表都有一个名字,用来标识自己。此名字是唯一的,这表示数据库中没有其他表具有相同的名字。
表名的唯一性取决于多个因素,如数据库名和表名等的结合。这表示,虽然在相同数据库中不能两次使用相同的表名,但在不同的数据库中却可以使用相同的表名。
¶模式
表具有一些特性,这些特性定义了数据在表中如何存储,如可以存储什么样的数据, ...
Java教程系列之加密与安全
¶首先来首歌曲来放松一下吧!
这一节你一定会懵逼,不过这都是绝对会用到知识,先简单过一遍,用到了再细过一次!点击这里,查看原文!
看的是真的艰难啊!坚持中!!!
¶一、URL编码
URL编码是浏览器发送数据给服务器时使用的编码,它通常附加在URL的参数部分。
服务器只识别ASCII字符!
URL编码是编码算法,不是加密算法!(主要用来处理文本如汉字。。)
¶1、编码规则
如果字符是A ~ Z,a ~ z,0 ~ 9以及-、_、.、*、=,则保持不变;
如果是其他字符,先转换为UTF-8编码,然后对每个字节以%XX表示。都是大写。
例如:字符中的UTF-8编码是0xe4b8ad,因此,它的URL编码是%E4%B8%AD。URL编码总是大写。
¶2、使用URLEncoder
中的URL编码是%E4%B8%AD,文的URL编码是%E6%96%87,!虽然是ASCII字符,也要对其编码为%21。
URL编码与UTF-8编码相对应。
和标准的URL编码稍有不同,URLEncoder把空格字符编码成+,而现在的URL编码标准要求空格被编码为%20,不过,服务器都可以处理这 ...
Java教程系列之正则表达式
¶首先来首歌曲来放松一下吧!
由于学JavaScript时就已经学过了正则的规则,所以本文只介绍与其不同支出,大概的一个框架及用法!
¶一、正则匹配规则
\d :一个数字
\D:一个非数字
\w :一个数字或一个字母(大小写)
\W:与\w相对。。。匹配其不能匹配的
\s :一个空格
\S:与\s相对,匹配其不能匹配的
\u548c:匹配一个指定Unicode字符
. :一个任意字符
\. :一个小数点
* :任意个(包括0个)
+ :至少一个
? :0个或1个
{n,}:至少n个
{n} :n个
{n, m} :n 到 m 个
\- :一个-
\\ :一个\
[abc]:匹配其中一个
[0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;
[0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串
[a-zA-Z\_\$][0-9a-zA-Z\_\$]*可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就JavaScrip ...
Java教程系列之单元测试
¶一、编写Junit测试
单元测试就是针对最小的功能单元编写测试代码。Java程序最小的功能单元是方法,因此,对Java程序进行单元测试就是针对单个Java方法的测试。
实现测试与主程序分离,实现打印测试结果,可编写通用测试代码!
¶1、Junit
JUnit是一个开源的Java语言的单元测试框架,专门针对Java设计,使用最广泛。JUnit是事实上的单元测试的标准框架,任何Java开发者都应当学习并使用JUnit编写单元测试。
使用JUnit编写单元测试的好处在于,我们可以非常简单地组织测试代码,并随时运行它们,JUnit就会给出成功的测试和失败的测试,还可以生成测试报告,不仅包含测试的成功率,还可以统计测试的代码覆盖率,即被测试的代码本身有多少经过了测试。对于高质量的代码来说,测试覆盖率应该在80%以上。
JUnit目前最新版本是5。
¶2、步骤:
首先在src同级下建立test目录
设置为测试专用文件夹,右键test目录找到Mark Directory as 选择子选项的Test Sources Root
回到src,找到需要测试的方法,右键选择Go To的子选项Te ...
Java教程系列之日期与时间
¶首先来首歌曲来放松一下吧!
¶一、一些概念
¶1、本地时间
当我们说当前时刻是2019年11月20日早上8:15的时候,我们说的实际上是本地时间。在国内就是北京时间。在这个时刻,如果地球上不同地方的人们同时看一眼手表,他们各自的本地时间是不同的!
所以,不同的时区,在同一时刻,本地时间是不同的。全球一共分为24个时区,伦敦所在的时区称为标准时区,其他时区按东/西偏移的小时区分,北京所在的时区是东八区!
eg:2020-1-1 20:21:59
¶2、时区
光靠本地时间还无法唯一确定一个准确的时刻,所以我们还需要给本地时间加上一个时区:
以GMT或者UTC加时区偏移表示,例如:GMT+08:00或者UTC+08:00表示东八区。(GMT和UTC可以认为基本是等价的,只是UTC使用更精确的原子钟计时,每隔几年会有一个闰秒,我们在开发程序的时候可以忽略两者的误差,因为计算机的时钟在联网的时候会自动与时间服务器同步时间。)
另一种是缩写,例如,CST表示China Standard Time,也就是中国标准时间。但是CST也可以表示美国中部时间Central Standa ...
Java教程系列之IO流
¶首先来首歌曲来放松一下吧!
¶一、IO介绍
IO是指Input/Output,即输入和输出。以内存为中心:
Input指从外部读入数据到内存,例如,把文件从磁盘读取到内存,从网络读取数据到内存等等。
Output指把数据从内存输出到外部,例如,把数据从内存写入到文件,把数据从内存输出到网络等等。
IO流是一种流式的数据输入/输出模型:
二进制数据以byte为最小单位在InputStream/OutputStream中单向流动;
字符数据以char为最小单位在Reader/Writer中单向流动。
Java标准库的java.io包提供了同步IO功能:
字节流接口:InputStream/OutputStream;
字符流接口:Reader/Writer。
注意:UTF-8编码下,英文字符占一个字节,中文字符占三个字节!
Java的读写数据在传输时都是byte[],String这两种方式!
¶1、Reader 和 Writer
如果我们需要读写的是字符,并且字符不全是单字节表示的ASCII字符,那么,按照char来读写显然更方便,这种流称为字符流。
Reader ...
Java教程系列之集合
¶首先来首歌曲来放松一下吧!
¶一、Java集合介绍
在Java中,如果一个Java对象可以在内部持有若干其他Java对象,并对外提供访问接口,我们把这种Java对象称为集合!
数组就是一种集合:
123String[] ss = new String[10]; // 可以持有10个String对象ss[0] = "Hello"; // 可以放入String对象String first = ss[0]; // 可以获取String对象
¶1、数组的不足
数组初始化后大小不可变;
数组只能按索引顺序存取。
¶2、需要各种类型的集合
可变大小的顺序链表;
保证无重复元素的集合;
…
¶3、Collection
Collection,它是除Map外所有其他集合类的根接口,来自于java.util包!
¶3.1 三种主要集合:
List:一种有序列表的集合
Set:一种保证没有重复元素的集合
Map:一种通过键值(key-value)查找的映射表集合
¶3.2 Java集合的特点:
一是实现了接口和实现类相分离,例如,有序表的接口是List,具体的实现类有 ...
Java教程系列之泛型
¶一、泛型是什么
泛型就是编写模板代码来适应任意类型;
泛型的好处是使用时不必对类型进行强制转换,它通过编译器对类型进行检查;
¶1、以ArrayList举例
例如将其模板化:
T可以是任何class。这样一来,我们就实现了:编写一次模版,可以创建任意类型的ArrayList:
编译器会针对定义类型进行检查:
12345678910111213141516171819public class ArrayList<T> { private T[] array; private int size; public void add(T e) {...} public void remove(int index) {...} public T get(int index) {...}}// 创建可以存储String的ArrayList:ArrayList<String> strList = new ArrayList<String>();// 创建可以存储Float的ArrayList:ArrayList<Flo ...
Java教程系列之注解
¶首先来首歌曲来放松一下吧!
¶一、什么是注解
注解是放在Java源码的类、方法、字段、参数前的一种特殊“注释”
注释会被编译器直接忽略,注解则可以被编译器打包进入class文件,因此,注解是一种用作标注的“元数据”。
¶注解的作用
从JVM的角度看,注解本身对代码逻辑没有任何影响,如何使用注解完全由工具决定:
Java的注解可以分为三类:
由编译器使用的注解
由工具处理.class文件使用的注解
在程序运行期能够读取的注解
第一类注解不会被编译进入.class文件,它们在编译后就被编译器扔掉了。
第二类注解会被编译进入.class文件,但加载结束后并不会存在于内存中。这类注解只被一些底层库使用,一般我们不必自己处理。
第三类加载后一直存在于JVM中,这也是最常用的注解
注解的参数:
所有基本类型;
String;
枚举类型;
基本类型、String以及枚举的数组。
因为配置参数必须是常量,所以,上述限制保证了注解在定义时就已经确定了每个参数的值。
注解的配置参数可以有默认值,缺少某个配置参数时将使用默认值。
此外,大部分注解会有一个名为value的配 ...