(1)只查询特定的列
示例:查询员工的姓名,工资,生日
SELECT ename,salary,birthday FROM emp;
(2)查询所有的列
SELECT * FROM emp;
(3)给列取别名-AS或空格
示例:查询员工的姓名、生日、收入,并取别名
SELECT ename AS 姓名,birthday AS 生日,salary AS 收入 FROM emp;
SELECT ename 姓名,birthday 生日,salary 收入 FROM emp;
(4)只显示不同的记录-合并同类项DISTINCT
示例:查询哪些部门编号下有员工
SELECT DISTINCT deptId FROM emp;
(5)在查询时执行计算
示例:计算每个员工的年薪
SELECT ename 姓名,salary*12 年薪 FROM emp;
(6)查询结果集的排序-order by 列名 asc
示例1:查询所有员工,结果按照工资由低到高(升序)
SELECT * FROM emp ORDER BY salary ASC; #ascendant 升序
示例2:查询所有员工,结果按照工资由高到低(降序)
SELECT * FROM emp ORDER BY salary DESC; #descendant降序
示例3:查询所有员工,结果按照年龄由大到小
SELECT * FROM emp ORDER BY birthday ASC;
示例3:查询所有员工,结果按照生日由小到大排序,如果生日相同,再按姓名由小到大排序
SELECT * FROM emp ORDER BY birthday ASC,ename ASC;
PS:默认按照升序排列
(7)条件查询
示例1:查询编号为5的员工所有信息
SELECT * FROM emp WHERE eid=5;
示例2:查询姓名为KING的员工的编号、工资、生日
SELECT eid,salary,birthday FROM emp WHERE ename=’KING’;
示例3:查询1991-1-1之后出生的员工信息
SELECT * FROM emp WHERE birthday>’1991-1-1’;
示例4:查询不在10号部门的所有员工信息
SELECT * FROM emp WHERE deptId!=10 AND deptId IS NOT NULL;
示例5:查询明确部门的员工信息
SELECT * FROM emp WHERE deptId IS NOT NULL;
示例6:查询工资在5000~5999的员工信息
SELECT * FROM emp WHERE salary>=5000 AND salary<=5999;
SELECT * FROM emp WHERE salary BETWEEN 5000 AND 5999;
示例7:查询部门在10和30的员工信息
SELECT * FROM emp WHERE deptId IN(10,30);
示例8:查询部门不在10和30的员工信息
SELECT * FROM emp WHERE deptId NOT IN(10,30);
(8)模糊条件查询
示例1:查询姓名中包含字母E的员工所有信息
SELECT * FROM emp WHERE ename LIKE ‘%E%’;
示例2:查询姓名中最后一个字母为E的员工所有信息
SELECT * FROM emp WHERE ename LIKE ‘%E’;
示例3:查询姓名中倒数第二个字母为E的员工所有信息
SELECT * FROM emp WHERE ename LIKE ‘%E__’;
(9)分页查询-先WHERE 后ORDER BY
示例1:查询所有的男员工,对查询的结果集,按照工资升序排列
SELECT * FROM emp WHERE sex=1 ORDER BY salary ASC;
分页显示:查询的结果集记录太多,一次显示不完,可一页一页显示。分页查询语句在不同的数据库中实现方法不一样,MYSQL是最简单的。
SELECT * FROM emp LIMIT start,count;
start:从结果集中开始读取的值
count:指定读取的最多行数
第一页:SELECT * FROM emp LIMIT 0,5;
第二页:SELECT * FROM emp LIMIT 5,5;
第三页:SELECT * FROM emp LIMIT 10,5;
…
第n页:SELECT * FROM emp LIMIT count*(n-1),count;
PS:NULL和任何值都不能进行相等/不等判定,可以使用IS NULL/IS NOT NULL;
LIMIT后边的两个值不能添加引号
> >= < <= = !=
AND:并
OR:或
BETWEEN AND:在...之间
IN:并集
NOT IN:不在该并集内
LIKE '':模糊查询的适配符
%: 可以匹配任意多个字符,>=0
_: 可以匹配任意一个字符 =1
上述两个符号不能和=连用,只能使用LIKE连用。