实验二通过SQL语句创建与管理数据表.docx

上传人:b****8 文档编号:10079475 上传时间:2023-02-08 格式:DOCX 页数:21 大小:193.09KB
下载 相关 举报
实验二通过SQL语句创建与管理数据表.docx_第1页
第1页 / 共21页
实验二通过SQL语句创建与管理数据表.docx_第2页
第2页 / 共21页
实验二通过SQL语句创建与管理数据表.docx_第3页
第3页 / 共21页
实验二通过SQL语句创建与管理数据表.docx_第4页
第4页 / 共21页
实验二通过SQL语句创建与管理数据表.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

实验二通过SQL语句创建与管理数据表.docx

《实验二通过SQL语句创建与管理数据表.docx》由会员分享,可在线阅读,更多相关《实验二通过SQL语句创建与管理数据表.docx(21页珍藏版)》请在冰豆网上搜索。

实验二通过SQL语句创建与管理数据表.docx

实验二通过SQL语句创建与管理数据表

实验

 

 

、实验目的

(1)掌握查询分析器的使用。

(2)掌握通过SQL语句创建表的方法。

(3)掌握通过SQL语句修改表结构的方法。

(4)掌握通过SQL语句添加、修改、删除表数据的方法。

、实验内容

1、通过SQL语句删除表

用SQL语句在数据库Student_info中删除实验一创建的Student表、Course表、SC表。

1、选择Student_info数据库,在该数据库环境中“新建查询”,然后完成删除操作

文祥旧碍⑹查看M査谊KQ)项目卩)渭试[0}工WT)匿口CW]柱区(I

也j|Student_info

HP砒匕

&刈1

心石B吕塑曰

SQLQu€ryl-Kql-乙”(«qy-PC\aqy

曰区ZQY-PC(SQLServer10.50.1617-zqy-

日Lj洛岸

屈口垂储据库

0a体库快頃

B[jStuderiljnio

2、分别填写如下SQL语言

1、droptableStudent

£QLQucryl.»ql-(5S))*

drop匸aJoleStudent.

*1

由消息

命令已成功完成。

②、droptableCourse

£QLQueryl.sql-ZQ..(zqyPO^qyCS2))*--droptable5匸口den匸droptableCourse|

③、droptableSC

SQLQueryLsqCZQ„

□一一droptatileStLident;

--drop匸aLleCourse

扌ur

命令已咸功完成宀

3、删除操作完成2、通过SQL语句创建表

用SQL语句在数据库Student_info中创建实验一中的Student表、Course表、SC表,结构如实验一中表2、表3、表4(即创建出空表即可)所示

①、创建Student表

createtableStudent(

Snamevarchar(8)notnull,

Sexchar

(2)notnull,

Birthsmalldatetimenotnull,

Classnochar(3)notnull,

Home_addrvarchar(40))

SQLQueryl.sql-ZQ../zqy

□createtatleStudent(

£nochaiSpruoarykey,

Snamevarcnar$nstriu1.1f

Sexchar2notnullr

Birthsmall丄ilwajcl.-__f

Glassno(3i~ottijI11

Entrance_d^teJir.dlIdatetiK.enotriul

Homeaddzvarciiar■40)

*I

命令已成功完成。

鬲消息

命令已成功完成。

③、创建sc表

createtable

Snochar(8)Cnochar(3)Gradetinyintprimarykeyforeignforeign

SC(notnull.

notnull,

check(Grade>=0andGrade<=100),(Sno,Cno),

key(Sno)referenceskey(Cno)references

Student(Sno),

Course(Cno)

3、通过SQL语句管理表结构

(1)添加和删除列

a.

2),允许为空

给Student表增加身高(以米单位)Stature列,类型为numeric(4,

值,且身高值需小于3.0米。

altertableStudent

^LQueryLsql-Z

[

3iltertablftStudentadd.Statur&nuifL&ric(4,2-check5ta,tiir-e<=3

*1

111

命令已成功完成&

check(Stature

<=3.0andStature>=0)

b.给Student表增加所在系Sdept列,字符型,长度2,不允许为空值。

altertableStudent

addSdeptchar

(2)notnull

c.给Student表增加邮政篇码Postcode列,字符型,长度为6,可以为空,若不为空时,则要求其值只能出现数字,不能是其它字符。

altertableStudentaddPostcodechar(6)check(PostcodeLike'[1-9][0-9][0-9][0-9][0-9][0-9]'

&QLQueryl.s<)l-(zqy-PC\zRy(弓為尸▼

EJtatleStud&nc

add.Pcsrcodechar6i

-check:

iarcadeLike*[1-9][0-9][0-9][0-9][0-9](0-9)1>

消息

命令已成切完成。

d.删除Student表中身高Stature列。

①、添加Stature列时就已知该列存在约束条件,若要删除该列,必须先删除约束条件,则

首先必须先找出约束条件的约束名称。

以下有两种方法:

1写入SQ语句找出

altertableStudent

dropcolumnStature

2、运用企业管理器找出

a、打开Student表

b、选择Stature行,单击右键,选择“CHEC约束”

-—

心二

F耳砂g£3ma〒亠眼肯|

tj&<•

•亠尊昌

>JB»田□Hart丑心Jr出ii息*畑•J山jif田m早THUjvn

jFf

c、约束名称显而易见

□關)

亲达式([Stature]<^(3,0]AMD[Stature]*^(0))

□表谕计器

遅制用于INSERT可UPDATE昙

捋制用于复制异

拄创建或重新启用时碍睁或昙

2、其次删除Stature约束

*I出

百消息

命令已成功気成。

3、最后删除Stature列,完成

altertableStudent

dropcolumnStature

SQLQueryXsql-ZQr»(jqy-PC\zqy(52)}*

Elalcerrable5匸;匸

1-|iropcolumn5匸atuie

*Irrr

斷肖息

命令已成功完成

(2)添加和删除约束

a.在Student表添加约束:

入学时间必须在出生年月之后

altertable

Student

《Entrancedate)

命令已成功完成口

SQLQueryLsql-Z^Czqy-PC\zqy(54]尸aftlcertableStmdenc

addcanstraint:

birrtil

-checfci

b.给SC表的成绩Grade列增加默认值约束,默认值为0

altertableSC

addconstraintgradel

default('O')forgrade

&QLQuerylrsql-ZQm(zqyPC\zqy(54))"曰altercebleSC

addconstrain匸gradeldefaulti1O'>forgrade|

扌1

irr

]消息

命令已成功完成7

c.删除Grade列的默认值约束锁定Grade列的约束名即可

altertableSC

dropconstraintgradel

fQLQueryl^ql-ZQ.„(jqy-PC\jqy(54))

□alc&rtable3匚

Ldropconstraint

4

1.IH

J消息

命令已成功完成。

(grade1为约束名)

4、通过SQ语句添加、修改、删除表中数据

(1)插入数据

a.Student表、Course表、SC表的记录见实验一的表5、表6、表7,其它数据可自行添加。

要求Student表和SC表中数据包括了每位同学自己的学号。

①、向Student表中添加数据

,‘1993-05-11','061',‘2011-09-01'

-3Q-.(aqy(MJ)*2Q\-PC.S-tudw^tj-Hbo血"E$QLG利『缜*1▼ZQ“;科尸兀^耳片〔51『<—、

EL

■unFtxxitE>stuoentvalun(b1f13DI1-0JcS8>23D4131);

LiiaeFtistgSruden匸val^e.9(•£口《■「**虹"*”左日."】會与1-1二一二2"rPD51",■2011-ga-Ql■P1'CS1rricroaiQ1:

i;

i^-sertxiit口^Undentvaluu("^01101031,电青*rd舅WfSB-B弓_:

il?

F.204!

1_口&-白九・子

i沽总

L1预宋响

L3侵盎响

L耳義嶷响

注意:

Sdep啲类型为char

(2),添加数据是不能写“计算机系”和“软件工程”,应改为“CS”

insert

into

Course

values

('001'

'高数’,’96','6');

insert

into

Course

values

('002'

'C语言程序设计’,’80','5');

insert

into

Course

values

('003'

'JAVA语言程序设计’,’48','3');

insert

into

Course

values

('004'

'VisualBasic','48','4');

②、向Course表中添加数据

和“MS”

SQLQueryS.s.ql-ZQ._(i<[y-PC\aqy(51))*|=

日=匸匚InCQ二吕U辛味丄“:

导(「0:

二'』'高敌F'含F';

insertintoboursevaluesC*002','C语言卡呈序设计','30','5'j;inser匸into二口口rseval口皂s7笛轴吾言程序设计JVJ护);

-insertinto匚ouzsevalues(r004Ff1VisualSasicrf*43r,14F:

|

1Irr,I

冷消息

(1行旻軫向)

门行受影响】

\1行受談向)

行受夥响)

③、向SC表中添加数据

insert

into

SC

values

('20050001'

'001'

89);

insert

into

SC

values

('20110001'

'001'

89);

insert

into

SC

values

('20110001'

'002'

78);

insert

into

SC

values

('20110001'

'003'

89);

insert

into

SC

values

('20110002'

'002'

60);

insert

into

SC

values

('20110103'

'001'

80);

(QLQutyJ-2Q.(aq/POjqy(51))'

iriF»Tt

St

-v4luB3b^C-C5口:

s

P-001b

蚀;

1113axz

SC

vglue塔■5G,15.JL■

F"

0^1:

inss-rt

1Zita

sc

vel-e-^CllCriDL

p"D32r

7S);

lugart;

IZLtS

sc

valuesf2C_l

P*DJ3r

rr

SJl:

inj-szt

inta

sc

nlued|*50L105028

r*DM・

州;

inseTr

120

sc

^aiveaip2Qiiaig3B

r*DOIP

J

「:

犒.

消目需別出慣壬。

.第1行—.-

二ELSmjOHHIQKZiT"ax_5C_S!

»_143C:

-E23*ja^o谨冲突麦生;址朴匚TuudonjLafo^y未FJbQ「勺二「Mluim'Eno3.

2^3&止*

i行寿沏

i升壹5皿

i行网淋

If亍欝加

i行貝術

上面截图所示的外键约束可不予考虑

 

b.执行如下语句:

insertintoStudent(Sno,Sname.Sex)values(20101101;'赵青','男'),

该语句能成功执行吗?

为什么?

答:

不能成功执行,因为不能将值NULL插入列'Sdept'中

c.

执行如下语句:

insertintoscvalues(20110103','005',80),该语句能成功执行吗?

为什么?

答:

不能成功执行,因为SC表中的学号“005”的同学在Course表中不存在。

而S(表中的Cno是作为Course表的外键存在的,所以不能成功执行。

SQLQwyltql-ZQ(B|X-pcW

云時皿匚此ipto>=■valises011C10^'J'005V.0J[

(i

摘巨n寸、怨别g狀走—爭匚行

U1SXEII语切芦ZRXmKXX^]^,FK_B£_G,M_lS10BirK*冲字”瀛即零发尘干数]glX'r说0IW_A=fiT.表”3軋匚理砂屮-"・皿'Cea".,语旬已EhN

(2)修改数据

a.使用T-SQL语句,将Course表中的课程号为’002'的学分改为4,总学时改为64。

updateCourse

setCredit=4

whereCno='002'

SQLQuery2.sqI-2Q…(門丫-丁Bupdate匚

ser2:

zedit=4

-whereCnc=rC02'|

由消息

ii行受影响】

updateCourse

setTotal_perior=64

whereCno='002'

|i

;QLqu总ryA=ql-ZQ...(zqy-P

三upda匸亡Course

m色匸TotalDar^c*-64

-whereCnc=fG02"

cx^qy(ss)>*

*1

-J消息

U行受黔响)

 

结果:

□01

高数

5

□02

匚语言程厚役计

003

^3

3

004

VisualBasic

b.使用T-SQL语句,将SC表中的选修了002'课程的同学的成绩*80%。

updateSC

setGrade=Grade*0.8

whereCno='002'

[

<1

匚QLQueiy£sql-ZQ^Uq/-PC\ac

三updateSC

secGrade=Grade*D<8

where匚no-'002'|

]消息

£行受影响I

结果:

20110001

20110001

001

002

Q9

20110001

003

20110002

002

20110103

001

83

MJLL

M.L

AU£

(3)删除数据

a.使用T-SQL语句,删除选修了C语言程序设计”的学生的选课记录。

-ZQr..(iqy-PC\zqySQLQu&ryl.cql■ZQ.,.(iqy-?

C\zqy(5

曰delet-efrom

wliere匚:

i0[异

iselect亡noCramCourse

-where^nair.e=TB■吾言程序设计T

彳E!

消息517,级别旳状态Q,第;L行.

QEIET2语句与HEFER'EtlCE约束"FKSG_Cnc_L920E詐匚";中突。

该冲突发注谱句已终止。

_

删除时,发现存在外键约束,且约束名为FK__SC__Cno__1920BF5C,则先删除约束

删除约束:

altertableSC

dropconstraintFK__SC__Cno__1920BF5C

SQLQuery2門

曰altertable5G

dropconstraintFKSC_Cno_15Z0BF5C

恰磊息

命令已成喉成。

删除记录:

deletefromCourse

whereCnoin

(selectCnofromCourse

whereCname='c语言程序设计')

E

;QLqueryZ=q"-ZQ.J.(zqy-PC\zqy

3deleteIron:

Course

where^noin

selectCnoEroir.Course

LwhereCname='c语台程序设计T

4

1

由消息]

厲行受影响】

结果:

Cno

Cname

Total_perior

Credit

001

96

6

003

JAVAil言程瘙…

40

3

cm

VisualBasic

43

4

NU.L

NULL

MJIL

MJLL

b.使用T-SQL语句,删除所有的学生选课记录。

deletefromSC

SQLQueryl^qI-ZQ^fzqy-F

deleueframSC

A消息|

(5行受影响)

结果:

5no

Cno

Grade

NLA1

M.L

说明:

删除后,请重新插入SC表中的记录。

同第4题③所示步骤相同,

insert

into

SC

values

('20050001'

'001'

89);

insert

into

SC

values

('20110001'

'001'

89);

insert

into

SC

values

('20110001'

'002'

78);

insert

into

SC

values

('20110001'

'003'

89);

insert

into

SC

values

('20110002'

'002'

60);

insert

into

SC

values

('20110103'

'001'

80);

ZQV-PC.Studentjn^a-dboS匚>tQLQueryl.sql-Z^..(jqy-PC\2qy(S:

曰insert

into

5C

valuesi

'2C'^500C

01',89;

insert

lat□

5亡

TT3.1nes〔

-30110001*F*001・w;

inser匸

into

SC

values(

^DLLDOCH1「0021f78;j

ijiseirc

inta

£匚

valueai

'^OllOOOl1f'003'r89;

insert

intc

SC

valu.es

70L8GWJO外g;

-insert

intc

sc

3i

如二f、0QXf&□;

*I

消息

消息冷,级別ie;状态山第l行

切亚“语句与KZY约東”F£_£I2_Sue_192C9B231'冲突。

语句已终止。

"行賀毙响、

(1行受冒响)

(1行受影响)

(1行受影响)

(1行劭劈响)

结果:

LNyPPCStud«rt」nfb-dbaJC匚/问口也jjfllr牡回

Sno

Cno

Grade

20L10001

001

2DLLQ001

002

78

20110001

003

69

20L1000Z

002

60

20LI0103

001

60

AL4Z

屉{上

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1