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 ______。
SQL笔试题
SQL 笔试题一、填空1、目前较为流行的三种 DBMS: ( ) 、( ) 、( ) 。
P22、数据库设计过程包括( )个阶段, ( )阶段是基础; ( )阶段是关键。
3、用户需求包括信息需求和( )需求。
P34、数据库设计最耗时的阶段是( ),整个数据库生存周期最耗时的阶段是( ) 。
P45、现实世界中客观存在的并可区分识别的事物称为( ) 。
6、属性的特定取值范围称为( ) 。
P77 、E-R 模型的英文全拼是( ) p88、如果 E-R 图中,菱形框引出的属性称为( ) 。
9、概念模型设计第一步( ),第二步( ) 。
P910、合并 E-R 模型之前要解决局部 E-R 模型( )问题。
11、概念结构设计优化指,对初步 E-R 图进行修改,消除( ),生成基本的 E-R 图。
12、数据模型优化的根据是( ) 。
13、关系就是由行和列组成的( ) 。
P1114、关系中的行称为( ),列称为( ) 。
15、完整性指数据的( )和( ) 。
P1616、实体完整性指( ) 。
P1617、参照完整性指( ) 。
18、索引的作用( ) 。
19、默认文件组的名字是( ) 。
P4420、执行 SQL 脚本的快捷键是( ) 。
P4721、【分离】数据库后,恢复数据库的操作是( ) 。
22、【脱机】数据库后,恢复数据库的操作是( ) 。
23、数据类型 numeric(6,2)含义是( ) 。
24、( )是 SQL Server2005 提供的自动保持数据完整性的一种方法。
P7525、( )情况下主键约束一定是表级约束。
P7826、字段别名改变的是( ) 。
P10527、连接查询指( ) 。
P12328、写出 A 与 B 左外连接的语句( ) 。
29、在连接查询中,物理避免来自不同表相同字段引起混淆,在列名前面增加( ) 作为前缀。
30、T-SQL 中 T 的中文含义是( ) 。
31、T-SQL 语言分( )类。
SQL笔试题
SQL笔试题针对以下题目请选择正确答案(每道题目有一个或多个正确的答案)。
针对每一道题目,所有答案都选对,则该题得分,否则不得分。
1.数据库设计的最终目标不包括()。
(选择两项)BDA.高效B.满足范式要求C.安全D.表现设计者的技术实力E.易用F.便于将来扩展功能和容量2.有关数据冗余说法错误的是()。
(选择一项)CA.数据库中,数据存在副本的现象,就是数据冗余。
B.通过分类存储,可以有效减少数据冗余,但是会增加数据查找的复杂性。
C.在数据库设计阶段,一定要尽最大可能避免数据冗余,最好做到无数据冗余。
D.数据冗余通常是由于数据库设计引起的。
3.用于表示数据库实体之间的关系图是()。
AA.实体关系图B.数据模型图C.实体分类图D.以上都不是4.假定有一个用户表,表中包含字段:uerid(int)、uername(varchar)、paword(varchar)等,该表需要设置主键,以下说法正确的是()。
(选择两项)ABA.如果不能有同时重复的uername和paword,那么uername和paword可以组合在一起作为主键。
B.此表设计主键时,根据选择主键的最小性原则,最好采用uerid作为主键。
C.此表设计主键时,根据选择主键的最小性原则,最好采用uername和paword作为组合键。
D.如果采用uerid作为主键,那么在uerid列输入的数值,允许为空。
5.语句altertableuerinfoaddcontraintuq_ueridunique(uerid)执行成功后,为uerinfo表的()字段添加了()约束。
BA.uerid主键B.uerid 唯一C.uq_uerid外键D.uq_uerid检查6.运行如下T-SQL,结果返回包含()的记录集。
Acreatetablecore(coreidintidentity(1,2),corenumeric(4,2)notnull,coureidint)inertintcorevalue(90.5,null);inertintocorevalue(78.234,2);el ect某fromcore;A.190.50NULL378.232B.178.232C.190.50D.190.50278.2327.关于子查询,以下说法正确的是()。
T-SQL内部测试机试题
《MySchool数据库设计优化》内部测试-机试试卷某中心ACCP的某班毕业后,学员纷纷找到了满意的工作。
到了年底调薪的阶段了,创建一个存储过程,对这批学员进行按级别调薪。
数据库名为Wages,保存学员就业信息表的结构WageInfo,见表1;保存学员信息的表为StudentInfo,见表2。
要求:按下面的要求,编写T-SQL语句,对学员就业和目前的工资进行分析。
1)创建数据库Wages。
如果数据库Wages已存在,那么,先删除再创建。
2)根据表1的表结构,创建WagesInfo表。
如果表WagesInfo已存在,则先删除再创建该表。
3)根据表1的表结构,创建StudentInfo表。
如果表StudentInfo已存在,则先删除再创建该表。
4)添加WagesInfo表和StudentInfo表的主外键约束。
5)在StudentInfo表和WagesInfo表中插入至少5条测试数据。
6)在StudentInfo表PosteDate列上创建非聚集索引。
7)创建视图,并执行查询获得已经就业的学员记录。
8)创建视图,并执行查询获得目前尚未就业的学员记录。
9)创建并执行存储过程,查询是否有一半程序员的工资在3000、4000或6000元之上。
如果不到分别每次给每个程序员加薪50元,至之一半程序员的工资达到3000,4000或6000元。
10)创建并执行存储过程,查询程序员平均工资在3500元,如果不到则每个程序员每次加50元,至到所有程序员平均工资达到3500元。
11)保存SQL代码,分离数据库,生成压缩包,提交符合命名规范的练习答案。
sql测试题和答案
sql测试题和答案以下是一些常见的SQL测试题及其答案。
这些题目旨在考察SQL 基本知识和查询能力。
希望对你的SQL学习和提升有所帮助。
1. 给定一个名为"Students"的表格,包含学生的姓名、年龄和分数三个字段。
写一个SQL查询,按照分数从高到低排列,显示学生姓名和分数。
答案:SELECT Name, ScoreFROM StudentsORDER BY Score DESC;2. 给定一个名为"Customers"的表格,包含顾客的姓名、所在城市和消费金额三个字段。
写一个SQL查询,显示每个城市的总消费金额,结果按照金额从高到低排序。
答案:SELECT City, SUM(Expense) as TotalExpenseFROM CustomersGROUP BY CityORDER BY TotalExpense DESC;3. 给定一个名为"Orders"的表格,包含订单号、顾客姓名和订单日期三个字段。
写一个SQL查询,显示每个顾客最近一次的订单日期。
答案:SELECT CustomerName, MAX(OrderDate) as LastOrderDateFROM OrdersGROUP BY CustomerName;4. 给定一个名为"Employees"的表格,包含员工的姓名、职位和入职日期三个字段。
写一个SQL查询,显示每个职位的最早入职员工姓名。
答案:SELECT Position, MIN(StartDate) as EarliestEmployeeFROM EmployeesGROUP BY Position;5. 给定一个名为"Products"的表格,包含产品名称、价格和所属分类三个字段。
写一个SQL查询,显示每个分类中价格最高的产品。
答案:SELECT Category, MAX(Price) as HighestPriceFROM ProductsGROUP BY Category;这些题目涵盖了SQL中的基本查询、排序、分组和聚合等操作。
[转]SQL笔试经典50题及答案解析
[转]SQL笔试经典50题及答案解析建表语句create table Student(sid varchar(10),sname varchar(10),sage datetime,ssex nvarchar(10));insert into Student values('01' , '赵雷' , '1990-01-01' , '男');insert into Student values('02' , '钱电' , '1990-12-21' , '男');insert into Student values('03' , '孙风' , '1990-05-20' , '男');insert into Student values('04' , '李云' , '1990-08-06' , '男');insert into Student values('05' , '周梅' , '1991-12-01' , '⼥');insert into Student values('06' , '吴兰' , '1992-03-01' , '⼥');insert into Student values('07' , '郑⽵' , '1989-07-01' , '⼥');insert into Student values('08' , '王菊' , '1990-01-20' , '⼥');create table Course(cid varchar(10),cname varchar(10),tid varchar(10));insert into Course values('01' , '语⽂' , '02');insert into Course values('02' , '数学' , '01');insert into Course values('03' , '英语' , '03');create table Teacher(tid varchar(10),tname varchar(10));insert into Teacher values('01' , '张三');insert into Teacher values('02' , '李四');insert into Teacher values('03' , '王五');create table SC(sid varchar(10),cid varchar(10),score decimal(18,1));insert into SC values('01' , '01' , 80);insert into SC values('01' , '02' , 90);insert into SC values('01' , '03' , 99);insert into SC values('02' , '01' , 70);insert into SC values('02' , '02' , 60);insert into SC values('02' , '03' , 80);insert into SC values('03' , '01' , 80);insert into SC values('03' , '02' , 80);insert into SC values('03' , '03' , 80);insert into SC values('04' , '01' , 50);insert into SC values('04' , '02' , 30);insert into SC values('04' , '03' , 20);insert into SC values('05' , '01' , 76);insert into SC values('05' , '02' , 87);insert into SC values('06' , '01' , 31);insert into SC values('06' , '03' , 34);insert into SC values('07' , '02' , 89);insert into SC values('07' , '03' , 98);3、表结构预览--学⽣表Student(SId,Sname,Sage,Ssex)--SId 学⽣编号,Sname 学⽣姓名,Sage 出⽣年⽉,Ssex 学⽣性别--课程表Course(CId,Cname,TId)--CId 课程编号,Cname 课程名称,TId 教师编号--教师表Teacher(TId,Tname)--TId 教师编号,Tname 教师姓名--成绩表SC(SId,CId,score)--SId 学⽣编号,CId 课程编号,score 分数题⽬1、查询“01”课程⽐“02”课程成绩⾼的所有学⽣的学号;2、查询平均成绩⼤于60分的同学的学号和平均成绩;3、查询所有同学的学号、姓名、选课数、总成绩4、查询姓“李”的⽼师的个数;5、查询没学过“张三”⽼师课的同学的学号、姓名;6、查询学过编号“01”并且也学过编号“02”课程的同学的学号、姓名;7、查询学过“张三”⽼师所教的课的同学的学号、姓名;8、查询课程编号“01”的成绩⽐课程编号“02”课程低的所有同学的学号、姓名;9、查询所有课程成绩⼩于60分的同学的学号、姓名;10、查询没有学全所有课的同学的学号、姓名;11、查询⾄少有⼀门课与学号为“01”的同学所学相同的同学的学号和姓名;12、查询和"01"号的同学学习的课程完全相同的其他同学的学号和姓名13、把“SC”表中“张三”⽼师教的课的成绩都更改为此课程的平均成绩;14、查询没学过"张三"⽼师讲授的任⼀门课程的学⽣姓名15、查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩16、检索"01"课程分数⼩于60,按分数降序排列的学⽣信息17、按平均成绩从⾼到低显⽰所有学⽣的平均成绩18、查询各科成绩最⾼分、最低分和平均分:以如下形式显⽰:课程ID,课程name,最⾼分,最低分,平均分,及格率19、按各科平均成绩从低到⾼和及格率的百分数从⾼到低顺序20、查询学⽣的总成绩并进⾏排名21、查询不同⽼师所教不同课程平均分从⾼到低显⽰22、查询所有课程的成绩第2名到第3名的学⽣信息及该课程成绩23、统计各科成绩各分数段⼈数:课程编号,课程名称,[100-85],[85-70],[70-60],[0-60]及所占百分⽐24、查询学⽣平均成绩及其名次25、查询各科成绩前三名的记录26、查询每门课程被选修的学⽣数27、查询出只选修了⼀门课程的全部学⽣的学号和姓名28、查询男⽣、⼥⽣⼈数29、查询名字中含有"风"字的学⽣信息30、查询同名同性学⽣名单,并统计同名⼈数31、查询1990年出⽣的学⽣名单(注:Student表中Sage列的类型是datetime)32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列37、查询不及格的课程,并按课程号从⼤到⼩排列38、查询课程编号为"01"且课程成绩在60分以上的学⽣的学号和姓名;40、查询选修“张三”⽼师所授课程的学⽣中,成绩最⾼的学⽣姓名及其成绩42、查询每门功课成绩最好的前两名43、统计每门课程的学⽣选修⼈数(超过5⼈的课程才统计)。
sql经典笔试题一(含答案)
sql经典笔试题一(含答案)一单词解释(2分/个) 34Data 数据Database 数据库RDBMS 关系数据库管理系统GRANT 授权REVOKE取消权限DENY 拒绝权限DECLARE 定义变量PROCEDURE存储过程Transaction事务TRIGGER触发器继续continue 唯一unqiue 主键primary key 标识列identity 外键foreign kdy 检查check 约束constraint二编写SQL语句(5分/题)501) 创建一张学生表,包含以下信息,学号,姓名,年龄,性别,家庭住址,联系电话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 stu9) 查询出所有学生的姓名,性别,年龄降序排列Select 姓名,性别from stu order by 年龄desc10) 按照性别分组查询所有的平均年龄Select avg(年龄) from stu group by 性别三填空(3分/题) 361)索引分为__聚集索引___和__非聚集索引__在一张表上最多可以创建1个聚集索引_索引。
- 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分,提分后仍不及格的。