SqlServer数据库面试题(一)
sqlserver面试题1

create table testtable1(id int IDENTITY,department varchar(12))select * from testtable1insert into testtable1 values('设计')insert into testtable1 values('市场')insert into testtable1 values('售后')/*结果id department1 设计2 市场3 售后*/create table testtable2(id int IDENTITY,dptID int,name varchar(12))insert into testtable2 values(1,'张三')insert into testtable2 values(1,'李四')insert into testtable2 values(2,'王五')insert into testtable2 values(3,'彭六')insert into testtable2 values(4,'陈七')/*用一条SQL语句,怎么显示如下结果id dptID department name1 1 设计张三2 1 设计李四3 2 市场王五4 3 售后彭六5 4 黑人陈七*/答案:SELECT testtable2.* , ISNULL(department,'黑人')FROM testtable1 right join testtable2 on testtable2.dptID = testtable1.ID 也做出来了可比这方法稍复杂。
sql面试题(2)有表A,结构如下:A: p_ID p_Num s_id1 10 011 12 022 8 013 11 013 8 03其中:p_ID为产品ID,p_Num为产品库存量,s_id为仓库ID。
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(私有)访问另一个空闲节点,为其打上补丁,然后在群集管理器中停止该节点(也可以用命令行方式),重新启动。
sqlserver面试题

sqlserver面试题SQL Server面试题一、什么是SQL Server?SQL Server是一种关系型数据库管理系统(RDBMS),由微软公司开发和发布。
它是一个全面的数据库服务器,用于管理和存储大量的数据。
SQL Server支持结构化查询语言(SQL),以及存储过程、触发器和其他数据库操作。
二、SQL Server的主要功能有哪些?1. 数据管理:SQL Server可以用于创建、修改和删除数据库、表、视图和索引等对象,以及导入、导出和修改数据。
2. 数据安全:SQL Server提供了丰富的安全功能,包括用户身份验证、权限控制和数据加密等,以确保数据的机密性和完整性。
3. 数据备份和恢复:SQL Server支持数据库的备份和恢复操作,以防止数据丢失和错误。
4. 数据复制和同步:SQL Server可以通过复制和同步机制将数据复制到不同的数据库服务器,以实现高可用性和负载均衡。
5. 数据分析和报表:SQL Server支持数据分析和报表生成,以便用户可以从数据库中提取有用的信息和洞察力。
6. 性能优化:SQL Server提供了各种性能优化工具和技术,以确保数据库的高性能和响应能力。
三、请解释SQL Server中的主键和外键的作用。
主键是用于唯一标识数据库表中每条记录的一列或一组列。
它的作用是保证表中的每个记录都具有唯一的标识符,以方便数据的检索和修改。
主键还可以用于建立表与其他表之间的关系。
外键则用于建立表与其他表之间的关联关系。
外键是指表中的一列或一组列,它引用了另一张表的主键。
外键的作用是维护数据的完整性和一致性,通过约束来确保外键引用的数据必须存在于关联表中。
这样可以防止无效的数据插入或更新操作。
四、SQL Server中的事务是什么?请解释ACID属性。
事务是SQL Server中一系列数据库操作的逻辑单元,它要么全部执行成功,要么全部回滚到初始状态。
事务可以保证数据的一致性和完整性。
sql server数据库面试题

sql server数据库面试题1. 介绍SQL Server数据库SQL Server是一种关系型数据库管理系统,由Microsoft开发和维护。
它支持广泛的数据处理任务,在企业级应用程序和云环境中得到广泛应用。
2. 什么是SQL语言?SQL是结构化查询语言(Structured Query Language)的缩写,是用于管理关系型数据库的标准化语言。
它可以用于查询、插入、更新和删除数据库中的数据。
3. SQL Server数据库的主要特点是什么?- 可扩展性:SQL Server支持大规模数据处理,并且可以轻松扩展以适应不断增长的数据量。
- 安全性:SQL Server提供多层次的安全控制,包括用户认证、权限管理和数据加密。
- 高可用性:SQL Server支持故障转移、备份和恢复机制,确保数据始终可用。
- 强大的查询优化功能:SQL Server可以自动优化查询以提高性能,并且提供了各种工具来优化查询计划。
4. 什么是索引,为什么要使用索引?索引是一种数据结构,用于提高数据库查询的速度。
它们是基于一个或多个列的值来排序和组织数据的结构。
通过创建索引,可以减少数据库查询时需要扫描的数据量,从而提高查询性能。
5. 请列举一些SQL Server数据库常用的索引类型。
- 聚集索引(Clustered Index):该索引决定了表中数据的物理排序方式。
- 非聚集索引(Non-clustered Index):该索引不会改变表中数据的物理排序方式,而是创建一个单独的数据结构来提高查询性能。
- 全文索引(Full-Text Index):该索引用于对文本数据执行高效的全文搜索。
- 空间索引(Spatial Index):该索引用于对地理和几何数据执行高效的空间查询。
6. 请解释SQL Server数据库中的事务是什么?事务是一组数据库操作的逻辑单元,可以保证这些操作要么全部执行成功,要么全部失败。
事务具有ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
SQLSERVER面试题

5、这个不同的数据库也有不同的处理方法,不能脱离数据库谈了。
如:SqlServer或者access可以使用 top
oracle可以使用 rownum 等
9. 有个表USERS如下
Number(int)Name(char)
3.SELECT s.SNO FROM SC s,SC sc WHERE s.SNO=sc.SNO AND O = 'C2' AND O ='C4';
4.SELECT SNAME,AGE FROM S WHERE SNO IN
(SELECT SNO FROM SC WHERE CNO <> 'C2')
10. 在教学数据库中,有以下4个基本表
教师表T(TNO,TNAME,TITILE)
课程表C(CNO,CNAME,TNO)
学生表S(SNO,SNAME,AGE.SEX)
选课表SC(SNO,CNO.SCORE)
1.检索至少选修了LIU老师所授课程中一门课程的学生学号和姓名。
2.检索选修课程号码为C2或C4的学生学号。
2. 请写出将表T中NAME存在重复的记录都列出来的SQL语句(按NAME排序)
3. 请写出题目2中,只保留重复记录的第一条,删除其余记录的SQL语句(即使该表不存在重复记录)
4. 请写出将E表中的ADDRESS、PHONE更新到T表中的SQL语句(按NAME相同进行关联)
5. 请写出将T表中第3~5行数据列出来的rom T where ID not in
(select min(id) from T group by name);
面试题-sqlserver

选择题:1、在“连接”组中有两种连接认证方式,其中在(_ B _)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。
A、Windows身份验证B、SQL Server身份验证C、以超级用户身份登录时D、其他方式登录时2、表在数据库中是一个非常重要的数据对象,它是用来(1_ C __)各种数据内容的,数据库创建后就可以创建表了,创建表可以用(2_ D__)等方法来创建。
⑴A、显示B、查询C、存放D、检索⑵A、企业管理器B、查询分析器C、OSQLD、企业管理器和CREATE TABLE语句3、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1_B_),使用关键字(2_A_)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3__B_),如果在SELECT语句中使用集合函数时,一定在后面使用(4_A__)。
⑴A、SELECT,INTO B、SELECT,FROMC、SELECT,GROUPD、仅SELECT⑵A、DISTINCT B、UNIONC、ALL C、TOP⑶A、JOIN B、UNIONC、INTO C、LIKE⑷A、GROUP BY B、COMPUTE BYC、HAVINGD、COMPUTE4、在SQL SERVER服务器上,存储过程是一组预先定义并(1_B__)的Transact -SQL语句。
可以用(2__D_)来声明游标。
⑴A、保存B、编译C、解释D、编写⑵A、CREATE CURSOR B、ALTER CURSORC、SET CURSORD、DECLARE CURSOR简答题:1、自定义函数的类型?各自原返回值。
①标量函数返回值:单个数据值②内嵌表值函数返回值:table,③多语句表值函数返回值:table2、用户权限的种类有哪些?各自的作用?①对象权限作用:决定用户对数据库对象所执行的操作,包括用户对数据库中的表、视图、列或存储过程等对象的操作权限②语句权限作用:决定用户能否操作数据库和创建数据库对象③隐含权限作用:控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。
sqlserver高级面试题

sqlserver高级面试题SQL Server高级面试题1. 介绍SQL Server的架构和主要组件SQL Server是由微软开发的关系型数据库管理系统。
它的架构分为三个主要的组件:- 数据引擎:负责数据的存储、处理和查询。
它包含了查询处理器、事务管理器、存储引擎等模块。
- Analysis Services:提供了数据仓库和在线分析处理(OLAP)功能,用于数据分析和决策支持。
- Integration Services:用于数据抽取、转换和加载(ETL),支持数据仓库的构建和更新。
2. 请解释SQL Server中的索引和它的类型。
索引是用于提高查询性能的数据结构,它可以加快数据的检索速度。
SQL Server中的索引类型包括:- 聚集索引(Clustered Index):决定了数据行在表中物理上的存储顺序,一个表只能有一个聚集索引。
- 非聚集索引(Non-Clustered Index):创建在表的列上,它包含以下两种信息:索引键的值和指向该键所在行的指针。
- 唯一索引(Unique Index):与非聚集索引类似,但是要求索引的键值必须唯一。
- 全文索引(Full-Text Index):用于进行全文本搜索,可以对文本内容进行高效的关键字搜索。
3. 请列举一些提高SQL Server查询性能的方法。
- 创建合适的索引:通过分析查询语句中的WHERE和JOIN条件来确定需要创建的索引,以提高查询的速度。
- 避免使用SELECT *:只查询所需的列,减少不必要的数据传输和处理。
- 使用适当的数据类型:选择最合适的数据类型来存储数据,可以减少空间占用和提高查询速度。
- 数据库规范化:将数据分解为更小的表,以减少数据冗余和提高查询性能。
- 定期维护数据库:进行索引重建、统计信息更新、日志清理等操作,以保持数据库的优化状态。
4. 请解释SQL Server中的事务以及ACID属性。
事务是一组逻辑操作,这些操作要么全部成功执行,要么全部回滚。
Sqlserver基本面试题

Sqlserver基本⾯试题⼀单词解释(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 年龄<22 and 学历=’⼤专’8) 查询学⽣表的数据,查询所有信息,列出前25%的记录Select top 25 percent * from stu9) 查询出所有学⽣的姓名,性别,年龄降序排列Select 姓名,性别 from stu order by 年龄 desc10) 按照性别分组查询所有的平均年龄Select avg(年龄) from stu group by 性别三填空(3分/题) 36分(包含笔试题问题和解答答案)1) 索引分为__聚集索引___和__⾮聚集索引__在⼀张表上最多可以创建1个聚集索引_索引。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL面试题目SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句:1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2…from tab_old definition only5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除。
DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col)8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname10、说明:几个简单的基本的sql语句选择:select * from table1 where范围插入:insert into table1(field1,field2) s(1,2)删除:delete from table1 where范围更新:update table1 set field1=1 where范围查找:select * from table1 where field1 like ’%1%’---like的语法很精妙,查资料!排序:select * from table1 order by field1,field2 [desc]总数:select count * as totalcount from table1求和:select sum(field1) as sum from table1平均:select avg(field1) as avg from table1最大:select max(field1) as max from table1最小:select min(field1) as min from table111、说明:几个高级查询运算词A:UNION 运算符UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。
当ALL 随UNION 一起使用时(即UNION ALL),不消除重复行。
两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2。
B:EXCEPT 运算符EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。
当ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。
C:INTERSECT 运算符INTERSECT 运算符通过只包括TABLE1 和TABLE2 中都有的行并消除所有重复行而派生出一个结果表。
当ALL 随INTERSECT 一起使用时(INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
12、说明:使用外连接A、left outer join:左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.cB:right outer join: 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full outer join:全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
(笛卡尔积)不错的sql语句1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 1<>1法二:select top 0 * into b from a2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)insert into b(a, b, c) select d,e,f from b;3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)insert into b(a, b, c) select d,e,f from b in ‘具体数据库’where 条件例子:..from b in '"&Server.MapPath(".")&"data.mdb" &"' where..4、说明:子查询(表名1:a 表名2:b)select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)5、说明:显示文章、提交人和最后回复时间select a.title,ername,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b6、说明:外连接查询(表名1:a 表名2:b)select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c7、说明:在线视图查询(表名1:a )select * from (SELECT a,b,c FROM a) T where t.a > 1;8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括select * from table1 where time between time1 and time2select a,b,c, from table1 where a not between 数值1 and 数值29、说明:in 的使用方法select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)10、说明:两张关联表,删除主表中已经在副表中没有的信息delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )11、说明:四表联查问题:select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....12、说明:日程安排提前五分钟提醒SQL: select * from 日程安排where datediff('minute',f开始时间,getdate())>513、说明:一条sql 语句搞定数据库分页select top 10 b.* from (select top 20 主键字段,排序字段from 表名order by 排序字段desc) a,表名b where b.主键字段= a.主键字段order by a.排序字段14、说明:前10条记录select top 10 * form table1 where 范围15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)16、说明:包括所有在TableA 中但不在TableB和TableC 中的行并消除所有重复行而派生出一个结果表(select a from tableA ) except (select a from tableB) except (select a from tableC)17、说明:随机取出10条数据select top 10 * from tablename order by newid()18、说明:随机选择记录select newid()19、说明:删除重复记录Delete from tablename where id not in (select min(id) from tablename group by col1,col2,...)20、说明:列出数据库里所有的表名select name from sysobjects where type='U'21、说明:列出表里的所有的select name from syscolumns where id=object_id('TableName')22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。