第1页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共10页实验三表的创建、管理和数据操纵(4学时)【实验目的】了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识。【实验要求】利用SQL语言进行数据库表的各种操作:1.数据库表的创建、修改和删除操作。2.向表中进行数据的插入、删除和修改操作。【实验内容】1.利用数据定义语句在实验一创建的stu_DB库中建立学生管理系统的三个表:Student、Course、SC。2.利用INSERT、UPDATE和DELETE语句对上述三张表的数据进行插入、更新和删除操作。3.在stu_DB库中添加Teacher和TC表,对已建立的学生管理系统中的表添加充足的数据(每个表不少于20条),以便完成本实验的后继操作。【实验步骤】一、数据定义(一)表的创建在实验一创建的数据库stu_DB中分别用企业管理器和查询分析器,按下面的表结构创建学生管理系统的表。表3-1Student表结构列名说明数据类型约束Sno学号字符串,长度为8主码Sname姓名字符串,长度为10非空Ssex性别字符串,长度为2’男’或’女’Sage年龄整数15~45Sdept所在系字符串,长度为20默认为’计算机系’表3-2Course表结构列名说明数据类型约束Cno课程号字符串,长度为8主码Cname课程名字符串,长度为20非空Cpno先修课程号字符串,长度为8Ccredit学分整数取值:1~6Semster学期整数取值:1~8Period学时整数取值:≥0表3-3SC表结构列名说明数据类型约束Sno学号字符串,长度为8主码,引用student的外码第2页共10页第1页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共10页Cno课程号字符串,长度为8主码,引用course的外码Grade成绩整数取值:0~1001.利用企业管理器创建表(1)打开企业管理器。(2)选中实验一创建好的数据库stu_DB,单击数据库中的表对象,然后右击窗口右侧选择新建表,弹出如图所示窗体。图3-1新建表窗体(3)在这个窗体中,列名列就示表的字段名,可以在这个窗体中为字段选择数据类型和长度以及是否可以为空值。(4)在此处可以为表选择文件组,在表中单击右键,选择属性,如果已经为数据库创建了一个次要组,可以在属性窗体的表文件组中为此表选择文件组。应该把一些竞争使用的表放于不同的文件组中,并且让文件组属于不同磁盘,这样可以在表竞争读写时提高并发性能。(5)创建完成后,单击磁盘图标,并为表取一个名字。注意,应该为表取一个有意义的名字。2.用Transact_SQL语句创建表语法为:CREATETABLE[database_name.[owner].]table_name({column_namedata_type[DEFAULT‘default_value’]|[CONSTRAINTCONSTRAINT_name]},[…n][IDENTITY[(seed,increment)]])[ON{filegroup|DEFAULT}][TEXTIMAGE_ON{filegroup|DEFAULT}]【例1】生成一个表名为student的表createtablestudent(第3页共10页第2页共10页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共10页snoCHAR(8)primarykey,snameCHAR(10)notnull,ssexCHAR(2)check(ssex='男'orssex='女'),sagesmallint,sdeptCHAR(20)default('计算机系'),)图3-2查询分析器窗体——创建表【例2】创建一张名为Ta1的表,此表中有3列,第一列Pid定义为主键,并且自动增长。第二列Name默认值为Unknown,第三列定义一个约束(日期不能大于输入当天的日期),插入一条记录并进行查询,显示如下图。CREATETABLEta1(pidintidentity(1,1)primarykey,[name]CHAR(10)default('unknow'),birthdaydatetimeCHECK(birthday