SQL SERVER程序设计复习题.doc
《SQL SERVER程序设计复习题.doc》由会员分享,可在线阅读,更多相关《SQL SERVER程序设计复习题.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、一、填空题(每空1分,共10分)1、在select语句中 HAVING 子句可以在分组后进行数据筛选。2、在定义表结构时使用 CHECK 子句实现对数据合法性的检查。3、在DML触发器中,DML命令操作的数据保存在 和 中。4数据完整性包括 实体 完整性、 域 完整性、 参照完整性和 完整性。5、使用 EXIST 运算符可以判断查询结果是否为空。6、判断某值X是否为空应使用表达式 。7、在select语句中 子句可以让检索结果顺序显示。8、可以在from子句中使用 JOIN 运算符或在where子句中使用 条件表达式 实现表的连接。9、在存储过程的形参中使用 或 OUTPUT 定义输出参数。1
2、0、级联修改可以通过 触发器 或 实现。11、在select语句中 group by 子句可以实现分组操作。12、在定义表结构时使用 default 子句定义字段的默认值。13、在函数定义中使用 return 定义返回值。二、名词解释(每小题2分,3小题,共6分)1、数据库2、实体完整性3、事务4、外键5、死锁6、主键三、简答题(每小题3分,3小题,共9分)1、索引的作用与书中的索引一样,使用数据库中的索引可以快速找到表或索引视图中的特定信息。2、DML触发器的用途3、SQL分为几类,每类常用的命令有哪些?4、索引的设计原则5、事务的属性6、简述各类数据完整性及其对应的约束实现7、存储过程的优
3、点四、操作题(共45分)所有操作假设由sa账号用SQL语句完成。1、创建一个数据库:数据库名为“教学”,数据文件的逻辑名为“教学_data”、物理文件名为“教学_data.mdf”,大小为10MB,增量为10MB,最大容量为200MB。日志文件的逻辑名为“教学_log”、物理文件名为”“教学_log.ldf”。文件请保存在文件夹“e:sqltestdata”中。2、在SQL Serve中添加一个登录名“teacher”,密码为“abcd”。3、为“teacher”在“教学”数据库中添加数据库用户“sql_teacher”。4、在“教学”数据库中添加一个角色“visitor”。5、将安全账户“s
4、ql_teacher”添加到角色“visitor”中。6、禁止“visitor”创建数据表。7、在“教学”数据库中创建三个数据表: (1)学生(学号(长度为10的字符串,学号必须符合“08081”或“08082”模式(约束名为xh),主键),姓名(长度为20的可变长度Unicode字符串,不允许为空),生日(日期时间); (注:“”为任意数字) (2)课程(课程号(长度为4的固定长度字符串,主键),课程名(长度为20的可变长度Unicode字符串,不允许为空); (3)成绩(学号(长度为10的字符串,外键),课程号(长度为4的字符串,外键),分数(小数,有效位数4,小数点后1位,取值范围在01
5、00之间,默认值为0),主键为(学号+课程号)。 8、修改“学生”表:添加一列“性别”(只能取值“男”或“女”),并在“生日”上添加不对已有数据进行验证的数据校验约束“bircheck”,要求输入的数据需满足的条件是学生的年龄必须不小于14岁。 9、创建一个显示所有10级计算机系学生的SQL课程的成绩的视图V_SQL,其中包括学号,姓名,课程名,分数四列。 10、在课程表的课程号列上建一个降序索引kch_idx。 11、定义触发器xct:当在学生表中删除记录时,将成绩表中相应学生的记录删除 五、设计题(30分)在“教学”数据库中创建一个存储过程cj_proc,实现按照输入的课程名称打印此门课程
6、的成绩报表(如不给定课程名称,则输出“SQL”的成绩),输出结果按照分数降序排列: 例如:exec cj_proc 数据结构结果如下。 数据结构成绩表* 名次 学号 姓名 成绩1 李军 95 2 李明 85 3 王刚 75 *如不指定课程名,如:exec cj_proc结果如下。 SQL成绩表* 名次 学号 姓名 成绩1 李明 95 2 李军 85 3 王刚 80 *2、阅读下列说明,回答问题1至问题3。 说明天津市某银行信息系统的数据库部分关系模式如下所示:客户 (客户号,姓名,性别,地址,邮编,电话)账户 (账户号,客户号,开户支行号,余额)支行(支行号,支行名称,城市,资产总额)交易 (
7、交易号,账户号,业务金额,交易日期)其中,业务金额为正值表示客户向账户存款;为负值表示取款。问题1以下是创建账户关系的SQL语句,账户号唯一识别一个账户,客户号为客户关系的唯一标识,且不能为空。账户余额不能小于1.00元。请将空缺部分补充完整。CREATE TABLE账户(账户号CHAR(19) (a) ,客户号CHAR(10) (b) ;开户支行号CHAR(6) NOT NULL,余额NUMBER(8,2) (c) );问题2(1)现银行决策者希望查看在天津市各支行开户且2009年9月使用了银行存取服务的所有客户的详细信息,请补充完整相应的查询语句。(交易日期形式为2000-01-01)SE
8、LECT DISTINCT客户.*FROM客户,账户,支行,交易WHERE客户.客户号=账户.客户号 AND账户.开户支行号=支行.支行号AND(d) AND交易.账户号=账户.账户号 AND(e) ;上述查询优化后的语句如下,请补充完整。SELECT DISTINCT客户.*FROM 客户,账户, (f) AS新支行, (g) AS新交易WHERE客户.客户号=账户.客户号AND账户.开户支行号=新支行.支行号AND新交易.账户号=账户.账户号;(2)假定一名客户可以申请多个账户,给出在该银行当前所有账户余额之和超过百万的客户信息并按客户号降序排列。SELECT *FROM客户WHERE (
9、h) (SELECT客户号FROM账户GROUP BY客户号 (i) )ORDER BY (j) ;问题3(1)为账户关系增加一个属性“账户标记”,缺省值为0,取值类型为整数;并将当前账户关系中所有记录的“账户标记”属性值修改为0。请补充相关SQL语句。ALTER TABLE 账户 (k) DEFAULT 0;UPDATE 账户 (l) ;(2)对于每笔金额超过10万元的交易,其对应账户标记属性值加1,给出触发器实现的方案。CREATE TRIGGER 交易_触发器 (m) ON交易REFERENCING NEW ROW AS 新交易FOR EACH ROWWHEN (n) BEGIN ATO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL SERVER程序设计复习题 SERVER 程序设计 复习题
限制150内