2019-08-19

                                              Oracle配套练习


练习一

3: SELECT last_name, job_id, salary AS Sal

    FROM employees;                       

                                      能够执行成功

4:SELECT * FROM job_grades;  不能够,From后面只能跟表或者视图

5:SELECT employee_id, last_name    缺少 ,

  sal x 12 ANNUAL SALARY          sal值不存在 X没有意义错误表达

  FROM employees; 

6:

7:将sql语句保存到 labl_7.sql文件中

8

9:创建唯一查询    select distinct job_id from employees;

10:将显示职务与姓氏,用用逗号和空格分隔开 然后命名为“employee and title”

  select last_name||', '||job_id As "Employee and Title" from employees;

11:创建一个查询使其显示employees表所有的数据用户‘,’分割开 命名为“THe——Output”

练习二

1:

2: 创建一个查询,显示员工编号为176的员工的姓氏和部门编号

    select Last_name,Department_id from employees

    where employee_id =176;

3:

4:  显示在2005年2月20日和2008年5月1日之间聘用的元的姓氏、职务、和起始日期

    select last_name , to_char(hire_date,'fmYYYY-Month-DD') from employees

    where hire_date between '20-February-05' and '1-May-08'


5: 按姓名顺序显示部门20和部门50中所有员工的姓氏和编号

    select department_id,last_name from employees

    where department_id=20 or department_id=50

    order by last_name asc;   

6:  显示1994年聘用的员工的姓氏和聘用年限

    select  last_name,hire_date from employees

    where hire_date like '%94%';

7:显示没有经理的的所有元的姓氏和职称

  select last_name ,job_id from employees

  where manager_id is null;

8: 显示可以赚取佣金的所有员工的姓氏、薪金和佣金。按薪金和佣金进行降序排序

    select last_name,salary,commission_pct

    from employees

    where commission_pct is not null

    order by salary desc ,commission_pct desc;

9: 显示员工姓名中的第三个字母为“a“的所有员工的姓氏

    select last_name from employees

    where last_name like '__a%';

10: 显示员工姓氏中有"a" 和 "e"的所有员工的姓氏

    select last_name from employees

    where last_name like '%a%' or last_name like '%e%';

11: 显示职务为销售代表或仓库管理员并且薪金不低于¥2500、¥3500或¥7000的所有员工的姓氏、薪金、和职务

    select last_name ,salary, job_id from employees e,jobs j

    where  e.job_id=j.job_id and

    j.job_title like '%Manager%'

    and e.salary >= 2500

    order by salary desc;

练习3

1:  显示当前日期,并标记为Date

    select to_char(current_date,'fmYYYY-MM-DD')date1 from dual;

2:  显示每位员工的编号,姓氏,薪金和增加15%后的薪金总数并标记为New Salary

    select employee_id,last_name,salary,salary*1.15 as "New Salary" from employees

4:  在第二题的基础上添加一个新薪金减去原来的薪金并标记为Increase

    select employee_id,last_name,salary,salary*1.15,

    nvl(salary*1.15-salary,0)Increase from employees;

5:  显示姓名一以J,S或M开头的所有员工的姓氏(第一字母大写,所有其它字母小写)和姓名长度,给每一列一个合适的标签,按员工的姓氏升序排序

    select last_name as "Name",length(last_name)Length from employees

    where last_name like 'A%' or last_name like 'J%' or last_name like 'M%';

6:  计算今天和该员工的聘用月数标记为Month_Worked ,月份取舍

    select last_name ,round(months_between(current_date,hire_date),0)Month_Worded from employees;

7: <employee last name> earns <salary> monthly but wants <3 times salary>

    select last_name||'e arns '||salary||' monthly '||' but wants '||salary*3  as "Dream Salaries"

    from employees;

8:  薪金格式规定为15个字符长度,左边填充¥标记为salary

    select last_name ,lpad(salary,15,'$'') from

    employees;

9:  增加一个薪金复核日 为服务六个月后的第一个星期一标记为Review,使其显示格式为“Monday,the Thirty-Fist of July,2000”。

    select LAST_NAME,TO_char(NEXT_DAY(ADD_MONTHS(HIRE_DATE,6), 'Monday'),'fmDay,"the of" Month,YYYY')New_date from EMPLOYEES;

10: 员工的工作日期(星期几)标记为Day 排序

    select last_name ,hire_date,to_char(hire.date,'fmDay')DAY from employees

    order by DAY asc;   

                                    将星期变为数字

11:显示员工姓氏与佣金金额,如果该员工不赚取佣金,则显示“NO Commission”并标记为COMM

        select last_name,nvl(LPAD(to_char(COMMISSION_PCT), 5),'No Commission')COMM from employees ORDER BY COMM asc;

12: 用*号指明年薪,没一*代表一千美元按薪金降序排序并标记为Employees_And_Their_Salary.

          select  last_name||'    '||TO_CHAR(lpad(0,to_number(salary/1000),'*'))Employees_And_Their_Salaries

        from employees  ORDER BY SALARY DESC;

13:  按职务给等级AD_PRES A

                ST_MAN B

                IT_PROG C

                SA_REP D

                ST_CLERK E

      select job_id ,DECODE(job_id, 'AD_PRES','A','ST_MAN','B',

  'IT_PROG','C','SA_REP','D','ST_CLERK','E',

    0)Grade

    from EMPLOYEES ORDER BY Grade asc;

  select job_id , CASE job_id

  WHEN 'AD_PRES' THEN 'A'ELSE'0'END "Grade"

      from employees;

练习四

1:  显示员工姓氏、部门编号、部门名称

    select e.last_name,e.department_id,d.department_name

    from  employees e,departments d

    where e.department_id=d.department_id;

2:  创建部门80中所有职务唯一的

    SELECT  e.JOB_ID,d.LOCATION_ID 

    FROM employees e ,departments d

    WHERE e.DEPARTMENT_ID=d.DEPARTMENT_ID

    SELECT JOB_ID ,COUNT(*)Number1

    FROM EMPLOYEES GROUP BY JOB_ID

3:  显示姓氏、部门名称、部门地点、以及城市

    select e.first_name,e.department_name,d.location_id,l.city

    from employees e,departments d,locations l

    where e.department_id=d.department_id and

    d.location_id=l.location_id;

4:  含小写a名称的员工的姓氏和部门名称

    select e.last_name ,d.department_name

    from employees e

    join departments d

    on (e.department_id=d.department_id)

    where e.last_name like '%a%' ;

5:  在多伦多Toronto 的员工姓氏、职务、部门编号、部门名称

    select e.last_name,j.job_title,e.department_id,d.department_name,l.city

    from employees e

    join departments d

    on (e.department_id=d.department_id)

    join jobs j

    on (e.job_id =j.job_id)

    join locations l

    on (d.location_id=l.location_id)

    where lower(l.city) ='toronto';

8:  部门id,部门员工,同意部门的所有员工

    select e1.department_id,e1.last_name,e2.last_name

    from employees e1

    right outer join employees e2

    on (e2.department_id=e1.department_id  )

and e2.last_name !=e1.LAST_NAME

    ORDER BY e1.DEPARTMENT_ID asc, e1.LAST_NAME

9:  查询工资等级

    非等值联结 利用where between条件联结

    SELECT e.last_name, e.salary, j.grade_level

    FROM employees e, job_grades j

    WHERE e.salary

    BETWEEN j.lowest_sal AND j.highest_sal;

    利用非等值联结进行查询

10: 显示Davies之后聘用的所有员工的姓名和聘用日期

    select e1.last_name ,e1.hire_date

    from employees e1

    join employees e2

on (e2.last_name='Davies')

    where  e1.hire_date > e2.hire_date

ORDER BY e1.HIRE_DATE;

11:  在其经理前聘用的员工信息

    select e.last_name,e.hire_date,

            m.last_name,m.hire_date

    from employees e

    LEFT  join employees m

    On (m.employee_id=e.manager_id)

    where e.HIRE_DATE < m.HIRE_DATE

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容

  • Oracle数据库函数<一> nvl(COMMISSI...
    歇尔瑞丝阅读 384评论 1 0
  • http://www.itpub.net/thread-1393352-1-1.htmlhi,看到你关于数据库存储...
    yahzon阅读 579评论 1 0
  • 为使晚会达到预期成效,撰写主持词是必不可少的环节。如何写好主持词,些许体会与大家分享: 第一,切...
    半屏山人阅读 1,207评论 3 1
  • 又是一个炎热的下午,因为已经很长时间没下过雨,公路旁边的树叶上灰蒙蒙的,都已经看不到叶子原本的颜色。路上没有多少人...
    夜雨流香阅读 292评论 3 3