SQL经典面试笔试题含答案

上传人:小*** 文档编号:145123825 上传时间:2020-09-16 格式:DOCX 页数:35 大小:28.14KB
返回 下载 相关 举报
SQL经典面试笔试题含答案_第1页
第1页 / 共35页
SQL经典面试笔试题含答案_第2页
第2页 / 共35页
SQL经典面试笔试题含答案_第3页
第3页 / 共35页
SQL经典面试笔试题含答案_第4页
第4页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《SQL经典面试笔试题含答案》由会员分享,可在线阅读,更多相关《SQL经典面试笔试题含答案(35页珍藏版)》请在金锄头文库上搜索。

1、1、 存储过程的优点?存储过程:存储过程就是编译好了的一些sql语句。 存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。 可保证数据的安全性和完整性。通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。 可以降低网络的通信量。存储过程主要是在服务器上运行,减少对客户机的压力。 存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因。 存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。 2、 什么是触发器以及触发器的分类?触发

2、器:当满足触发器条件,则系统自动执行触发器的触发体。 触发时间:有before,after。 触发事件:有insert,update,delete三种。 触发类型:有行触发、语句触发。3、 内联接,外联接的区别?内连接是保证两个表中所有的行都要满足连接条件,而外连接则不然。在外连接中,某些不满条件的列也会显示出来,也就是说,只限制其中一个表的行,而不限制另一个表的行。分左连接、右连接、全连接三种。4、 索引的作用?和它的优点缺点是什么?答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的

3、,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。5、 假如有下面3个表: S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号,学员姓名,所属单位,学员年龄 C(C#,CN)C#,CN分别代表课程编号,课程名称 SC(S#,C#,G) S#,C#,G分别代表学号,所选的课程编号,学习成绩(1)使用标准SQL嵌套语句查询选修课程名称为税收基础的学员学号和姓名?答案:select s# ,sn from s where S# in(select S# from c,sc where c.c#=sc.c# and cn=税收基础) (2)

4、使用标准SQL嵌套语句查询选修课程编号为C2的学员姓名和所属单位?答:select sn,sd from s,sc where s.s#=sc.s# and sc.c#=c2 (3) 使用标准SQL嵌套语句查询不选修课程编号为C5的学员姓名和所属单位?答:select sn,sd from s where s# not in(select s# from sc where c#=c5)(4)查询选修了课程的学员人数答:select 学员人数=count(distinct s#) from sc (5) 查询选修课程超过5门的学员学号和所属单位?答:select sn,sd from s whe

5、re s# in(select s# from sc group by s# having count(distinct c#)5)6、 NULL是什么意思?NULL(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头,您也不要觉得意外。NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。对NULL这个值的任何比较都会生产一个NULL值。不能把任何值与一个 UNKNOWN值进行比较,并在逻辑上希望获得一个答案。所以必须使用IS NULL操作符。7、 列举几种表连接方式?等值连接(内连接)、非等值连接、自连接、外连接(左、右、全)。8、 SQL调优最

6、关注的是什么?检查系统的I/O消耗。9、 SQL语句中修改表结构的命令是_C_。A、MODIFY TABLE B、MODIFY STRUCTURE C、ALTER TABLE D、ALTER STRUCTURE10、 从数据库中删除表的命令是_。A、DROP TABLE B、ALTER TABLE C、DELETE TABLE D、USE11、 DELETE FROM S WHERE 年龄60语句的功能是_A_。A、从S表中彻底删除年龄大于60岁的记录 B、S表中年龄大于60岁的记录被加上删除标记C、删除S表 D、删除S表的年龄列12、 SELECT-SQL语句是_B_。A、选择工作区语句 B

7、、数据查询语句 C、选择标准语句 D、数据修改语句13、 SQL语言是_C_语言。A、层次数据库 B、网络数据库 C、关系数据库 D、非数据库14、 在SQL中,删除视图用_C_。A、DROP SCHEMA命令 B、CREATE TABLE命令 C、DROP VIEW命令 D、DROP INDEX命令15、 用一条SQL语句查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三 语文 81张三 数学 75李四 语文 76李四 数学 90王五 语文 81王五 数学 100王五 英语 90答案:select distinct name from table where n

8、ame not in (select distinct name from table where fenshu=80)16、 学生表 如下:自动编号 学号 姓名 课程编号 课程名称 分数1 2005001 张三 0001 数学 692 2005002 李四 0001 数学 893 2005001 张三 0001 数学 69删除除了自动编号不同,其他都相同的学生冗余信息答案:delete tablename where 自动编号 not in(select min(自动编号) from tablename group by 学号,姓名,课程编号,课程名称,分数)17、 一个叫team的表,里面

9、只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球队,现在四个球队进行比赛,用一条sql语句显示所有可能的比赛组合?答:select a.name, b.name from team a, team b where a.name b.name18、 怎么把这样一个表儿year month amount1991 1 1.11991 2 1.21991 3 1.31991 4 1.41992 1 2.11992 2 2.21992 3 2.31992 4 2.4查成这样一个结果year m1 m2 m3 m41991 1.1 1.2 1.3 1.41992 2.1 2.2 2.

10、3 2.4 答案:select year, (select amount from aaa m where month=1 and m.year=aaa.year) as m1,(select amount from aaa m where month=2 and m.year=aaa.year) as m2,(select amount from aaa m where month=3 and m.year=aaa.year) as m3,(select amount from aaa m where month=4 and m.year=aaa.year) as m4from aaa gr

11、oup by year19、 编写SQL:有两个表A和B,均有key和value两个字段,如果B的key在A中也有,就把B的value换为A中对应的value。答案:update b set b.value=(select a.value from a where a.key=b.key) where b.id in(select b.id from b,a where b.key=a.key);20、 编写SQL语句1) 创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话答案:Create table stu (学号 int ,姓名 varchar(8),年龄 int,

12、性别 varchar(4),家庭地址 varchar(50),联系电话 int);2) 修改学生表的结构,添加一列信息,学历答案:Alter table stu add 学历 varchar(6);3) 修改学生表的结构,删除一列信息,家庭住址答案:Alter table stu drop column 家庭地址4) 向学生表添加如下信息:学号 姓名年龄性别联系电话学历1 A 22男123456小学2 B 21男119中学3 C 23男110高中4 D 18女114大学答案:Insert into stu values(1,A,22,男,123456,小学)Insert into stu va

13、lues(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岁的,学历为“大专”的,学生的姓名和学号示出来答案:Selec

14、t 姓名,学号 from stu where 年龄22 and 学历=大专8) 查询学生表的数据,查询所有信息,列出前25%的记录答案:Select top 25 percent * from stu9) 查询出所有学生的姓名,性别,年龄降序排列答案:Select 姓名,性别 from stu order by 年龄 desc10) 按照性别分组查询所有的平均年龄答案:Select avg(年龄) from stu group by 性别21、 有如下表及数据: create table dept(deptno varchar(10) primary key,dname varchar(10);create table emp(empno varchar(10) primary key,ename varchar(10),job varcha

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 其它考试类文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号