文档库 最新最全的文档下载
当前位置:文档库 › SQL选择题及答案

SQL选择题及答案

SQL选择题及答案
SQL选择题及答案

SQL选择题及答案

一、单项选择题

1.下列四项中,不属于数据库特点的是(c)。

A.数据共享

B.数据完整性

C.数据冗余很高

D.数据独立性高

2.SQL Server安装程序创建4个系统数据库,下列哪个不是(c)系统数据库。

A.master

B.model

C.pub

D.msdb

3.(a)是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。A.DBMS B.DB C.DBS D.DBA

4.在SQL中,建立表用的命令是(b)。

A.CREATE SCHEMA

B.CREATE TABLE

C.CREATE VIEW

D.CREATE INDEX

5.在MS SQL Server中,用来显示数据库信息的系统存储过程是

(d)。

A.sp_dbhelp

B.sp_db

C.sp_help

D.sp_helpdb

6.SQL语言中,删除表中数据的命令是(a)。

A.DELETE

B.DROP

C.CLEAR

D.REMOVE

7.SQL的视图是从(c)中导出的。

A.基本表

B.视图

C.基本表或视图

D.数据库

8.下列哪个不是sql数据库文件的后缀。(c)

A..mdf B..ldf C..tif D..ndf

9.数据定义语言的缩写词为(a)。

A.DDL

B.DCL

C.DML

D.DBL

10.在SQL语言中,建立存储过程的命令是(a)

A、CREATE PROCEDURE

B、CREATE RULE

C、CREATE DURE

D、CREATE.目前(a)数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最为流行的商用数据库系统。

A.关系B.面向对象C.分布

12.在SQL中,建立视图用的命令是(c)。

A.CREATE SCHEMA

B.CREATE TABLE

C.CREATE VIEW

D.CREATE INDEX

13.SQL语言中,删除一个表中所有数据,但保留表结构的命令是(a)

A、DELETE

B、DROP

C、CLEAR

D、REMORE

14.在MS SQL Server中,关于数据库的说法正确的是(b)

A、一个数据库可以不包含事务日志文件

B、一个数据库可以只包含一个事务日志文件和一个数据库文件

C、一个数据库可以包含多个数据库文件,但只能包含一个事务日志文件

D、一个数据库可以包含多个事务日志文件,但只能包含一个数据库文件

15.数据库管理系统的英文缩写是(a)。

A.DBMS B.DBS C.DBA D.DB

16.SQL Server2005中删除表的命令是(d)。A.DELETE B.SELECT C.UPDATE D.DROP

17.(c)是被长期存放在计算机内的、有组织的、统一管理的相关数据的集合。A.DATA B.INFORMATION C.DB D.DBS 18.SQL Server2005中表查询的命令是(b)。

https://www.wendangku.net/doc/a39596358.html,E B.SELECT C.UPDATE D.DROP19.SQL Server2005中表更新数据的命令是(c)。

A.USE B.SELECT C.UPDATE D.DROP20.建立索引的目的是(d)。

A.降低SQL Server数据检索的速度B.与SQL Server数据检索的速度无关

C.加快数据库的打开速度D.提高SQL Server数据检索的速度21.用于求系统日期的函数是(b)。

A.YEAR()B.GETDATE()C.COUNT()D.SUM()

22.向用户授予操作权限的SQL语句是(d)。A.CTEATE B.REVOKE C.SELECT D.GRANT23.SQL Server系

统中的所有服务器级系统信息存储于哪个数据库(a)。

A.master

B.Model

C.tempdb

D.msdb

24.以下关于主键的描述正确的是(a)。

A.标识表中唯一的实体

B.创建唯一的索引,允许空值

C.只允许以表中第一字段建立

D.表中允许有多个主键

25.下列哪个不是sql数据库文件的后缀。(a)

A..mdf B..ldf C..dbf D..ndf

26.在SQL SERVER服务器上,存储过程是一组预先定义并(b的Transact-SQL语句。

A.保存

B.编译

C.解释

D.编写

28.在T-SQL语言中,修改表结构时,应使用的命令是(c)A.UPDATE B.INSERT C.ALTER D.MODIFY

29.在SQL Server中,model是(a)

A.数据库系统表 B.数据库模板C.临时数据库 D.示例数据

30.下列哪个不是数据库对象(d)。

A.数据模型B.视图C.表D.用户

31.SQL语言中,删除记录的命令是(a)。

A.DELETE

B.DROP

C.CLEAR

D.REMOVE

32.下列哪个不是SQL Server服务(c)。

A.SQL Server B.SQL Server Agent C.sql database D.PWS 33.DBS是采用了数据库技术的计算机系统。DBS是一个集合体,包含数据库、计算机硬件、软件和(c)

A、系统分析员

B、程序员

C、数据库管理员

D、操作员

34.SQL Server支持在线备份,但在备份过程中,不允许执行的操作是(d)(1)、创建或删除数据库文件(2)、创建索引(3)、执行非日志操作(4)、自动或手工缩小数据库或数据库文件大小

A、(1)

B、(1)(2)

C、(1)(2)(3)

D、(1)(2)(3)(4)

35.MS SQL Server是(d)

A、数据库

B、数据库系统

C、数据处理系统

D、数据库管理系统

36.如果要修改表的结构,应该使用SQL语言的命令(c)

A、UPDATE TABLE

B、MODIFY TABLE

C、ALTER TABLE

D、CHANGE TABLE37.安装MS SQL Server时,系统自动建立几个数据库,其中有一个数据库被删除后,不影响系统的正常运行,这个数据库是(d)

A、master数据库

B、model数据库

C、tempdb数据库

D、pubs数据库

38.每个数据库有且只有一个(a)

A、主要数据文件

B、次要数据文件

C、日志文件

D、索引文件

39.安装MS SQL Server时,系统自动建立几个数据库,其中有一个数据库记录了一个SQL Server系统的所有系统信息,这个数据库是(a)

A、master数据库

B、model数据库

C、tempdb数据库

D、pubs数据库

1)有关数据冗余说法错误的是(d)。(选择一项)

a)数据库中,数据存在副本的现象,就是数据冗余

b)通过分类存储,可以有效减少数据冗余,但是会增加数据查找的复杂性

c)在数据库设计阶段,一定要尽最大可能避免数据冗余,最好做到无数据冗余。

d)数据冗余通常是由于数据库设计引起的。

2)假定有一个用户表,表中包含字段:userid(int)、username (varchar)、

password(varchar)、等,该表需要设置主键,以下说法正确的是(ab)。(选择两项)a)如果不能有同时重复的username 和password,那么username和password可以组合在一起作为主键。

b)此表设计主键时,根据选择主键的最小性原则,最好采用

userid作为主键。

c)此表设计主键时,根据选择主键的最小性原则,最好采用username和password作为组合键。

d)如果采用userid作为主键,那么在userid列输入的数值,允许为空。

3)关于数据完整性,以下说法正确的是(ad)。(选择两项)

a)引用完整性通过主键和外键之间的引用关系实现。

b)引用完整性通过限制数据类型、检查约束等实现。

c)数据完整性是通过数据操纵者自身对数据的控制来实现的。

d)如果两个表中存储的信息相互关联,那么只要修改了一个表,另外一个表也要做出相应的修改,则称该这两个表中的数据具备完整性。

4)关于标识列,以下说法正确的是(b)。(选择一项)

a)使用sql语句插入数据时,可以为标识列指定要插入的值。

b)设定标识时,必须同时指定标识种子和标识递增量。

c)若设定标识时,未指定标识递增量,那么使用sql语句插入数据时,可以为标识列指定递增值。

d)只能把主键设定为标识列。

5)现有表user,字段:userid,username,salary,deptid,email;表department,字段:deptid,deptname;下面(c)应采用检查约束来实现。(选择一项)

a)若department中不存在deptid为2的纪录,则不允许在user

表中插入deptid为2的数据行。

b)若user表中已经存在userid为10的记录,则不允许在user 表中再次插入userid

为10的数据行。

c)User表中的salary(薪水)值必须在1000元以上。

d)若User表的email列允许为空,则向user表中插入数据时,可以不输入email值。

6)现有表book,主键bookid设为标识列。若执行语句:select *into book2from book,以下说法正确的是(ac)。(选择两项)

a)若数据库中已存在表book2,则会提示错误。

b)若数据库中已存在表book2,则语句执行成功,并且表book2中的bookid自动设为标识。

c)若数据库中不存在表book2,则语句执行成功,并且表book2中的bookid自动设为主键。

d)若数据库中不存在表book2,则语句执行成功,并且表book2中的bookid自动设为标识。

7)Microsoft SQL Server2000在安装的时候就创建的示例用户数据库包括(c)。(选择两项)

a)Pubs

b)Master

c)Northwind

d)Msdb

8)以下(b)语句从表TABLE_NAME中提取前10条记录。(选择一项)

a)select*from TABLE_NAME where rowcount=10

b)select TOP10*from TABLE_NAME

c)select TOP of10*from TABLE_NAME

d)select*from TABLE_NAME where rowcount<=10

9)从“产品”表里查询出价格高于产品名称为“一次性纸杯”的产品的记录,此SQL语句为(d)。(选择一项)

a)SELECT*FROM产品WHERE价格>‘一次性纸杯’;

b)SELECT*FROM产品WHERE价格>(SELECT*FROM产品WHERE 产品名称>’一次性纸杯’);

c)SELECT*FROM产品WHERE EXISTS产品名称=’一次性纸杯’);

d)SELECT*FROM产品WHERE价格>(SELECT价格FROM产品WHERE产品名称=’一次性纸杯’);

10)查找student表中所有电话号码(列名:telephone)的第一位为8或6,第三位为0

的电话号码(c)。(选择一项)

a)SELECT telephone FROM student WHERE telephone LIKE '[8,6]%0*'

b)SELECT telephone FROM student WHERE telephone LIKE

'(8,6)*0%'

c)SELECT telephone FROM student WHERE telephone LIKE '[8,6]_0%'

d)SELECT telephone FROM student WHERE telephone LIKE '[8,6]_0*'

11)现有表book,字段:id(int),title(varchar),price (float);其中id字段设为标识,使用insert语句向book表中插入数据,以下语句错误的是(a)。(选择一项)

a)insert into book(id,title,price)values(1,'java',100)

b)insert into book(title,price)values('java',100)

c)insert into book values('java',100)

d)insert book values('java',100)

12)不可以启动和停止SQL Server2000服务的工具是(a)。(选择一项

a)SQL Server企业管理器

b)SQL Server服务管理器

c)Windows服务

d)SQL Server查询分析器

13)现有表Employee,字段:id(int),firstname(varchar), lastname(varchar);以下sql语句错误的是(b)。(选择一项

a)select firstname+'.'+lastname as'name'from employee

b)select firstname+'.'+lastname='name'from employee

c)select'name'=firstname+'.'+lastname from employee

d)select firstname,lastname from employee

14)在sql server2000中,关于数据库说法错误的是(c)。(选择一项)

a)数据库在磁盘上默认的存储位置是:SQL Server安装路径\Microsoft SQL

Server\MSSQL\Data

b)一个数据库至少应包含一个数据库文件(*.mdf)和一个事务日志文件(*.ldf)

c)只有当数据库中不存在数据的情况下,才可以进行数据库的收缩操作。

d)可以通过从A机器拷贝数据库文件和事务日志文件至B机器,然后通过在B机器上执行相应的附加数据库操作,实现数据库从A机器到B机器的复制。

15)若要删除book表中所有数据,以下语句错误的是(bc)。(选择两项)

a)truncate table book

b)delete*from book

c)drop table book

d)delete from book

16)学生成绩表grade中有字段score(float),现在要把所有在55分至60之间的分数提高5分,以下sql语句正确的是(cd)。

(选择两项)

a)Update grade set score=score+5

b)Update grade set score=score+5where score>=55or score <=60

c)Update grade set score=score+5where score between55 and60

d)Update grade set score=score+5where score>=55and score<=60

17)现有书目表book,包含字段:price(float);现在查询一条书价最高的书目的详细信息,以下语句正确的是(bc)。(选择两项)

a)select top1*from book order by price asc

b)select top1*from book order by price desc

c)select top1*from book where price=(select max (price)from book)

d)select top1*from book where price=max(price)

18)Sql server提供了一些字符串函数,以下说法错误的是(a)。(选择一项)

a)select right('hello',3)返回值为:hel

b)select ltrim(rtrim('hello'))返回值为:hello(前后都无空格)

c)select replace('hello','e','o')返回值为:hollo

d)select len('hello')返回值为:5

19)现有书目表book,包含字段:价格price(float),类别type(char);现在查询各个类别的平均价格、类别名称,以下语句正确的是(a)。(选择一项)

a)select avg(price),type from book group by type

b)select count(price),type from book group by price

c)select avg(price),type from book group by price

d)select count(price),type from book group by type

20)若student表中包含主键sudentid,则执行语句:update student set studentid=100where studentid=101,结果可能是(bc)。(选择两项)

a)错误提示:主键列不能更新。

b)更新了一条数据。

c)错误提示:违反主键约束。

d)既不提示错误,也不更新数据。

21)查询student表中的所有非空email信息,以下语句正确的是(d)。(选择一项)

a)Select email from student where email!=null

b)Select email from student where email not is null

c)Select email from student where email<>null

d)Select email from student where email is not null

22)以下不属于企业管理器功能的是(d)。(选择一项)

a)创建并管理所有数据库、登陆、用户、权限等。

b)管理和执行数据导入导出、数据库备份等多项辅助功能。

c)定义sql server组。

d)调试、执行sql语句,批处理和脚本。

23)以下(c)语句的返回值不是22。(选择一项)

a)Select abs(-22)

b)Select abs(22)

c)Select ceiling(22.1)

d)Select floor(22.9)

24)成绩表grade中字段score代表分数,以下(bc)语句返回成绩表中的最低分。(选择两项)

a)select max(score)from grade

b)select top1score from grade order by score asc

c)Select min(score)from grade

d)select top1score from grade order by score desc

it运维面试题及答案.doc

it 运维面试题及答案 【篇一:运维中心笔试题答案】 xt> 一、单项选择 1、t-sql 语句是由哪一家公司设计出的:(a)a microsoftb ibmc sun 2、sql-server 的数据库类型属于哪一类型:(a) a 关系型数据库 b 网络型数据库 c 层次型数据库 3、要启动sql -server 的服务器,在命令提示符下键入以下什么 命令可以启动sql -server 服务器:(b) a net send b net start mssqlerver c net help 4、输入和调试t-sql 语句的工具是:(b) a 企业管理器 b 查询分析器 c 服务器网络使用工具 d 联机丛书 5、创建数据库的关键字是: (b) a delete b create c from d talbe 6、数据库的日志文件的扩展名是:(b) a mdf b ldf c ndf d log 7、创建表的主约束使用哪个关键字:(b) a check b primary c foreign d rull 8、datetime 属于什么数据类型:(a) a 日期型 b 时间型 c 字符串型 d 整数型 9、下列数据类型中不能属于sql_variant 型的是:(c) a varchar b int c image d datetime 10、存储过程sp_bindrule 的作用是什么:(a) a 绑定规则 b 查看表结构 c 绑定默认值 d 查看过程 11、insert 表示的含义:(a) a 添加 b 删除 c 查询 d 更改 12、sql-server 中外键约束关键字为:(c) a primary key b unique c foreign key d check 13、alter view 表示:(b) a 创建视图 b 更改视图 c 检索视图 d 删除视图 14、去掉结果集中的重复值用关键字: (b ) a top b distinct c in d null 15、语句“delete from 员工表where 工资2000”表示含义:(a) a 删除工资大于2000 的员工资料 b 添加工资>2000 的员工姓名 c 检索工资>2000 的员工姓名 d 更改工资>2000 的员工姓名

SQL经典面试题及答案

SQL经典面试题及答案 1.一道SQL语句面试题,关于group by 表内容: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-10 负 2005-05-10 负 如果要生成下列结果, 该如何写sql语句? 胜负 2005-05-09 2 2 2005-05-10 1 2 ------------------------------------------ create table #tmp(rq varchar(10),shengfu nchar(1)) insert into #tmp values('2005-05-09','胜') insert into #tmp values('2005-05-09','胜') insert into #tmp values('2005-05-09','负')

insert into #tmp values('2005-05-09','负') insert into #tmp values('2005-05-10','胜') insert into #tmp values('2005-05-10','负') insert into #tmp values('2005-05-10','负') 1)select rq, sum(case when shengfu='胜' then 1 else 0 end)'胜',sum (case when shengfu='负' then 1 else 0 end)'负' from #tmp group by rq 2) select N.rq,N.勝,M.負 from ( select rq,勝=count(*) from #tmp where shengfu='胜'group by rq)N inner join (select rq,負=count(*) from #tmp where shengfu='负'group by rq)M on N.rq=M.rq 3)select a.col001,a.a1 胜,b.b1 负 from (select col001,count(col001) a1 from temp1 where col002='胜'

SQL数据库经典面试题(修改笔试题)(有答案)

28、?数据库:抽出部门,平均工资,要求按部门得字符串顺序排序,不能含有"human resource"部门,employee结构如下: employee_id,employee_name,depart_id,depart_name,wage 答:?select depart_name, avg(wage) fromemployee where depart_name〈〉'humanresource'?group by depart_nameorder by depart_name ---—--——----—-——----—--——-—---———----—————-—- 29、 —-—--—---—-—--————-——--——--——? 给定如下SQL数据库:Test(num INT(4))请用一条SQL语句返回num得最小值,但不许使用统计功能,如MIN,MAX等 答: select top1 num from Test orderbynum ----—-----——-—----———----—---—----—-—-—-———-—- 33、一个数据库中有两个表:——----—-—----—--—--——--—----? 一张表为Customer,含字段ID,Name; 一张表为Order,含字段ID,CustomerID(连向Customer中ID得外键),Re venue;?写出求每个Customer得Revenue总与得SQL语句。 建表create table customer?(ID int primary key,Namechar (10)) go create table [order]?(ID int primary key,CustomerID int foreign key references customer(id),Revenue float) go --查询?select Customer、ID, sum(isnull([Order]、Revenue,0))?from customer full join [order]on([order]、custome rid=customer、id) groupby customer、id selectcustomer、id,sum(order、revener) fromorder,customer where customer、id=customerid group by customer、id select customer、id,sum(order、revener)from customer fulljoin order on(order、customerid=customer、id)group bycustomer、id 5数据库(10) a tabel called “performance”contain :name andscore,please用SQL语言表述

SQL SERVER 面试题与答案

SqlServer面试题及答案 1.磁盘柜上有14块73G的磁盘,数据库为200G 大小包括日志文件,如何设 置磁盘(要说明这14磁盘是怎么用的)? 2.有两服务器群集,分别为node1和node2 现在要打win200系统补丁,打 完后,要重新启动,如何打补丁,不能影响用户使用(要用群集的术语详细说明)。 3.有一个A 数据库,分别复制到B和C B 要求每次数据更新也同时更新, C 每天更新一次就行,如何制定复制策略! 4.有一个order 表,有90个字段,20个索引,15个复合索引,其中有3个 索引字段超过10个,如何进行优化 5.有一个数据库200G大小,每天增加50M 允许用户随时访问,制定备份策 略(详细说明)。 参考答案: 1.磁盘柜上有14块73G的磁盘,数据库为200G 大小包括日志文件,如何 设置磁盘(要说明这14磁盘是怎么用的)? 这个问题应该是考察硬件知识和数据库物理部署。 首先需要知道这些磁盘是否要用于存放数据库备份文件和数据库性能(读/写)要求。来决定raid的级别。 1)、如果偏重于性能考虑,而且不用存放数据库备份文件的话,考虑使用raid0 1,这样可使用的磁盘容量为:14*73*50%=511G。 2)、如果读/写性能要求不高,而且还比较抠门的话,可以考虑raid5,这样可使用的磁盘容量为:13*73=949G。 至于如何使用应该是说数据库物理文件的部署。注意说出将tempdb,data file,log file分开存放以减少I/O竞争即可。其实现在的条带化磁盘一般都会自动将文件分存,人为的分布已经越来越不重要了。 2.有两服务器群集,分别为node1和node2 现在要打win200系统补丁,打 完后,要重新启动,如何打补丁,不能影响用户使用(要用群集的术语详细说明)。 这个具体操作有点忘了。大致是:首先看哪个节点正在使用,通过节点IP(私有)访问另一个空闲节点,为其打上补丁,然后在群集管理器中停止该节点(也可以用命令行方式),重新启动。等到启动完毕,将切换使用节点,为另一个节点打补丁。然后重新启动。 3.有一个A 数据库,分别复制到B和C B 要求每次数据更新也同时更新, C 每天更新一次就行,如何制定复制策略! 这个应该考察的是复制知识。 a->B1)、如果使用SQL Server复制功能,那么让a->b使用事务性复制方式(同步复制)。 2)、如果表不多,也可以自己写触发器,利用linkserver distribute transaction。 a->C1)、如果使用SQL Server复制功能,那么让a->b使用快照复制方式,在某一时间点进行一次性复制。 2)、也可以自己写bat,将a备份后,通过ftp传输备份介质,恢复c。(比较麻烦,不推荐) 4.有一个order 表,有90个字段,20个索引,15个复合索引,其中有3个 索引字段超过10个,如何进行优化 这个问题问的比较没水平。你不详细说明这个表的使用方式(读写类的,还是几乎是静态表),就问人家怎么优化?!!还不如问问索引的分布访问原

sql经典笔试题目(整理)

一单词解释(2分/个) 34 Data 数据 Database 数据库 RDBMS 关系数据库管理系统 GRANT 授权 REVOKE取消权限 DENY 拒绝权限 DECLARE 定义变量 PROCEDURE存储过程 Transaction事务 TRIGGER触发器继续 continue 唯一 unqiue 主键 primary key 标识列 identity 外键 foreign kdy 检查 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) 向学生表添加如下信息: 学号姓名年龄性别联系电话学历 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 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 年龄<22 and 学历=’大专’ 8) 查询学生表的数据,查询所有信息,列出前25%的记录 Select top 25 percent * from stu 9) 查询出所有学生的姓名,性别,年龄降序排列

SQL数据库面试题以和答案

Student(S#,Sname,Sage,Ssex)学生表 S#:学号 Sname:学生姓名 Sage:学生年龄 Ssex:学生性别 Course(C#,Cname,T#)课程表 C#:课程编号 Cname:课程名称 T#:教师编号 SC(S#,C#,score)成绩表 S#:学号 C#:课程编号 score:成绩 Teacher(T#,Tname)教师表 T#:教师编号: Tname:教师名字 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号 select a.S# from (select S#,score from SC where C#='001')a, (select s#,score from SC wh ere c#='002')b Where a.score>b.score and a.s# = b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩 select S#, avg(score) from sc group by S# having avg(score)>60 3、查询所有同学的学号、姓名、选课数、总成绩 select student.S#, student.Sname, count(sc.C#), sum(score) from student left outer join SC on student.S# = SC.S# group by Student.S#, Sname

4、查询姓‘李’的老师的个数: select count(distinct(Tname)) from teacher where tname like '李%'; 5、查询没有学过“叶平”老师可的同学的学号、姓名: select student.S#, student.Sname from Student where S# not in (select distinct(SC.S#) from SC,Course,Teacher where sc.c#=course.c# AND teacher.T#=course.T# AND Teahcer.Tname ='叶平'); 6、查询学过“叶平”老师所教的所有课的同学的学号、姓名:select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 7、查询学过“011”并且也学过编号“002”课程的同学的学号、姓名: select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名: Select S#,Sname

面试真题及答案SQL面试题目汇总

面试真题 面试范本SQL面试题目汇总 1.触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2.什么是存储过程?用什么来调用? 答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。 3.索引的作用?和它的优点缺点是什么? 答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。 4.什么是内存泄漏? 答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。 5.维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么? 答:我是这样做的,尽可能使用约束,如check,主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写业务逻辑,但这样做麻烦,编程复杂,效率低下。

SQL数据库面试题目及其答案

1.触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。 它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2.什么是存储过程?用什么来调用? 答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。 3.索引的作用?和它的优点缺点是什么? 答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。 缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。 3。什么是内存泄漏? 答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new 等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。 4.维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么? 答:我是这样做的,尽可能使用约束,如check,主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写业务逻辑,但这样做麻烦,编程复杂,效率低下。 5.什么是事务?什么是锁? 答:事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。 要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。 锁:在所以的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。

sql数据库面试题及答案

sql数据库面试题及答案 【篇一:sql数据库经典面试题(笔试题)】 =txt>1.一道sql语句面试题,关于group by 表内容: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-10 负 2005-05-10 负 如果要生成下列结果, 该如何写sql语句? 胜负 2005-05-09 2 2 2005-05-10 1 2 ------------------------------------------ create table #tmp(rq varchar(10),shengfu nchar(1)) insert into #tmp values(2005-05-09,胜) insert into #tmp values(2005-05-09,胜) insert into #tmp values(2005-05-09,负) insert into #tmp values(2005-05-09,负) insert into #tmp values(2005-05-10,胜) insert into #tmp values(2005-05-10,负) insert into #tmp values(2005-05-10,负) 1)select rq, sum(case when shengfu=胜 then 1 else 0 end)胜,sum(case when shengfu=负 then 1 else 0 end)负 from #tmp group by rq 2) select n.rq,n.勝,m.負 from ( select rq,勝=count(*) from #tmp where shengfu=胜group by rq)n inner join (select rq,負=count(*) from #tmp where shengfu=负group by rq)m on n.rq=m.rq 3)select a.col001,a.a1 胜,b.b1 负 from (select col001,count(col001) a1 from temp1 where col002=胜group by col001) a,

经典SQL面试题总结

表 Student(S#,Sname,Sage,Ssex) 学生表 CREATE TABLE student ( sid varchar(10) NOT NULL, sName varchar(20) DEFAULT NULL, sAge datetime DEFAULT '1980-10-12 23:12:36', sSex varchar(10) DEFAULT NULL, PRIMARY KEY (sid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Course(C#,Cname,T#) 课程表 CREATE TABLE course ( cid varchar(10) NOT NULL, cName varchar(10) DEFAULT NULL, tid int(20) DEFAULT NULL, PRIMARY KEY (cid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; SC(S#,C#,score) 成绩表 CREATE TABLE sc ( sid varchar(10) DEFAULT NULL, cid varchar(10) DEFAULT NULL, score int(10) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8; Teacher(T#,Tname) 教师表 CREATE TABLE teacher ( tid int(10) DEFAULT NULL, tName varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 数据:(MySQL) insert into teacher(tid,tName) values (1,'李老师'),(2,'何以琛'),(3,'叶平'); insert into student(sid,sName,sAge,sSex) values ('1001','张三丰','1980-10-12 23:12:36','男'),('1002','张无极','1995-10-12 23:12:36','男'),('1003','李奎','1992-10-12 23:12:36','女'),('1004','李元宝','1980-10-12 23:12:36','女'),('1005','李世明','1981-10-12 23:12:36','男'),('1006','赵六','1986-10-12 23:12:36','男'),('1007','田七','1981-10-12 23:12:36','女'); insert into sc(sid,cid,score) values ('1','001',80),('1','002',60),('1','003',75),('2','001',85),('2','002',70),('3','004',100), ('3','001',90),('3','002',55),('4','002',65),('4','003',60); insert into course(cid,cName,tid) values ('001','企业管理',3),('002','马克思',3),('003','UML',2),('004','数据库',1),('005 ','英语',1); 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩;

sql面试题汇总

在面试应聘的sql server 数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当您问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。 您能向我简要叙述一下sql server 2000 中使用的一些数据库对象吗? 您希望听到的答案包括这样一些对象: 表格、视图、用户定义的函数,以及存储过程; 如果他们还能够提到像触发器这样的对象就更好了。如果应聘者不能回答这个基本的问题,那么这不是一个好兆头。 什么是索引?sql server 2000 里有什么类型的索引? 任何有经验的数据库开发人员都应该能够很轻易地回答这个问题。一些经验不太多的开发人员能够回答这个问题,但是有些地方会说不清楚。 简单地说,索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在sql server 里,它们有两种形式: 聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。 null 是什么意思? null(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上 跌跟头您也不要觉得意外。 null 这个值表示unknown(未知):它不表示"”(空字符串)。假设您的sql server数据库 里有ansi_nulls ,当然在默认情况下会有,对null 这个值的任何比较都会生产一个null 值。您不能把任何值与一个unknown 值进行比较,并在逻辑上希望获得一个答案。您必须使用is null

SQL数据库面试题以及答案精编

S Q L数据库面试题以及 答案精编 Document number:WTT-LKK-GBB-08921-EIGG-22986

Student(S#,Sname,Sage,Ssex)学生表 S#:学号 Sname:学生姓名 Sage:学生年龄 Ssex:学生性别 Course(C#,Cname,T#)课程表C#:课程编号 Cname:课程名称 T#:教师编号 SC(S#,C#,score)成绩表 S#:学号 C#:课程编号 score:成绩 Teacher(T#,Tname)教师表 T#:教师编号: Tname:教师名字 问题:

1、查询“001”课程比“002”课程成绩高的所有学生的学号 select # from (select S#,score from SC where C#='00 1')a, (select s#,score from SC where c#='002')b Whe re > and # = #; 2、查询平均成绩大于60分的同学的学号和平均成绩select S#, avg(score) from sc group by S# having av g(score)>60 3、查询所有同学的学号、姓名、选课数、总成绩 select #, , count#), sum(score) from student left o uter join SC on # = # group by #, Sname 4、查询姓‘李’的老师的个数: select count(distinct(Tname)) from teacher where tname like '李%'; 5、查询没有学过“叶平”老师可的同学的学号、姓名:select #, from Student

SQL常见面试题集(三)

SQL试题集(三) 1.用一条SQL语句 查询出每门课都大于80分的学生姓名  name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90 A: select distinct name from table where name not in (select distinct name from table where fenshu<=80) 2.学生表 如下: 自动编号 学号 姓名 课程编号 课程名称 分数 1 2005001 张三 0001 数学 69 2 2005002 李四 0001 数学 89 3 2005001 张三 0001 数学 69 删除除了自动编号不同,其他都相同的学生冗余信息 A: delete tablename where 自动编号 not in(select min(自动编号) from tablename group by 学号,姓名,课程编号,课程名称,分数) 一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合. 你先按你自己的想法做一下,看结果有我的这个简单吗? 答:select https://www.wendangku.net/doc/a39596358.html,, https://www.wendangku.net/doc/a39596358.html, from team a, team b where https://www.wendangku.net/doc/a39596358.html, < https://www.wendangku.net/doc/a39596358.html, 请用SQL语句实现:从TestDB数据表中查询出所有月份的发生额都比101

科目相应月份的发生额高的科目。请注意:TestDB中有很多科目,都有 1-12月份的发生额。 AccID:科目代码,Occmonth:发生额月份,DebitOccur:发生额。 数据库名:JcyAudit,数据集:Select * from TestDB 答:select a.* from TestDB a ,(select Occmonth,max(DebitOccur) Debit101ccur from TestDB where AccID='101' group by Occmonth) b where a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur ************************************************************************面试题:怎么把这样一个表儿 year month amount 1991 1 1.1 1991 2 1.2 1991 3 1.3 1991 4 1.4 1992 1 2.1 1992 2 2.2 1992 3 2.3 1992 4 2.4 查成这样一个结果 year m1 m2 m3 m4 1991 1.1 1.2 1.3 1.4 1992 2.1 2.2 2.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,

SQL数据库经典面试题(修改笔试题)(有答案)

28、 数据库:抽出部门,平均工资,要求按部门的字符串顺序排序,不能含有"human resource"部门,employee结构如下: employee_id, employee_name,depart_id,depart_name,wage 答: select depart_name, avg(wage) from employee where depart_name <> 'human resource' group by depart_name order by depart_name -------------------------------------------------------------------------- 29、 给定如下SQL数据库:Test(num INT(4)) 请用一条SQL语句返回num的最小值,但不许使用统计功能,如MIN,MAX等 答: select top 1 num from Test order by num -------------------------------------------------------------------------- 33、一个数据库中有两个表: 一张表为Customer,含字段ID,Name; 一张表为Order,含字段ID,CustomerID(连向Customer中ID的外键),Revenue; 写出求每个Customer的Revenue总与的SQL语句。 建表create table customer (ID int primary key,Name char(10)) go create table [order] (ID int primary key,CustomerID int foreign key references customer(id) , Revenue float) go --查询 select Customer、ID, sum( isnull([Order]、Revenue,0) ) from customer full join [order] on( [order]、customerid=customer、id ) group by customer、id select customer、id,sum(order、revener) from order,customer where customer、id=customerid group by customer、id select customer、id, sum(order、revener ) from customer full join order on( order、customerid=customer、id ) group by customer、id 5数据库(10)

Sql面试题大全

Sql常见面试题受用了 1.用一条SQL 语句查询出每门课都大于80 分的学生姓名 name kecheng fenshu 张三语文 81 张三数学 75 李四语文 76 李四数学 90 王五语文 81 王五数学 100 王五英语 90 A: select distinct name from table where name not in (select distinct name from table where fenshu<=80) select name from table group by name having min(fenshu)>80 2.学生表如下: 自动编号学号姓名课程编号课程名称分数 1 2005001 张三 0001 数学 69 2 2005002 李四 0001 数学 89 3 2005001 张三 0001 数学 69 删除除了自动编号不同, 其他都相同的学生冗余信息 A: delete tablename where 自动编号 not in(select min( 自动编号) from tablename group by 学号, 姓名, 课程编号, 课程名称, 分数) 3.一个叫team 的表,里面只有一个字段name, 一共有4 条纪录,分别是 a,b,c,d, 对应四个球对,现在四个球对进行比赛,用一条sql 语句显示所有可能的比赛组合. 你先按你自己的想法做一下,看结果有我的这个简单吗?

答:select https://www.wendangku.net/doc/a39596358.html,, https://www.wendangku.net/doc/a39596358.html, from team a, team b where https://www.wendangku.net/doc/a39596358.html, < https://www.wendangku.net/doc/a39596358.html, 4.请用SQL 语句实现:从TestDB 数据表中查询出所有月份的发生额都比101 科目相应月份的发生额高的科目。请注意:TestDB 中有很多科目,都有1 -12 月份的发生额。 AccID :科目代码,Occmonth :发生额月份,DebitOccur :发生额。 数据库名:JcyAudit ,数据集:Select * from TestDB 答:select a.* from TestDB a ,(select Occmonth,max(DebitOccur) Debit101ccur from TestDB where AccID='101' group by Occmonth) b where a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur ********************************************************************* *************** 5.面试题:怎么把这样一个表儿 year month amount 1991 1 1.1 1991 2 1.2 1991 3 1.3 1991 4 1.4 1992 1 2.1 1992 2 2.2 1992 3 2.3 1992 4 2.4 查成这样一个结果 year m1 m2 m3 m4 1991 1.1 1.2 1.3 1.4 1992 2.1 2.2 2.3 2.4

sql数据库基础面试题复习题考试题-全

不定项选择题(针对以下题目,请选择最符合题目要求的答案,每道题有一项或二项正确答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。题量为50道,每题2分,总分为100分。) 第一章 1、是SQLServer数据库的主数据文件的扩展名。(选择一项) A、.sql B、.mdb C、.ldf D、.mdf 2、在SQL Server 2005中,有系统数据库和用户数据库,下列不属于系统数据库的是()。 (选择一项) A、master B、pubs C、model D、msdb 3、当安装完SQL Server2005数据库时,系统默认当前的超级管理员是( ) (选择一项) A、sa B、master C、administrator D、super 4、在使用SQL Server2005数据库时,有时需要将本机的数据库移动到其他机器上,恢复成对应的数据库使用。移动数据库分两步进行,应包括()和附加数据库(选择一项)A、分离数据库 B、删除数据库 C、新建数据库 D、合并数据库 5、在SQL Server2005中,附加数据库操作是指()(选择一项) A、把SQL Server 数据库文件保存为其他数据文件 B、根据数据库物理文件中的信息,把数据库在SQL Server 2005中恢复 C、把所有该数据库表的数据清空 D、把数据库删除掉 6、某单位由不同的部门组成,不同的部门每天都会生产一些报告、报表等数据,以为都采用纸张的形式来进行数据的保存和分类,随着业务的发展,这些数据越来越多,管理这些报告越来越费力,此时应考虑()(选择一项) A、由多个人来完成这些工作 B、在不同的部门中,由专门的人员去管理这些数据 C、采用数据库系统来管理这些数据 D、把这些数据统一成一样的格式 7、在SQL Server 2005中,对于数据库的定义正确的是()(选择一项) A、数据库是用来描述事物的符号记录 B、数据库是位于用户与操作系统之间的一层数据管理软件

相关文档