• 简单查询和限定查询


    使用scott用户下的表

    1.--查询表的所有内容

    SELECT * FROM emp;

    2.--查询员工编号,姓名,基本工资

    SELECT e.empno,e.ename,e.sal
    FROM emp e;

    3.--查询职位并去掉重复

    SELECT DISTINCT e.job
    FROM emp e;

    4.--查询员工编号,姓名,基本工资,月薪,年薪

    SELECT e.empno 编号,e.ename 姓名,e.sal 月薪,e.sal*12 || '元' 年薪,ROUND(e.sal/30,2) 日薪, '$' 货币
     FROM emp e;

    5.--查询表中有多少条记录

    SELECT COUNT(*) FROM emp;

    6.--查询基本工资高于1500的全部员工信息

    SELECT *
    FROM emp e
    WHERE e.sal>1500;

    7.--查询基本工资小于等于2000的全部员工信息

    SELECT *
    FROM emp e
    WHERE e.sal<=2000;

    8.--查询姓名是smith的员工信息

    SELECT *
    FROM emp e
    WHERE e.ename=UPPER('smith');

    9.--查询职位是clerk的的员工信息

    SELECT *
    FROM emp e
    WHERE e.job='CLERK';

    10--查询职位不是clerk的的员工信息

    复制代码
    SELECT *
     FROM emp e
      WHERE NOT e.job='CLERK';
     
     SELECT *
      FROM emp e
     WHERE e.job<>'CLERK';
      
     SELECT *
    FROM emp e
     WHERE e.job!='CLERK';
    复制代码

    11.--查询工资在1500~3000包含1500和3000的员工的信息

    SELECT *
    FROM emp e
    WHERE e.sal BETWEEN 1500 AND 3000;

    12.--查询职位是销售人员salesman并且工资高于1200的员工信息

    SELECT *
    FROM emp e
    WHERE e.job='SALESMAN' AND e.sal>1200;

    13.--要求查询中10部门中的经理或者20部门中的业务员

    SELECT *
    FROM emp e
    WHERE (e.deptno=10 AND e.job='MANAGER')
    OR (e.deptno=20 AND e.job='CLERK')

    14.--查询不是业务员且工资大于2000的员工

    SELECT *
    FROM emp e
    WHERE e.job<>'CLERK' AND e.sal>2000;

    15.--查询出在1981年入职的员工

    SELECT * 
    FROM emp e
    WHERE to_char(e.hiredate,'YYYY')='1981';

    --判断内容是否为空is null ,is not null
    16.--查询所有领取资金的员工的信息

    SELECT *
    FROM emp e
    WHERE e.comm IS NOT NULL;

    17.--查询所有不领取资金的员工的信息

    SELECT *
    FROM emp e
    WHERE e.comm IS NULL;

    18.--查询所有不领取资金同时工资大于2000的员工的信息

    SELECT *
    FROM emp e
    WHERE e.comm IS NULL AND e.sal>2000;

    19.--查询不收取佣金,或者收取佣金小于100元的员工

    SELECT *
    FROM emp e
    WHERE e.comm IS NULL OR e.comm<100;

    20.--查找收取佣金的员工的不同职位的工作
    --先查找收取佣金的员工职位JOB

    SELECT e.job
    FROM emp e 
    WHERE e.comm IS NOT NULL;

    --发现职位重复使用distinct

    SELECT DISTINCT e.job
    FROM emp e
    WHERE e.comm IS NOT NULL;

    --列的范围查找in ,not in,有固定的多个条件才使用
    -21.-查询出员工编号是7369,7788,7566的员工信息
    --可以用OR来写

    SELECT * 
    FROM emp e
    WHERE e.empno=7369 OR e.empno=7788 OR e.empno=7566

    --用in来写可以省去很多代码

    SELECT *
    FROM emp e
    WHERE e.empno IN (7369,7788,7566);

    22.--查询出员工编号不是7369,7788,7566的员工信息

    SELECT *
    FROM emp e
    WHERE e.empno NOT IN (7369,7788,7566);

    --模糊查询 like not like 
    --%匹配0个,1个或者多个字符
    --_下划线只能匹配一个字符
    23.--查询出员工姓名是S开头的员工信息

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

    24.--查询姓名第2个字母是M的员工信息

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

    25.--查询姓名中包含F的员工信息
    --先分析F可以出现在姓名中的任意位置用%来匹配

    SELECT *
    FROM emp e
    WHERE e.ename LIKE '%F%'

    26.--查询姓名长度为6或者长度超过6的员工信息

    SELECT * 
    FROM emp e
    WHERE LENGTH(e.ename)>=6;


    --也可以用下划线来匹配6个下划线

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

    27.--查询基本工资中包含1或者在81年入职的员工

    SELECT * 
    FROM emp e
    WHERE e.sal LIKE '%1%' OR to_char(e.hiredate,'YYYY')='1981';

    --换成AND

    SELECT * 
    FROM emp e
    WHERE e.sal LIKE '%1%' AND to_char(e.hiredate,'YYYY')='1981';

    28.--查询10部门中的所有经理,20部门中所有业务员,
    --既不不是经理又不是业务员但工资大于2000元的所有员工
    --同时员工姓名中包含S或者K

    SELECT * 
    FROM emp e
    WHERE ((e.deptno=10 AND e.job='MANAGER')
    OR (e.deptno=20 AND e.job='CLERK')
    OR(e.job NOT IN('MANAGER','CLERK') AND e.sal>2000))
    AND (e.ename LIKE '%S%'OR e.ename LIKE '%K%');

    --order by 排序 ASC ASC可以省略,升序 DESC 降序 
    29.--查询所有员工,并按工资由高到低排序 

    SELECT * 
    FROM emp e
    ORDER BY e.sal DESC;

    30.--查询所有员工,并按工资由低到高排序 

    SELECT * 
    FROM emp e
    ORDER BY e.sal ASC;

    --ASC可以不写

    SELECT * 
    FROM emp e
    ORDER BY e.sal;

    31.--查询所有业务员的详细信息,并且按照,基本工资由低到高排序

    SELECT * 
    FROM emp e
    WHERE e.job='CLERK'
    ORDER BY e.sal ASC;

    32.--查询所有员工信息,要求按基本工资由高到低排序,如果工资相同按入职早,晚时间排序

    SELECT *
    FROM emp e
    ORDER BY e.sal DESC ,e.hiredate ASC;
  • 相关阅读:
    flask框架中SQLAlchemy相关
    flask使用外部存储模块之数据库的使用
    flask的基础知识
    docker的下载和使用
    rbac权限管理系统的学习
    redis数据库之五种数据类型的简单操作
    使用django框架进行web项目开发需要了解的知识
    django项目常用外部模块下载和使用
    pwn学习之dl_resolve学习篇
    验证docker的Redis镜像也存在未授权访问漏洞
  • 原文地址:https://www.cnblogs.com/Soprano/p/10650874.html
Copyright © 2020-2023  润新知