SQL语言基础温习题计科.docx
- 文档编号:28284727
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:14
- 大小:22.02KB
SQL语言基础温习题计科.docx
《SQL语言基础温习题计科.docx》由会员分享,可在线阅读,更多相关《SQL语言基础温习题计科.docx(14页珍藏版)》请在冰豆网上搜索。
SQL语言基础温习题计科
填空
1.查询语句的From子句中表的连接方式有全连接和JOIN两种。
2.利用INSERTINTO…SELECT语句能够快速的从一个表或多个表中插入多行数据。
3.MySQL中索引默以为升序排序,利用UNIQUE表示创建的是唯一性索引,利用FULLTEXT表示创建全文索引,利用spatial 表示创建空间索引。
4.MySQL中有一般索引、唯一性索引、主键和全文索引四种索引。
5.创建存储进程和存储别离函数createprocedure和createfunction语句;与存储进程相较,存储函数不能拥有输出参数,不能利用call语句挪用,而且存储函数必需含有一条return语句。
6.利用一个游标需要用到四条特殊的语句别离是declarecurson、opencurson、fetchcurson和closecurson。
7.删除表数据能够利用Delete语句或truncatetable语句;更新表数据利用updatetable语句。
8.DECLAREHANDLER语句为错误代码声明了一个处置程序,DECLAREHANDLER语法格式为:
DECLAREhandler_typeHANDLERFORcondition_value[,...]sp_statement,其中handler_type是处置程序的类型,要紧包括continue、exit和undo三种;其中,利用continue那么MySQL不中断存储进程的处置;sp_statement表示处置程序激活时将要执行的动作。
9.在MySQL中提供了主键约束、UNIQUE约束、外键约束和CHECK约束四种约束来实现数据的完整性。
10.MySQL中若是在操纵流程中需要执行两条或两条以上的语句,那么应将这些语句概念在BEGIN和END之间。
11.关系数据库设计包括三个层次的设计,别离是概念结构设计、逻辑结构设计和数据库物理设计。
12.在Insert语句中利用High_priority修饰符,能够使操作优先执行。
13.存储进程体内声明的变量称为局部变量,此类变量只能利用declare语句在begin…end语句块中声明,利用复制符号“=”用set语句进行赋值。
14.SELECTIFNULL(NULL,‘MYSQL’);的结果为MYSQL;SELECTNULLIF(‘MYSQL’,‘MYSQ’);的结果为MYSQL。
15.假设表tb1和表tb2中都有两个字段idint(4),pwdchar(4),其中id为主键。
当tb1表中id只与tb2表中id值相同时,将表tb1中对应的pwd值修改成“AAA”,将表tb2中对应的pwd值修改成“BBB”。
那么对应语句为:
Updatetb1,tb2SET=’AAA’,=’BBB’where=。
16.MySQL支持的索引类型有btree和hash,创建索引时能够利用关键字using指定索引的类型,若是不指定,那么自动创建一个btree索引。
17.利用showtables语句能够显示当前数据库中所有表的名称;利用showindexfromtable_name能够显示表的索引信息;利用showgrantsforuse_name语句显示一个用户的权限;利用showevents语句能够显示所有事件的列表。
18.利用showdatabases语句能够显示MySQL中所有数据库的名称;利用use命令能够从一个数据库跳转到另一个数据库;利用showcreatedatabase数据库名语句能够显示创建一个数据库的语句;利用showcreatetable表名语句能够显示创建一个数据表的语句。
19.在MySQL中,利用delimiter能够修改语句的终止标志。
20.MySQL中利用NOW()函数能够获适当前系统的日期和时刻,利用curtime()函数能够返回当前的时刻。
Curdate():
日期
21.在Insert语句中利用关键字ignore,那么在执行语句是显现的错误解被当做警告处置;利用onduplicatekeyupdate选项插入行时,假设致使UNIQUEKEY或主键显现重复值,那么依照UPDAE后的语句修转业,利用此选项时关键字delayed将被轻忽。
22.变量用于临时寄存数据,变量的数据随着程序的运行而改变,在MYSQL中,变量可分为用户变量和系统变量。
23.在MySQL中,用户变量与连接相关,而且以@开头。
24.利用showtables语句能够显示MySQL当前数据库中所有表的名称;利用showwarnings语句能够显示最后一条执行的语句所产生的警告和通知;利用showerrors语句能够显示最后一条执行的语句所产生的错误。
25.在MySQL中,利用declarecondition语句为错误代码声明对应的处置程序。
26.在MySQL中,系统变量可分为全局系统变量和会话系统变量。
27.在MySQL中,能够概念一段程序寄存在数据库中,如此的程序称为存储进程。
28.利用showstatus语句能够显示一些系统特定资源的信息;利用showprivileges语句能够显示效劳器所支持的不同权限;利用showcreateprocedurestatus语句能够显示数据库中所有存储进程的大体信息。
29.利用Handleropen语句能够打开一个表,利用Handlerread语句能够阅读一个已经打开表的数据行,行读取完毕后能够利用Handlerclose语句关闭表。
30.MySQL保证数据平安的三种方式数据的备份,二进制日记文件,数据库复制。
31.Handler语句的利用进程是:
打开一个表,阅读表中的行,关闭打开的表。
1.简答题
1.简述DB、DBMS、DBS、DBA的概念及其彼此之间的关系。
DB:
数据库是存在数据的仓库,依照必然的格式寄存在运算机上。
DBMS:
数据库治理系统是治理数据的系统,它依照必然数据模型组织数据。
DBS:
数据库系统,是运算机系统和数据库治理系统组成的系统。
DBA:
数据库治理员进行对数据库进行概念操作日常保护的工作人员
其中DBS包括DS、DBMS、DBA。
2.什么是数据库系统,它有什么特点?
数据库系统是指运算机系统中引入数据后组成的系统。
数据库系统由数据库、数据库治理系统、应用系统、数据库治理员组成。
特点:
数据结构化、数据的共享性高,冗余度低,易扩充、数据独立性高、数据库有DBMS统一治理和操纵。
3.什么是数据模型?
数据库治理系统所采纳的要紧数据模型有哪些?
模型化和数据之间的工具。
层次模型、网状模型、关系模型。
4.简述MySQL中是如何处置事务,语句别离是什么。
1开始事务starttransaction|beginshiwu
2终止事务commitshiwu
3撤销事务rollbackshiwu
4回滚事务rollbackshiwutosavepointss
5.简述成立索引的要紧作用。
1快速读取数据
2保证数据记录的唯一性
3实现表与表之间的参照完整性
4在利用groupbyordreby检索时,利用索引能够减少排序和分组时刻
6.试述数据完整性的含义和分类。
含义:
存储在数据库中的数据的准确性和一致性。
分类:
实体完整性、参照完整性、用户自概念完整性
7.简述事务的属性。
原子性、隔离性、一致性、持久性
8.当多用户对数据库并发访问时,锁定所起到的作用有哪些?
避免用户读取正在由其他用户更改的数据吗,而且能够避免多个用户同时更改相同的数据,确保事务完整性和数据库一致性。
9.简述MySQL中能够授予新用户的权限有哪些。
列权限、表权限、数据库权限、用户权限
10.简述MySQL如何实现数据的完整性。
实体完整性、参照完整性、UNIQUE约束、CHECK约束
11.简述MySQL提供的隔离级别。
序列化、可重复读、提交读、未提交读
12.简述关系型数据库的设计步骤。
概念结构设计、逻辑结构设计、数据库物理设计
13.简述利用客户端程序备份和恢复数据的进程。
14.试说明存储进程的特点和分类。
存储进程在效劳器端运行,执行速度快;存储进程执行一次后,其执行计划就驻留在高速缓冲存储器;确保数据库平安性。
分类:
系统存储进程、扩展存储进程、本地存储进程、临时存储进程、远程存储进程。
15.简述MySQL中索引的分类。
一般索引、主键索引、唯一性索引、全文索引
16.简述MySQL为保证数据平安所提供的方式。
17.请说明存储进程、存储函数、触发器的异同。
18.简述MySQL数据库的特点。
19.简述索引的短处。
索引时以文件的形式存储的,索引文件要占磁盘空间。
假假设存在大量的索引,索引文件可能回避数据文件更快的达到最大文件的尺寸。
第二,在更新表中索引列上的数据时,对索引也需要更新的,这可能需要从头组织一个索引,假假设表中的索引很多,那是浪费时刻的。
也确实是说,降低了添加、删除、修改和其他写入操作的效率。
表中索引越多,更新表的时刻越长
20.MySQL中的表保护语句有哪些?
2.应用题
有STUDENT数据库如下:
S(SNO,CLASS,SNAME,SAGE,SEX)别离代表学生的学号,班级,姓名,年龄和性别。
C(CNO,CNAME,TNAME)别离代表课程的编号,课程名和任课教师。
SC(SNO,CNO,SCORE)别离代表选课学生的学号和所选课号和成绩。
1.创建以上三个表,要求概念出每一个表的主外码。
createdatabasestudent;
createtableS
(Snochar(6)notnullprimarykey,
Classchar(10)notnull,
Snamechar(6)notnull,
Sageint,
Sexchar
(2)
);
createtableC
(Cnochar(6)notnullprimarykey,
Cnamechar(10)notnull,
Tnamechar(6)notnull
);
createtableSC
(Snochar(6)notnull,
Cnochar(6)notnull,
Scoreint,
primarykey(Sno,Cno),
constraintfk_snoforeignkey(Sno)referencesS(Sno),
constraintfk_cnoforeignkey(Cno)referencesC(Cno)
);
2.修改表S增加新的列TELE,设置其数据类型为char(11),取其不为空。
altertableS
addcolumntelechar(11)notnull;
3.别离利用关系代数和查询语句检索选修课程号为c001的课程的学生的学号。
selectsnofromscwherecno='c001';
4.别离利用关系代数和查询检索至少选修张三教师所讲课程中一门课程的女生姓名。
selectSnamefroms,c,sc
where=and=and
='张三'and='女'
5.别离利用关系代数和查询检索所有男生的信息,要求有学生姓名,年龄和班级。
selectSname,Sage,ClassfromS
whereSex='男'
6.别离利用关系代数和查询检索选了课程名为“程序设计基础”的学生的学号、姓名,成绩。
select,sname,scorefroms,sc,c
where=and=andcname='程序设计基础'
7.别离利用关系代数和查询检索没有选修‘c001’号课程的学生的学号。
selectsnofroms
wheresnonotin(selectsnofromscwherecno='c001')
8.查询所有选修课程的数量、总分及最高最低分,要求只输出课程数量大于2的行。
selectdistinctcount(cno),max(score),min(score)fromsc
9.成立查询显示平均成绩合格的学生所选课程的数量、总分及他的最高、最低分。
selectavg(score),count(cno),sum(score),max(score),min(score)
fromsc
groupbysno
10.查询选了课程名为‘数据库’或‘网络’的学生的选课情形(要求有学号,课程号,分数)。
selectsno,,scorefromsc,c
where=andcnamein('数据库','网络')
11.检索选修课程号为c001的课程的学生的学号。
selectsnofromscwherecno='c001'
12.成立查询显示同时选修了“C001”和“C003”号课程的学生的学号。
selectsnofromscwherecno='c001'
andsnoin(selectsnofromscwherecno='c003')
13.成立查询显示至少选修了两门课程的学生学号。
selectsnofromsc
groupbysno
havingcount(cno)>=2
14.查找通信工程专业平均成绩在85分以上的学生的学号和平均成绩。
select,avg(score)froms,sc
where=andclass='通信工程'
groupbysno
havingavg(score)>85
15.查询没有选课的学生学号。
selectsnofroms
wheresnonotin(selectdistinctsnofromsc)
16.将所有不合格课程的成绩加5分。
updatesc
setscore=score+5
wherescore<60
17.查询张三同窗没有选修的课程编号、课程名称。
selectcno,cnamefromc
wherenotexists(
selectcnofroms,sc
where=and=andsname='张三')
18.统计每门课程的学生选修人数。
selectcno,count(sno)fromsc
groupbycno
19.创建带参数的存储进程,输入参数为学生学号,进程体实现输出该学号学生的大体信息与选课相关信息。
delimiter$$
createprocedurescinfo(inisnochar(6))
begin
select*fromsc
joinson=
joincon=
where=isno;
end$$
delimiter;
20.创建存储进程判定两个输入的参数哪个更大,并把大的值赋给输出参数。
最后请给出数据执行存储进程,并在客户端命令行中输出结果。
delimiter$$
createprocedurebijiao
(inx1double,inx2double,outxsdouble)
begin
ifx1>=x2thensetxs=x1;
elsesetxs=x2;
endif;
end$$
delimiter;
callbijiao(5,6,@tt)--挪用存储进程
21.完成以下查询功能的SQL语句。
创建S表的一个名为XS_COPY1的拷贝。
createtablexs_copy1likes
创建S表的一个名为XS_COPY2的拷贝,而且复制其内容。
createtablexs_copy2as(select*froms)
找出至少选修了两门课程学生的学号。
selectsnofromsc
groupbysno
havingcount(cno)>2
找出所有姓李的学生,并按其年龄由小到大排序。
select*froms
wheresnamelike'李%'
orderbySageASC
找出性别为男,诞生年月在至之间的学生的大体信息。
select*froms
wherebirthday>=''andbirthday<=''
22.完成以下查询功能
检索所有女生的大体信息,并按其年龄由小到大排序。
select*fromswheresex='女'
orderbySageASC
检索没有选修课程号为‘C001’课程的学生学号和姓名。
selectsno,snamefroms
wheresnonotin(selectsnofromscwherecno='c001')
检索选修人数在50以上的课程号及选修人数。
selectcno,count(sno)fromsc
groupbycno
havingcount(sno)>50
23.创建一个视图,要求显示选修课程名为‘数据库’的学生的学号、姓名、课程号、课程名和分数。
createviewvw_kc
as
select,sname,,cname,scorefroms,c,sc
where=and=and
cname='数据库'
24.创建一个视图,包括学生的学号,姓名,课程号,课程名,分数。
createviewvw_ssc
as
select,sname,,cname,scorefroms,c,sc
where=and=
25.创建一个60秒后启动的事件,将选课表中分数小于60分的记录删除。
createeventedel
onscheduleatnow()+interval10second
do
deletefromscwherescore<60;
26.在效劳器上创建一个用户‘teacher’,密码为‘student’;然后将‘teacher’的密码修改成‘student1’;最后将‘teacher’的名字修改成‘teacher1’。
createuser
'teacher'@'localhost'identifiedby'student'--创建用户
setpasswordfor'teacher'@'localhost'=password('studen1')--更改密码
renameuser'teacher'@'localhost'to'teacher1'@'localhost'--重命名
27.用户liu和zhang不存在,要求成立这两个用户,并给予它们在S表上的Select和Update权限。
grantselectonSto
liu@localhostidentifiedby'123',
zhang@localhostidentifiedby'123'
28.别离利用关系代数和查询语句检索1001号学生未选修的课程号。
selectcnofromc
wherenotexists(select*froms,sc
where=and=and='1001')
29.别离利用关系代数和查询检索学生张三选修的课程名和成绩。
selectcname,scorefroms,sc,c
where=and=andsname='张三'
30.至少选修两门课程的学生的学号。
selectsnofromsc
groupbysno
havingcount(cno)>=2
31.在关系S上创建删除触发器S_Delete,当删除S上的某一学生时,在SC表上的对应学生的选课情形也将被删除。
delimiter$$
createtriggerS_Deleteafterdelete
onsforeachrow
begin
deletefromscwheresno=;
end$$
delimiter;
32.利用T-SQL在关系C上创建更改触发器DU,当更改C上的某一课程的编号时,在SC表上的对应课程编号也将被更改。
delimiter$$
createtriggerDUafterupdate
oncforeachrow
begin
updatescsetcno=
wherecno=;
end$$
delimiter;
33.假设在本地效劳器下,用户名为root,密码为123456,备份STUDENT数据库到D盘FILE文件夹下(存储在文件中),然后删除STUDENT,最后利用文件还原STUDENT。
34.假设用户在礼拜一下午1点利用mysqldump工具进行数据库STUDENT的完全备份,备份文件为。
从礼拜一下午1点开始用户启用日记,文件保留了从礼拜一下午1点到礼拜二下午1点的所有更改,在礼拜二下午1点运行一条SQL语句:
FLUSHLOGS;现在创建了文件,在礼拜三下午1点时数据库崩溃。
现要将数据库恢复到礼拜三下午1点时的状态,请按顺序写出要执行的命令。
(用户名为root,密码为123456)
35.创建一个60秒后启动的事件,将选课表中分数小于60分的记录删除。
createeventedel
onscheduleatnow()+interval10second
do
deletefromscwherescore<60;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 语言 基础 温习 题计科