mysql简单查询

1.简单查询
 (1)查询特定的列
  查询出所有员工的编号及其姓名
  SELECT eid,ename FROM emp;
  查询出所有员工的姓名,性别,生日,工资
  SELECT ename,sex,birthday,salary FROM emp;
 (2)查询所有的列
  查询出员工表下所有的列
  SELECT * FROM emp;
  SELECT eid,ename,sex,birthday,salary,deptId FROM emp;
 (3)给列起别名
  查询出所有员工的编号和姓名,使用中文别名
  SELECT eid AS 编号,ename AS 姓名 FROM emp;
  查询出所有员工的姓名,生日,工资,使用中文别名
  SELECT ename AS 姓名,birthday 生日,salary 工资 FROM emp;
  查询出所有员工的姓名和工资,使用1个字母作为别名
  SELECT ename e,salary s FROM emp;
  AS关键字可以省略,保留空格即可起别名。
 (4)显示不同的记录
  查询出所有的员工的性别有哪些
  SELECT DISTINCT sex FROM emp;
  查询出员工都分布在哪些部门
  SELECT DISTINCT deptId FROM emp;
 (5)查询时执行计算
  计算2+5*47.8+3*61.5
  SELECT  2+5*47.8+3*61.5;
  查询出所有员工的姓名及其年薪
  SELECT ename,salary*12 FROM emp;
  假设每个员工的工资增长1000,年终奖20000,查询所有员工的姓名及其年薪,使用汉字别名
  SELECT ename 姓名,(salary+1000)*12+20000 年薪 FROM emp;
 (6)查询的结果集排序
  查询出所有部门的数据,结果集按照部门编号从小到大排列
  SELECT * FROM dept ORDER BY did ASC;     #ascendant升序的
  查询出所有部门的数据,结果集按照部门编号从大到小排列
  SELECT * FROM dept ORDER BY did DESC;
   #desc  describe  描述
   #desc  descendant  降序的
  查询所有的员工,结果集按照工资的降序排列
  SELECT * FROM emp ORDER BY salary DESC;
  查询所有的员工,结果集按照年龄从大到小排列
  SELECT * FROM emp ORDER BY birthday ASC;
  查询所有的员工,结果集按照姓名的升序排列
  SELECT * FROM emp ORDER BY ename;
  查询所有的员工,结果集按照工资的降序排序,如果工资相同按照年龄从大到小排列
  SELECT * FROM emp ORDER BY salary DESC,birthday;
  查询所有的员工,结果集中女员工显示在前,如果性别相同按照姓名升序排列
  SELECT * FROM emp ORDER BY sex,ename;
不加排序规则,默认是按照升序排序 ASC
 (7)条件查询
  查询出编号为5的员工的所有列
  SELECT * FROM emp WHERE eid=5;
  查询出姓名为king的员工所有列
  SELECT * FROM emp WHERE ename='king';
  查询出20号部门下的员工有哪些
  SELECT * FROM emp WHERE deptId=20;
  查询出所有的女员工有哪些
  SELECT * FROM emp WHERE sex=0;
  查询出工资在5000以上的员工有哪些
  SELECT * FROM emp WHERE salary>5000;
>   <   >=   <=   =   !=(不等于)
  查询出不在20号部门下的员工有哪些
  SELECT * FROM emp WHERE deptId!=20;
  查找出没有明确部门的员工有哪些
  SELECT * FROM emp WHERE deptId IS NULL;
  查找出有明确部门的员工有哪些
  SELECT * FROM emp WHERE deptId IS NOT NULL;
  查询出工资7000以上的男员工有哪些
  SELECT * FROM emp WHERE salary>7000 AND sex=1;
  查询出工资在7000~10000之间的员工有哪些
  SELECT * FROM emp WHERE salary>=7000 AND salary<=10000;
  SELECT * FROM emp WHERE salary BETWEEN 7000 AND 10000;
  查询出工资在7000以下和10000以上的员工有哪些
  SELECT * FROM emp WHERE salary<7000 OR salary>10000;
  SELECT * FROM emp WHERE salary NOT BETWEEN 7000 AND 10000;
  查询出1993年出生的员工有哪些
  SELECT * FROM emp WHERE birthday>='1993-1-1' AND birthday<='1993-12-31';
  SELECT * FROM emp WHERE birthday BETWEEN '1993-1-1' AND '1993-12-31';
  查询出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);
is null/is not null
and/or
between .. and ..  /  not  between .. and ..
in() / not in()
 (8)模糊条件查询
   通常用于搜索
  查询出姓名中含有o的员工有哪些
  SELECT * FROM emp WHERE ename LIKE '%o%';
  查询出姓名中以o结尾的员工有哪些
  SELECT * FROM emp WHERE ename LIKE '%o';
  查询出姓名中第2个字符是o的员工有哪些
  SELECT * FROM emp WHERE ename LIKE '_o%';

你可能感兴趣的:(mysql)