简述sql server2005中为了保证数据的sql完整性约束有哪些可以使用哪些约束及其各自的作 用是什

SQL Server 2005管理员大全 pdf下载_pdf计算机图书下载
SQL Server 2005管理员大全 pdf下载
受版权保护,本网站不能直接提供下载,请输入电子邮箱(Email):
电子邮箱(尽量填QQ邮箱):
网友给本书打分:6分
赵杰,等著
出版社: 电子工业出版社
ISBN: 5
装帧: 平装
开本: 16开
纸张: 胶版纸
所属分类 图书>计算机与互联网>数据库
  《SQLServer2005管理员大全》共分四篇,分层次全面接触SQLServer2005的各种实用功能和使用操作方法。内容力求完整翔实且重点突出,特别是在知识的深度上,结合了作者多年从事数据库应用开发、教学的经验积累,对重点知识内容进行了全面细致地阐述,使读者能够享受到从入门到精通的完美过程。
第1篇基本管理功能篇第1章SQLServer2005新增功能1.1易管理性的增强1.1.1单一的管理控制台(SQLServerManagementStudio)1.1.2SQL管理对象1.2可用性的增强1.2.1数据库镜像1.2.2故障转移群集1.2.3快速恢复1.2.4专用管理员连接1.2.5联机操作(索引操作和还原)1.2.6复制1.3可伸缩性的增强1.3.1表和索引分区1.3.2快照隔离1.3.3复制监视器1.3.4对64位系统Itanium2和x64的支持1.4安全性的增强1.4.1授权1.4.2身份验证1.4.3本机加密1.5扩展的语言支持1.5.1CLR/.NETFramework集成1.5.2Transact-SQL增强1.6改进的开发工具1.6.1BusinessIntelligenceDevelopmentStudio1.6.2VisualStudio集成1.6.3跨层和跨语言的调试1.7扩展性增强1.7.1用户自定义类型和聚合1.7.2SQL管理对象1.7.3分析管理对象1.8数据访问的改进1.8.1ADO.NET2.01.8.2查询通知1.8.3MARS1.8.4透明的数据镜像的故障转移1.9XML和WebServices1.9.1XML支持1.9.2XML数据类型1.9.3XQuery1.9.4WebServices支持1.9.5XMLforAnalysisServices1.10ServiceBroker1.11商业智能1.11.1IntegrationServices1.11.2AnalysisServices1.11.3数据挖掘1.11.4ReportingServices1.11.5关系型和OLAP报表1.11.6报表生成器第2章SQLServer2005安装指南2.1SQLServer2005版本和组件2.2软件和硬件的准备工作2.2.1SQLServer2005(32位和64位)软/硬件需求2.2.2硬件和软件要求(32位)2.2.364位的硬件和软件要求2.2.4安装.NETFramework2.02.2.5安装SQLServer20052.2.6设置服务账户2.2.7SQLServer2005身份验证模式2.2.8SQLServer2005语言选项2.2.9验证安装正确性2.3升级SQLServer7.0/2000到SQLServer20052.3.1在现有SQLServer数据库的基础上升级2.3.2通过复制数据库向导升级至SQLServer20052.3.3使用分离和附加来升级数据库2.4安装过程中的错排查第3章配置SQLServer服务器3.1注册和连接服务器3.1.1连接服务器3.1.2注册服务器3.1.3管理服务器组3.2管理SQLServer服务3.2.1使用控制台管理SQLServer服务3.2.2使用NetStart命令控制3.2.2SQLServer服务3.2.3使用服务管理器控制SQLServer服务3.3管理服务器全局属性3.3.1常规3.3.2内存3.3.3处理器3.3.4安全性3.3.5连接3.3.6数据库设置3.3.7高级3.3.8权限3.4SQLServer2005配置管理工具3.5 SQLServer2005查询工具简介3.5.1连接SQLServer服务器3.5.2执行T-SQL语句3.5.3对象浏览器3.6sqlcmd工具使用简介第4章管理数据库和表4.1SQLServer2005数据库的系统目录4.1.1系统文件目录4.1.2数据库实例目录4.2管理数据库文件和文件组4.2.1管理数据库文件组4.2.2创建数据文件4.2.3数据文件的增长与收缩4.3管理事务日志文件4.3.1事务日志的工作机制4.3.2收缩事务日志4.4创建表4.4.1使用SQLServerManagement4.4.1Studio创建表4.4.2表设计器窗体4.4.3建立和命名列4.4.4指定列的数据类型和为空性4.4.5列描述4.4.6文件组4.4.7保存数据表4.4.8使用T-SQL语句创建表4.5更改数据表的结构4.5.1添加新列4.5.2更改列名称4.5.3更改列的数据类型及长度4.5.4使用标识列4.5.5定义主关键字4.5.6删除列4.6删除表4.6.1使用SQLServerManagement4.6.1Studio删除表4.6.2使用T-SQL语句删除表4.7临时表4.8系统表4.9架构4.9.1什么是架构4.9.2默认架构4.9.3用户架构分离的好处4.9.4创建架构4.9.5设置数据对象的架构第5章SQLServer2005安全性管理5.1SQLServer2005的安全模型5.1简介5.1.1概述5.1.2SQLServer权限层次结构5.2SQLServer服务器访问权限5.2.1SQLServer2005身份验证5.2.1模式5.2.2创建登录5.2.3服务器角色5.3数据库访问权限5.3.1创建数据库用户5.3.2数据库角色5.3.3自定义数据库角色5.3.4应用程序角色5.4数据对象和数据访问权限5.4.1固定数据库角色许可权限5.4.2数据对象访问许可5.4.3预定义的许可权限5.4.4权限的授予、拒绝和废除5.4.5权限的继承5.5管理SQLServer登录账户5.6管理数据库用户第6章SQLServer2005数据库备份指南6.1数据库备份概述6.2备份前的准备工作6.3设置数据库恢复模式6.4创建备份设备6.5执行备份的权限6.6数据库备份的时机6.6.1何时备份系统数据库6.6.2何时备份用户数据库6.7备份类型的概述6.8完整备份6.9差异备份6.10日志备份6.10.1备份事务日志6.10.2清理事务日志6.11仅复制备份6.12文件/文件组备份6.13数据库镜像6.14传送事务日志第7章SQLServer2005数据库还原指南7.1检查点7.2SQLServer崩溃后自启动的恢复进程7.3还原数据库前的准备工作7.4恢复数据库的方法7.5还原完整备份7.6还原差异备份7.7还原日志备份7.8还原文件或文件组备份7.9分离和附加数据库7.9.1分离数据库7.9.2附加数据库第2篇高级管理功能篇第8章实现自动管理任务8.1SQLServer代理服务8.1.1SQLServer代理服务概述8.1.2自动管理组件8.2配置SQLServer代理服务8.2.1常规选项8.2.2设置SQLServer代理服务账户8.2.3设置邮件系统8.2.4设置连接8.3定义操作员8.4创建和执行作业8.4.1创建作业8.4.2作业控制流8.4.3计划的类型8.4.4指定作业响应8.4.5监视作业活动8.5监视事件和响应警报8.5.1定义警报8.5.2创建用户自定义错误的警报8.6查看SQLServer代理错误日志8.7管理数据库邮件第9章数据传输指南9.1概述9.1.1数据传输的概述9.1.2数据传输工具一览9.2SQLServer数据导入和导出向导9.2.1SQLServer数据导入和导出向导9.2.2连接数据源9.2.3设定转换模式9.2.4保存和调度SSIS包9.3使用bcp命令大容量复制数据9.3.1将表行复制到数据文件9.3.2从查询复制到文本文件9.3.3创建非XML格式文件9.3.4创建XML格式文件9.3.5将文本数据导入到表中9.4T-SQL语句大容量导入导出9.4数据9.4.1BULKINSERT语句9.4.2SELECT…INTO语句9.4.3INSERT…SELECT语句9.4.4OPENROWSET语句9.5分离和附加数据9.5.1分离数据库9.5.2附加数据库第10章SQLServer2005复制技术10.1复制的基本概念10.2复制发布模型概述10.2.1服务器角色10.2.2复制模型基本拓扑图10.2.3复制代理程序10.2.4复制的类型10.2.5订阅10.3配置复制10.3.1复制前的考虑10.3.2创建发布10.3.3订阅10.4管理复制10.4.1从ManagementStudio监视复制代理10.4.2使用复制监视器监控复制10.4.3提高常规复制的性能10.4.4停止复制第11章监控SQLServer性能与活动11.1影响性能的因素11.1.1系统级因素11.1.2数据库因素11.1.3客户端因素11.2SQLServer性能监视工具一览11.3性能监控基本步骤11.3.1识别瓶颈11.3.2监控级别11.3.3建立性能基线11.3.4确认用户活动11.3.5隔离性能问题11.4查看Windows应用程序日志11.5使用Windows系统监视器11.5.1系统监视器简介11.5.2监控处理器性能11.5.3监控Windows内存使用情况11.5.4监控SQLServer内存使用情况11.5.5监控磁盘的使用情况11.5.6使用系统监视器11.6使用SQLServerManagement22611.6.1SQLServer活动监视器11.6.2SQLServer日志11.7使用SQLServerProfiler11.7.1定义跟踪11.7.2设置事件11.7.3设置数据列11.7.4设置筛选信息11.7.5保存跟踪模版11.7.6保存跟踪的结果11.7.7重播跟踪事件11.7.8常用跟踪事件举例11.8查看执行计划11.8.1获得执行计划的信息11.8.2SETSHOWPLAN_TEXTON11.8.3SETSTATISTICSTIMEON11.8.4SETSTATISTICSIOON11.9使用T-SQL语句11.9.1DBCC语句11.9.2全局函数11.9.3系统存储过程第3篇基本开发知识篇第12章基础Transact-SQL语言12.1数据定义语言(DDL)12.1.1CreateDatabase语句12.1.2AlterDatabase语句12.1.3DropDatabase语句12.1.4CreateTable语句12.1.5AlterTable语句12.1.6DropTable语句12.2使用SELECT语句查询数据12.2.1SELECT子句12.2.2FROM子句12.2.3WHERE子句12.2.4GROUPBY子句12.2.5HAVING子句12.2.6ORDERBY子句12.2.7其他关键字12.3使用INSERT向表中插入数据12.3.1使用Insert语句12.3.2使用Insert…Select语句12.3.3使用Select…Into语句12.4使用UPDATE修改表中的数据12.4.1更新基于表的数据12.4.2基于其他表更新数据行12.4.3使用子查询更新指定的行12.5使用DELETE删除表中的数据12.6大对象数据的访问控制12.7SQLServer对XML的支持12.7.1使用RAW模式12.7.2使用AUTO模式12.7.3使用EXPLICIT模式12.8T-SQL中数据库对象的引用12.8.1完全限定12.8.2部分限定12.9SET语句12.9.1SETDATEFIRST语句12.9.2SETDATEFORMAT语句12.9.3SETCONCAT_NULL_YIELDS_NULL语句12.9.4SETIDENTITY_INSERT语句12.9.5SETLANGUAGE语句12.9.6SETFMTONLY语句12.9.7SETNOCOUNT语句12.9.8SETNOEXEC语句12.9.9SETPARSEONLY语句12.9.10SETROWCOUNT语句12.9.11SETSHOWPLAN_ALL语句12.9.12SETSTATISTICSIO语句12.9.13SETSTATISTICSXML12.9.13语句12.10综合应用第13章Transact-SQL高级应用13.1使用系统内建函数13.1.1日期和时间函数13.1.2聚合函数13.1.3字符串函数13.1.4系统统计函数13.1.5数学函数13.1.6系统函数13.2子查询13.2.1使用子查询查询数据13.2.2子查询的限制13.3联合查询13.3.1使用UNION创建联合查询13.3.2联合查询的关键字ALL13.3.3使用INNERJOIN13.3.4使用LEFTJOIN和RIGHTJOIN建立连接13.3.5使用交叉连接(CROSSJOIN)13.4其他复杂应用13.4.1使用Compute(By)子句13.4.2交叉表查询13.5查询语句的性能优化13.5.1通配符%的使用13.5.2ORDERBY语句13.5.3尽量不用NOT13.5.4尽量不要连接列13.5.5表连接需要注意的事项13.6综合应用第14章规划和管理索引14.1概述14.1.1数据的存储和访问方式14.1.2SQLServer查询优化器14.1.3获得执行计划的信息14.2索引的类型14.2.1聚集索引14.2.2非聚集索引14.3使用索引的准则14.3.1创建索引的列14.3.2不建索引的列14.3.3如何使用聚集索引14.3.4如何使用非聚集索引14.4创建和管理索引14.4.1创建索引14.4.2组合索引14.4.3 唯一索引14.4.4主键索引14.4.5填充因子14.4.6管理索引14.5维护索引14.5.1维护索引的统计信息14.5.2数据碎片14.5.3重建和整理索引第15章管理和使用视图15.1视图的用途和需要15.1.1视图简介15.1.2视图的优点15.1.3视图的分类15.2创建和管理视图15.2.1定义视图15.2.2修改视图定义15.2.3删除视图15.3利用视图简化查询操作15.3.1查询视图15.3.2使用视图关联多张表15.3.3使用视图提供聚合值15.4更新视图中的数据15.5加密视图15.6利用视图加强数据安全15.6.1限制用户的视线15.6.2视图权限管理15.6.3调用链问题初探15.7使用索引视图15.7.1索引视图的优点15.7.2设计索引视图的指导原则15.7.3创建索引视图15.7.4索引视图的应用15.8使用分区视图15.9视图的综合应用第16章创建和使用存储过程16.1SQLServer编程逻辑16.1.1Transact-SQL编程基础16.1.2流程控制语句16.1.3游标的使用16.2存储过程的创建与管理16.2.1为何使用存储过程16.2.2使用系统存储过程管理16.2.2SQLServer16.2.3使用扩展存储过程16.2.4定义存储过程16.2.5带参数的存储过程16.2.6存储过程的加密16.2.7修改和删除存储过程16.2.8存储过程中的错误处理16.2.9在存储过程中调用COM16.2.9组件16.3使用CLR存储过程16.3.1CLR集成的优点16.3.2Microsoft.SqlServer.Server命名空间16.3.3创建CLR存储过程16.3.4删除CLR存储过程16.4综合实例第17章创建和使用触发器17.1触发器的创建与管理17.1.1为何使用触发器17.1.2创建触发器17.1.3修改和删除触发器17.1.4用触发器实现强制业务规则17.1.5使用触发器和存储过程17.1.5必须注意的事项17.2使用CLR触发器17.2.1SqlTriggerContext类17.2.2创建CLR触发器第18章创建用户定义数据类型与函数18.1用户定义数据类型简介18.1.1为何使用用户定义数据类型18.1.2用户定义数据类型的特点18.2创建用户定义数据类型18.3删除用户定义数据类型18.4更改用户定义数据类型18.5使用数据类型18.6基于CLR创建用户定义类型18.7用户定义函数简介18.7.1为何使用用户定义函数18.7.2用户定义函数的特点18.8创建用户定义函数18.8.1用户定义函数设计原则18.8.2标量函数18.8.3内联表值函数18.8.4多语句表值函数18.9修改和删除用户定义函数18.10用户定义函数的限制第4篇高级开发知识篇第19章维护数据完整性19.1数据完整性概述19.1.1实体完整性19.1.2域完整性19.1.3引用完整性19.1.4用户定义完整性19.2利用约束维护数据的完整性19.2.1DEFAULT约束19.2.2CHECK约束19.2.3UNIQUE约束19.2.4PRIMARYKEY约束19.2.5FOREIGNKEY约束19.2.6级联引用完整性约束19.3利用规则维护数据的完整性19.3.1DEFAULT对象19.3.2RULES对象19.4标识列Identity19.5使用触发器和存储过程实现数据完整性19.6关于数据完整性的一些使用经验第20章SQLServer2005事务处理机制20.1事务的概念20.1.1事务的概念20.1.2事务的特性20.1.3事务的状态20.2事务管理机制20.2.1事务的类型20.2.2定义事务20.2.3隐式事务20.3事务故障恢复和并发控制20.3.1事务与日志的联系20.3.2事务故障的恢复20.3.3事务隔离级别20.4使用事务时的考虑20.5事务的高级应用20.5.1事务保存点20.5.2嵌套事务20.5.3分布事务第21章SQLServer2005并发控制机制21.1并发访问异常21.1.1丢失更新21.1.2脏数据21.1.3不可重复读取21.1.4幻读21.2锁21.2.1基本锁21.2.2专用锁21.2.3锁的相容性21.2.4封锁协议21.2.5锁的粒度21.3锁的使用21.3.1设置事务隔离级21.3.2事务隔离级与锁的关系21.3.3设置表级锁21.3.4锁的时间长度21.3.5设置锁定超时选项21.3.6监视和管理锁21.4死锁的预防和处理21.4.1死锁的概念21.4.2预防死锁21.4.3解除死锁第22章SQLServer2005全文搜索22.1SQLServer全文搜索简介22.2全文搜索的工作方式22.3创建和管理全文索引22.3.1启用全文搜索22.3.2创建全文索引和全文目录22.3.3使用全文索引向导22.3.4管理全文索引22.3.5备份和还原全文目录22.3.6还原全文目录22.4使用全文查询22.4.1FREETEXT谓词22.4.2CONTAINS谓词22.4.3CONTAINSTABLE和FREETEXTTABLE谓词第23章SQLServer2005数据库编程接口23.1纵览SQLServer编程API23.1.1使用ODBC访问SQLServer23.1.2使用ADO访问SQLServer23.1.3使用ADO.NET访问SQLServer23.1.4使用OLEDB访问SQLServer23.1.5使用JDBC访问SQLServer23.2SQLServerADO编程接口与应用23.2.1ADO简介23.2.2Connection对象23.2.3RecordSet对象23.2.4Command对象23.2.5Parameter对象23.2.6Error对象23.2.7Field对象23.2.8Property对象23.2.9ADO中的事务管理23.2.10ADO综合应用例程23.3ADO.NET编程接口23.3.1ADO.NET简介23.3.2Connection对象23.3.3Command对象23.3.4DataSet对象23.3.5DataAdapter对象23.3.6在ADO.NET中使用事务23.3.7ADO.NET综合应用实例23.4 SQLServerJava编程接口23.4.1JDBC编程概述23.4.2JDBC的对象模型23.4.3JDBC综合应用例程第24章SQLServer2005应用程序高级设计24.1在Internet上访问SQLServer24.1.1生成静态Web页面24.1.2用ASP发布动态页面数据24.1.3用ASP.NET发布动态页面数据24.2SQLServer报表服务24.2.1报表服务概述24.2.2报表服务组件概述24.2.3报表服务实例24.3ServiceBroker异步编程24.3模型24.3.1ServiceBroker简介24.3.2ServiceBroker体系结构24.3.3ServiceBroker应用程序实例24.4嵌入式的SQL程序设计24.4.1嵌入式SQL语言概述24.4.2在C语言中使用嵌入式SQL24.5SQLServer编程注意事项24.5.1基于数据库的需求分析24.5.2设计中对数据库的考虑24.5.3开发过程中数据库性能的优化24.5.4应用程序安全问题24.5.5测试与实施中的注意事项附录ASQLServer2005常用系统存储过程附录B如何使用SQLServer2005联机丛书
@ 2012 www.pdfshu.org, all right reserved当前位置:
SQLServer练习题
来源: 联系QQ: 作者: <
发布时间: 12/09/28
&&&&SQLServer练习题&&&&一、填空题&&&&1.数据库系统的特点分别是数据的结构化、数据共享、数据独立性和可控冗余度。2.在数据库的表中,主键是指表中的某一列或几列,它的值唯一标识一行。3.SQLServer2005的文件包括:数据文件(.mdf或.ndf)和日志文件。4.在SQLServer2005中,要访问某个数据库,除了需要有一个登录帐号外,还必须有一个该数据库的用户帐号。5.数据库管理系统,简称DBMS,它是指帮助用户建立、使用和管理数据库的软件系统。6.在T-SQL语言中,若要修改某张表的结构,应该使用的修改关键字是ALTER;若要创建一个数据库,应该使用的语句是CREATEDATABASE。5.命令TruncateTable的功能是清空数据库。6.数据完整性是指存储在数据库中的数据的一致性和准确性,,根据完整性机制所作用的数据库对象和范围不同,可以分为:实体完整性、域完整性、参照(或:引用)完整性和用户自定义完整性约束等四种,其中主键可以实现实体完整性。7.模糊查询符号%代表任意字符,查询条件e%im代表意思是以e开头中间任意字符(串)且以im结尾的字符串。8.使用索引可以减少检索时间,根据索引的存储结构不同将其分为两类:簇集索引和非簇集索引。9.SQLServer中的变量分为两种,全局变量和局部变量。其中全局变量的名称以@@字符开始,由系统定义和维护;局部变量以@字符开始,由用户自己定义和赋值。10.实现数据完整性的途径有默认值、约束、规则、存储过程、触发器等。11.访问SQLServer数据库对象时,需要经过身份验证和权限验证两个阶段,其中身份验证分为Windows验证模式和混合验证模式。12.SQLServer使用日志文件记载用户对数据库进行的所有操作。13.sp_help系统存储过程的功能是显示数据对象的相关属性。?14.SQL语言中行注释的符号为--;块注释的符号为/**/。15.备份是为了在数据库遭到破坏时,能够修复,数据库备份的类型有四种分别为:数据库备份、日志备份、差异备份、文件和文件组备份。16.在SQLServer2005中,其权限分为三类,即对象权限、语句权限和隐含权限。17.用户对数据进行添加、修改和删除时,自动执行的存储过程称为触发器。18.对数据进行统计时,求最大值的函数是MAX()。19.还原是指将数据库备份加载到服务器中的过程,在SQLServer中有三种数据库的还原模型,分别是简单还原、完全还原、批日志还原。20.DTS是指数据转换服务。21.在给数据库改名之前,必须设置数据库处于单用户状态。22.在一个表中主键的个数为:1。23.在SQLServer2005中,索引的顺序和数据表的物理顺序相同的索引是聚集索引。24.角色是一组用户所构成的组,可以分为服务器角色和数据库角色。25.触发器有3种类型,即INSERT类型、UPDATE类型和DELETE类型。26.如果要计算表中的行数,可以使用聚合函数COUNT()。27.在SQLServer2005中修改表的结构应使用关键字ALTER,修改表中的数据应使用关键字UPDATE。28.SQLServer是作为Windows系统的一个服务运行的,用户可以启动、暂停或停止它。29.在SQLServer2005中,约束定义关于列中允许值的规则,是强制实施完整性的标准机制。使用约束优先于使用DML触发器、规则。约束有非空约束、缺省约束、主键约束、外键约束、检查约束和唯一约束等6种类型。30.对象权限是指用户基于数据库对象层次上的访问和操作权限,共有5种:SELECT、INSERT、DELETE、UPDATE(或:更新)和EXECUTE(或:执行)。&&&&31.UNION可以把两个或多个SELECT语句的查询结果组合成一个结果集,使用时要求所有SELECT语句的列数应相同,对应列的数据类型相容。32.事务是指一个操作序列,这些操作序列要么都被执行,要么都不被执行。33.差异备份只记录自上次完整数据库备份后发生更改的数据。34.在SELECT语句的FROM子句中最多可以指定256个表或视图,相互之间要用逗号分隔;当所查询的表不在当前数据库时,可用数据库.所有者名称.对象名称格式来指出表或视图对象。35.删除表命令是:droptable。36.计算字段的累加和的函数是:Sum()。37.在SQLServer2005中,一个批处理语句是以GO结束的。38.如果要计算表中数据的平均值,可以使用的聚合函数是AVG()。39.在SQLServer2005中,每个数据表最多有1024个列;最多有1个簇式索引。40.在一个复合索引中最多可以有16个关键字。41.SQLServer使用各数据库的事务日志来恢复事务。42.在创建一个表的过程中,如果包含REFERENCES子句,则表示在表中建立参照性约束。43.可以通过INSERT语句,向表中添加新的纪录或在记录中插入部分字段的数据。44.可以在INSERT子句中指定列名,Values字句中的数据项与指定的列名相对应,没有列出的字段必须具有允许NULL、Timestamp、IDENTITY、Default四种定义的条件之一。45.T-SQL语言中数据的检索是通过SELECT语句及与其他一系列子句配合来完成的。46.在SELECT命令中,GROUPBY子句可依字段类别总计函数处理查询结果;而将查询结果以某字段或运算值数据排序条件的子句是ORDERBY。47.为了简便处理,我们可以为表名赋予别名,以减少代码量。使用别名时不能同时使用表名,字段名的格式。48.在UNION操作中,如果不指明ALL子句将删除重复行。49.UNION子句可以出现在INSERT、SELECT语句中。但是不能出现在CREATEVIEW语句内或子内。50.当向数据表中插入数据时,如果没有明确的提供输入值时,SQLServer自动为该列输入指定值,则约束的类型为DEFAULT。51.通过逻辑表达式判断限制插入到列中的值的强制约束类型为CHECK。52.允许主键上有空值,但不允许主键上有重复值的强制类型约束为UNIQUE。53.DEFAULT约束,只在执行INSERT语句时作用。54.在创建DEFAULT约束时,SQLServer将对表中现有的数据进行完整性验证。55.CHECK约束在执行INSERT语句或UPDATE语句时起作用。56.在向表中添加强制性约束时,应当在ALTERTABLE命令中使用ADDCONSTRAINT子句。57.必须是表的所有者,才能执行CREATEINDEX语句来创建索引。58.视图可以在不同数据库中的不同表上建立,一个视图最多可以引用1024个字段。59.视图隐蔽了数据库设计的复杂性,这使得开发者可以在不影响用户使用数据库的情况下改变数据库内容。60.建立视图之后,可以简化数据库管理,如可以通过GRANT命令为各种用户授予在视图上的操作权限。61.用户可以通过执行系统存储过程sp_helptext查看视图的定义信息。62.视图的修改和数据库中表的修改一样,视图的修改也是由ALTER语句来完成的;视图的删除也与表的删除类似,可以通过DROP语句来实现。63.存储过程在第一次执行时进行语法检查和编译。64.不能将CREATEPROCEDURE语句与其他SQL语句组合到单个批处理中,每一个批处理就是一个GO语句段。65.存储过程只能在当前数据库中创建。66.为了定义接受输入参数的存储过程,需要在CREATEPROCEDURE语句中生命一个或多个变量作为参数。67.创建存储过程时,参数的默认值必须是常量或NULL。68.在存储过程中,为了输出参数,需要在CREATEPROCEDURE语句中指定OUTPUT关键字。69.可以通过CreateTrigger语句来创建触发器。&&&&70.在触发器被执行的同时,取消触发器的SQL语句的操作,需要使用INSTEADOF关键字实现。71.CHECK约束只能根据逻辑表达式或同一表中的另外一列来验证列值。如果应用要求根据另一个表中的列验证列值,则必须使用触发器。72.SQLServer用DECLARE语句声明变量。73.使用T-SQL语句创建SQLServer账号,需要用到系统存储过程sp_addlogin。74.与权限管理相关的T-SQL语句有三个:GRANT、REVOKE和DENY。75.使用BACKUPDATABASE命令可以对数据库进行完全拷贝的备份。76.使用RESTOREDATABASE命令可以对数据库进行还原。&&&&二、简答题&&&&1、简述视图的概念和优点?(1)概念:视图是从一个或多个表(或视图)导出的虚表,是根据用户观点所定义的数据库结构。视图与表不同,它所对应的数据不进行实际存储,在数据库中只存储视图的定义(一组符合用户需求的SQLSELECT语句)。(2)优点:1)为用户集中数据,简化用户的数据和处理;2)屏蔽数据库的复杂性;3)简化用户权限的管理,增加了安全性;4)便于数据共享;5)为数据库重构提供一定的逻辑独立性。2、列出SQLServer2005中常见的数据库对象。数据库对象主要包括表、视图、索引、存储过程、触发器和约束等。3、什么是索引?索引分为哪两种?(1)索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标志这些值的数据页的逻辑指针清单。索引是依赖于表建立的,它提供了数据库中编排表中数据的内部方法。一个表的存储是由两部分组成的,一部分是用来存放表的数据页面,另一部分存放索引页面。从某种程度上,可以把数据库看作一本书,把索引看作书的目录,通过目录查找书中的信息,显然较没有目录的书方便、快捷。(2)聚集索引和非聚集索引。4、创建索引有什么优点和缺点?(1)优点:索引在数据库中的作用类似于目录在书籍中的作用,用来提高查找信息的速度。使用索引查找数据,无需对整表进行扫描,可以快速找到所需数据。另一方面,通过创建唯一性索引,可以保证每一行数据的唯一性。(2)缺点:索引需要占用数据表以外的物理存储空间。创建索引和维护索引要花费一定的时间。当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。5、修改视图中的数据会受到哪些限制?(1)必须有权限;(2)单表视图可直接修改;(3)多表可在视图中定义insteadof触发器;(4)对由多表连接成的视图修改数据时,不能同时影响一个以上的基表,也不能删除视图中的数据;(5)对视图上的某些列不能修改,这些列是:计算列、内置函数列和行集合函数列;(6)对具有NOTNULL的列进行修改时可能会出错;通过视图修改或者插入数据时,必须保证未显示的具有NOTNULL属性的列有值,可以是默认值、IDENTITY等,否则不能向视图中插入数据行;(7)如果某些列因为规则或者约束的限制不能接受从视图插入的数据时,则插入数据可能会失败;(8)删除基表并不删除视图,建议采用与表明显不同的名字命名规则。6、什么是数据完整性?主要作用是什么?数据完整性(DataIntegrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。主要作用是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息。7、数据完整性有哪几类?数据完整性分为四类:实体完整性(EntityIntegrity)、域完整性(DomainIntegrity)、参照完整性(ReferentialIntegrity)、用户定义的完整性(User-definedIntegrity)。8、什么是主键约束?什么是惟一约束?两者有什么区别?(1)主键约束:有一列或列的组合,其值能唯一的标识表中的每一行。(2)唯一约束:不允许数据库表在指定列上具有相同的值,但允许有空值。(3)区别:一个表可以定义多个唯一约束,只能定义一个主键约束;允许空值的列上&&&&可以定义唯一约束,不能定义主键约束。9、什么是存储过程?存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,它是数据库中的一个重要对象。用户通过指定存储过程的名字并给出参数(如果带有参数)来执行它。10、什么是触发器?触发器有什么作用?触发器是数据库服务器中发生事件时自动执行的特种存储过程。触发器经常用于加强数据的完整性约束和业务规则等,利用触发器可以方便地保持数据库中数据的完整性。11、简述INSERT触发器的工作原理当向表中插入数据时,INSERT触发器触发执行。当INSERT触发器触发时,新的记录增加到触发器表中和inserted表中。inserted表是逻辑表,该保存了所插入记录的拷贝,允许用户参考INSERT语句中的数据。触发器可以检查inserted表,来确定该触发器的操作是否应该执行和如何执行。在inserted表中的那些记录,总是触发表中一行或多行记录的冗余。12、用户权限的种类有哪些?各自的作用?①对象权限、作用:决定用户对数据库对象所执行的操作,包括用户对数据库中的表、视图、列或存储过程等对象的操作权限②语句权限、作用:决定用户能否操作数据库和创建数据库对象③隐含权限、作用:控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。&&&&三、阅读题&&&&1、阅读下面的程序段,然后简述该程序段所完成的功能。BeginWaitfortime’15:43’CreateViewmy_viewAsSelectorder_date,book_number,book_idFromorderformWherebook_number!&25End该程序段的功能是:。答:系统在15:为orderform表中订购数量book_number大于25本的订购信息的order_date、43book_number和book_id三个字段创建一个名为my_view的视图。2、下面程序段的功能是:在数据库中判断是否存在名为my_proc的存储过程,若存在,则删除之,然后创建同名的存储过程,该存储过程的功能是向book表的book_id、book_name、price和publisher字段插入数据。阅读并回答以下问题:UsebookdbGoIfExists(SelectnameFrom①Wherename=‘my_proc’AndType=‘②’)DropProcmy_procGoCreateProcmy_proc@aint,@bchar(50),@cfloat,@dpublisher③InsertIntostudent(book_id,book_name,price,publisher)Values(@a,@b,@c,@d)Go:(1)填写该段中空白处的内容:①Sysobjects②P③As(2)任写一条调用该存储过程的语句:。答:(1)①Sysobjects②P③As(2)Execmy_proc7,‘SQLServer2000教程’,38,‘北京科海集团公司’或Execmy_proc@a=7,@b=‘SQLServer2000教程’,@c=38,@d=‘北京科海集团公司’&&&&四、编程题&&&&(一)、有一个“学生-课程”数据库,数据库中包括三个表:(1)“学生”表Student由(Sno)、(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为:Student(Sno,Sname,Ssex,Sage,Sdept)Sno为关键字。(2)“课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为:Course(Cno,Cname,Cpno,Ccredit)Cno为关键字。(3)“学生选课”表SC由(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为:SC(Sno,Cno,Grade)(SNO,CNO)为关键字。完成下列操作:1、请把其中建立“学生”表Student的语句写下来,其中属性不能为空,并且其值是唯一的。2、在student表中查询Sdept是‘’的学生的所有信息,并按Sno降序排列。3、在以上三个表中Ccredit为5并且Grade大于60的学生的、和性别。4、Course表创建一个名称为my_trig的触发器,为当用户成功删除该表中的一条或多条记录时,触发器自动删除SC表中与之有关的记录。(注:在创建触发器之前要判断是否有同名的触发器存在,若存在则删除之。)1、CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20),SsexCHAR(1),SageINT,SdeptCHAR(15));2、Select*FromstudentWhereSdept=’计算机’OrderBySnoDesc3、方法1:方法:Selectstudent.Sno,Sname,SsexFromstudent,course,scWhere(student.Sno=sc.Sno)o)And(course.Ccredit=5)And(sc.Grade&60)方法2::Selectstudent.Sno,oOnstudent.Sno=sc.SnoWhere(course.Ccredit=5)And(sc.Grade&60)4、IfExists(SelectnameFromsysobjectsWherename=‘my_trig’AndType=‘tr’)DropTriggermy_trigGoCreateTriggermy_trigOnCourseForDeleteAsDeleteFromscWhereSnoIn(SelectSnoFromdeleted)Go(二)数据库中包括三个表student表(学生表)性别年龄系别120李明男系219张然女经管系318许晴女电子系course表(课程表)课程号课程名1SQLServer2VB3专业英语sc表(选课表)学分432&&&&课程号成绩33701、把course表中课程号为2的课程的学分修改为4。2、在student表中查询年龄大于18的学生的所有信息,并按降序排列。3、在以上三个表中选的课程的“学分”为4,并且成绩大于80的学生的、和性别。4、创建一存储过程GetDetailByName,通过输入参数学生(如“张然"),筛选出该学生的基本信息,对不存在此学生的输入值,必须作一检测,打印信息“不存在此学生”。1、UpdatecourseSet学分=4Where课程号=22、Select*FromstudentWhere年龄&18OrderByDesc3、方法1:方法:SelectDistinctstudent.,,性别Fromstudent,course,scWhere(student.=sc.)And(course.课程号=sc.课程号)And(course.学分=4)And(sc.成绩&80)方法2::SelectDistinctstudent.,,性别FromstudentInnerJoinscInnerJoincourseOncourse.课程号=sc.课程号Onstudent.=sc.Where(course.学分=4)And(sc.成绩&80)4、CreateProcedureGetDetailByName@Namenvarchar(10)ASIF(SELECTCount(*)FROMstudentWHERE=@Name)&0Select*FromstudentWhere=@NameELSEPrint'警示:不存在为'+@Name+'的学生'(三)、查询设计某个学籍数据库有如下表结构:学生(,,性别,出生日期,班级)课程(课程号,课程名称,课程类别,课时)选课(,课程号,成绩)请完成下列查询要求。1.查询出“软件041”班的所有男生的和。2.查询出课程名称中含有“语言”一词的课程的所有信息。3.查询出“C语言”课程成绩前5名的学生的、和班级。4.查询出各班级学生人数。5.出“应用基础”课程成绩高于张三同学此门课程成绩的学生的和。1.SELECT,FROM学生WHERE班级=‘软件041’AND性别=‘男’2.SELECT*FROM课程WHERE课程名称LIKE‘%语言%’3.SELECTTOP5学生.,,班级FROM学生JOIN选课ON学生.=选课.JOIN课程ON课程.课程号=选课.课程号WHERE课程名称=‘C语言’ORDERBY成绩DESC4.SELECT班级,COUNT(*)AS人数FROM学生GROUPBY班级&&&&5.SELECT学生.,FROM学生JOIN选课ON学生.=选课.JOIN课程ON课程.课程号=选课.课程号WHERE课程名称=‘计算机应用基础’AND成绩&(SELECT成绩FROM学生JOIN选课ON学生.=选课.JOIN课程ON课程.课程号=选课.课程号WHERE课程名称=‘应用基础’AND=‘张三’)&&&&五、综合应用题&&&&(一)、学生选课系统,主要表有:学生表(、、性别、专业、出生年月等),选课表(学号、课程号、分数),课程表(课程号、课程名、所属专业、学分)要求:1、写出SQL语句。1)查询所有选“SQL课程”的学生,和专业。2)删除所有选择“数学”的同学的选课记录。3)查询有哪些课程没有被任何同学报选。2、创建存储过程。1)、能够出选修任何课程的学生信息及相应的分数。2)、以表格的形式返回本课程的平均分数。3、在课程表中增加“No_id”字段,数据类型char(12),不可空,并将其设定为UNIQUE约束,写出其命令语句。答:1、1)SELECT,,专业FROM学生表A,选课表B,课程表CWHEREA.=B.ANDB.课程号=C.课程号ANDC.课程名='SQL'或SELECT,,专业FROM学生表WHEREIN(SELECTFROM选课表WHERE课程号=(SELECT课程号FROM课程表WHERE课程名=‘SQL课程’))2)DELETEFROM选课表WHERE课程号IN(SELECT课程号FROM课程表WHERE课程名=‘数学’)3)SELECT*FROM课程表WHERE课程号NOTIN(SELECTDISTINCT课程号FROM选课表)2、(1)CREATEPROCEDURExc_info@knamechar(16)ASSELECTa.*,b.分数FROM学生表aINNERJOIN选课表bONa.=b.WHEREb.课程号=(SELECT课程号FROM课程表WHERE课程名=@kname)(2)CREATEPROCEDURExca_info@knamechar(16)ASSELECTAvg(分数)FROM选课表WHERE课程号=(SELECT课程号FROM课程表WHERE课程名=@kname)GROUPBY课程号3、ALTERTABLE课程表&&&&ADDNo_idCHAR(12)NOTNULLCONSTRAINTtable_uniqueUNIQUE(二)、根据下面某教学管理数据库的表结构,完成下面的程序填空题。教师(职工号,,学历,职称)课程(课程号,课程名称,课程类别)任课(职工号,课程号,周课时)1.补填下面的存储过程的定义,使其被调用时,能根据调用提供的教师使用输出参数返回该教师任课的课程数。CREATEPROCEDURE按教师查询任课课程数@VARCHAR(10),@课程数INT_____________________ASSELECT_____________________FROM教师JOIN任课ON教师.职工号=任课.职工号WHERE_____________________2.完成下面的触发器的定义,当向任课表中插入记录时,触发器能判断若插入的记录使该教师的任课周课时总计超过20,则回滚插入操作。CREATETRIGGER添加教学任务ON任课AFTERINSERTASDECLARE@总课时INTSELECT@总课时=SUM(任课.周课时)FROM任课JOIN_____________________IF@总课时&20_____________________答:1.OUTPUT;@课程数=COUNT(*);=@2.insertedON任课.职工号=inserted.职工号;ROLLBACKTransaction(三)、根据所给的商品库和教学库,按照下列所给的每条SQL查询语句写出相应的功能,或者按照下列所给的每种功能写出相应的SQL语句。在名称为商品库的数据库中包含有商品表1和商品表2,它们的定义分别为:商品表1(商品代号char(8),分类名char(8),单价float,数量int)商品表2(商品代号char(8),产地char(6),品牌char(6),)在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:学生(学生号char(7),char(6),性别char(2),出生日期datetime,专业char(10),年级int)课程(课程号char(4),课程名char(10),课程学分int选课(学生号char(7),课程号char(4),成绩int)1.SelectDistinct产地From商品表22.Select*From学生Where学生号In(Select学生号from选课GroupBy学生号HavingCount(*)=1)3.Select*From学生Where学生号In(Select学生号From选课GroupBy学生号HavingCount(*)&=2)ORNOTExists&&&&(Select*From选课Where学生.学生号=选课.学生号)4.从商品库中查询出每类(即分类名相同)商品的最高单价。5.从教学库中查询出至少选修了为@m1学生所选课程中一门课的全部学生。答:1.从商品库中查询出所有商品的不同产地。2.从教学库中查询出只选修了一门课程的全部学生。3.从教学库中出最多选修了2门课程(含未选任何课程)的全部学生。4.Select分类名,Max(单价)As最高单价From商品表1GroupBy分类名5.SelectDistinct学生.*From学生,选课Where学生.学生号=选课.学生号And课程号=Any(Select课程号From学生,选课Where学生.学生号=选课.学生号And=@m1)&&&&
上一篇资讯:
下一篇资讯:
文章排行榜}

我要回帖

更多关于 sql 完整性约束 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信