SQL Server数据库表的创建、修改与管理实践

需积分: 10 2 下载量 84 浏览量 更新于2024-07-23 收藏 874KB DOC 举报
这篇实验报告详细介绍了关于数据库中表的创建与管理的相关操作,主要涵盖了三个核心知识点:创建、修改和删除表,创建与删除索引,以及向表中插入记录。实验者通过使用Windows XP操作系统上的SQL Server 2000数据库管理系统,借助企业管理器和查询分析器进行实践操作。 首先,创建表是数据库管理的基础,可以通过图形化界面的企业管理器或者T-SQL语句来完成。在T-SQL中,创建表时需要定义字段名、数据类型、约束条件等,如列级完整性约束,确保数据的准确性和一致性。完整性约束包括非空约束(NOT NULL)、唯一约束(UNIQUE)、主键约束(PRIMARY KEY)和外键约束(FOREIGN KEY)等。 接着,修改表结构涉及到调整字段的属性、添加或删除字段、更改字段顺序等。使用`ALTER TABLE`语句可以实现这些操作。例如,增加字段用`ADD COLUMN`,删除字段用`DROP COLUMN`。删除表时,`DROP TABLE`语句可以完成,但需要注意`RESTRICT`和`CASCADE`选项,前者会检查表是否被其他对象依赖,如果有则阻止删除,后者则会删除所有依赖于该表的对象。 索引是提升数据库查询效率的关键,分为唯一索引(UNIQUE INDEX)和聚簇索引(CLUSTERED INDEX)。唯一索引确保索引项的唯一性,可以指定升序或降序排列。聚簇索引决定了数据在磁盘上的物理存储顺序,一个表只能有一个聚簇索引,而可以有多个非聚簇索引(NONCLUSTERED INDEX)。索引的创建和删除同样可以通过T-SQL语句或企业管理器进行。 最后,向表中插入记录是数据库操作中的常见任务,通常使用`INSERT INTO`语句实现。它可以插入单条记录,也可以批量插入多条记录。在实验过程中,学生应该掌握了如何正确地构造`INSERT`语句,并理解其在实际应用中的重要性。 实验总结部分还提到了创建数据库、查看数据库和修改数据库的基本T-SQL语法,如`CREATE DATABASE`用于创建数据库,`SP_HELPDB`用于显示数据库信息,以及`ALTER DATABASE`用于修改数据库的属性,如添加数据文件。 通过这次实验,学生不仅巩固了理论知识,还提升了实际操作技能,对数据库的管理和维护有了更深入的理解。这将为他们后续学习更复杂的数据库设计和优化奠定坚实基础。
2017-12-14 上传
本文档为数据库上机实验报告,是自己认认真真一步一步写的,报告包含试验中的具体步骤,过程以及代码和实验结果截图,和实验总结。 实验一 实验题目: 数据库管理系统的使用 实验目的: 掌握SQL SERVER2005的使用和数据库设计的一般方法。 实验内容: (1)SQL SERVER2005的使用 (2)数据库的设计过程并利用SQL SERVER2005建立数据库。 实验二 实验题目: 数据库的定义 实验目的:掌握数据表建立、修改、删除、索引的SQL语句。 实验内容: (1)数据表的建立 (2)数据表的修改 (3)数据表的删除 (4)数据表的索引建立 为S表的DEPT建立唯一索引 (5)视图的建立与删除 建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE) 查询1983年以后出生的计算机系学生基本信息。 建立一个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。 查询计算机系学生选课多于3门的学生学号。 查询计算机系学生2号课不及格的学生学号和成绩。 实验三 实验题目: 数据表的操作 实验目的: 掌握数据表数据操作的SQL语句。 实验内容: SQL语句插入数据操作 SQL语句修改数据操作 SQL语句删除数据操作 SQL语句查询数据操作 维护数据SQL语句: (1)在学生表中插入一新生信息(‘200213808’,’HUJING’,’女’,22,’计算机’) (2)删除数据库中学号为’200213801’的退学学生有关信息。 (3)将计算机系学生2号课成绩全部提高5%。 查询数据SQL语句: (4)统计有学生选修的课程门数。 (5)统计HU老师所授每门课程的学生平均成绩。 (6)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。 (7)检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。 (8)检索‘OS’课成绩高于该课平均成绩的同学学号。 (1) 检索计算机系女生的学号和姓名。 (2) 检索全体学生姓名、出生年份和所在系。 (3) 检索未选修任何课程的学生学号。 (4) 检索WANG老师所授课程号、课程名。 (5) 检索所有姓LI同学的基本信息。 (6) 检索选修‘DATABASE’课程的学生学号。 (7) 检索年龄介于LIPING同学年龄和28岁之间的学生基本信息。 (8) 检索选修TIAN老师所授全部课程的学生学号。 实验四 实验题目: T-SQL编程 实验目的: 掌握T-SQL语句的使用。 实验内容: 1.定义一个表变量,用来存储两名学生的学号,姓名,所在系。 2.编写一个自定义的函数,该函数接受一个学生姓名,返回其学生表中基本信息及选课情况。 3.试用CASE语句输出学生表中各年龄段的学生人数。 4.编写存储过程,以系别作为参数,统计指定系别的人数,并作为存储过程的输出。 实验题目: 数据库的完整性 实验目的: 掌握数据库的完整性约束定义,完整性检查及违约处理方式。 掌握触发器的定义及使用。 实验内容: 1. 定义S, C表的完整性约束 2. 定义SC表的完整性约束,要求当其被参照表发生删除操作时,违约处理的方式为级联,当其被参照表发生修改操作时,违约处理的方式为拒绝。 3. 触发器 ☆ 建立一DML触发器,每当学生的成绩发生更新时,将更新的学号,成绩存入g-log表内 ☆ 建立一个INSTEAD OF触发器,每当修改课程表中记录时,利用触发器动作替代修改操作。 ☆ 建立一个DDL 触发器,不允许删除数据库中表,并作出响应。 实验六 实验题目: 数据库的安全性 实验目的: 掌握SQL SERVER 2005的安全控制机制 实验内容: 1. 创建登录 创建lg1,lg2,并设定口令 2. 定义用户 定义user1,user2,user1以lg1登录,user2以lg2登录,user1定义角色ddl_admin,datareader,datawriter 3. 掌握SQL SERVER 2005架构和用户分离的概念 为user1创建架构u1,并建立test表,通过授权模式的方法,授权给user2表访问test的权限 4. 数据库的授权、收权语句 ☆ 将查询SC表和修改GRADE属性的权限授予用户user1。 ☆ 将对表S的插入权限授予用户user2,并允许他将此权限授予其他用户。 ☆ 收回所有用户对表S的插入权限。 实验七 实验题目: 数据库的设计 实验目的: 掌握数据库的概念结构设计和逻辑结构与设计,掌握ER图的表示方法即如何将ER模型转化为关系模型 1.学校有若干系,每个系有若干班级和教研室,每个教研室有若干教师,其中有教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课有若干学生选修。 2.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料组成,不同零件所用的材料可以相同。有些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。