1. AND: SELECT * FROM fruits WHERE sid =101 AND fid ='a1'
2. OR :SELECT * FROM fruits WHERE fname ="apple" OR fname ="orange"
3. IN: SELECT * FROM fruits WHERE fname IN ("apple", "orange")
4. BETWEEN:SELECT * FROM fruits WHERE fprice BETWEEN 10 AND 20
包括10和20
5. LIKE: SELECT * FROM fruits WHERE fid LIKE "b_"
%的话不论多少个字符,_是个数限制
6. IS NULL: SELECT * FROM fruits WHERE fname IS NULL
7. DISTINCT: SELECT DISTINCT sid FROM fruit 查询所有不重复的sid
2. 子查询
类似于excel的函数嵌套
1. ANY
SELECT fid FROM fruits WHERE fid = ANY
(select fid FROM fruit WHERE fprice BETWEEN 10 AND 20)
2. ALL
SELECT FROM fruits WHERE fprice > ALL
(select fprice from fruits where fprice <=20)
查询所有fprice 大于20元的水果记录
3. EXISTS
SELECT * FROM fruits WHERE EXISTS
(select * from fruits where fprice > 30)
当EXISTS后面子查询存在,则执行主查询
4. AS
SELECT f.* fruits as f
表名和字段名都可被代替,且AS可省略
5. LIMIT
SELECT * FROM fruits
ORDER BY fprice desc
LIMIT 3
3. 函数
1. 函数
ABS
BIN
EXP
RAND
LOG
MOD 取余
CELING
ROUND
SQRT
COUNCAT(s1,s2)
LEFT(str, x) 保留的数量
RIGHT()
LENGTH(str)字符长度
NOW()
DATE()
TIME()
2. 逻辑函数
1. 空值函数 IFNULL
SELECT ename, sal + ifnull(comm, 0) 实发工资 FROM emp
工资=基本工资sal + 奖金 如果是空就写0
2. IF(expr1, expr2, expr3)
3. 逻辑表达式:
SELECT ename, sal,
if(sal>=3000, "高", if(sal<=1500, "低", "中")) 工资级别 FROM emp
该条命令会显示三列数据,ename, sal, 工资级别 ,其中工资级别是利用IF函数计算出来的
SELECT ename, sal,
case when sal >= 3000 then "高"
when sal <= 1500 then "低"
else "中" end 工资级别 FROM emp
3. 其他函数:开窗函数
1. over()
聚合函数是分组聚合,开窗函数聚合不分组, 会多一列
聚合函数最后结果是一个结果
开窗函数每一行都有这个结果
SELECT *, avg(sal) over() 平均工资 FROM emp
2. partition by
聚合函数:SELECT deptno, avg(sal) FROM emp group by deptno
开窗函数:SELECT *,avg(sal) over (partition by deptno) 平均工资 FROM emp
4. E-R图 联系图
流程一般是先创建表,再从本地导入数据,再进行查找