6.第一步:解绑默认值:对于不需要再利用默认的列,可以利用系统存储过程对其解绑。其语法格式如下:
[EXECUTE] sp_unbindefault '表名.字段名'|'自定义数据类型名' 第二步:在查询分析器中使用DROP语句删除默认值。其语法格式如下:
DROP DEFAULT default_name[,…n]
习 题 5
一、选择题 1.在Transact-SQL语句中,条件“年龄 BETWEEN 15 AND 35”表示年龄在15岁至35岁之间,且( )。 A.包括15岁和35岁 B.不包括15岁和35岁 C.包括15岁但不包括35岁 D.包括35岁但不包括15岁 2.下列聚合函数中正确的是( )。 A.SUM(*) B.MAX(*) C.COUNT(*) D.AVG(*) 3.查询员工工资信息时,结果按工资降序排列,下列语句中正确的是( )。 A.ORDER BY 工资 B.ORDER BY 工资 DESC C.ORDER BY 工资ASC D.ORDER BY 工资 DISTINCT 4.在SQL Server2005中,下列关于通配符的操作中,范围最大的是( )。
A.sname LIKE ?abc#? B.sname LIKE ?abc_d%? C.sname LIKE ?abc%? D.sname LIKE ??c%? 5.“SELECT 工号 FROM 员工表 WHERE 工资>1250”的功能是( ) A.查询工资大于1250元的记录 B.查询1250号记录后的记录 C.检索所有的职工号
D.从“职工”关系中检索工资大于1250元的职工号
二、思考题:
1.在SELECT语句中可以存在哪几个子句?他们的作用分别是什么? 2.在表与表之间可以使用哪几种连接方式?它们各自有何特点? 3.LIKE匹配字符有哪几个?
4.有几种连接表的方法?它们之间有什么区别?
5.GROUP BY子句的作用是什么?HAVING子句和WHERE子句中的条件有什么不同? 6.嵌套查询与相关子查询有何区别?
参考答案: 一、选择题 1A 2-C 3-B 4-D 5-D
二、思考题
1.SELECT语句中可以存在以下子句 (1)SELECT子句:指定查询返回的列。
(2)INTO子句:将检索结果存储到新表或视图中。 (3)FROM子句:用于指定查询列所在的表和视图。 (4)WHERE子句:指定用于限制返回的行的搜索条件。
(4)GROUP BY子句:指定用来放置输出行的组。并且如果 SELECT 子句
(5)HAVING子句:指定组或聚合的搜索条件。HAVING 通常与 GROUP BY 子句一起使用。 (6)ORDER BY子句:指定结果集的排序。 2.(1)交叉连接:又称笛卡儿积,返回两个表的乘积。 (2)内连接:把两个表中的数据,通过相同的列,连接生成第3个表,仅包含那些满足连接条件的数据行。内连接分为等值连接、非等值连接和自然连接。 (3)外连接:分类:左外连接、右外连接和全外连接。
左向外连接:只包括左表的所有行,不包括右表的不匹配行的外连接; 右向外连接:只包括右表的所有行,不包括左表的不匹配行的外连接。
完整外部连接:既包括左表不匹配的行,也包括右表的不匹配的行的连接
3.LIKE匹配字符(通配符): %(百分号):表示0~n个任意字符。 _(下划线):表示单个任意字符。 [ ](封闭方括号):表示方括号内列出的任意字符。 [^ ] :表示未在方括号内列出的恶人一字符。 4.参考第2题
5.GROUP BY子句指定用来放置输出行的组,如果需要按某一列数据的值进行分类,在分类的基础上再进行查询,就要使用GROUP BY子句。 HAVING子句指定组或聚合的搜索条件。HAVING 只能与 SELECT 语句一起使用。HAVING通常在GROUP BY 子句中使用。如果不使用GROUP BY 子句,则 HAVING的行为与WHERE 子句一样。 WHERE子句是从表格的数据集中(未分组)过滤出符合条件的行。
6.在SQL中,将一条SELECT语句作为另一条SELECT语句的一部分称为嵌套查询。外层的SELECT语句被称为外部查询或父查询,内层的SELECT语句成为内部查询或子查询。 相关子查询不同嵌套子查询,相关子查询的查询条件依赖于外层查询的某个值。
习 题 6
一、填空题
1.在Transact-SQL语言中变量分为_________和_________。 2.以_____________符号开头的变量为全局变量。
3.SQL Server聚合函数有最大、最小、求和、平均和计数等,它们分别是MAX、_______、________、AVG和COUNT。
二、简答题
1.SQL语言的数据类型有哪些?分别有什么作用?
2.需要为SQL Server中的变量赋值时,可以用哪两种命令?
3.在循环语句中,BREAK和CONTINUE语句分别起什么作用?
3.了解函数的应用,查阅自己系统中的全局变量以及系统函数有哪些。 4.使用CASE表达式,判断当前月的天数。
参考答案: 一、填空题 1.局部变量 全局变量 2.@@ 3.MIN SUM
二、简答题 1.数字数据
字符数据:存储字符或字符串。 货币数据:存储货币数据。
日期和时间数据:存储日期和时间数据。 二进制字符串:存储二进制型的OLE对象。 其他数据类型:存储其他类型数据。
2.若要对变量赋值,可以使用SELECT语句或SET语句将一个不是NULL的值赋给已声明的变量。一个SELECT语句一次可以初始化多个局部变量;一个SET语句一次只能初始化一个局部变量。当用多个SET语句初始化多个变量时,为每个局部变量使用一个单独的SET语句。 语法格式如下: SELECT @变量名=表达式[,?n] SET @变量名=表达式
3. BREAK:无条件地退出WHILE循环。 CONTINUE:结束本次循环,进入下次循环,忽略CONTINUE后面的任何语句。 4.
DECLARE @TS CHAR(5) SET @TS=CASE
WHEN Month(GETDATE()) IN (1,3,5,7,8,10,12) THEN '31天' WHEN Month(GETDATE()) IN (4,6,9,11) THEN '30天' WHEN Month(GETDATE())=2 THEN '28天' END PRINT @TS
习 题 7
一、填空题
1.视图是一种常用的__________。
2.视图可以看成是从一个或几个__________导出的虚表或存储在数据库中的查询。 3.数据库中只存放视图的____________,而不存放视图对应的___________,数据存放在原来的________中,当基本表中数据发生变化时,从视图中查询出的数据_________________。
二、思考题
1.视图与数据表有何区别? 2.视图有哪些优点?
3.创建视图的方法和注意事项有哪些? 4.如何加密自己创建的视图的定义?
参考答案: 一、填空题 1.数据库对象 2.基本表 3.定义 数据 基本表 也会随之变化(或 是最新数据)
二、思考题
1.数据表中存储基本数据,而视图中只存储查询定义,不存放数据。
2.简化操作、提高数据安全性 、屏蔽数据库的复杂性 、数据即时更新 。 3.创建视图的方法:(1)使用Management Studio。(2)使用Create View语句
注意事项有:
(1)只能在当前数据库中创建视图,在视图中最多只能引1024 列。 (2)不能在规则、默认值、触发器的定义中引用视图。 (3)不能在视图上创建索引;
(4)如果视图引用的表被删除,则当使用该视图时将返回一条错误信息;如果创建具有相同表的结构的新表来替代已删除的表,视图可以使用,否则必须重新创建视图。
(5)如果视图中某一列是函数、数学表达式、常量或来自多个表的列名相同,则必须为列定义名字。 (6)当通过视图查询数据时,SQL Server 不仅要检查视图引用的表是否存在,是否有效,而且还要验证对数据的修改是否违反了数据的完整性约束。
4.在Create View语句中使用“WITH ENCRYPTION”选项加密视图定义。