实验二通过SQL语句创建与管理数据表Word格式文档下载.docx
《实验二通过SQL语句创建与管理数据表Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验二通过SQL语句创建与管理数据表Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
3、删除操作完成
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)
)
、创建Course表
createtableCourse(
Cnochar(3)primarykey,
Cnamevarchar(20)notnull,
Total_periorsmallintcheck(Total_perior>
0),
Credittinyintcheck(Credit<
=6andcredit>
0)
、创建SC表
createtableSC(
Snochar(8)notnull,
Cnochar(3)notnull,
Gradetinyintcheck(Grade>
=0andGrade<
=100),
primarykey(Sno,Cno),
foreignkey(Sno)referencesStudent(Sno),
foreignkey(Cno)referencesCourse(Cno)
3、通过SQL语句管理表结构
(1)添加和删除列
a.给Student表增加身高(以米单位)Stature列,类型为numeric(4,2),允许为空值,且身高值需小于3.0米。
altertableStudent
addStaturenumeric(4,2)
check(Stature<
=3.0andStature>
=0)
b.给Student表增加所在系Sdept列,字符型,长度2,不允许为空值。
addSdeptchar
(2)notnull
c.给Student表增加邮政篇码Postcode列,字符型,长度为6,可以为空,若不为空时,则要求其值只能出现数字,不能是其它字符。
addPostcodechar(6)
check(PostcodeLike'
[1-9][0-9][0-9][0-9][0-9][0-9]'
d.删除Student表中身高Stature列。
、添加Stature列时就已知该列存在约束条件,若要删除该列,必须先删除约束条件,则首先必须先找出约束条件的约束名称。
以下有两种方法:
1、写入SQL语句找出
dropcolumnStature
2、运用企业管理器找出
a、打开Student表
b、选择Stature行,单击右键,选择“CHECK约束”
c、约束名称显而易见
、其次删除Stature约束
dropconstraintCK__Student__Stature__1A14E395
、最后删除Stature列,完成
(2)添加和删除约束
a.在Student表添加约束:
入学时间必须在出生年月之后
addconstraintbirth1
check(Birth<
Entrance_date)
b.给SC表的成绩Grade列增加默认值约束,默认值为0
altertableSC
addconstraintgrade1
default('
0'
)forgrade
c.删除Grade列的默认值约束
锁定Grade列的约束名即可
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'
);
20110002'
林红'
女'
1991-11-12'
北京'
100010'
20110103'
赵青'
1993-05-11'
061'
上海'
MS'
200013'
注意:
Sdept的类型为char
(2),添加数据是不能写“计算机系”和“软件工程”,应改为“CS”和“MS”
、向Course表中添加数据
insertintoCoursevalues('
001'
高数'
96'
6'
002'
C语言程序设计'
80'
5'
003'
JAVA语言程序设计'
48'
3'
004'
VisualBasic'
4'
、向SC表中添加数据
insertintoSCvalues('
20050001'
89);
78);
60);
80);
上面截图所示的外键约束可不予考虑
b.执行如下语句:
insertintoStudent(Sno,Sname,Sex)values(‘20101101’,’赵青’,’男’),该语句能成功执行吗?
为什么?
答:
不能成功执行,因为不能将值NULL插入列'
Sdept'
中
c.执行如下语句:
insertintoscvalues(‘20110103’,’005’,80),该语句能成功执行吗?
不能成功执行,因为SC表中的学号“005”的同学在Course表中不存在。
而SC表中的Cno是作为Course表的外键存在的,所以不能成功执行。
(2)修改数据
a.使用T-SQL语句,将Course表中的课程号为’002’的学分改为4,总学时改为64。
updateCourse
setCredit=4
whereCno='
setTotal_perior=64
结果:
b.使用T-SQL语句,将SC表中的选修了‘002’课程的同学的成绩*80%。
updateSC
setGrade=Grade*0.8