您现在的位置是:首页 >技术交流 >数据库原理及应用上机(实验二 SQL数据定义功能实验)网站首页技术交流
数据库原理及应用上机(实验二 SQL数据定义功能实验)
✨作者:命运之光
✨专栏:数据库原理及应用上机实验
目录
??前言: 数据库原理及应用上机实验报告的一个简单整理后期还会不断完善??
✨一、实验目的和要求
1.掌握利用SQL查询分析器和企业管理器进行数据库及基本表的定义、删除与修改;
2.掌握索引的建立与删除的方法。
✨二、实验内容与步骤
(一)建立数据库
通过企业管理器或查询分析器建立学生-课程数据库xskc。
create database xskc
on
( name=xskc_data,
filename='e:sjksyxskc_data.mdf')
log on
( name=xskc_log,
filename='e:sjksyxskc_log.ldf')
注:先在E:盘上建立一个文件夹(例如:E:sjksy),数据库文件保存到自建的文件夹中。
(二)基本表的定义、修改与删除
1.定义基本表
利用查询分析器或企业管理器创建基本表,并输入数据。
例5 建立一个学生表Student。这里要求Sno和Sname不能为空值,且取值唯一。
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件,Sno是主码 */
Sname CHAR(20) UNIQUE, /* Sname取唯一值 */
Ssex CHAR(2),
Sage INT,
Sdept CHAR(20)
);
说明:在Microsoft SQL Server 2008的查询分析器(Query Analyzer)中使用单条SQL语句,其末尾不需要分号“;”作为命令结尾标记。通常,SQL Server 2008对大多数末尾带有分号的SQL命令都能顺利执行,但对少数的SQL命令,末尾若带分号,则SQL Server 2008会给出错误信息提示。
例6 建立课程表Course,其属性名意义分别为Cno-课程号, Cname-课程名, Cpno-先修课课程号, Ccredit-学分。
CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY, /* 列级完整性约束条件,Cno是主码 */
Cname CHAR(40),
Cpno CHAR(4),
Ccredit INT,
);
例7 建立学生选修课表SC。其中的属性名意义分别为Sno-学号,Cno-课程号和Grade-成绩。
CREATE TABLE SC
( Sno CHAR(9),
Cno CHAR(4),
Grade INT,
PRIMARY KEY(Sno,Cno),
FOREIGN KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno)
);
2 修改基本表
利用查询分析器或企业管理器修改基本表:
例8 向基本表Student中增加“入学时间”属性列,其属性名为S_entrance,数据类型为日期型。
ALTER TABLE Student ADD S_entrance DATETIME;
例9 将Sage(年龄)的数据类型改为SMALLINT型。
ALTER TABLE Student ALTER COLUMN Sage SMALLINT;
例10 增加课程名称必须取唯一值的约束条件。
ALTER TABLE Course ADD UNIQUE(Cname);
注意:SQL Server 2008 增加了删除属性的命令。比如,删除属性列S_entrance的命令为:
ALTER TABLE Student DROP COLUMN S_entrance;
3 删除基本表
利用查询分析器或企业管理器删除基本表:
例11 删除Student表。
DROP TABLE Student;
说明:此表删除后,请立即用例1将其建立起来,以便后面的例子使用。
4 数据输入
利用企业管理器向表Student、Course、SC中输入数据。
(三)索引的建立和删除
1 建立索引
例14 为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按Sno(学号)升序建唯一索引,Course表按Cno(课程号)升序建唯一索引,SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。其语句为:
CREATE UNIQUE INDEX Stu_Sno ON Student(Sno);
CREATE UNIQUE INDEX Cou_Cno ON Course(Cno);
CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC);
2 删除索引
例15 删除Student表的Stu_Sname索引。
DROP INDEX Student.Stu_Sname;
✨三、附加练习
在表student中增加新字段 “班级名称(sclass)“;
在表student中删除字段“班级名称(sclass)”;
修改表student中字段名为“sname”的字段长度由原来的6改为8;
修改表student中字段“sdept”名称为“dept”,长度为20;
修改表student中sage字段名称为sbirth,类型为smalldatetime;
修改表student新名称为stu_info;
✨四、实验总结
本次实验主要是学习了SQL数据定义功能,包括数据库和基本表的定义、删除和修改,以及索引的建立与删除。
通过使用SQL查询分析器和企业管理器,我们学会了创建新的数据库和基本表。使用CREATE DATABASE语句可以定义新的数据库,而CREATE TABLE语句用于定义新的基本表。我们可以指定表的列名、数据类型和约束条件来确保数据的一致性和完整性。
另外,我们也学习了如何删除数据库和基本表。使用DROP DATABASE和DROP TABLE语句可以永久性地删除不再需要的数据库和表。在执行删除操作时需要谨慎,因为数据将无法恢复。
此外,我们还了解了索引的概念和作用。索引是用于提高查询效率的数据结构。通过CREATE INDEX语句可以创建索引,并指定要创建索引的列。而使用DROP INDEX语句可以删除不再需要的索引。
通过本次实验,我们掌握了SQL数据定义功能的基本操作,对于数据库的设计和管理有了更深入的理解。这些知识和技能对于进行数据库操作和优化非常重要。