C) SELECT all 班级 FROM 学生
D) SELECT distinct 班级 FROM学生
18. 在SQL SERVER 2008中,下列关于触发器的说法中错误的是( )。
(A) 触发器是一种特殊的存储过程
(B) 可以向触发器传递参数
© 可以在视图上定义触发器
(D) 触发器可以实现复杂的完整性规则
19. ( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMS B.DB
C.DBS D.DBA
20. 在SQL中,建立表用的命令是 ( )。
A.CREATE SCHEMA B.CREATE TABLE
C.CREATE VIEW D.CREATE INDEX
21. 一个事务的执行不能被其他事务干扰,这个性质称为事务的( )。
(A) 原子性 (B) 一致性 © 隔离性 (D) 持续性
22. 在SQL语言中,DELETE语句的作用是( )。
(A) 删除基本表 (B) 删除视图 © 删除列 (D) 删除基本表中的元组
23. 在SQL SERVER中,表示范围的通配符是( )。
(A) _ (B) % © [] (D) {}
24. 在SQL SERVER中定义局部变量应使用( )。
(A) DECLARE (B) SET © DEFINE (D) PUT
25. 在SQL语句中,可以完成两个表间的笛卡尔积运算的选项是( )。
A) INNER JOIN (B) LEFT JOIN © CROSS JOIN (D) FULL JOIN
26. 在SQL语句中,条件“<ANY”等价于( )。
(A) <MAX (B) <MIN © >MAX (D) >MIN
22、删除游标stud_cursor的命令是( )。
(A) .CLOSE stud_cursor (B).DEALLOCATE stud_cursor
©.DROP stud_cursor (D).DELETE stud_cursor
27. 下列四项中,不正确的提法是( )。
A.SQL语言是关系数据库的国际标准语言
B.SQL语言具有数据定义、查询、操纵和控制功能
C.SQL语言可以自动实现关系数据库的规范化
D.SQL语言称为结构查询语言
28. 8.在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。
A. sp_dbhelp B.sp_db
C. sp_help D. sp_helpdb
29. SQL语言中,删除一个表中所有数据,但保留表结构的命令是()
A、DELETE B、DROP
C、CLEAR D、REMORE
30. 10.SQL的视图是从( )中导出的。
A. 基本表 B. 视图
C. 基本表或视图 D. 数据库
31. 8.查询毕业学校名称与“清华”有关的记录应该用( )。
A. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ’*清华*’
B. SELECT * FROM 学习经历 WHERE 毕业学校 = ’%清华%’
C. SELECT * FROM 学习经历 WHERE 毕业学校 LIKE ’?清华?’
D. SELECT * FROM 学习经历 WHERE毕业学校 LIKE’%清华%’
32. 3. 哪个关键字用于测试跟随的子查询中的行是否存在( )。
A.MOV B.EXISTS
C.UNION D.HAVING
33. 使用索引下列哪个说法是正确的( )。
A. 节省磁盘空间
B. 缩短查询时间
C. 在执行插入、修改、删除时节省时间
D. 与表无关
34. 15.查询员工工资信息时,结果按工资降序排列,正确的是( )
A、ORDER BY 工资 B、ORDER BY工资 desc
C、ORDER BY 工资 asc D、ORDER BY 工资 dictinct
35. 下列聚合函数中正确的是( )
A、SUM (*) B、MAX (*)
C、COUNT (*) D、AVG (*)
36. SQL中,下列涉及通配符的操作,范围最大的是( )
A、name like ’hgf#’ B、name like ’hgf_t%’
C、name like’hgf%’ D、name like ’hgf#%’ escape ’#’
37. 在MS SQL Server中,关于数据库的说法正确的是( )
A、一个数据库可以不包含事务日志文件
B、一个数据库可以只包含一个事务日志文件和一个数据库文件
C、一个数据库可以包含多个数据库文件,但只能包含一个事务日志文件
D、一个数据库可以包含多个事务日志文件,但只能包含一个数据库文件
38. SQL中,下列涉及空值的操作,不正确的是( )
A、age IS NULL B、age IS NOT NULL
C、age = NULL D、NOT (age IS NULL)
39. 在T-SQL语言中,修改表结构时,应使用的命令是()
A.UPDATE B. INSERT
C. ALTER D. MODIFY
40. 模式查找like ‘_a%’,下面哪个结果是可能的
A.aili B. bai
C.bba D.cca
41. 下列标识符可以作为局部变量使用( )。
A. Myvar B. My var
C. @Myvar D. @My var
42. 以下关于主键的描述正确的是( )。
A.标识表中唯一的实体 B.创建唯一的索引,允许空值
C.只允许以表中第一字段建立 D.表中允许有多个主键
43. 脚本文件是在( )中执行的。
A、企业管理器 B、查询分析器
C、服务管理器 D、事件探查器
44. 当关系R和S自然联接时,能够把R和S原该舍弃的元组放到结果关系中的操作是( )
A、左外联接 B、右外联接
C、内联接 D、全外联接
45. 在视图上不能完成的操作是( )
A.更新视图数据 B.查询
C.在视图上定义新的基本表 D.在视图上定义新视图
46. 阅读下列代码,判断运行结果是( )。
Declare @sum int,@count int
Select @sum=0,@count=1
Label1:
Select @sum=@sum+@count
Select@count=@count+1
if @count<=5
Goto label1
Select @count-1,@sum
A.5 15 B.5 10 C.4 15 D.4 10
三、填空题(每空1分,共20分)
1. SQL Server 2008局部变量名字必须以____@_____开头,而全局变量名字必须以____@@_____开头。
2. 给变量@temp 赋值为b的语句有_______select @temp=b__________和____set @temp =b___________。
3. 执行存储过程proc_sample的语法为____exec proc_sample_____________。
4. 在SQL Server 2008中,数据库对象包括___表___、__视图____、触发器、过程、列、索引、约束、规则、默认和用户自定义的数据类型等。
5. 在E-R图中,用__矩形__表示实体,用_菱形_____表示联系,用___椭圆形__表示属性。
6. 语句 select datediff(hour,‘05/04/2013’,’5/6/2013’)的执行结果是: __48_______。
7. 检索姓名字段中含有’娟’的表达式为 姓名like ‘%娟%’ 。
8. ______实体完整性_______用于保证数据库中数据表的每一个特定实体的记录都是惟一的。
9. 索引的类型有____聚集索引__________和非聚集索引。
10. SQL语言主要由_______DDL_________、_______DML________和数据控制语言(DCL)组成。
11. SQL Server登录身份验证模式类型有___Windows认证______和____Windows和SQL Server混合认证_____两种。
12. 事务的4个属性:原子性、一致性、___隔离____性和____持久___性。
13. ____存储过程___是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。
14. ____关系完整性____是为保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。
15. HAVING子句与WHERE子句很相似,其区别在于:
WHERE子句作用的对象是_____表和视图_________,HAVING子句作用的对象是______组__________。
16. 建立和使用____约束____的目的是为了保证数据的完整性。
17. BACKUP命令是对数据库进行____备份______,RESTORE命令是对数据库进行_____还原_____。
18. SQL Server 2008提供的数据库备份类型有___完整____备份和____差异____备份、_____事务日志_______备份。
三:编程题
1. 创建数据库。要求用SQL语句创建满足如下要求的数据库:
(1) 数据库名称为School;
(2) 主数据文件:逻辑名为SchoolData,文件名为“D:\ School\SchoolData.mdf”,文件初始大小为50MB,文件的最大大小不受限制,文件的增长率为20%。
(3) 日志文件:逻辑名为SchoolLog,文件名为“D:\ School\SchoolLog.ldf”,文件初始大小为10MB,文件的最大大小为50MB,文件的增长率为1MB;
–创建数据库
create database school
on primary
(
name=‘schoolData’,
filename=‘D:\school\schoolData.mdf’,
size=50MB,
filegrowth=20%
)
log on
(
name=‘schoolLog’,
filename=‘D:\school\schoolLog.ldf’,
size=10MB,
maxsize=50MB,
filegrowth=1MB
)
2. 创建数据类型和表,增加约束。
(1)表tblstudent(学生表):
列名 | 数据类型 | 可空性 | 约束 | 备注 |
stuID | bigint | 非空 | primary key | 学号 |
stuName | nvarchar(10) | 非空 |
| 姓名 |
stuSex | nchar(1) | 非空 | 只能是‘男’或‘女’ | 性别 |
stuBirth | datetime | 可空 | 小于系统当前时间getdate() | 出生日期 |
stuNum | nvarchar(18) | 可空 | Unique | 身份证号 |
Departed | Int | 可空 |
| 系号 |
City | nvarchar(10) | 可空 | 默认是‘成都’ | 城市 |
stuTelphone | Char(11) | 可空 |
| 电话 |
说明:type_telphone是自定义类型,要求自己创建,使用系统数据类型char(11),可空。
–创建表
–自定义类型
exec sp_addtype Type_telphone,‘char(11)’,NULL,NULL
use school
create table tblstudent(
stuID bigint not null,–学号
stuName nvarchar(10) notnull,–姓名
stuSex nchar(1) not null CONSTRAINT CK_Sex Check(stuSexin(‘男’,‘女’)),–条件约束,性别
stuBirth datetime Unique CONSTRAINT CK_Bir Check(stuBirth<=getDate()),–唯一约束,生日
stuNum nvarchar(18) Unique,–身份证
Departed int, --系号
City nvarchar(10) Default(‘成都’),–城市
stuTelephone Type_telphone, --电话
PRIMARY KEY(stuID)
)
(2)表tblscore(成绩表):
列名 | 数据类型 | 可空性 | 约束 | 备注 |
stuID | bigint | 非空 | foreign key 引用tblstudent中的stuID | 学号 |
Math | Int | 可空 | 0~100分 | 数学 |
English | Int | 可空 | 0~100分 | 英语 |
Computer | Int | 可空 | 0~100分 | 计算机 |
Summary | Int | 可空 |
| 总分 |
create table tblscore
(
stuID bigint not null,–学号
Math int CONSTRAINT CK_Math Check(Math<= 100andMath>= 0),–数学
English int CONSTRAINT CK_English Check(English<= 100andEnglish >= 0),–英语
Computer int CONSTRAINT CK_Computer Check(Computer<= 100andComputer >= 0),–电脑
Summary int, --CONSTRAINT INTCK_Summary Check(Summary = Math + English + Computer),
FOREIGN KEY(stuID) REFERENCES tblstudent(stuID)
)
(3)表tblteacher(教师表):
列名 | 数据类型 | 可空性 | 约束 | 备注 |
teaID | Int | 非空 | primary key | 学号 |
teaName | nvarchar(10) | 非空 |
| 姓名 |
teaSex | nchar(1) | 非空 | 只能是‘男’或‘女’ | 性别 |
teaTelphone | Char(11) | 可空 |
| 电话 |
create tabletblteacher
(
teaID int not null,–学号
teaName nvarchar(10)notnull,–姓名
teaSex nchar(1) not null CONSTRAINT CK_teaSexCheck(teaSexin(‘男’,‘女’)),
teaTelphone Type_telphone
)
3. 用SQL语句给表插入如下数据。
(1)表tblstudent(学生表):
stuID | stuName | stuSex | stuBirth | stuNum | departID | city | stuTelphone |
1001 | 赵毅 | 男 | 1990-1-1 | 510111199001014279 | 1 | 成都 | 13888888888 |
1002 | 钱尔 | 女 | 1993-2-2 | 110008199302022325 | 2 | 北京 | null |
1003 | 孙山 | 男 | 1989-3-9 | 510111198903092619 | 2 | 成都 | 13333333333 |
insert into tblstudent(stuID,stuName,stuSex,stuBirth,stuNum,Departed,City,stuTelephone)
values
(‘1001’,‘赵毅’,‘男’,‘1990-1-1’,‘51011199001014279’,‘1’,‘成都’,‘13888888888’)
INSERT INTO
tblstudent(stuID,stuName,stuSex,stuBirth,stuNum,Departed,City,stuTelephone)
SELECT
‘1002’,‘钱尔’,‘女’,‘1993-2-2’,‘110008199302022325’,‘2’,‘北京’,null
UNION ALL
SELECT
‘1003’,‘孙山’,‘男’,‘1989-3-9’,‘510111198903092619’,‘2’,‘成都’,‘13333333333’
(2)表tblscore(成绩表):
stuID | Math | English | computer | summary |
1001 | 70 | 80 | 90 | null |
1002 | 45 | 55 | 60 | null |
INSERT INTO tblscore(stuID,Math,English,Computer,Summary)
SELECT
‘1001’,‘70’,‘80’,‘90’,null
UNION ALL
SELECT
‘1002’,‘45’,‘55’,‘60’,null
(3)表tblteacher(教师表):
teaID | teaName | teaSex | teaTelphone |
102 | 李丝 | 女 | 13987654321 |
203 | 王武 | 男 | 13012345678 |
INSERT INTO tblteacher(teaID,teaName,teaSex,teaTelphone)
SELECT
‘102’,‘李丝’,‘女’,‘13987654321’
UNION ALL
SELECT
‘203’,‘王武’,‘男’,‘13012345678’
4. 更新总分=数学+英语+计算机。
update tblscoresetSummary= Math + English+Computer;
5. 找出所有系的男生,显示学号、姓名、性别及系号。
SELECT stuID,stuName,stuSex,Departed FROM tblstudent WHERE stuSex=‘男’;
6. 找出总成绩最高的学生的学号和姓名。
SELECT stuID,stuName FROMtblstudent
如何做好面试突击,规划学习方向?
面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。
学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。
同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
系的男生,显示学号、姓名、性别及系号。
SELECT stuID,stuName,stuSex,Departed FROM tblstudent WHERE stuSex=‘男’;
6. 找出总成绩最高的学生的学号和姓名。
SELECT stuID,stuName FROMtblstudent
如何做好面试突击,规划学习方向?
面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。
学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。
同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
[外链图片转存中…(img-Vhkp9u8W-1715045241883)]
在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。
[外链图片转存中…(img-C5uKlbww-1715045241885)]
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!