1 插入记录
1.1 INSERT
1 INSERT [INTO] tb1_name[(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...
(先创建一张数据表)
(不指定列,插入一行数据,注意id主键的赋值)
(查看数据表)
(再插入一条数据,并查询,可以发现id递增)
(对于主键,可使用“NULL”或“DEFAULT”对其赋值)
(若省略列名,则所有的列都要赋值,否则出现错误)
(对于数值型数据,可以使用表达式赋值)
(定义列的时候,我们将age设有候选值10)
(插入数据时,将age写为DEFAULT)
(查看数据表,发现age已被自动赋值为候选值10)
(同时,可以插入多条数据,只要逗号隔开即可,也可以使用函数)
(查看数据表,第七行的password是‘123’的哈希值)
1.2 INSERT SET
1 INSERT [INTO] tb1_name SET col_name={expr | DEFAULT},...
说明:与第一种方式的区别在于,此方法可以使用子查询(SubQuery)
注:只能一次性插入一条记录,不能一次性插入多条数据。
(使用该语句插入数值,并查看数据表)
1.3 INSERT SELECT
1 INSERT [INTO] tb1_name [(col_name,...)] SELECT...
说明:此方法可以将查询结果插入到指定数据表。
2 更新记录(UPDATE)
2.1 单表更新
1 UPDATE [LOW_PRIORITY] [IGNORE] tb1_name SET col_name1={expr1|DEFAULT} [,col_name2={expr2|DEFAULT}]...[WHERE where_condition]
说明:省略WHERE语句将导致所有的数据都要更新。
(将所有的“age”全部加5)
(查看数据表验证,与上相比确实加5)
(改变多列数据且运用表达式,并查看数据表验证)
(利用WHERE将id为偶数的age加10,并查看数据表)
2.2 多表更新
3 删除记录(DELETE)
3.1 单表删除
1 DELETE FROM tb1_name [WHERE where_condition]
说明:省略WHERE语句将导致所有的数据删除。
(将id=6的那条数据删除,并查看数据表验证)
(将数据删除后,即时id号不连续,添加数据后仍以最大的id号加1为标准,而并不是去补充删除了的id号)
3.2 多表删除
4 查询表达式解析(SELECT)
4.1 FROM基础语句
1 SELECT select_expr [,select_expr...] 2 [ 3 FROM ta1_name 4 [WHERE where_condition] 5 [GROUP BY {col_name | position} [ASC | DESC],...] 6 [HAVING where_condition] 7 [ORDER BY {col_name | expr | position} [ASC | DESC],...] 8 [LIMIT {[offset,] row_count | row_count OFFSET offset}] 9 ]
- 每一个表达式表示想要的一列,必须有至少一个。
- 多个列之间以英文逗号分隔。
- 星号(*)表示所有列。tb1_name.*可以表示命名表的所有列。
- 查询表达式可以使用 [AS] alias_name为其赋予别名。
- 别名可用于GROUP BY , ORDRE BY或HAVING子句。
(查看数据表中有多少列)
(返回数据表的id和username列,列的顺序是按照程序的顺序“id,username”排列的)
(tb1_name.*可以表示命名表的所有列,适用于后期学习的数据表连接)
(可以使用 [AS] alias_name为其赋予别名,AS可以省略但是不建议)
4.2 WHERE语句进行条件查询
- 对记录进行过滤,如果没有指定WHERE子句,则显示所有记录。
- 在WHERE表达式中,可以使用MySQL支持的函数或运算符。
(将id为偶数的id、username显示)
(将id大于2的数据输出)
(将id大于2或者小于1的数据输出,注意OR语句)
(将id大于2并且password等于123的数据输出,注意AND语句)
(将username为T开头的数据检索出来)
(注意与上式的区别:‘%’是任意字符,‘_’是单个字符)
4.3 GROUP BY对查询结果分组
(当前数据表中的所有数据)
(对数据中的“sex”分组,结果为:NULL和0)
4.4 HAVING设置分组条件
(分组时,要么HAVING后的指数在SELECT内(第二条语句),要么是聚合函数的形式(第三条语句),否则将会出现错误(第一条语句))
4.5 ORDER BY对查询结果排序
(普通:遵循了记录的插入顺序)
(按照插入的倒序排列)
(按照age从小大到大排序(默认ASC正序))
(按照age从大到小排序)
可以根据多个数据排序,如:
1 SELECT * FROM users ORDER BY age,id;//对于age相同的值,根据id排序
4.6 LIMIT限制查询数量
(第一种语法结构:返回前5条数据)
(第二种语法结构:返回从5开始的2条数据)
(相应的,可以多条语句组合使用)