• oracle训练


    1、显示当前用户;

      show user;

    2、查看当前用户的所有表;

      select * from tab;

    3、如要重复上一条命令,则在sqlplus上输入'/'即可(没成功- -);

    4、取别名:

      select newid "编号",title"标题" ,content"内容" from news;

    5、查询所有的标题(distinct防止重复)

      select distinct title from news;

    6、要求按照特定格式输出(如NO:1,Title:haha,CONTEXT:...)注:||为连接字符串的符号:

      select 'NO:'||newid,'title:'||title from news;

    7、列出有评论的新闻标题;

      select title from news where content is not null; 

    8、要求评论字数大于100,同时标题里面有挂的标题;

      select title from news where length(content)>10 and instr(content,'挂')>0;

    9、判断是否包含字符串的方法:

      select * from news where instr(content,'挂')>0;

      select * from news where content like'%挂%';

    建立员工表和雇佣表:

    1、查询在1981年雇佣的全部雇员信息,between...and 包含等于的情况

      select * from emp where hirdate between '01-jan-81' and '31-dec-81';

    2、要求查询出雇员编号不是 7369、7499的雇员信息

    SQL> SELECT * FROM emp

    WHERE empno NOT IN(7369,7499);

    3、SQL中LIKE语句要注意通配符 % 和 _

    SQL> SELECT * FROM emp

    WHERE hire_date LIKE '%81%';

    4、查看雇员编号不是7369的雇员信息,使用<>或!=

    SQL> SELECT * FROM emp

    WHERE empno<>7369;

    5、要求对雇员的工资由低到高进行排序,升序为默认(ASC),降序(DESC)

    SQL> SELECT * FROM emp

    GROUP BY sal;

    6、查看出部门号为10的雇员信息,查询的信息按照工资从高到低,若工资相等则按雇用日期从早到晚排列

    SQL> SELECT * FROM emp

    WHERE deptno=10

    GROUP BY sal DESC,hiredate ASC;

    7、找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料

    SQL> SELECT * FROM emp

    WHERE (deptno=20 AND job='MANAGER')

    OR (deptno=10 AND job='CLERK');

    8、找出既不是经理又不是办事员但其薪金大于或等于2000的所有员工的资料

    SQL> SELECT * FROM emp

    WHERE job NOT IN('MANAGER','CLERK') AND sal >=2000;

    9、找出有奖金的员工的不同工作

    SQL> SELECT DISTINCT job FROM emp

    WHERE comm IS NOT NULL;

    10、找出各月倒数第3天受雇的所有员工

    SQL> SELECT * FROM emp

    WHERE LAST_DAY(hire_date)-2=hire_date;

    11、找出早于12年前受雇的员工(返回的是月,months_between(date1,date2),date1在后是正数)

     SELECT * FROM emp

    WHERE MONTHS_BETWEEN(sysdate,hiredate)/12 > 12;

    12、显示刚好为5个字符的员工的姓名

    SQL> SELECT ename FROM emp

    WHERE length(ename)=5;

    13、显示不带有"R"的员工的姓名

    SQL> SELECT ename FROM emp

    WHERE ename NOT LIKE '%R%';

    14、显示员工的姓名和受雇日期,将最老的员工排在最前

    SQL> SELECT * FROM emp

    GROUP BY hiredate;

    15、显示所有员工的姓名,加入公司的年份和月份,按受雇日期所在月排序,若月份相同则按年份排序

    SQL> SELECT ename,TO_CHAR(hiredate,'yyyy')year,TO_CHAR(hiredate,'mm') month FROM emp

    ORDER BY month,year;

    16、找出在2月受聘的员工

    SQL> SELECT * FROM emp

    WHERE TO_CHAR(hiredate,'mm')=2;

    17、以年月日方式显示所有员工服务年限

    SQL> 

    select trunc(months_between(sysdate,hire_date)/12) 年,
    trunc(mod(months_between(sysdate,hire_date),12)) 月,
    trunc(mod(sysdate-hire_date,30)) 日
    from EMPLOYEES;

     

    二、连表查询

    1、要求查询雇员的编号、姓名、部门编号、部门名称及部门位置

    SQL> SELECT e.empno,e.ename,d.deptno,d.dname,d.loc

    FROM emp e,dept d

    WHERE e.deptno = d.deptno;

    2、要求查询每个雇员的姓名、工作、雇员的直接上级领导的姓名(表自关联)

    SQL> SELECT e.ename,e.job,m.ename

    FROM emp e,emp m

    WHERE e.mgr = m.empno;

    3、要求查询每个雇员的姓名、工作、雇员的直接上级领导的姓名(表自关联)

    SQL> SELECT e.ename,e.job,m.ename

    FROM emp e,emp m

    WHERE e.mgr = m.empno;

    4、

  • 相关阅读:
    Django框架 之 MTV模型、 基本命令、简单配置
    Django models模型ORM
    Django 链接数据库错误 Strick Mode 解决
    [BZOJ 2002] [HNOI2010]弹飞绵羊(Link Cut Tree)
    [BJOI2014]大融合(Link Cut Tree)
    [BZOJ1576] [BZOJ3694] [USACO2009Jan] 安全路径(最短路径+树链剖分)
    [Codeforces 1005F]Berland and the Shortest Paths(最短路树+dfs)
    CSP-S 2019游记
    浅谈高维前缀和
    [luogu 3175] [HAOI2015]按位或(min-max容斥+高维前缀和)
  • 原文地址:https://www.cnblogs.com/story1/p/8176602.html
Copyright © 2020-2023  润新知