zoukankan      html  css  js  c++  java
  • 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;

    查询汇总

  • 相关阅读:
    android sdk配置
    ptmalloc, dlmalloc
    Longest common subsequence problem
    handless UI (direct UI)
    poj 题目分类
    2010有道难题练习赛2
    JAVA内存模型
    wxformbuilder+WxWidgets下载编译使用
    这几天弄一下
    活用regex的例子 zz
  • 原文地址:https://www.cnblogs.com/sugartang/p/10967430.html
Copyright © 2011-2022 走看看