SQL Server 2014 DDL实验教程:创建、修改与索引构建

需积分: 15 6 下载量 38 浏览量 更新于2024-07-16 收藏 20.83MB DOC 举报
本实验报告是关于《数据库原理与设计》课程的课后实践,主要针对数据库管理系统(DBMS)中的数据定义语言(DDL)和数据操纵语言(DML)进行操作。实验目标包括熟悉DDL的使用,如创建、修改和删除数据库,以及创建和管理数据表、视图、索引等对象。 在实验环境中,学生使用的是Windows 10操作系统和Microsoft SQL Server 2014作为数据库管理系统。具体实验内容分为两个部分: 一、DDL语言的使用 1. 数据库操作:学生需创建名为Employee的数据库,并配置两个数据文件Empdat1.mdf和Emplog.ldf,其中数据文件大小设定为初始10MB,最大50MB,按5MB递增;日志文件初始5MB,最大25MB,以5%的速度增长。随后,他们需要添加一个额外的数据文件Empdat2.ndf,设置其大小和增长方式。 2. 表的设计:学生需要建立四个基本表,分别是person(人员)、salary(月薪)、customer(顾客)和orderdetail(订单详情)。此外,还涉及创建视图,如CustomerView展示北京顾客基本信息,以及TrainingView,显示培训部员工的信息和销售业绩。 3. 索引的创建:学生需在指定列上创建单列索引(name_sort),组合索引(birth_name),唯一索引(u_name_sort),以及聚簇索引(fact_idx)。 二、DML语言的使用 2.1 数据插入:学生使用DML语句向person、salary、customer和orderdetail表中插入预设的数据,提供了具体的示例数据。 程序源码与运行结果部分展示了学生实际操作过程中的代码片段以及相应的数据库结构和数据变化。这部分内容是实验报告的重要组成部分,反映了学生的实际操作能力和对理论知识的理解。 通过这个实验,学生不仅可以掌握数据库的基本概念,还能提升SQL语言的实践技能,理解数据库设计、优化和维护的重要性。同时,通过创建视图和索引,他们将深入理解如何提高查询性能和数据组织。完成此实验有助于巩固数据库原理与设计的学习成果,并为后续的数据库开发和管理打下坚实基础。
2021-08-23 上传
实验1 数据库及数据定义 1、创建一个名为XSCJ的数据库,其初始大小为5MB,最大大小10MB,允许数据库自动增长,增长方式是按10%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。 2、将以上XSCJ数据库的主数据文件的最大大小改为不限制。 3、参照教材82页例3.5、例3.6、例3.7分别建立Student表、Course表和SC表,并录入数据库表中相应元组。 4、分别采用SQL编程模式和设计模式修改Course表,为其增加一列开课学期,数据类型自行定义。 5、为Course表的Cname列建立一个唯一索引,索引名Cname_idx。 6、分离数据库XSCJ并拷贝文件至U盘保存好,用于下次实验;然后再将其附加上。 7、删除唯一索引Cname_idx。 8、删除基本表Student。 实验2 数据查询 将上次实验课的学生成绩数据库(XSCJ)附加到SQL SERVER中,录入数据后做如下查询。 1) 查询选修了课程的学生的学号; 2) 查询全体学生的姓名和出生年份,并将列别名改为XM和CSNF; 3) 查询年龄在18到20(包括18岁和20岁)之间学生的学号、姓名和系。 4) 查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。 5) 用LIKE查询课程名为DB_ S的课程号和学分。 6) 查所有有成绩的学生学号和课程号。 7) 查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄升序排列 8) 查询选修了课程的学生人数。 9) 计算1号课程的学生平均成绩。 10) 查询有2人以上(含2人)同学选修课程的课程号。 11) 查询1号课程的间接先修课。 12) 查询每个学生的学号、姓名、选修的课程名及成绩。 13) 找出每个学生高于他选修课程平均成绩的课程号。 实验3 数据更新和视图 将学生成绩数据库(XSCJ)附加到SQL SERVER中,完成如下实验任务。 1) 将一个新学生元组(学号:95007;姓名:张娜丽;性别:女;所在系:IS;年龄:18岁)插入到Student表中。 2) 插入一条选课记录,插入一条选课记录( '95007','1 ')。 3) 对每一个系,求学生的平均成绩,并把结果存入数据库。 (建立一张表,然后通过子查询将结果插入表中。) 4)将全体学生的年龄增加一岁。 5)将信息系全体学生的成绩置零。 6)删除95001学生的记录。 7)删除信息系所有学生的选课记录。 8)建立计算机学生的视图CS_S。(视图中包括学号,姓名,年龄,系),并要求进行修改和插入操作时仍需保证该视图只有计算机系的学生。(视图中包含的属性名称自拟) 9)向CS_S视图中插入分别插入两条信息,如果不能插入说明原因。 (学号:95002;姓名:李华华;所在系:IS;年龄:18岁) (学号:95003;姓名:王冬冬;所在系:CS;年龄:20岁) 10)利用CS_S视图完成以下查询。 查询计算机学生年龄小于20岁的学生(学号、年龄) 查询计算机系选修了2号课程的学生(学号、姓名)。 实验4 数据库的安全性 实验内容 将学生成绩数据库(XSCJ)附加到SQL SERVER中,完成如下实验任务。 (1)在SQL Server Management Studio中创建三个登录帐户:log1、log2、log3。 (2)利用前面建立的XSCJ数据库,用log1登录,能否操作XSCJ数据库?为什么? (3)将log1、log2、log3映射为XSCJ数据库中的用户。 注意:此映射步骤会为登陆名log1在XSCJ中自动建立同名数据库用户log1。log2和log3同理。 (4)用log1登录,能否访问XSCJ数据库?为什么? (5)授予log1、log2、log3具有对Student、Course、SC三张表的查询权。并且log1有权将查询SC表的权限授予其他用户。 (6)分别用log1、log2、log3登录,对上述三张表执行查询。 (7)分别用log1、log2登陆,在查询分析器中执行以下语句,用来授予log3 对SC表的访问权限,会出现什么情况? 实验5 数据库的完整性 将学生成绩数据库(XSCJ)附加到SQL SERVER中,完成如下实验任务。 (1)录入或变更数据,验证所建立的实体完整性规则及其违约处理。 (2)录入或变更数据,验证所建立的参照完整性规则及其违约处理。 (3)自行设定某些列,使得其不允许取空值。 (4)自行设定某些列,使得该列值不允许重复。 (5)自行设定某些列的默认值。 (6)用Check短语限定考试成绩的取值范围在0到100之间。 (7)为Student表设计一个触发器,使得新增一个学生时,自动为其分配一个学号。 实验6 数据库编程