表的增删改查
Create(创建), Retrieve(读取),Update(更新),Delete(删除)
Create
表的创建可以参考:Mysql表的操作
表后的各种约束参考:MySQL表的约束
单行数据 + 全列插入
语法:
INSERT [INTO] table_name
[(column [, column] ...)]
VALUES (value_list) [, (value_list)] ...
value_list: value, [, value] ...
单行数据+指定列插入
展示插入结果
单行数据+全列插入
展示插入结果
多行数据 + 指定列插入
展示插入结果
这里先前删除过两个数据,所以auto_crement到了5,从6开始插入了两个数据。
现在就到了8,下一个插入数据id为8(如果不指定).
插入否则更新
由于主键或者唯一键对应的值已经存在而导致插入失败。
主键冲突:
唯一键冲突:
可以选择性的进行同步更新操作语法:
INSERT ... ON DUPLICATE KEY UPDATE
-- ON DUPLICATE KEY 当发生重复key的时候
select row_count()可以查看被影响的行数,在进行插入操作后使用。
替换
-- 主键 或者 唯一键 没有冲突,则直接插入;
-- 主键 或者 唯一键 如果冲突,则删除后再插入
展示替换结果
-- 1 row affected: 表中没有冲突数据,数据被插入
-- 2 row affected: 表中有冲突数据,删除后重新插入
Retrieve
SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...
创建一个新的测试表。
插入一些测试数据。
SELECT 列
全列查询
-- 通常情况下不建议使用 * 进行全列查询
-- 1. 查询的列越多,意味着需要传输的数据量越大;
-- 2. 可能会影响到索引的使用。
select * from exam;
指定列查询
查询字段为表达式
为查询结果指定别名
结果去重
98分有重复
去重结果
没有三个成绩同时重复的
WHERE 条件
比较运算符:
逻辑运算符:
下面是上面的一些案例。
测试NULL的比较:
又是一个好的示例:
英语不及格的同学及英语成绩 ( < 60 )
语文成绩在 [80, 90] 分的同学及语文成绩
数学成绩是 58 或者 59 或者 98 或者 99 分的同学及数学成绩
5.MySQL基本查询(一)+https://developer.aliyun.com/article/1393868