1. 回顾与概述
约束:
- 表级约束
- 列级约束
数据表
2. MySQL插入记录INSERT
插入记录INSERT [INFO] tb1_name [(col_name, ...)] { values | value } ( { expr | DEFAULT },...), (...), ... )
一次性写入多条记录
INSERT user VALUES ( DEFAULT, 'Tom', '123', 3*7-5, 1), ( NULL, 'Rose', md5('123'), DEFAULT , 0 );
md5:PHP中123字符串的哈希值
值、函数、默认值、空值都可以填入
3. MySQL插入记录INSERT SET-SELECT
INSERT [ INFO ] tb1_name SET col_name={expr | DEFAULT }, ...
与第一种方式的区别在于,此方法可以使用子查询( SubQuery )
INSERT [ INFO ] tb1_name [ (col_name, ... ) ] SELECT ...
说明:此方法可以将查询结果插入到指定的数据表
4. MySQL单表更新记录UPDATE
更新记录(单表更新)
UPDATE [ LOW_PRIOITITY ] [ IGNORE ] table_reference SET col_name1={ expr | DEFAULT } [ , col_name2 = { expr2 | DEFAULT } } [ WHERE where_condition ]
更新过程中添加条件(id号为偶数用户年龄+10)
增加条件
5. MySQL单表删除记录DELETE
删除记录(单表删除)
DELETE FROM tb1_name [ WHERE where_condition ]
已有的最大id号+1
6. MySQL查询表达式解析
查找记录
SELECT select_expr [ , select_expr...] [ FROM table_references [ WHERE where_condition ] [ Group By { col_name | position } [ ASC | DESC ], ...] [ HAVING where_condition ] [ ORDER BY { col_name | expr | position } [ ASC | DESC ], ... [ LIMIT { [ offsets, ] row_count | row_count OFFSET offset }]} ]
SELECT VERSION();
SELECT NOW();
SELECT 3+5;
查询表达式
- 每个表达式表示想要的一列,必须有至少一个
- 多个列之间用英文逗号分隔
- 星号()表示所有列tb1_name,可以表示命名表的所有列
- 查询表达式可以用[ AS ] alias_name 为其赋予别名
- 别名可用于GROUP BY, ORDER BY 或 HAVING 字句
可以与原表中数据不一致,且影响结果的顺序
具体制定某一个数据表用点运算符别名(某些字段名)
别名 为字段设置别名 使用别名时强烈要求加上AS关键字
7. MySQL where语句进行条件查询
条件表达式
对记录进行过滤,如果没有指定WHERE
字句,则显示所有记录
在WHERE
表达式中,可以使用MySQL支持的函数或运算符
若无WHERE
字句,则对应改变所有的记录
8. MySQL group by 语句对查询结果分组
查询结果分组
[ GROUP BY { col_name | position } [ ASC | DESC }, ... ]
按照性别来分组
9. having语句设置分组条件
分组条件 [ HAVING where_condition ]
分组条件
在使用HAVING
进行分组条件的指定时,要么保证这个字段出现在当前的SELECT
语句中,要么采用一个聚合函数,min, max, avg, count, sum,(永远只有一个返回值)否则会出现错误。
id字段未出现在查找字段内,但出现在一个聚合函数中
聚合函数10. order by 语句对查询结果排序
对查询结果进行排序
ORDER BY { col_name | expr | position } [ ASC | DESC ] , ...
首先看第一个字段,若第一个字段已经得到了想要的结果,则可以忽略第二个字段。若根据第一个字段无法啊得到想要的结果,则看第二个,第三个。。。
按照年龄的升序排列 age相同则按照id降序排列11. limit 语句限制查询数量
限制查询结果返回的数量
[ LIMIT { [ offset ] row_count | row_count OFFSET offset } ]
8条数据中指向得到两条数据
返回前两条数据 从序号为3开始的两条数据
注意下标是从零开始编号的。
验证插入记录
INSERT [ INFO ] tb1_name SET col_name = { expr | DEFAULT },...
说明:与第一种方式的区别在于,此方法可以使用子查询(SubQuery)
从
user
表中查询age>=30
的元素的username
字段的内容,并将查询到的结果插入到t1表的username字段中,id字段取默认值,为主键,自增。
12. 小结
数据记录的增、删、改、查
INSERT
UPDATE
DELETE
SELECT
网友评论