2022年实验二通过SQL语句创建与管理数据表[归 .pdf
实验二通过 SQL语句创建与管理数据表一、实验目的(1)掌握查询分析器的使用。(2)掌握通过 SQL 语句创建表的方法。(3)掌握通过 SQL 语句修改表结构的方法。(4)掌握通过 SQL 语句添加、修改、删除表数据的方法。二、实验内容1、通过 SQL 语句删除表用SQL 语句在数据库 Student_info中删除实验一创建的Student 表、Course表、SC 表。1、选择 Student_info数据库,在该数据库环境中“新建查询”,然后完成删除操作2、分别填写如下SQL 语言、droptableStudent、droptableCourse名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 13 页 -、droptableSC3、删除操作完成2、通过 SQL 语句创建表用SQL 语句在数据库 Student_info中创建实验一中的Student 表、Course表、SC 表,结构如实验一中表 2、表 3、表 4(即创建出空表即可)所示、创建 Student 表createtableStudent(Snochar(8)primarykey,Snamevarchar(8)notnull,Sexchar(2)notnull,Birthsmalldatetimenotnull,Classnochar(3)notnull,Entrance_datesmalldatetimenotnull,Home_addrvarchar(40)名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 13 页 -、创建 Course表createtableCourse(Cnochar(3)primarykey,Cnamevarchar(20)notnull,Total_periorsmallintcheck(Total_perior0),Credittinyintcheck(Credit0)、创建 SC表createtableSC(Snochar(8)notnull,Cnochar(3)notnull,Gradetinyintcheck(Grade=0 andGrade=100),primarykey(Sno,Cno),foreignkey(Sno)referencesStudent(Sno),foreignkey(Cno)referencesCourse(Cno))3、通过 SQL 语句管理表结构(1)添加和删除列a.给Student 表增加身高(以米单位)Stature 列,类型为 numeric(4,2),允许为空名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 13 页 -值,且身高值需小于3.0 米。altertableStudentaddStaturenumeric(4,2)check(Stature=0)b.给Student 表增加所在系 Sdept 列,字符型,长度2,不允许为空值。altertableStudentaddSdeptchar(2)notnullc.给Student 表增加邮政篇码Postcode 列,字符型,长度为6,可以为空,若不为空时,则要求其值只能出现数字,不能是其它字符。altertableStudentaddPostcodechar(6)check(PostcodeLike1-90-90-90-90-90-9)d.删除Student 表中身高 Stature 列。、添加 Stature 列时就已知该列存在约束条件,若要删除该列,必须先删除约束条件,则名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 13 页 -首先必须先找出约束条件的约束名称。以下有两种方法:1、写入 SQL 语句找出altertableStudentdropcolumnStature2、运用企业管理器找出a、打开 Student 表b、选择 Stature 行,单击右键,选择“CHECK 约束”c、约束名称显而易见、其次删除 Stature 约束名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 13 页 -altertableStudentdropconstraint CK_Student_Stature_1A14E395、最后删除 Stature 列,完成altertableStudentdropcolumnStature(2)添加和删除约束a.在Student 表添加约束:入学时间必须在出生年月之后altertableStudentaddconstraintbirth1 check(BirthEntrance_date)b.给SC 表的成绩 Grade列增加默认值约束,默认值为0 altertableSC addconstraintgrade1 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 13 页 -default(0)forgradec.删除 Grade列的默认值约束锁定 Grade列的约束名即可altertableSC dropconstraintgrade1(grade1 为约束名)4、通过 SQL 语句添加、修改、删除表中数据(1)插入数据a.Student表、Course表、SC 表的记录见实验一的表5、表 6、表 7,其它数据可自行添加。要求 Student 表和 SC 表中数据包括了每位同学自己的学号。、向 Student 表中添加数据insertintoStudentvalues(20110001,张虹 ,男,1992-09-01,051,2011-09-01,南京 ,CS,200413);insertintoStudentvalues(20110002,林红 ,女,1991-11-12,051,2011-09-01,北京 ,CS,100010);insertintoStudentvalues(20110103,赵青,男,1993-05-11,061,2011-09-01,上海 ,MS,200013);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 13 页 -注意:Sdept的类型为 char(2),添加数据是不能写“计算机系”和“软件工程”,应改为“CS”和“MS”、向 Course表中添加数据insertintoCoursevalues(001,高数 ,96,6);insertintoCoursevalues(002,C 语言程序设计 ,80,5);insertintoCoursevalues(003,JAVA语言程序设计 ,48,3);insertintoCoursevalues(004,Visual Basic,48,4);、向 SC 表中添加数据insertintoSC values(20050001,001,89);insertintoSC values(20110001,001,89);insertintoSC values(20110001,002,78);insertintoSC values(20110001,003,89);insertintoSC values(20110002,002,60);insertintoSC values(20110103,001,80);名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 13 页 -上面截图所示的外键约束可不予考虑b.执行如下语句:insert into Student(Sno,Sname,Sex)values(,20101101?,?赵青?,?男?),该语句能成功执行吗?为什么?答:不能成功执行,因为不能将值NULL 插入列 Sdept中c.执行如下语句:insert into sc values(,20110103?,?005?,80),该语句能成功执行吗?为什么?答:不能成功执行,因为 SC 表中的学号“005”的同学在 Course表中不存在。而SC 表中的 Cno是作为 Course表的外键存在的,所以不能成功执行。(2)修改数据a.使用 T-SQL语句,将 Course表中的课程号为?002?的学分改为 4,总学时改为 64。updateCourse setCredit=4 whereCno=002名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 13 页 -updateCourse setTotal_perior=64 whereCno=002结果:b.使用 T-SQL语句,将 SC 表中的选修了,002?课程的同学的成绩*80%。updateSC setGrade=Grade*0.8 whereCno=002结果:名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 13 页 -(3)删除数据a.使用 T-SQL语句,删除选修了“C语言程序设计”的学生的选课记录。删除时,发现存在外键约束,且约束名为FK_SC_Cno_1920BF5C,则先删除约束删除约束:altertableSC dropconstraintFK_SC_Cno_1920BF5C删除记录:deletefromCourse whereCnoin(selectCnofromCoursewhereCname=c 语言程序设计 )名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 13 页 -结果:b.使用 T-SQL语句,删除所有的学生选课记录。deletefromSC结果:说明:删除后,请重新插入SC 表中的记录。同第4题所示步骤相同,insertintoSC values(20050001,001,89);insertintoSC values(20110001,001,89);insertintoSC values(20110001,002,78);insertintoSC values(20110001,003,89);insertintoSC values(20110002,002,60);insertintoSC values(20110103,001,80);名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 13 页 -结果:名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 13 页 -