数据库练习:创建表、数据操作与查询

版权申诉
0 下载量 126 浏览量 更新于2024-08-23 收藏 185KB DOC 举报
"该文档是关于第一次上机练习的习题和结果,涉及数据库操作,包括DDL(数据定义语言)和DML(数据操纵语言)的使用,以及SQL查询。主要内容涵盖创建表、插入数据、调整薪资、单表查询等基本数据库操作。" 在此次上机练习中,我们首先关注的是数据库表的构建。有两个主要的表,DEPT和EMP,以及一个辅助表SALGRADE,而BONUS表没有数据。DEPT表存储部门信息,包括部门编号(DEPTNO)、部门名称(DNAME)和地点(LOC)。EMP表则记录员工详情,如员工编号(EMPNO)、姓名(ENAME)、职位(JOB)、上级编号(MGR)、入职日期(HIREDATE)、工资(SAL)和奖金(COMM),同时还有一个外键DEPTNO关联到DEPT表。SALGRADE表用于定义薪资等级,包含等级(GRADE)、最低薪资(LOSAL)和最高薪资(HISAL)。 DDL部分要求写出创建这些表的SQL语句。创建DEPT表的语句是: ```sql CREATE TABLE DEPT ( DEPTNO INT, DNAME NVARCHAR(14), LOC NVARCHAR(13), PRIMARY KEY (PK_DEPT) ); ``` 创建EMP表的语句则为: ```sql CREATE TABLE EMP ( EMPNO INT, ENAME NVARCHAR(10), JOB NVARCHAR(9), MGR INT, HIREDATE DATE, SAL FLOAT, COMM FLOAT, DEPTNO INT, PRIMARY KEY (PK_EMP), FOREIGN KEY (FK_DEPTNO) REFERENCES DEPT ); ``` DML部分要求插入数据。由于题目中提供了具体的数据,但未在此处展示,所以具体的INSERT语句需要根据给出的数据填写,例如: ```sql INSERT INTO DEPT (DEPTNO, DNAME, LOC) VALUES (1, 'ACCOUNTING', NULL); INSERT INTO EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO) VALUES (100, 'John Doe', 'MANAGER', 0, '2000-01-01', 5000, 1000, 10); ``` 接着,调整所有员工的工资并查询相关信息。增加10%工资的命令如下: ```sql UPDATE EMP SET SAL = SAL * 1.1; ``` 然后,查询员工姓名、新的工资和补助: ```sql SELECT ENAME, SAL, COMM FROM EMP; ``` 单表查询部分,要求找出EMP表中部门号为10的员工的姓名、职位、入职日期和工资: ```sql SELECT ENAME, JOB, HIREDATE, SAL FROM EMP WHERE EMP.DEPTNO = 10; ``` 最后,查询所有不同的职位,可以使用DISTINCT关键字: ```sql SELECT DISTINCT JOB FROM EMP; ``` 这些就是基于提供的信息所解释的数据库操作,包括表的创建、数据的插入、更新以及简单的查询操作。