内容发布更新时间 : 2025/1/6 15:12:32星期一 下面是文章的全部内容请认真阅读。
实验三 表的创建、管理和数据操纵(4学时)
【实验目的】
了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识。
【实验要求】
利用SQL语言进行数据库表的各种操作: 1.数据库表的创建、修改和删除操作。
2.向表中进行数据的插入、删除和修改操作。 【实验内容】
1. 利用数据定义语句在实验一创建的stu_DB库中建立学生管理系统的三个表:Student、Course、SC。
2.利用INSERT、UPDATE和DELETE语句对上述三张表的数据进行插入、更新和删除操作。
3.在stu_DB库中添加Teacher和TC表,对已建立的学生管理系统中的表添加充足的数据(每个表不少于20条),以便完成本实验的后继操作。 【实验步骤】 一、数据定义
(一)表的创建
在实验一创建的数据库stu_DB中分别用企业管理器和查询分析器,按下面的表结构创建学生管理系统的表。 表3-1 Student表结构
列名
Sno Sname Ssex Sage Sdept
说明
学号 姓名 性别 年龄 所在系
数据类型
字符串,长度为8 字符串,长度为10 字符串,长度为2
整数
字符串,长度为20
约束
主码 非空 ’男’或 ’女’
15~45
默认为’计算机系’
表3-2 Course表结构
列名
Cno Cname Cpno Ccredit Semster Period
说明
课程号 课程名 先修课程号 学分 学期 学时
数据类型
字符串,长度为8 字符串,长度为20 字符串,长度为8
整数 整数 整数
约束
主码 非空 取值:1~6 取值:1~8 取值:≥0
表3-3 SC表结构
列名
Sno Cno
说明
学号 课程号
数据类型
字符串,长度为8 字符串,长度为8
约束
主码,引用student的外码 主码,引用course的外码
Grade 成绩 整数 取值:0~100
1.利用企业管理器创建表 (1)打开企业管理器。
(2)选中实验一创建好的数据库stu_DB,单击数据库中的表对象,然后右击窗口右侧选择新建表,弹出如图所示窗体。
图3-1 新建表窗体
(3)在这个窗体中,列名列就示表的字段名,可以在这个窗体中为字段选择数据类型和长度以及是否可以为空值。
(4)在此处可以为表选择文件组,在表中单击右键,选择属性,如果已经为数据库创建了一个次要组,可以在属性窗体的表文件组中为此表选择文件组。应该把一些竞争使用的表放于不同的文件组中,并且让文件组属于不同磁盘,这样可以在表竞争读写时提高并发性能。
(5)创建完成后,单击磁盘图标,并为表取一个名字。注意,应该为表取一个有意义的名字。
2.用Transact_SQL语句创建表 语法为:
CREATE TABLE
[ database_name.[owner].] table_name
( {column_name data_type [DEFAULT ‘default_value’]| [CONSTRAINT CONSTRAINT_name]
}, […n] [IDENTITY [(seed, increment )]] )
[ON { filegroup | DEFAULT }]
[TEXTIMAGE_ON {filegroup | DEFAULT }]
【例1】生成一个表名为student的表 create table student (
sno CHAR(8) primary key, sname CHAR(10) not null,
ssex CHAR (2) check (ssex='男'or ssex='女'), sage smallint,
sdept CHAR (20) default ('计算机系'), )
图3-2查询分析器窗体——创建表
【例2】 创建一张名为Ta1的表,此表中有3列,第一列Pid定义为主键,并且自动增长。第二列Name默认值为Unknown,第三列定义一个约束(日期不能大于输入当天的日期),插入一条记录并进行查询,显示如下图。
CREATE TABLE ta1 (
pid int identity(1,1) primary key, [name] CHAR(10) default ('unknow'),
birthday datetime CHECK( birthday 注意该列有什么特殊性? 图3-3 查询分析器窗体——创建表 请参考例1和例2,完成以下操作: (1)按前面所给的表结构创建表Course和SC。 (2)自行设计表的结构,用SQL语句建立第二章习题5中的4个表。 (二)表的修改