SQL_面试笔试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一单词解释(2分/个)34分
Data数据Database数据库RDBMS关系数据库管理系统GRANT授权
REVOKE取消权限DENY拒绝权限DECLARE定义变量PROCEDURE存储过程
事务Transaction触发器TRIGGER继续continue唯一unqiue
主键primary key标识列identity外键foreign key检查check
约束constraint
二编写SQL语句(5分/题)50分(包含笔试题问题和解答答案)
1)创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话
Create table stu(学号int,
姓名varchar(8),
年龄int,
性别varchar(4),
家庭地址varchar(50),
联系电话int
);
2)修改学生表的结构,添加一列信息,学历
Alter table stu add学历varchar(6);
3)修改学生表的结构,删除一列信息,家庭住址
Alter table stu drop column家庭地址
4)向学生表添加如下信息:
学号姓名年龄性别联系电话学历
1A22男123456小学
2B21男119中学
3C23男110高中
4D18女114大学
Insert into stu values(1,’A’,22,’男’,123456,’小学’)
Insert into stu values(2,’B’,21,’男’,119,’中学’)
Insert into stu values(3,’C’,23,’男’,110,’高中’)
Insert into stu values(4,’D’,18,’女’,114,’大学’)
5)修改学生表的数据,将电话号码以11开头的学员的学历改为“大专”
Update stu set学历=’大专’where联系电话like‘11%’
6)删除学生表的数据,姓名以C开头,性别为‘男’的记录删除
Delect from stu where性别=’男’and姓名like‘c%’
7)查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号示出来Select姓名,学号from stu where年龄<22and学历=’大专’
8)查询学生表的数据,查询所有信息,列出前25%的记录
Select top25percent*from stu
9)查询出所有学生的姓名,性别,年龄降序排列
Select姓名,性别from stu order by年龄desc
10)按照性别分组查询所有的平均年龄
Select avg(年龄)from stu group by性别
三填空(3分/题)36分(包含笔试题问题和解答答案)
1)索引分为__聚集索引___和__非聚集索引__在一张表上最多可以创建1个聚集索引_索引。但是可以创建_249个非聚集索引索引。
2)系统存储过程_sp-helptext__是用来显示规则,默认值,未加密的存储过程,用户定义函数,触发或视图的文本
3)事务开始:Begin Transaction
提交事务:Commit Transaction
回滚事务:Rollback Transaction
四问答题(5分/题)60分(包含笔试题问题和解答答案)
1)数据库包含哪些那几种后缀名的文件必须,这些文件分别存放在什么的信息?
主要数据文件(.mdf)包含数据用户收集的信息,还有数据库其他相关的信息,
日志数据文件(.ndf)存放用户对数据库的增删改查的信息,用于备份恢复使用
2)TRUNCATE TABLE命令是什么含义?和Delete from表名有什么区?
TRUNCATE TABLE:提供了一种删除表中所有记录的快速方法
Delete from表名:可以删除表的一个或多条记录
3)说出以下聚合数的含义:avg,sum,max,min,count,count(*)
AVG:求平均值
SUM:求和
MAX:求最大值
MIN:求最小值
COUNT(*):返回所有行数
COUNT返回满足指定条件的记录值
4)inner join是什么意思?作用是什么?写出基本语法结构
INNER JOIN内联接,用于返回两个表中要查询的列数据通信
Select*from表名1inner join表名2on条件表达式
5)左向外联接,右向外联接,全联接的关健字如何写?
Left outer join左向外联接
Right outer join右向外联接
Full outer join全联接
6)子查询分为几类,说明相互之间的别
了查询分三种基本子查询: 1.使用in查询返回一列或更多值
2.比较运算符,返回单个值勤做为外查询的参数
3.用exists查询时相当于进行一次数据测试
7)实现实体完整性,实现域完整性,实现完整性(引用完整性),实现自定义完整性分别使用什么手段?实现实体完整性:主键约束唯一约束标识列
实现域完整性:默认值约束检查约束非空属性
引和完整性:外键引用
8)视图可以更新吗?会影响到实际表吗?
视图是可以更新的,视图只是基于基本表上的虚拟表,对视图的更新会直接影响到实际表
9)谈谈这样几个角色,dbo,Sysadmin public
Dbo:是数据库的拥有者,对数据库拥有所有操作的权限
Sysadmin:可以对SQL SERVER执行任何活动
Public:自动创建的,能捕获数据库中用户的所有默认权限
10)何为动态游标?何为静态游标?
动态游标与静态游标相对,反映结果集中所做的所有更改,
静态游标的结果集在游标打开时,建立在tempdb中,总按照游标打开时的原样显示
11)什么是存储过程?为什么存储过程要比单纯的Sql语句执行起来要快?
存储过程:是一组预先编译好的T-SQL代码
在创建存储过程时经过了语法和性能优化,执行不必重复的步骤,使用存储过程可提高运行效率
12)什么是Inserted表?什么是Deleted表?
Inserted表用于存储inserted和update语句影响的副本
Deleted表用于存储delect和update语句影响的行的副本