常用sql语句总结(一)(查询)
数据操作语句:DML
数据定义语句:DDL
数据控制语句:DCL

(执行顺序------序号)
一、基本查询:
1、
SELECT * ----- 2
FROM 数据来源,… ----- 1; ---数据来源可以是多个表或者其他范围
或者
SELECT 字段,字段… -----可以列出想要查询的字段名
FROM 数据来源,……;

2、去重复查询(DISTINCT):
SELECT DISTINCT 字段,字段….. FROM 数据来源,…;

3、查询取别名:
SELECT 字段 AS 别名,字段 AS 别名… -----可以列出查询的字段名
FROM 数据来源,…;

二、限定查询:
4、

  1. SELECT * ------- 3
  2. FROM数据来源,… -------1
  3. WHERE 过滤条件;-------2

(1)SELECT * FROM emp WHERE sal>=1500 AND sal<=1000’;
(2)SELECT * FROM emp WHERE sal BETWEEN 1000 AND 1500;
使用BETWEEN AND 时,数字小的在数字大的前面;
使用(2)只需要执行一次判断,而(1)需要进行两次判断。

5、联合查询
SELECT * FROM emp WHERE job=’CLERK’ UNION ALL SELECT * FROM dept WHERE sal>3000;
使用UNION ALL可以把两个查询结果合并显示,但是有可能出现重复,一般用于或者(OR)并集关系,一般用于替换OR的使用,这样有利于SQL的优化,避免了索引失效而使用了全局扫描,影响性能

6、判空查询
SELECT * FROM emp WHERE comm IS NOT NULL;
SELECT * FROM emp WHERE comm IS NULL;

7、IN查询
SELECT * FROM emp WHERE empno IN(1000,1001,1002);
SELELCT * FROM emp WHERE empno NOT IN(1000,1001,1002);

三、模糊查询
8、
SELECT *--------3
FROM 数据来源---------1
WHERE 模糊查询字段 LIKE 模糊查询关键字;-------2 -----( _:表示一位字符,%:表示任意位数上的任意字符)
SELELCT * FROM emp WHERE ename LIKE ‘%A%’;

四、排序查询
SELECT *-------3
FROM 数据来源---------1
WHERE 过滤条件---------2
ORDER BY 排序字段;---------4 升序ASC|降序DESC

SELECT empno AS id FROM emp WHERE WHERE sal>100 ORDER BY id DESC;

五、多表查询(连接查询)
内连接(一定要满足条件才能显示):
(1)SELECT no,字段…---------3
FROM 数据来源A,数据来源B-----------1
WHERE A.no = B.no;---------2
消除笛卡儿积
SELECT empno,ename,deptno,dname FROM emp e,dept d WHERE e.deptno = d.deptno;

(2)SELECT no,字段….
FROM 数据来源a INNER JOIN 数据来源 b ON a.no = b.no;

SELECT empno,ename,deptno,dname FROM emp e INNER JOIN dept d ON e.deptno = d.deptno;

外连接:
左外连接:可以让左表不满足过滤条件的也显示
右外连接:可以让右表不满足过滤条件的也显示
全外连接:可以让左右表不满足过滤条件的都显示

使用(+)的方式是ORACLE特有的,mysql没有这种方式;
使用左外连接(+)在右边,右外连接(+)在左边;

左外连接:
(1)SELECT * FROM emp e,dept d WHERE e.deptno = d.deptno(+);---ORACLE特有
(2)SELECT * FROM emp e LEFT OUTER JOIN dept d ON e.deptno = d.deptno;-----ORACLE和MYSQL通用

右外连接:
(1)SELECT * FROM emp e,dept d WHERE e.deptno(+) = d.deptno;
(2)SELECT * FROM emp e RIGHT OUTER JOIN dept d ON e.deptno = d.deptno;

全外连接:
SELECT * FROM emp e FULL OUTER JOIN dept d ON e.deptno = d.deptno;

六、常用函数
COUNT(*|字段);统计查询到的数量
SUM(字段);计算该字段的数据之和
AVG(字段);计算该字段的平均数
MAX(字段);计算出该字段数据中最大的
MIN();计算出该字段数据中最小的
SYSDATE;ORACLE中当前时间
NOW();MYSQL中当前时间
不能在WHERE子语句中使用统计函数

七、分组统计查询
SELECT 字段,字段,分组字段,…..---------4
FROM 数据来源a,数据来源b….--------1
WHERE 过滤条件----------2
GROUP BY 分组字段--------3
ORDER BY 排序字段 ASC|DESC---------5
如果需要分组,那么必须把分组字段给查询出来

八、HAVING过滤查询
不能在WHERE子语句中使用统计函数,如果需要在过滤条件中使用统计函数,那么可以使用HAVING;
SELECT 字段,分组字段,….--------5
FROM 数据来源a,数据来源b….. ------------1
WHERE 过滤条件-----------2
GROUP BY 分组字段-----------3
HAVING 对统计函数进行判断----------4
ORDER BY 排序字段 ASC|DESC;-------6
SELELCT empno,ename,job,SUM(sal) FROM emp WHERE job<>’班长’
GROUP BY job HAVING SUM(sal)>500 ORDER BY empno;

WHERE子句和HAVING子句的区别:
1、 执行顺序不同,WHERE子句进行过滤是在GROUP BY前执行的,HAVING子句进行过滤是在GROUP BY后执行的
2、 WHERE不能对统计函数进行过滤操作,而HAVING能对统计函数进行统计

九、FROM子查询
SELECT job,avgsql FROM (SELECT job,AVG(sal) AS avgsal FROM emp GROUP BY job)temp WHERE temp.avgsql > 2000;
十、EXISTS子查询
例如:查询出有关部门的雇员
SELECT * FROM emp e EXISTS ( SELECT * FROM dept d WHERE e.deptno = d.deptno );

例如:查询出没有部门的雇员

SELECT * FROM emp e NOT EXISTS( SELECT * FROM dept d WHERE e.deptno = d.deptno );

十一、分页查询
分页查询需要用到伪列ROWNUM(行号),ROWNUM是在查询过程中动态生成的一个列,该列必须从1开始,它不能直接存值到数据表,很一个字段,但不是一个数据表的字段。
ORACLE分页:
cp//当前页数
ls//每页有多少条数据

M=(cp-1)ls+1;//到M条数据结束查询
N=cp
ls;//从N条数据开始查询

SELECT * FROM (SELECT ROWNUM rn,* FROM emp WHERE rn<=M )temp WHERE temp.rn>=N;

Mysql分页:
Cp:当前页数
Ls:每页几条数据

M=(cp-1)*ls//到M条数据结束查询
N=ls//从N条数据开始查询

  1. SELECT 字段,分组字段,…. --------5
  2. FROM 数据来源a,数据来源b….. ------------1
  3. WHERE 过滤条件 -----------2
  4. GROUP BY 分组字段 -----------3
  5. HAVING 对统计函数进行判断 ----------4
  6. ORDER BY 排序字段 ASC|DESC; -------6
  7. LIMIT M,N;

常用sql语句总结(一)(查询)的更多相关文章

  1. mysql 常用 sql 语句 - 快速查询

    Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互         1.1.1 mysql 连接             mysql.exe -hPup    ...

  2. Mysql常用sql语句(八)- where 条件查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  3. Mysql常用sql语句(九)- like 模糊查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  4. ysql常用sql语句(12)- group by 分组查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  5. Mysql常用sql语句(14)- 多表查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  6. Mysql常用sql语句(19)- in / exists 子查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 子查询在我们查询方法中是比较常用的,通过子查询可 ...

  7. Mysql常用sql语句(20)- 子查询重点知识

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 子查询语句可以嵌套在 sql 语句中任何表达式出现的位 ...

  8. Mysql常用sql语句(21)- regexp 正则表达式查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 正则的强大不言而喻,Mysql中也提供了 reg ...

  9. Mysql常用sql语句(3)- select 查询语句基础使用

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 针对数据表里面的每条记录,select查询语句叫 ...

随机推荐

  1. python3 参数*args 、 **args 在函数定义和调用中的应用

    一.函数调用时 说明:*args 表示解包(解包 列表.元组.字符串类型) #定义函数cn_musql def cn_musql(host,port,user,pwd,db): print(host) ...

  2. python基础3 条件判断 if嵌套

    if单向判断: stonenumber=6#为宝石数量赋值 if stonenumber>=6: #条件:如果你拥有的宝石数量大于等于6个 print('你拥有了毁灭宇宙的力量') #结果:显示 ...

  3. Redis之基本使用

    基本介绍 Redis是一种key-value存储形式的非关系型数据库,也是一个强大的内存型存储系统,但是它比传统的Memcached 更灵活,支持更多的数据类型,同时也可以持久化. 支持的数据类型 先 ...

  4. 为多维数组添加一列以及reshape用法注意

    https://blog.csdn.net/orangefly0214/article/details/80934008参考这个了链接 下面是我自己用到的代码,亲测可用 # data = pd.rea ...

  5. mysql(七)

    多表查询: 显示内连接: select 字段列表 from 表名1  inner  join 表名1 on  条件 * inner 可忽略 select * from student inner  j ...

  6. 当使用eclipse将项目部署到Tomcat时,提示Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modul

    原因: 此版本选择过高.当出现此错误时,直接对项目可能无法进行修改.可以通过修改项目的配置文件来达到目的. \workspace\项目名称\.settings\org.eclipse.wst.comm ...

  7. springcloud第四步:ribbon搭建服务负载均衡

    使用ribbon实现负载均衡 启动两个会员服务工程,端口号分别为8762.8763,订单服务 使用负载均衡策略轮训到会员服务接口. 什么是ribbon ribbon是一个负载均衡客户端 类似nginx ...

  8. Lock和Synchronized

    1.synchronized无法判断是否获取锁的状态,Lock可以判断是否获取锁2.Lock中的某些锁允许对共享资源的并发访问,如ReadWriteLock读写锁,readLock()获取读锁,wri ...

  9. C# .net 语言加密方案

    C# .net 语言加密方案 方案背景 当前C# .net语言的应用范围越来越广泛,IIS 的服务器架构后台代码.桌面应用程序的 winform .Unity3d 的逻辑脚本都在使用.C# .net ...

  10. Pubmed/PMC/Meline的异同点【转载】

    转自:http://paper.dxy.cn/article/495034 一.PubMed.PMC 和 MEDLINE 到底有什么区别和联系? 可以看出,PubMed的收录范围是最广的:三个都是生物 ...