博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库实验3 数据定义语言DDL
阅读量:6420 次
发布时间:2019-06-23

本文共 3314 字,大约阅读时间需要 11 分钟。

2017-3-21

实验目的 1.熟悉SQL语言中DDL的功能; 2.熟悉并掌握数据库中各种完整性约束条件的作用和使用方法; 3.观察和了解数据定义时数据字典的变化。

实验环境 软件:OS:Windows7 DBMS:SQL Server 2008 Compiler:SQL Server Management Studio

实验用时:一次上机 实验要求 1.了解和使用SQL数据定义语言进行数据库、用户表和索引的建立、删除和修改操作; 2.在实验的过程中,观察系统表的变化,并结合系统表分析、总结DDL的处理流程; 3.掌握创建完整性约束的方法,通过“步骤三”中的操作,理解各个约束的作用; 4.熟悉索引的创建、删除方法,并掌握并区分各类索引的异同点; 5.记录实验过程,并对各活动(包括错误活动)作分析说明。

二.实验情况截图 1.创建数据库school,建立数据表 SQL语句: CREATE DATABASE school CREATE TABLE Student ( Sno varchar(5) NOT NULL PRIMARY KEY, SName varchar(10), Sex varchar(2), Sbirth smalldatetime, Sdept varchar(20), parent varchar(20) )

CREATE TABLE Course ( Cno varchar(3) NOT NULL PRIMARY KEY, CName varchar(20), Cpno varchar(3), Credit Decimal(3,1) )

CREATE TABLE Teacher ( Tno varchar(4) NOT NULL PRIMARY KEY, Tname varchar(10), Tsex char(2), Tphone varchar(12), Tdept varchar(20), Taddr varchar(30), Tprof varchar(10), Tpay Decimal(10,2) )

CREATE TABLE SCT ( ID INT IDENTITY (1,1) NOT NULL PRIMARY KEY, Sno varchar(5) NOT NULL, Cno varchar(3) NOT NULL, Tno varchar(4) NOT NULL, Grade Decimal(5,1) ) 2.创建数据表,同时在指定列上创建“主键”和“NULL/NOT NULL”完整性约束。 3.为上述各表添加指定的完整性约束。 (1)实体完整性 ALTER TABLE Course ADD CONSTRAINT name UNIQUE ( CName )

(2)域完整性 ALTER TABLE Teacher ADD CONSTRAINT sex DEFAULT '男' FOR Tsex ALTER TABLE SCT ADD CONSTRAINT grade CHECK ( 0<= Grade <=100 )

(3)参照完整性 ALTER TABLE SCT ADD CONSTRAINT SSno FOREIGN KEY ( Sno ) REFERENCES Student ( Sno ) ALTER TABLE SCT ADD CONSTRAINT Scno FOREIGN KEY ( Cno ) REFERENCES Course ( Cno ) ALTER TABLE SCT ADD CONSTRAINT Stno FOREIGN KEY ( Tno ) REFERENCES Teacher ( Tno )

通过图形界面做以下操作,实验是否能成功并思考结果产生的原因: 1)在学生信息表中添加一名学号暂未分配(即学号为NULL)的学生。 结果失败,原因应该是,学生的学号作为PRIMARY KEY,不能置空,所以在建立一个成员信息的时候不允许空学号的情况出现。

2)在学生信息表中添加两名学号完全相同的学生。 结果出错:学号是UNIQUE的,为保证唯一性,不允许重复的学号

3)在教师信息表中插入一名不指定性别的教师。 结果:性别自动默认成‘男’ 分析:在设置的时候对Teacher表属性列Tsex设置默认值为‘男’。

4)将课程信息表中的一个课程的课程号改为6位数。 结果出错:课程表的课程号允许的最大长度是3位,改成6位数是违反规则的

5)在学生选课表中插入一条对应学号在学生信息表中不存在的选课信息。 结果出错:课程信息无法访问,不能建立外键

6)在学生选课表中正确插入一条记录后,在课程信息表中删除对应的课程。 结果失败:要删除的列已经建立外键,不允许被删除(默认为DISTRICT)

7.删除SCT的一条记录,插入下一条记录时复用这条被删除记录的ID。 结果失败:无法对ID进行任何修改

8.修改学生选课表一条记录的成绩为150。 结果失败:对SCT设置Grade要求范围是 0<=grade<=100,150>100

4.查看表关系图。

5.索引的建立与删除。 1)新建表test; 2)在表test中插入数据(通过图形化界面方式完成); 3)在属性列“Name”上建唯一索引,看能否成功,并分析原因。

结果失败:因为定义一个主键或是定义约束会导致索引被创建,所以必须在约束定义时就给出必要的索引信息,上面ALTER TABLE语句中默认包含了”CLUSTERED”关键字,所以test表中不能含有与建立index相同的名字 如果唯一索引或约束所约束的列在当前的表中已经含有了重复值,那么创建索引会失败。 4)首先在属性列“ID”建聚簇索引,然后在属性列“Age”上再次建聚簇索引, 看能否成功,并分析原因。如果在列“Age”上建的是非聚簇索引呢? 在Age中建立CLUSTERED失败,建立NONCLUSTERED成功。 分析:CLUSTERED在一个基本表中只允许出现一次,但是NONCLUSTERED没有限制

删除索引 6.删除表和数据库。 1)删除表Course; 2)删除school数据库。

7.关系数据库中的简单查询 要求:(1)请写出1-5使用关系代数查询得出的结果,使用SQL语句查询得出的结果截图,并对这两种结果进行比较。 (2)记录实验过程中用到的所有SQL语句(包括创建数据库、创建表、插入数据等) 难度:自己设计每个表中各个参数的类型、主键等。 设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式 各个关系结构如下:(可参考第二章课后习题5的题干)

供应商表 S SNO SNAME STATUS CITY 备注 S1 精益 20 天津 S2 盛锡 10 北京 S3 东方红 30 北京 S4 丰泰盛 20 天津 S5 为民 30 上海

零件表 P PNO PNAME COLOR WEIGHT 备注 P1 螺母 红 12 P2 螺栓 绿 17 P3 螺丝刀 蓝 14 P4 螺丝刀 红 14 P5 凸轮 蓝 40 P6 齿轮 红 30

工程项目表 J JNO JNAME CITY 备注 J1 三建 北京 J2 一汽 长春 J3 弹簧厂 天津 J4 造船厂 天津 J5 机车厂 唐山 J6 无线电厂 常州 J7 半导体厂 南京

供应情况表 SPJ SNO PNO JNO QTY 备注 S1 P1 J1 200 S1 P1 J3 100 S1 P1 J4 700 S1 P2 J2 100 S2 P3 J1 400 S2 P3 J2 200 S2 P3 J4 500 S2 P3 J5 500 S2 P5 J1 400 S2 P5 J2 100 S3 P1 J1 200 S3 P3 J1 200 S4 P5 J1 100 S4 P6 J3 300 S4 P6 J4 200 S5 P2 J4 100 S5 P3 J1 200 S5 P6 J2 200 S5 P6 J4 500

转载地址:http://bxlra.baihongyu.com/

你可能感兴趣的文章
[Phoenix] 七、如何使用自增ID
查看>>
Server2008 安装 Zune
查看>>
replication监控及自动故障切换
查看>>
路由基本配置(上)
查看>>
windows上传文件到linux乱码解决
查看>>
Dao 常用方法记录
查看>>
fpm打包zabbix-agent
查看>>
Windows Server 2016 DNS Policy Split-Brain 3
查看>>
用脚本实现1+2+3...100
查看>>
pythopn List(列表)
查看>>
blat命令行发邮件小工具
查看>>
学习笔记 十五: mariadb
查看>>
学习笔记 124: 预备知识总结
查看>>
windows server之AD(1)
查看>>
如何升级PowerShell
查看>>
怎么给Guest 账户设置密码
查看>>
解决 PHPExcel 长数字串显示为科学计数
查看>>
Centos 7.4 安装ipython和mysql-python遇到的问题
查看>>
2017年度上海市人工智能创新发展项目开始申报
查看>>
【实战】锐捷AC+AP配置WLAN基本服务系列
查看>>