码迷,mamicode.com
首页 > 数据库 > 详细

MySQL 查询语句执行顺序

时间:2017-11-25 19:23:44      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:结果   分组   tab   单条件   透明   com   执行   单表   空值   

Mysql查询语句时候一共分为11步,其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对用户来说是透明的,但是只有最后一个虚拟的表才会被作为结果返回。

语句执行顺序 :

顺序

名称

内容

1

SELECT

命令发起

2

* 或 AVG(字段)等 查询内容

3

FROM

查询位置

4

WHERE

条件查询

5

GROUP BY

分组

6

HAVING

筛选

7

ORDER BY (ASC/DESC)

排序

8

LIMIT

限制结果数

1、单表查询

  • 查询指定的列
-- 在学生表中查询学号、姓名;
select sno, sname from student ;
  • 查询全部列
-- 查询学生表中全部信息
select * from student;
  • 对查询后的列进行 起别别名
-- 查询全部学生的“姓名”及其“出生年”两列

select sname as 姓名,(2017-Sage) as 出生年 from student;
  • 单条件查询
-- 查询职位是 salesman  的记录;
select * from emp where job=Salesman
  • 多条件查询
-- 查询部门在10 或 20 的记录
select * from emp where deptno=10 or deptno=20;

-- 查询部门在10的 或者部门在20且薪水小于2000的记录
select * from emp where deptno=10 or (deptno=20 and sal<=2000);

 

去重查询 ,使用 <distinct 列名> 语句

-- 查询选修了课程的学生学号
select distinct sno as 选修了课程的学生学号 from score;
  • 查询空值(NULL)
-- 查询没有先修课的课程号和课程名。

select Cno as 课程号,Cname as 课程名,Cpno from course where Cpno is null;

-- 查询所有有成绩的学生学号、课程号及成绩

select Sno as 学号,Cno as 课程号,Grade as 成绩 from SC where Grade is not null;
  • 将NULL转化为实际值 ,使用 <coalesce(列名,替换值)>语句
-- 查询津贴为NULL ,替换为0
select coalesce(comm,0) from emp;
  • 模糊查询 (LIKE % _ 语句)  %表示任意字符;_表示单个字符
--查询员工姓名以a开头的记录
select * from emp where ename like a%;

--查询员工姓名中包含a的记录
select * from emp where ename like %a%;

--查询员工姓名第二个字母以a开头的记录
select * from emp where ename like _a%;

 

MySQL 查询语句执行顺序

标签:结果   分组   tab   单条件   透明   com   执行   单表   空值   

原文地址:http://www.cnblogs.com/jennyyin/p/7895987.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!