【思维导图】
一、检索数据
1、select作用范围:是后面所有字段的组合
2、sql脚本中嵌入注释:(1)——这是注释(2)#这是注释(3)/* 这是注释 */
3、select去除重复行:distinct
select distinct deptno sal from emp;
4、select排序
(1)单列、多列
select * form emp order by sal;
select * form emp order by sal,name;
(2)排序方向:DESC(降序)、ASC(升序)、默认升序
二、过滤数据
1、基本过滤:使用检索条件 where
2、高级数据过滤:使用逻辑操作符 (AND、OR、IN、NOT)
3、用通配符进行过滤:使用LIKE操作符模糊查询 (%代表0或多个字符,_代表一个字符,特殊字符用ESCAPE标示符查询,[ ]指代表一个字符集(此通配符只有Access和Sql Server支持))
SELECT * FROM emp WHERE ename LIKE 'S%';
SELECT * FROM emp WHERE ename LIKE '_M%';
SELECT * FROM emp WHERE ename LIKE '%\_%' ESCAPE '\';
SELECT * FROM emp WHERE ename LIKE '[JM]%';
4、使用is null 查询
SELECT * FROM emp WHERE comm IS NULL;
SELECT * FROM emp WHERE comm IS NOT NULL;
5、SQL优化:AND 把检索结果较少的条件放到后面,OR 把检索结果较多的条件放到后面
三、创建计算字段
select sal*sal as sum from emp
四、函数
--注意:函数分为单行函数和多行函数两大类
-----单行函数分为字符函数、数值函数、日期函数、转换函数、通过函数
-----多行函数分为sum()、avg() count() max() min()
--数据处理函数
函数一般是在数据上执行,为数据的转换和处理提供方便。SQL函数不可移植。
--汇总函数
select sal*sal as sum from emp
--聚集函数
--分组函数
五、多表查询——之前是单表查询的方法
1、子查询(嵌套查询)
where型子查询:指把内部查询的结果作为外层查询的比较条件。
from型子查询:把内层的查询结果当成临时表,供外层sql再次查询。
in子查询:内层查询语句仅返回一个数据列,这个数据列的值将供外层查询语句进行比较。
exists子查询:把外层的查询结果,拿到内层,看内层是否成立,简单来说后面的返回true,外层(也就是前面的语句)才会执行,否则不执行。
any子查询:只要满足内层子查询中的任意一个比较条件,就返回一个结果作为外层查询条件。
all子查询:内层子查询返回的结果需同时满足所有内层查询条件。
比较运算符子查询:子查询中可以使用的比较运算符如 “>” “<” “= ” “!=”。
(1)简单查询:从单个表中检索数据单条数据
(2)利用子查询进行过滤
(3)作为计算字段进行查询
2、连接查询
3、组合查询
使用Union操作符,将多个select语句组合成一个”结果集“,又称为并(Union)或复合查询。
多数SQL查询只包含一个或多个表中返回数据的单条select语句,但是SQL也允许指定多条select语句,并将结果作为一个结果作为一个查询结果返回。
六、数据插入、更新和删除数据
1、插入
2、更新
3、删除
七、创建和操纵表
--查询所有表
SELECT table_name FROM user_tables;
--查看表结构
参考:
SQL中的连接查询与嵌套查询:https://blog.csdn.net/ccsuxwz/article/details/70157911
SQL各种连接——自连接、内连接、外连接、交叉连接的使用:https://www.cnblogs.com/Brambling/p/6691760.html
MySQL里面的子查询:https://www.cnblogs.com/zhuiluoyu/p/5822481.html
SQL数据查询之——单表查询:https://www.cnblogs.com/OctoptusLian/p/8150657.html