目录
C(create)R(read)U(update)D(delete)
8.如果 select 语句同时含有 group by、having、limit、order by、他们的顺序为 group by --> having --> order by --> limit
6.union(去重) 和 union all(不去重)(合并两个语句查询的结果)
C(create)R(read)U(update)D(delete)
表定义 id 和 name 两个字段
一.C:insert语句(添加)
INSERT INTO aa VALUES (1,'张三')
输出:
注:
①.插入的数据应与字段的数据类型相同,并且长度必须在规定的范围内
②.在values 中列出 的数据位置必须与 列的排列位置相对应
③.字符和日期类型数据应包含在单引号中
④.列可以插入空值(创建字段时设置允许为空)
⑤.可以一次性添加 多条数据
⑥.给表中所有字段添加数据时可以不写字段名称
⑦.不给某个字段赋值时,有默认值会添加默认值,没有则会报错
二.U:update语句(更新)
UPDATE aa SET `name` = '李四' WHERE id = 1
查看:
①.如果没有 where 语句则更新所有的行
②.可以修改多个字段
三.D:delete(删除)
DELETE FROM aa WHERE id =1
查看:
①.没有where语句,则会删除表中所有的数据
②.仅能删除表中数据,不能删除表本身
四.R:select语句(查找)
SELECT * FROM aa
查看:
1.DISTINCT
//DISTINCT 去除重复的数据
SELECT DISTINCT * FROM aa
查看:
2.as
//as 给列起别名
SELECT id AS num FROM aa
查看:
3.where
4.%
SELECT * FROM aa
WHERE `name` LIKE '张%'
查看:
5.order by
指定排序的列,asc(升序)、desc(降序),默认为升序
SELECT * FROM aa
ORDER BY id DESC
查看:
6.group by
原:
SELECT MAX(id) , place
FROM aa
GROUP BY place //按place 分组
HAVING place = 'A' OR place = 'B' // place 等于 A 或者 B的
输出:
7.limit
SELECT * FROM aa
LIMIT 0,2
查看:
8.如果 select 语句同时含有 group by、having、limit、order by、他们的顺序为 group by --> having --> order by --> limit
五.多表查询
1.自连接
指在同一张表的连接查询
原表:
SELECT a1.nname ,a2.nname
FROM aa a1 , aa a2
WHERE a1.id = a2.`next`
查看:
2.子查询
指在其他 sql 语句中的 select 语句
①.单行子查询:只返回一行数据的子查询语句(=)
②.多行子查询:返回多行数据的子查询(in)
SELECT id,nname FROM aa WHERE place IN (
SELECT place
FROM aa
WHERE place = 'A')
输出:
3.all
最少
SELECT id,nname FROM aa WHERE id > ALL(
SELECT id
FROM aa
WHERE place = 'A')
输出:
4.any
最多
SELECT id,nname FROM aa WHERE id > ANY(
SELECT id
FROM aa
WHERE place = 'A')
输出:
5.蠕虫复制
需要海量数据时
INSERT INTO aa
SELECT * FROM aa
查看:
6.union(去重) 和 union all(不去重)(合并两个语句查询的结果)
SELECT id,nname,place FROM aa WHERE id =3 UNION
SELECT id,nname,place FROM aa WHERE place = 'A'
查看:
SELECT id,nname,place FROM aa WHERE id =3 UNION ALL
SELECT id,nname,place FROM aa WHERE place = 'A'
查看:
7.外连接
aa上面复制了一下
aa:
bb:
①.左外连接(左侧的表完全显示)
SELECT aa.id,nname,t1
FROM aa LEFT JOIN bb
ON aa.id = bb.id
查看:
②.右外连接(有侧的表完全显示)
SELECT bb.id,nname,t1
FROM aa RIGHT JOIN bb
ON aa.id = bb.id
查看: