1.实验题目:数据定义
2.实验目和要求:
- 掌握数据表的创建,修改,删除的方法
- 熟悉常用数据类型
- 掌握索引的创建,删除。
- 掌握视图的概念,视图的创建和删除
- 掌握利用视图进行数据查询的方法
3.实验步骤:
- 按实验内容要求完成各项操作
- 根据题目要求给出解决方案
- 提交实验报告
4.实验内容:
- 数据表的建立
建立s,c,sc三章数据表,并给每个属性定义合适数据类型,声明主外码
--表的建立 Create table Student (Sno char(9) PRIMARY KEY, Sname char(20) UNIQUE, Sex char(2), Age SMALLINT, Dept char(20) ); Create table Course (Cno char(4) PRIMARY KEY, Cname char(40) NOT NULL, Cpno char(4), Ccredit SMALLINT, FOREIGN KEY(Cpno) REFERENCES Course(Cno) ); Create table SC (Sno char(9), Cno char(4), Grade SMALLINT, PRIMARY KEY(Sno,Cno), FOREIGN KEY (Sno)REFERENCES Student(Sno), FOREIGN KEY (Cno)REFERENCES Course(Cno) ); --表中插入数据 Insert Into Student Values('42101','君君','男',18,'CS'), ('42102','小花','女',17,'PE'), ('42103','小明','男',17,'PE'), ('42104','宇宇','男',18,'CS'), ('42105','兰兰','女',17,'IS'); Insert Into Course Values('1','CS','2',4), ('2','PE',null,2), ('3','IS','1',7); Insert Into SC Values('42101','1',35), ('42102','2',99), ('42103','2',45), ('42104','1',95), ('42105','3',78); Select * from Student; Select * from Course; Select * from SC;
- 数据表的修改
给c表增加字段teacher
2)Alter table Course add Cteacher char(40)
- 数据表的删除
建立一个表名为test的表,并删除
Create table test (Cno char(10) primary key, Grade char(4) ); Drop table test
- 数据表的索引建立和删除
- 为s表的sname字段建立唯一索引
Create unique index Sname on Student (SNAME)
- 删除s表的唯一索引
Drop index Student.SNAME
- 视图的建立、删除和查询
- 建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE)
Create view CSV AS Select SNO,SNAME,SEX,AGE From Student Where dept = 'CS' With check option;
- 在CSV视图中查询1983年以后出生的计算机系学生基本信息。
Select * from CSV where AGE < 39
- 建立一个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。
1. Create view JSGV AS Select SC.SNO,CNO,GRADE From SC,Student Where dept = 'CS' and Student.SNO = SC.SNO With check option;
- 在JSGV中查询计算机系学生选课多于3门的学生学号。
1. Select Sno 2. from JSGV 3. Group by sno 4. Having count(*) > 3;
- JSGV中查询计算机系学生2号课不及格的学生学号和成绩。
1. Select Sno,Grade 2. from JSGV 3. where Cno = '2' and Grade < 60;
- 删除CSV视图
Drop view CSV;
5.实验总结
此次实验主要是运用基本的建表语句和查询语句,因为SQL的APP用的次数少,熟练度不够,总是出现各种错误,比如不加结尾分号,中英文标点混乱,已经插入数据,不能多次重复插入等各种操作问题。
6.思考题
通过实验,请讨论视图的作用?
视图能够简化用户的操作。
视图使用户能以多种角度看待同一数据。
- 视图对重构数据库提供了一定程度的逻辑独立性。
- 视图能够对机密数据提供安全保护。