一单词解释(2分/个)34分Data数据Database数据库RDBMS关系数据库管理系统GRANT授权REVOKE取消权限DENY拒绝权限DECLARE定义变量PROCEDURE存储过程事务Transaction触发器TRIGGER继续continue唯一unqiue主键primarykey标识列identity外键foreignkey检查check约束constraint二编写SQL语句(5分/题)50分(包含笔试题问题和解答答案)1)创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话Createtablestu(学号int,姓名varchar(8),年龄int,性别varchar(4),家庭地址varchar(50),联系电话int);2)修改学生表的结构,添加一列信息,学历Altertablestuadd学历varchar(6);3)修改学生表的结构,删除一列信息,家庭住址Altertablestudropcolumn家庭地址4)向学生表添加如下信息:学号姓名年龄性别联系电话学历1A22男123456小学2B21男119中学3C23男110高中4D18女114大学Insertintostuvalues(1,’A’,22,’男’,123456,’小学’)Insertintostuvalues(2,’B’,21,’男’,119,’中学’)Insertintostuvalues(3,’C’,23,’男’,110,’高中’)Insertintostuvalues(4,’D’,18,’女’,114,’大学’)5)修改学生表的数据,将电话号码以11开头的学员的学历改为“大专”Updatestuset学历=’大专’where联系电话like‘11%’6)删除学生表的数据,姓名以C开头,性别为‘男’的记录删除Delectfromstuwhere性别=’男’and姓名like‘c%’7)查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来Select姓名,学号fromstuwhere年龄22and学历=’大专’8)查询学生表的数据,查询所有信息,列出前25%的记录Selecttop25percent*fromstu9)查询出所有学生的姓名,性别,年龄降序排列Select姓名,性别fromstuorderby年龄desc10)按照性别分组查询所有的平均年龄Selectavg(年龄)fromstugroupby性别三填空(3分/题)36分(包含笔试题问题和解答答案)1)索引分为__聚集索引___和__非聚集索引__在一张表上最多可以创建1个聚集索引_索引。但是可以创建_249个非聚集索引索引。2)系统存储过程_sp-helptext__是用来显示规则,默认值,未加密的存储过程,用户定义函数,触发或视图的文本3)事务开始:beginTransction提交事务:commitTransction回滚事务:rollbackTransction四问答题(5分/题)60分(包含笔试题问题和解答答案)1)数据库包含哪些那几种后缀名的文件必须,这些文件分别存放在什么的信息?主要数据文件(.mdf)包含数据用户收集的信息,还有数据库其他相关的信息,日志数据文件(.ndf)存放用户对数据库的增删改查的信息,用于备份恢复使用2)TRUNCATETABLE命令是什么含义?和Deletefrom表名有什么区?TRUNCATETABLE:提供了一种删除表中所有记录的快速方法Deletefrom表名:可以删除表的一个或多条记录3)说出以下聚合数的含义:avg,sum,max,min,count,count(*)AVG:求平均值SUM:求和MAX:求最大值MIN:求最小值COUNT(*):返回所有行数COUNT返回满足指定条件的记录值4)innerjoin是什么意思?作用是什么?写出基本语法结构INNERJOIN内联接,用于返回两个表中要查询的列数据通信Select*from表名1innerjoin表名2on条件表达式5)左向外联接,右向外联接,全联接的关健字如何写?Leftouterjoin左向外联接Rightouterjoin右向外联接Fullouterjoin全联接6)子查询分为几类,说明相互之间的别了查询分三种基本子查询:1.使用in查询返回一列或更多值2.比较运算符,返回单个值勤做为外查询的参数3.用exists查询时相当于进行一次数据测试7)实现实体完整性,实现域完整性,实现完整性(引用完整性),实现自定义完整性分别使用什么手段?实现实体完整性:主键约束唯一约束标识列实现域完整性:默认值约束检查约束非空属性引和完整性:外键引用8)视图可以更新吗?会影响到实际表吗?视图是可以更新的,视图只是基于基本表上的虚拟表,对视图的更新会直接影响到实际表9)谈谈这样几个角色,dbo,SysadminpublicDbo:是数据库的拥有者,对数据库拥有所有操作的权限Sysadmin:可以对SQLSERVER执行任何活动Public:自动创建的,能捕获数据库中用户的所有默认权限10)何为动态游标?何为静态游标?动态游标与静态游标相对,反映结果集中所做的所有更改,静态游标的结果集在游标打开时,建立在tempdb中,总按照游标打开时的原样显示11)什么是存储过程?为什么存储过程要比单纯的Sql语句执行起来要快?存储过程:是一组预先编译好的T-SQL代码在创建存储过程时经过了语法和性能优化,执行不必重复的步骤,使用存储过程可提高运行效率12)什么是Inserted表?什么是Deleted表?Inserted表用于存储inserted和update语句影响的副本Deleted表用于存储delect和update语句影响的行的副本1、怎么把下面的表yearmonthamount199111.1199121.2199131.3199141.4199212.1199222.2199232.3199242.4查成这样一个结果yearm1m2m3m419911.11.21.31.419922.12.22.32.4解一:select[year],(selectamountfromtabtwhere[month]=1andt.year=tab.year)as'm1',(selectamountfromtabtwhere[month]=2andt.year=tab.year)as'm2',(selectamountfromtabtwhere[month]=3andt.year=tab.year)as'm3',(selectamountfromtabtwhere[month]=4andt.year=tab.year)as'm4'fromtabgroupby[year]解二:selectt1.year,t1.amountas'm1',t2.amountas'm2',t3.amountas'm3',t4.amountas'm4'fromtabt1,tabt2,tabt3,tabt4,wheret1.montht2.monthandt2.montht3.monthandt3.montht4.monthandt1.year=t2.yearandt2.year=t3.yearandt3.year=t4.year2、用一条SQL语句查询出每门课都大于80分的学生姓名namekechengfenshu张三语文81张三数学75李四语文76李四数学90王五语文81王五数学100王五英语90解:selectdistinct[name]fromstudentwhere[name]notin(selectdistinct[name]fromstudentwherefenshu=80)createtabledept(deptnovarchar(10)primarykey,dnamevarchar(10));createtableemp(empnovarchar(10)primarykey,enamevarchar(10),jobvarchar(10),mgrvarchar(10),salvarchar(10),deptnovarchar(10)referencesdept(deptno));droptabledept;droptableemp;insertintodeptvalues('1','事业部');insertintodeptvalues('2','销售部');insertintodeptvalues('3','技术部');insertintoempvalues('01','jacky','clerk','tom','1000','1');insertintoempvalues('02','tom','clerk','','2000','1');insertintoempvalues('07','biddy','clerk','','2000','1');insertintoempvalues('03','jenny','sales','pretty','600','2');insertintoempvalues('04','pretty','sales','','800','2');insertintoempvalues('05','buddy','jishu','canndy','1000','3');insertintoempvalues('06','canndy','jishu','','1500','3');select*fromdept;select*fromemp;--1列出emp表中各部门的部门号,最高工资,最低工资selectdeptnoas部门号,max(sal)as最高工资,min(sal)as最低工资fromempgroupbydeptno;--2列出emp表中各部门job为'CLERK'的员工的最低工资,最高工资selectmax(sal)as最高工资,min(sal)as最低工资,deptnoas部门号fromempwherejob='clerk'groupbydeptno;--3对于emp中最低工资小于2000的部门,列出job为'CLERK'的员工的部门号,最低工资,最高工资selectb.deptnoas部门号,max(sal)as最高工资,min(sal)as最低工资fromempasbwherejob='clerk'and(selectmin(sal)fromempasawherea.deptno=b.deptno)2000groupbyb.deptno;--4根据部门号由高而低,工资有低而高列出每个员工的姓名,部门号,工资selectenameas姓名,deptnoas部门号,salas工资fromemporderbydeptnodesc,salasc;--5列出'buddy'所在部门中每个员工的姓名与部门号selectb.enameas姓名,b.deptnoas部门号fromempasbwhereb.deptno=(selecta.deptnofromempasawherea.ename='buddy');--6列出每个员工的姓名,工作,部门号,部门名selectenameas姓名,jobas工作,dept.deptnoas部门号,dept.dnameas部门名fromemp,deptwhereemp.deptno=dept.deptno;--7列出emp中工作为'CLERK'的员工的姓名,工作,部门号,部门名selectenameas姓名,jobas工作,dept.deptnoas部门号,dept.dnameas部门名fromemp,deptwhereemp.deptno=dept.deptnoandjob='clerk';--8对于emp中有管理者的员工,列出姓名,管理者姓名(管理者外键为mgr)selecta.deptnoas部门号,a.enameas员工,b.enameas管理者fromem