文档详情

练习1_sql语句答案.doc

发布:2017-06-20约4.57千字共13页下载文档
文本预览下载声明
习题1 请根据给出的数据库表结构来回答相应问题: DEPT (DEPTNO INT, DNAME VARCHAR(14),LOC VARCHAR(13)); EMP (EMPNO INT,ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT); BONUS (ENAME VARCHAR(10), JOB VARCHAR(9), SAL INT, COMM INT); SALGRADE ( GRADE INT, LOSAL INT, HISAL INT); 其中表中包含如下数据: DEPT表: EMP表: SALGRADE表: BONUS表: 无数据 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原) DDL 写出上述表的建表语句。此外,在DEPT上创建名为”PK_DEPT”的主键约束,在EMP表上创建名为” PK_EMP”的主键约束以及指向表DEPT的外键约束” FK_DEPTNO”。 命令: create table dept (DEPTNO INT CONSTRAINT PK_DEPT primary key, DNAME varchar(14), LOC varchar(13) ) create table EMP ( EMPNO INT CONSTRAINT PK_EMP PRIMARY KEY, ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT CONSTRAINT FK_DEPTNO FOREIGN KEY REFERENCES dbo.dept(DEPTNO) ) create table BONUS ( ENAME VARCHAR(10), JOB VARCHAR(9), SAL INT, COMM INT) create table SALGRADE ( GRADE INT, LOSAL INT, HISAL INT) DML 给出相应的INSERT语句来完成题中给出数据的插入。 命令:insert into SALGRADE (GRADE,LOSAL,HISAL)VALUES(1,1,1) 将所有员工的工资上浮10%.然后查询员工姓名、薪水、补助。(emp.sal为工资,m为补助) 命令:update emp set sal=sal*1.1 Select ename,sal,comm from emp 结果: 单表查询 查看EMP表中部门号为10的员工的姓名,职位,参加工作时间,工资。 命令:select ename,job,hiredate,sal from emp where deptno=10 结果: 查所有已有的职位,要求去除重复项。 命令: SELECT DISTINCT JOB FROM EMP 结果: 计算每个员工的年薪,并取列名为Salary of Year(emp.sal为员工的月薪),要求输出员工姓名,年薪。 命令:select ename,sal*12 as salary of year from emp 结果: 查询每个员工每个月拿到的总金额(emp.sal为工资,m为补助)。(提示:isnull(ex1,ex2)表示如果ex1为空则返回ex2select ename,isnull(sal+comm,sal) as total from emp 结果: 显示职位是主管(manager)的员工的姓名,工资。 命令:select ename,sal from emp where job=manager 结果: 显示第3个字符为大写O的所有员工的姓名及工资。 命令:select ename,sal from emp where ename like __O% 结果: 显示职位为销售员(SALESMAN)或主管(MANAGER)的员工的姓名,工资,职位。 命令:select ename,sal,job from emp where job=salesman or job=manager 结果: 显示所有没有补助的员工的姓名。 命令:select ename from emp where comm is null 结果: 显示有补助的员工的姓名,工资,补助。 命令:select ename from emp where comm is not null 结果: 排序显示所有员工的姓名,工资(按工资降序方式)。 命令:select ename,
显示全部
相似文档