mysql 简单查询

查询特定列SELECT ename,birthday FROM emp;

查询所有的select*from emp;

给列起别名select ename AS 姓名, salary AS 工资 FROM emp;可以省略AS

可以简写为:select ename a,salary b from emp;可以省略AS

显示不同的记录(合并相同记录)SELECT DISTINCT sex FROM emp;

查询时执行计算 select 2+3*5+7.4*3.5回车 ;

查询所有员工姓名以及年薪

select ename AS 姓名,salary*12 AS 年薪 FROM emp;

或者:select ename,salary*12 FROM emp;

练习:假设每个员工工资增加500,年终奖5000,查询所有员工的姓名及其年薪,给列别起中文别名。

SELECT ename AS 姓名,(salary+500)*12+5000 AS 年薪 FROM emp;

查询结果集排序

结果从小到大:SELECT*FROM dept ORDER BY did ASC;ascendant

结果从大到小:SELECT*FROM dept ORDER BY did DESC;descendant

如果工资相同,按照姓名排序

SELECT * FROM emp ORDER BY salary DESC,ename;

如果性别相同,按照生日降序排列。

SELECT * FROM emp ORDER BY sex,birthday DESC;

ORDER BY 可以按照 数值、日期、时间、字符串来排序,默认按ASC升序排列;

单条件查询

查询编号为5的员工所有列SELECT *FROM emp WHERE eid=5;

查询姓名叫king的员工的编号,姓名,工资

SELECT eid,salary,ename FROM emp WHERE ename='king';

查询出20号部门下员工所有的列

SELECT * FROM emp WHERE deptId=20;

查询出工资在6000以上的员工所有列;

SELECT*FROM emp WHERE salary>=6000;

比较运算符:>   <   =    !=不等于    <=

 查询出1993-1-1以后出生的员工

SELECT*FROM emp WHERE birthday>'1993-1-1';

注意生日加引号!!!

查询出不在10号部门的员工的所有列;

SELECT*FROM emp WHERE deptId!=10;

特殊:NULL用IS 查询出没有明确部门的员工所有列

SELECT*FROM emp WHERE deptId   IS  NULL;

SELECT*FROM emp WHERE deptId   IS NOT  NULL;

多个条件查询

   查询出工资大于6000的男员工所有列

   SELECT*FROM emp WHERE salary>6000 AND sex=1;

查询出工资在5000~7000之间员工所有列

SELECT * FROM emp WHERE salary>=5000 AND salary<=7000;

写法二SELECT*FROM emp WHERE salary BETWEEN 5000 AND 7000;

注意事项:必须是大于等于5000,小于等于7000,此时才可以用BETWEEN  AND ;

工资不在7000-1万之间;

SELECT * FROM emp WHERE salary NOT BETWEEN 7000 AND 10000;

SELECT*FROM emp WHERE salary>10000 OR salary<7000;

注意事项:这个用的是  OR 上面是AND;

查询出1993之前和1995之后出生的所有列;

SELECT*FROM emp WHERE birthday>'1995-12-31'  OR birthday <'1993-1-1';

IN用法

查询出20号部门和30号部门的员工所有列

SELECT *FROM emp WHERE deptId=20 OR deptId=30;

    SELECT*FROM emp WHERE deptId IN(20,30);

查询出不在20号部门和30号部门员工所有列

SELECT*FROM emp WHERE deptId NOT IN (20,30);

SELECT *FROM emp WHERE deptId!=20 AND deptId!=30;

注意事项:

IS NULL  /  IS NOT NULL

AND  /   OR

BETWEEN...AND../  NOT BETWEEN..AND..

IN(10,20);  /   NOT IN (10,20);

模糊查询% _

查询名字里有e的

SELECT*FROM emp WHERE ename LIKE '%e%';

查询以e结尾的

SELECT*FROM emp WHERE ename LIKE '%e';

查询倒数第二个字是e

SELECT*FROM emp WHERE ename LIKE '%e_';

注意:% 可以匹配任意多个字符  >=0

 _   可以匹配任意1个字符   =1

以上两个匹配必须使用LIKE关键字

分页查询

数据太多一次显示不完,可以分页

需要两个条件:当前页码-每页数据量

每页的开始=(当前页码-1)*每页数据量

SELECT*FROM emp LIMIT start,count;

start=(当前页码-1)*每页数据量

注意:start和count的值必须是整数,不能是字符串形式。

  假设每页显示5条记录

  1页:SELECT * FROM emp LIMIT 0,5;

  2页:SELECT * FROM emp LIMIT 5,5;

  3页:SELECT * FROM emp LIMIT 10,5;

  4页:SELECT * FROM emp LIMIT 15,5;

  5页:SELECT * FROM emp LIMIT 20,5;

查询汇总

原文地址:https://www.cnblogs.com/sugartang/p/10967430.html