
SQL实验课后题分析及参考答案.docx
60页SQL实验课后习题分析及参考答案目录实验一数据库 4【思考题】 41 42 43 44 45 56 67 6实验二数据库表 7【思考题】 71 72 73 74 74 8实验三数据操作 12【实验题】 121 122 123 124 175 176 187 18实验四 完整性约束 19【实验题】 191 192 193 194.略 23【思考题】 231 232 243 254 26实验五索引 26【实验题】 261 262 273 27【思考题】 271 272 273 28实验六视图 28【实验题】 281 292 293 294 315 326 327 328 33【思考题】 331 332 333 344 34试验七 数据查询 36【实验题】 361 362 363 374 375 376 387 388 399 3910 4011 4012 41【思考题】 411 412 423 434 43实验八存储过程 43【实验题】 431 432 453 464 485 496 517 528 549 5510 56【思考题】 561 562 563 56实验九触发器 56【实验题】 561 562 583 604 635 64【思考题】 671 672 693 694 695 69实验 十T-SQL程序设计与游标设计 71【实验题】 711 712 723 734 745 756 767 788 809 8110 82实验一数据库【思考题】1.略2.3 ;PRIMARY ;testbase2_prim_sub_datl,testbase2_prim_sub_ dat2;testbase2_Group 1 ;testbase2_groupl_sub 1 ,testbase2_group 1 _sub2;Testbase2_Group2;testbase2_group2_sub2,testbase2_group2_sub2;PRIMARY3.两种,第一种用Transact-SQL第二种交互式分离4.不能,会报以下错误如图1.1图1.1附加报错5.不能,在附加数据库时不能改名称,可以再附加上之后改名 称如图文件(F) ^S(E)査看(V) WSt(D) ia(T) SQ(W) ttE(C) »tt(H)曲(T)SMKO) 方 81(A)新建站臨(N).” «s«gassf本力⑸L3 J▼ 4 XQ DAGE-PC (SQL Server 10.50.1600 - dage- 曰 口 StfiK回二系统数振琴IS ―致魅快曜S (J ccx)lffi 01理2823^回(J ReportServ9 口宜全性4 N霍器*田二复胡直 SQL Server fti层动 PowerShell(H)BWf(F)尿性(R)图1.2数据库重命名6.删除数据库是彻底删除无法恢复,分离是从数据库管理系统 中分离,是可以恢复的。
7.不存在实验二数据库表【思考题】1.一个数据库中不可以有两个相同的表名,同一个数据库表中 的列名也不能相同2.只使用ALTER TABLE语句是不可以修改现有列名的,但 是可以通过加入其他语句实现(就是删除现有的列,重新创 建),ALTER TABLE语句也不能删除现有的列例如:alter table s add “学生姓名” varchar(10);update s set “学生姓名”='姓名';alter table s drop column “姓名";3.4.USE jxsk的作用就是选定数据库jxsk,可以不要这条语 句,但是在执行语句的时候选择数据库就行如图2.1文件(F)巒(E)视图(V)童询(Q)调试(D) IMCO窗口 (W)社区(C)帮助(H) .4.新M®(N) Qj R WES 風丘曰0 DE曰口国田BX轄(O)・E) 口数摒库关粟图 日口表master model msdb tempdbdbo.CB □ dbo.S(3 口列S) 口键El 口约束 国Ci 发器田口索引12 口统计信息 E 口 dbo.SC E) □ dbo.TBl'蜩% >「“診尊圓| r■曽催11 g | * s犒DELL\SQLEXPRESS.test - dbo.S SQL 实验课后题分析及参考答案sqI -_52))*USE testGOUPDATE S SET AGE=AGE+1 WHERE DEPT=,计算机,GOUPDATE S SET AGE=AGE+1 WHERE DEPT=,计算机,tj消息<3行受影响)图2.1选择数据库4.<1>定义:char:固定长度,存储ANSI字符,不足的补英文半角空 格。
nchar:固定长度,存储Unicode字符,不足的补英文半 角空格varchar:可变长度,存储ANSI字符,根据数据长度自动 变化nvarchar:可变长度,存储Unicode字符,根据数据长度 自动变化nvarchar(n):包含n个字符的可变长度Unicode字符数 据n的值必须介于1与4,000之间字节的存储大小是 所输入字符个数的两倍所输入的数据字符长度可以为零 varchar[(n)]:长度为n个字节的可变长度且非Unicode 的字符数据n必须是一个介于1和8,000之间的数值 存储大小为输入数据的字节的实际长度,而不是n个字节 所输入的数据字符长度可以为零注意:ANSI主要是以单字节来存储数据,一般适合英文 而我们常用的汉字需要用两个字节来存储,所以就要使用 unicode的数据类型,不然读取出来的数据可能会乱码 v2>区别:① 从存储方式上,nvarchar是按字符存储的,而varchar 是按字节存储的;② 从存储量上考虑,varchar比较节省空间,因为存储大小 为字节的实际长度,而nvarchar是双字节存储;③ 在使用上,如果存储内容都是英文字符而没有汉字等其他 语言符号,建议使用varchar;含有汉字的使用nvarchar, 因为nvarchar是使用Unicode编码,即统一的字符编码标 准,会减少乱码的出现几率;④ 如果你做的项目可能涉及不同语言之间的转换,建议用nvarcharov3>优缺点:Nvarchar优点:判断字符串的时候可以不需要考虑中英文 两种字符的差别,可以避免程序中乱码的问题。
缺点:存储英文字符会增大一倍的存储空间.但是在存储代 价已经很低廉的情况下,优先考虑兼容性会给你带来更多好 处的,效率没有varchar高v4>为什么要用nvarchar?有n前缀的,n表示Unicode字符,即所有字符都占两个 字节,nchar,nvarchar字符中,英文字符只需要一个字节存储就足够了,但汉字众 多,需要两个字节存储,英文与汉字同时存在时容易造成混 乱,Unicode字符集就是为了解决字符集这种不兼容的问题 而产生的,它所有的字符都用两个字节表示,即英文字符也 是用两个字节表示v5>有关var的简单介绍:有var前缀的,表示是实际存储空间是变长的,varchar,nvarchar所谓定长就是长度固定的,当输入的数据长度没有达到指定 的长度时将自动以英文空格在其后面填充,使长度达到相应 的长度;而变长字符数据则不会以空格填充,比较例外的是, text存储的也是可变长v6>如何使用这些类型?如果你肯定存储的数据长度,而且不包中文的,可以选择 char类型如果肯定存储的数据长度,但可能包括中文,可以选择nchar 类型如果不确定存储的数据长度,存储只有英文、数字的最好用 varchar如果不确定存储的数据长度,也有可能有中文,可以选择 nvarchar类型,在SQL Server2005中也是比较常用的字 符数据类型。
1) iteml最多占20个字节,而item2 一直占20个字节(2) 比如同时存入长度为10的数据,item3是10个字节, 而item4就是20个字节(3)不可以,会报错如图2.2圄(V)调试(D)查询设计S(R) IM(T) ®D(W)社区(0曙助(H)/曹團[更殘型(Y)・?酣〔;;DELL\SQLEXPRESS.test - dbo.S DELL'SQLEXPRESS.test - dbo.S SQL 实验果后鬆分析及参考答案.sql -.”52))*SNO:SS (SQL Server 10.1 •*>:关系图to.CQ.S列避 约束 磁器 素引 统曲息KJ.SCQ.T•O.TCo.TEST.C•O.TEST.S q.TEST_TC Q.testl >o.test2SOSIS2S3S4S5S6S7S8S9NU1SN 王青山 赵亦 钱尔 张晓明 李思 周武 吴丽 范思萌 孙珊 张海涛 NULLSEX男 女 男 里AGE1918DEPT计算机 计算机 信息 信息18实验三数据操作【实验题】略2.略3.(1)选择平面文件源2)选择文件位置,如图3.1图3.1选择文件位置(3)选择列设置,如图3.2oSQL Server导入和导出向导选择数据源迭择要从中复制数据的源。
数据源(0:|多平面文件源r矗 I3BE3FI指定用作源文件分隔符的字符:行分隔符(Q): |{CR}{U} 三|歹H分隔符(0: |分号{;} 三|预览行1T1:列01列1 1列"TN0""Ti”"C1""Ti""C4""T2”"C5""T3""C1""T3""C5""T3""C2""T4""C3""T4""C5""T5""C5""T5"<上一步(於1下一步(S) >完成(E)〉>1 |取消图3.2选择列设置(4)选择要导入的表如图3.3图3.3选择要导入的表(5)单机下一步如图3.4(6)完成如图3.5图3.4立即运行图3.5导入完成(7)查看导入的数据如图3.6iSa(D) 查询设计器® IMCD ®U(W)社区©。












