赞
踩
实验项目
实验1 实验环境与操作流程
实验2 数据定义、查询与更新
实验3 基本表的定义、删除与修改
实验4 数据的插入、修改和删除
实验5 数据的查询
实验6 数据的视图
实验7 完整性语言
实验8 触发器
实验9 存储过程与函数
实验10 SQL语句1(创建、插入、查询)
实验11 SQL语句2(查询)
实验12 SQL语句3(视图、完整性、关系代数查询)
实验12 SQL语句3(视图、完整性、关系代数查询)
一、实验目的
1. 掌握数据库SQL语言;
2. 掌握视图的定义以及对视图的查询操作;
3. 掌握实体完整性、参照完整性与用户定义的完整性的定义和维护方法。
二、实验要求
1. 熟练掌握数据库SQL语言;
2. 熟练掌握视图的定义以及对视图的查询操作;
3. 熟练掌握实体完整性、参照完整性与用户定义的完整性的定义和维护方法。
三、实验内容
(课本130页习题3第9题、课本173页习题5第6题)
假设有下面两个关系模式:
用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:
插入Dept表数据的命令:insert into Dept values('1001','教研部','张三','1234567891'),('1002','学工部','李四','1234567892'),('1003','销售部','王五','1234567893'),('1004','财务部','赵六','1234567894');
插入EMP表数据的命令:insert into EMP values('2023001','孙悟空',20,'经理','50000.00','1003'),('2023002','唐僧',40,'经理','40000.00','1004'),('2023003','猪八戒',22,'销售员','25000.00','1003'),('2023004','沙僧',23,'文员','10000.00','1002');
实验指导:
假设有下面两个关系模式:
用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:
(先定义部门表,再定义职工表。因为在职工表中,有“部门号”这个属性,此属性为外码,参照了部门表的主码字段,所以被参照表要先定义。)
插入Dept表数据的命令:insert into Dept values('1001','教研部','张三','1234567891'),('1002','学工部','李四','1234567892'),('1003','销售部','王五','1234567893'),('1004','财务部','赵六','1234567894');
插入EMP表数据的命令:insert into EMP values('2023001','孙悟空',20,'经理','50000.00','1003'),('2023002','唐僧',40,'经理','40000.00','1004'),('2023003','猪八戒',22,'销售员','25000.00','1003'),('2023004','沙僧',23,'文员','10000.00','1002');
上述关系代数所表达的查询意思为:查询年龄小于二十五岁的职工信息。
在职工表中,从行的角度,选择年龄小于二十五岁的记录,这些行放到结果集中。
上述关系代数所表达的查询意思为:查询所有职工的职工姓名和年龄信息。
在职工表中,从列的角度,将职工的姓名和年龄投影出来,该两列放到结果集中。
上述关系代数所表达的查询意思为:查询所有职工的职工号、姓名、年龄、职务、工资、部门号、以及所属部门名称、所属部门经历名、电话信息。
在职工表和部门表中,将职工表和部门表通过相同的部门号字段做连接,此处为等值连接,当职工表中某行的职工号字段与部门表中某行的职工号字段相同的时候,连接起来(列数相加),放入结果集。(等值连接:保留相同的字段,所以SQL查询语句中有两个Dno,一个为职工表Eno,一个为部门表Dno)
上述关系代数所表达的查询意思为:查询所有职工的职工号、姓名、年龄、职务、工资、部门号、以及所属部门名称、所属部门经历名、电话信息。
在职工表和部门表中,将职工表和部门表通过相同的部门号字段做连接,此处为自然连接,当职工表中某行的职工号字段与部门表中某行的职工号字段相同的时候,连接起来(列数相加,去掉重复的列),放入结果集。(自然连接:去掉相同的字段,所以SQL查询语句中只保留一个Dno,可以为职工表Eno,也可以为部门表Dno)
上述关系代数所表达的查询意思为:查询名为孙悟空的职工的职工号、姓名、年龄、职务、工资、部门号、以及所属部门名称、所属部门经历名、电话信息。
在职工表和部门表中,将职工表和部门表通过相同的部门号字段做连接,此处为自然连接,当职工表中某行的职工号字段与部门表中某行的职工号字段相同的时候,连接起来(列数相加,去掉重复的列),再做选择,选择职工名称为孙悟空的记录,放入结果集。
实验12代码:
- create database EMP_DEPT;
-
- use EMP_DEPT;
-
- create table Dept(Dno char(10) primary key,Dname char(10),Mname char(10),Tel char(20));
-
- create table EMP(Eno char(10) primary key,Ename char(10),Eage smallint,Job char(10),Sal numeric(7,2),Dno char(10),constraint C1 check(Eage<=60),constraint C2 foreign key (Dno) references Dept(Dno));
-
- show create table Dept;
-
- show create table EMP;
-
- insert into Dept values('1001','教研部','张三','1234567891'),('1002','学工部','李四','1234567892'),('1003','销售部','王五','1234567893'),('1004','财务部','赵六','1234567894');
-
-
- insert into EMP values('2023001','孙悟空',20,'经理','50000.00','1003'),('2023002','唐僧',40,'经理','40000.00','1004'),('2023003','猪八戒',22,'销售员','25000.00','1003'),('2023004','沙僧',23,'文员','10000.00','1002');
-
-
- select * from EMP where Eage<25;
-
- select Ename,Eage from EMP;
-
- select Eno,Ename,Eage,Job,Sal,EMP.Dno,Dept.Dno,Dname,Mname,Tel from EMP,Dept where EMP.Dno=Dept.Dno;
-
- select Eno,Ename,Eage,Job,Sal,EMP.Dno,Dname,Mname,Tel from EMP,Dept where EMP.Dno=Dept.Dno;
-
- select Eno,Ename,Eage,Job,Sal,EMP.Dno,Dname,Mname,Tel from EMP,Dept where EMP.Dno=Dept.Dno and Ename='孙悟空';
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。