TSQL内部测试笔试题
SQL测试题-tan

BENET S1 SQL &VIRUS单元测试题一、选择题(每题2分,共60分)1、使用数据库的必要性()A、有效存储B、高效访问C、方便共享D、安全控制2、数据库系统(DBS)的组成()A、存储介质B、处理对象C、电源D、管理系统3、()产品支持的操作系统最多A、SQL ServerB、O racleC、D B2D、Access4、数据库系统的模式()A、内模式B、外模式C、概念模式5、关系数据库中,能唯一识别元组的属性集称为(),它可能有()个。
A.主键,1B.主键,1、0、多个C.超键,1D.超键,1、0、多个6、数据库的非主属性是指关系数据库的数据库表中不是主键的其他属性,用户针对非主属性的操作有()A.删除B.修改C.添加D.查询7、关系数据库中,数据库的外键最不可能是()A.子表的主键B.子表的候选键C.子表的非主属性D.子表的主键8、SQL Server标准版不支持()个CPU(并行处理)A.2B.4C.8D.329、SQL Server2000的组件包括( )A.企业管理器B.事件探查器C.查询分析器D.客户端网络实用工具E.联机丛书10、S QL Server的服务不包括下面的()服务。
A.DNS ServerB.SQL Server服务(主要作用)C.SQL Server AgentD.Microsoft Search11、S QL Server服务器组和SQL Server服务器之间的关系是()A.SQL Server服务器组不能包含SQL Server服务器B.SQL Server服务器可以包含SQL Server服务器组C.SQL Server服务器组就是SQL Server服务器D.SQL Server服务器可以包含SQL Server服务器和SQL Server服务器子组12、添加一个SQLServer服务器的别名,最不可能包含下面的()信息A.网络路径B.DB-LibraryC.连接协议D.实例名称13、S QL Server 实例默认有()个系统数据库,分别是()A.4,master、model、tempdb、msdbB.4,master、model、Northwind、msdbC.5,master、model、tempdb、msdb,NorthwindD.5,master、model、msdb、Northwind、pubs14、有哪几种文件可以用于存储数据库A.主文件B.数据库文件C.次要文件D.事务日志15、m aster数据库在()操作前后不会发生变化A.重建master数据库B.使用客户端网络实用工具设置服务器名变化C.创建新数据库D.删除已存在的数据库16、下列描述正确的是()A.文件组可以包含一个数据文件B.文件组可以包含一个事务日志文件C.一个数据库有多个文件组D.一个数据库不可以有多个文件组17、从功能上讲,SQL语言包括了()A.DDLB.DMLC.DELD.DCL18、数据库管理员希望对数据库进行性能优化,以下操作中行之有效的方法为()。
面试sql笔试题目

面试sql笔试题目
好的,以下是一份可能的SQL笔试题目:
1. 写出查询所有学生成绩的SQL语句。
2. 写出查询学生表中年龄大于等于18岁的学生记录的SQL语句。
3. 写出查询学生表中年龄小于18岁且姓“张”的学生记录的SQL语句。
4. 写出查询学生表中年龄等于18岁且姓“李”的学生记录的SQL语句。
5. 写出查询学生表中年龄等于18岁或姓“李”的学生记录的SQL语句。
6. 写出查询学生表中年龄等于18岁或姓“李”且成绩大于等于90分的学生记录的SQL语句。
7. 写出查询学生表中年龄等于18岁或姓“李”且成绩大于等于90分,并按成绩从高到低排序的学生记录的SQL语句。
8. 写出查询学生表中年龄等于18岁或姓“李”且成绩大于等于90分,并取出前5条记录的SQL语句。
9. 写出查询学生表中年龄等于18岁或姓“李”且成绩大于等于90分,并取出最后一条记录的SQL语句。
10. 写出查询学生表中年龄等于18岁或姓“李”且成绩大于等于90分,并取出第3条至第5条记录的SQL语句。
sql笔试题及答案

sql笔试题及答案1. 题目1:查询员工表中工资大于5000的员工信息,并按照工资降序排列。
答案:SELECT * FROM 员工表 WHERE 工资 > 5000 ORDER BY 工资DESC;解析:使用SELECT语句查询员工表中满足工资大于5000的记录,并使用ORDER BY子句按照工资字段降序排列。
2. 题目2:统计订单表中每个客户的订单总数,并按照订单总数升序排列。
答案:SELECT 客户, COUNT(订单编号) AS 订单总数 FROM 订单表GROUP BY 客户 ORDER BY 订单总数 ASC;解析:使用SELECT语句查询订单表中每个客户的订单总数,并使用GROUP BY子句按照客户字段进行分组,COUNT函数用于统计订单编号,AS关键字用于为统计结果起别名,ORDER BY子句按照订单总数字段升序排列。
3. 题目3:查询学生表中不重复的学生姓名和对应的年龄。
答案:SELECT DISTINCT 学生姓名, 年龄 FROM 学生表;解析:使用SELECT DISTINCT语句查询学生表中不重复的学生姓名和对应的年龄。
4. 题目4:查询订单表中订单金额最大的订单信息。
答案:SELECT * FROM 订单表 WHERE 订单金额 = (SELECT MAX(订单金额) FROM 订单表);解析:使用SELECT语句查询订单表中订单金额等于最大订单金额的订单信息,使用子查询和MAX函数找出最大订单金额。
5. 题目5:查询销售表中每个月份的总销售金额。
答案:SELECT DATE_FORMAT(销售日期, '%Y-%m') AS 月份, SUM(销售金额) AS 总销售金额 FROM 销售表 GROUP BY DATE_FORMAT(销售日期, '%Y-%m');解析:使用SELECT语句查询销售表中每个月份的总销售金额,使用DATE_FORMAT函数将销售日期格式化成年月的形式,并使用SUM函数统计销售金额,使用GROUP BY子句按照月份进行分组。
一套SQL笔试题.doc

一套SQL笔试题1、查找整个职员表的所有内容。
select *from employees2、查看雇员名字(last_name)。
select last_namefrom employees3、查看雇员编号、名字和工种。
select last_name,job_id,employee_idfrom employees4、显示所有雇员的姓名、工资并将DEPARTMENT_ID显示为(Department_Id)。
select last_name,salary,DEPARTMENT_ID as Department_Id from employees5、查找在60号部门工作的雇员。
select last_name+first_name name,department_idfrom employeeswhere departmet_id=606、要求查找职位为SH_CLERK和SA_MAN的雇员姓名(last_name)。
select last_name job_idfrom employeeswhere job_id in (‘sh_clerk’,sa_man’)7、查找职位不是SH_CLERK和SA_MAN的雇员工种及姓名。
将姓名显示为(first_name+last_name命名为”Name”)。
select first_name+last_name Name, job_idfrom employeeswhere job_id not in (‘sh_clerk’,sa_man’)8、查找哪些雇员的工资在2000到3000之间select *from employeeswhere salary between 2000 and 30009、查找哪些雇员的工资不在3000到5000之间select *from employeeswhere salary not between 3000 and 500010、查找first_name以D开头,后面仅有三个字母的雇员信息。
SQL常考笔试题

订单:#订单编号,总价,订购日期;
订单子项: #子项编号,订单编号,产品编号,订购数量;
该表最高符合第()范式。C
A. 一
B. 二
C. 三
D. 未规范化的
14. 创建sql语句如下:
create table userInfo
(
userId int identity(-1,1), 第1行
针对以下题目请选择正确答案(每道题目有一个或多个正确的答案)。针对每一道题目,所有答案都选对,则该题得分,否则不得分。
1. 数据库设计的最终目标不包括()。 (选择两项)BD
A. 高效
B. 满足范式要求
C. 安全
D. 表现设计者的技术实力
E. 易用
F. 便于将来扩展功能和容量
2. 有关数据冗余说法错误的是()。(选择一项)C
userName nvarchar(20) not null, 第2行
cardNO char not null, 第3行
age smallint(2), 第4行
address ntext(300) 第5行
)
执行时,会在第()行出现错误。(选择两项)DE
A. 1
A. exec scoreproc 1,@myscore output
print @myscore
B. exec scoreproc @id = 1,@myscore output
print @myscore
C. declare @myscore numeric(4,2)
exec scoreproc 1,@myscore output
sql一些笔试题

sql一些笔试题1.触发器的作用?答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。
它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。
可以联级运算。
如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。
2。
什么是存储过程?用什么来调用?答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。
如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。
可以用一个命令对象来调用存储过程。
3。
索引的作用?和它的优点缺点是什么?答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。
它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。
索引可以是唯一的,创建索引允许指定单个列或者是多个列。
缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
7。
为管理业务培训信息,建立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) 使用标准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#) fromsc(5) 查询选修课程超过5门的学员学号和所属单位?答:select sn,sd from s where s# in(select s# from sc group by s# having count(distinct c#)>5)在面试过程中多次碰到两道SQL查询的题目,一是查询A(ID,Name)表中第31至40条记录,ID 作为主键可能是不是连续增长的列,完整的查询语句如下:select top 10 * from A where ID >(select max(ID) from (select top 30 ID from A order by A ) T) order by A另外一道题目的要求是查询表A中存在ID重复三次以上的记录,完整的查询语句如下:select * from(select count(ID) as count from table group by ID)T where T.count>3 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 Server数据库开发人员时,我运用了一套标准的基准技术问题。
SQL常见笔试面试题

SQL常见笔试⾯试题sql理论题1.触发器的作⽤?答:触发器是⼀中特殊的存储过程,主要是通过事件来触发⽽被执⾏的。
它可以强化约束,来维护数据的完整性和⼀致性,可以跟踪数据库内的操作从⽽不允许未经许可的更新和变化。
可以联级运算。
如,某表上的触发器上包含对另⼀个表的数据操作,⽽该操作⼜会导致该表触发器被触发。
2。
什么是存储过程?⽤什么来调⽤?答:存储过程是⼀个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建⼀次,以后在该程序中就可以调⽤多次。
如果某次操作需要执⾏多次SQL,使⽤存储过程⽐单纯SQL语句执⾏要快。
可以⽤⼀个命令对象来调⽤存储过程。
3。
索引的作⽤?和它的优点缺点是什么?答:索引就⼀种特殊的查询表,数据库的搜索引擎可以利⽤它加速对数据的检索。
它很类似与现实⽣活中书的⽬录,不需要查询整本书内容就可以找到想要的数据。
索引可以是唯⼀的,创建索引允许指定单个列或者是多个列。
缺点是它减慢了数据录⼊的速度,同时也增加了数据库的尺⼨⼤⼩。
3。
什么是内存泄漏?答:⼀般我们所说的内存泄漏指的是堆内存的泄漏。
堆内存是程序从堆中为其分配的,⼤⼩任意的,使⽤完后要显⽰释放内存。
当应⽤程序⽤关键字new等创建对象时,就从堆中为它分配⼀块内存,使⽤完后程序调⽤free或者delete释放该内存,否则就说该内存就不能被使⽤,我们就说该内存被泄漏了。
4。
维护数据库的完整性和⼀致性,你喜欢⽤触发器还是⾃写业务逻辑?为什么?答:我是这样做的,尽可能使⽤约束,如check,主键,外键,⾮空字段等来约束,这样做效率最⾼,也最⽅便。
其次是使⽤触发器,这种⽅法可以保证,⽆论什么业务系统访问数据库都可以保证数据的完整新和⼀致性。
最后考虑的是⾃写业务逻辑,但这样做⿇烦,编程复杂,效率低下。
5。
什么是事务?什么是锁?答:事务就是被绑定在⼀起作为⼀个逻辑⼯作单元的SQL语句分组,如果任何⼀个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。
SQL数据库试题(笔试题)

28.数据库:抽出部门,平均工资,要求按部门的字符串顺序排序,不能含有"human resource"部门,employee结构如下:employee_id, employee_name,depart_id,depart_name,wage答:select depart_name, avg(wage)from employeewhere depart_name <> 'human resource'group by depart_nameorder by depart_name-------------------------------------------------------------------------- 29.给定如下SQL数据库:Test(num INT(4)) 请用一条SQL语句返回num的最小值,但不许使用统计功能,如MIN,MAX等答:select top 1 numfrom Testorder 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))gocreate 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.idselect customer.id,sum(order.revener) from order,customer where customer.id=customerid group by customer.idselect customer.id, sum(order.revener )from customer full join orderon( order.customerid=customer.id )group by customer.id5数据库(10)a tabel called “performance”contain :name and score,please 用SQL 语言表述如何选出score最high的一个(仅有一个)仅选出分数,Select max(score) from performance仅选出名字,即选出名字,又选出分数:select top 1 score ,name from per order by scoreselect name1,score from per where score in/=(select max(score) from per).....4 有关系s(sno,sname) c(cno,cname) sc(sno,cno,grade)1 问上课程"db"的学生noselect count(*) from c,sc where ame='db' and o=oselect count(*) from sc where cno=(select cno from c whereame='db')2 成绩最高的学生号select sno from sc where grade=(select max(grade) from sc )3 每科大于90分的人数select ame,count(*) from c,sc where o=o andsc.grade>90 group by ameselect ame,count(*) from c join sc on o=o andsc.grade>90 group by ame数据库笔试题*建表:dept:deptno(primary key),dname,locemp:empno(primary key),ename,job,mgr,sal,deptno*/1 列出emp表中各部门的部门号,最高工资,最低工资select max(sal) as 最高工资,min(sal) as 最低工资,deptno from emp group by deptno;2 列出emp表中各部门job为'CLERK'的员工的最低工资,最高工资select max(sal) as 最高工资,min(sal) as 最低工资,deptno as 部门号from emp where job = 'CLERK' group by deptno;3 对于emp中最低工资小于1000的部门,列出job为'CLERK'的员工的部门号,最低工资,最高工资select max(sal) as 最高工资,min(sal) as 最低工资,deptno as 部门号from emp as bwhere job='CLERK' and 1000>(select min(sal) from emp as a wherea.deptno=b.deptno) group by b.deptno4 根据部门号由高而低,工资有低而高列出每个员工的姓名,部门号,工资select deptno as 部门号,ename as 姓名,sal as 工资from emp order by deptno desc,sal asc5 写出对上题的另一解决方法(请补充)6 列出'张三'所在部门中每个员工的姓名与部门号select ename,deptno from emp where deptno = (select deptno from emp where ename = '张三')7 列出每个员工的姓名,工作,部门号,部门名select ename,job,emp.deptno,dept.dname from emp,dept where emp.deptno=dept.deptno8 列出emp中工作为'CLERK'的员工的姓名,工作,部门号,部门名select ename,job,dept.deptno,dname from emp,dept wheredept.deptno=emp.deptno and job='CLERK'9 对于emp中有管理者的员工,列出姓名,管理者姓名(管理者外键为mgr)select a.ename as 姓名,b.ename as 管理者from emp as a,emp as b where a.mgr is not null and a.mgr=b.empno10 对于dept表中,列出所有部门名,部门号,同时列出各部门工作为'CLERK'的员工名与工作select dname as 部门名,dept.deptno as 部门号,ename as 员工名,job as 工作from dept,empwhere dept.deptno *= emp.deptno and job = 'CLERK'11 对于工资高于本部门平均水平的员工,列出部门号,姓名,工资,按部门号排序select a.deptno as 部门号,a.ename as 姓名,a.sal as 工资from emp as a where a.sal>(select avg(sal) from emp as b where a.deptno=b.deptno) order by a.deptno12 对于emp,列出各个部门中平均工资高于本部门平均水平的员工数和部门号,按部门号排序select count(a.sal) as 员工数,a.deptno as 部门号from emp as awhere a.sal>(select avg(sal) from emp as b where a.deptno=b.deptno) group by a.deptno order by a.deptno13 对于emp中工资高于本部门平均水平,人数多与1人的,列出部门号,人数,按部门号排序select count(a.empno) as 员工数,a.deptno as 部门号,avg(sal) as 平均工资from emp as awhere (select count(c.empno) from emp as c where c.deptno=a.deptno and c.sal>(select avg(sal) from emp as b where c.deptno=b.deptno))>1 group by a.deptno order by a.deptno14 对于emp中低于自己工资至少5人的员工,列出其部门号,姓名,工资,以及工资少于自己的人数select a.deptno,a.ename,a.sal,(select count(b.ename) from emp as b where b.sal<a.sal) as 人数from emp as awhere (select count(b.ename) from emp as b where b.sal<a.sal)>5数据库笔试题及答案第一套一.选择题1. 下面叙述正确的是CCBAD ______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TSQL内部测试笔试题
《MySchool数据库设计优化》内部测试-笔试试卷
1) 在SQL Server 中,为数据库表建立索引能够()。
A. 防止非法的删除操作
B. 防止非法的插入操作
C. 提高查询性能
D. 节约数据库的磁盘空间
2) 在SQL SERVER中,创立一个表使用()语句。
A. I NSERT
B. DROP
C. C REATE
D. A LERT
3) 在SQL SERVER中,下面关于视图说法错误的是()。
A. 对查询执行的大多数操作也能够在视图上进行
B. 使用视图能够增加数据库的安全性
C. 不能利用视图增加,删除,修改数据库中的数据
D. 视图使用户更灵活的访问所需要的数据
4) 在数据库设计中,用E-R图来描述信息结构但
不涉及信息在计算机中的表示,它是数据库设计的()阶段。
A. 需求分析
B. 概要设计
C. 逻辑设计
D. 物理设计
5) 在SQL Server 数据库中,如果强制要求
grades表中的学员必须是Students表中存在的学员,以下描述正确的是()。
A. 在grades表中创立外键约束
B. 在grades表中创立检查约束
C. 在grades表中创立唯一约束
D. 在grades表中创立默认约束
6) 在SQL Server 数据库中,下面的T-SQL语句
段执行第三句时出现错误,数据库中的内容修改情况是()。
BEGIN TRANSACTION
update Account set balance=7800 where id=1
update Account set balance=9000 where id=1
IF @@error <> 0
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
A. A ccount表中id为1的记录中balance字段的值被修改为7800
B. Account表中id为1的记录中balance字段的值被修改为9000
C. A ccount表中id为1的记录中balance字段的值不变
D. 不可能发生这种情况
7) 在SQL Server 数据库中,有关下列T-SQL语句的功能,说法正确的是()。
DECLARE @I int, @J int
SET @I=0
WHILE (@I < 2)
BEGIN
S ELECT @J=COUNT(*) FROM stuMarks WHERE writtenExam<60
IF(@J>0)
UPDATE stuMarks SET
writtenExam=writtenExam+5 WHERE
writtenExam<60
ELSE
BREAK
SET @I = @I + 1
END
SELECT stuNo,成绩=CASE
WHEN
writtenExam<60 THEN '不及格'
ELSE '及格'
END
FROM stuMarks
A. 给不及格的学员重复提5分直到经过为止,最后展示所有学员是否及格的情况信息
B. 给不及格的学员提10分,最后展示所有学员是否及格的情况信息
C. 给不及格的学员提5分,提分后仍不及格的。