现有一个公司的部门及雇员的数据库,由下面三个表组成:
雇员(雇员号,姓名,年龄,薪水)
部门(部门员,部门名,部门经理)
工作(雇员号,部门号,工作年限)
试用SQL语言先建一个数据库,数据库名为自己的姓名,然后完成下列操作:
1. 在数据库中建表,在定义中要求声明
1) 每个表的主码和外码
2) 雇员姓名和部门名不能为空
2. 往表中插入数据
雇员(E01,Tom,35,8000
E02,Dennis,24,5000
E03,John,20,4000
E04,Rick,41,7000
E05,Bill,45,7500
E06,Frank,35,6000
E07,Jank,25,3000
E08,Mike,23,3500)
   部门(D01,人事,E04
        D02,信息,E01
        D03,销售,E05
        D04,财务,E06)
   工作(E01,D02,6
         E01,D03,1
         E01,D04,2
         E02,D01,2
         E02,D04,0
         E03,D02,0
         E04,D01,4
         E04,D02,1
         E05,D03,2
         E06,D04,4
         E07,D04,1
         E08,D03,2)
3. 用SQL语句完成下列操作:
1) 列出Tom工作过的部门名及工作年限。
2) 列出姓名以J开头的雇员的姓名及其工作过的部门名及工作年限。
3) 将人事部门的所有人员的工作年限加一年
4) 建立一个视图,视图名为人事变动表,包括的属性有:雇员号,姓名,部门名,工作年限
5) 用上面产生的视图按工作年限的升序显示人事变动表(2)select 雇员.姓名,工作.部门号,工作.工作年限 where 工作.雇员号=雇员.雇员号and 雇员号 in (select 雇员号 from 雇员 where 姓名 like ‘j%’)这样为什么不对?第(3)题怎么做?谢谢

解决方案 »

  1.   

    ..没办法编辑.第(2)的查询语句应该是
    select 雇员.姓名,工作.部门号,工作.工作年限 form 雇员,工作 where 工作.雇员号=雇员.雇员号  and 雇员号 in (select 雇员号 from 雇员 where 姓名 like ‘j%’)为什么提示出错?
      

  2.   

    第(2)题自已解决了,方法比较笨select 雇员.姓名,工作.部门号,工作.工作年限 from 雇员,工作 where 工作.雇员号=雇员.雇员号 and 姓名 in (select 姓名 from 雇员 where 雇员号 in(select 雇员号 from 雇员 where 姓名 like 'j%'))
      

  3.   

    第(4)题这样做不知道对不对create view 人事变动表 (雇员号,姓名,部门名,工作年限) AS select 雇员.雇员号,雇员.姓名,部门.部门名,工作.工作年限 from 雇员,部门,工作 where 雇员.雇员号=工作.雇员号 and 雇员.雇员号=部门.部门经理