MySQL习题及答案文档格式.docx
- 文档编号:19281964
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:15
- 大小:21.97KB
MySQL习题及答案文档格式.docx
《MySQL习题及答案文档格式.docx》由会员分享,可在线阅读,更多相关《MySQL习题及答案文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
23:
00′);
1
SELECTWEEKDAY(’1997-11-05′);
2
DAYOFMONTH(date)
返回date是一月中的第几天,范围为1到31:
SELECTDAYOFMONTH(’1998-02-03′);
DAYOFYEAR(date)
返回date是一年中的第几天,范围为1到366:
SELECTDAYOFYEAR(’1998-02-03′);
34
MONTH(date)
返回date中的月份,范围为1到12:
SELECTMONTH(’1998-02-03′);
DAYNAME(date)
返回date的星期名:
SELECTDAYNAME(”1998-02-05″);
?
Thursday?
MONTHNAME(date)
返回date的月份名:
SELECTMONTHNAME(”1998-02-05″);
February?
QUARTER(date)
返回date在一年中的季度,范围为1到4:
SELECTQUARTER(’98-04-01′);
WEEK(date)
WEEK(date,first)
对于星期日是一周中的第一天的场合,如果函数只有一个参数调用,返回date为一年的第几周,返回值范围为0到53(是的,可能有第53周的开始)。
两个参数形式的WEEK允许你指定一周是否以星期日或星期一开始,以及返回值为0-53还是1-52。
这里的一个表显示第二个参数是如何工作的:
0一周以星期日开始,返回值范围为0-53
1一周以星期一开始,返回值范围为0-53
2一周以星期日开始,返回值范围为1-53
3一周以星期一开始,返回值范围为1-53(ISO8601)
SELECTWEEK(’1998-02-20′);
7
SELECTWEEK(’1998-02-20′,0);
SELECTWEEK(’1998-02-20′,1);
8
SELECTWEEK(’1998-12-31′,1);
53
注意,在版本4.0中,WEEK(#,0)被更改为匹配USA历法。
注意,如果一周是上一年的最后一周,当你没有使用2或3做为可选参数时,MySQL将返回0:
SELECTYEAR(’2000-01-01′),WEEK(’2000-01-01′,0);
2000,0
SELECTWEEK(’2000-01-01′,2);
52
你可能会争辩说,当给定的日期值实际上是1999年的第52周的一部分时,MySQL对WEEK函数应该返回52。
我们决定返回0,是因为我们希望该函数返回“在指定年份中是第几周”。
当与其它的提取日期值中的月日值的函数结合使用时,这使得WEEK函数的用法可靠。
如果你更希望能得到恰当的年-周值,那么你应该使用参数2或3做为可选参数,或者使用函数YEARWEEK:
SELECTYEARWEEK(’2000-01-01′);
199952
SELECTMID(YEARWEEK(’2000-01-01′),5,2);
YEAR(date)
返回date的年份,范围为1000到9999:
SELECTYEAR(’98-02-03′);
1998
YEARWEEK(date)
YEARWEEK(date,first)
返回一个日期值是的哪一年的哪一周。
第二个参数的形式与作用完全与WEEK的第二个参数一致。
注意,对于给定的日期参数是一年的第一周或最后一周的,返回的年份值可能与日期参数给出的年份不一致:
SELECTYEARWEEK(’1987-01-01′);
198653
注意,对于可选参数0或1,周值的返回值不同于WEEK函数所返回值(0),WEEK根据给定的年语境返回周值。
HOUR(time)
返回time的小时值,范围为0到23:
SELECTHOUR(’10:
05:
03′);
10
MINUTE(time)
返回time的分钟值,范围为0到59:
SELECTMINUTE(’98-02-0310:
5
SECOND(time)
返回time的秒值,范围为0到59:
SELECTSECOND(’10:
PERIOD_ADD(P,N)
增加N个月到时期P(格式为YYMM或YYYYMM)中。
以YYYYMM格式返回值。
注意,期间参数P不是一个日期值:
SELECTPERIOD_ADD(9801,2);
199803
PERIOD_DIFF(P1,P2)
返回时期P1和P2之间的月数。
P1和P2应该以YYMM或YYYYMM指定。
注意,时期参数P1和P2不是日期值:
SELECTPERIOD_DIFF(9802,199703);
11
DATE_ADD(date,INTERVALexprtype)
DATE_SUB(date,INTERVALexprtype)
ADDDATE(date,INTERVALexprtype)
SUBDATE(date,INTERVALexprtype)
这些函数执行日期的算术运算。
ADDDATE和SUBDATE分别是DATE_ADD和DATE_SUB的同义词。
在MySQL3.23中,如果表达式的右边是一个日期值或一个日期时间型字段,你可以使用+和–代替DATE_ADD和DATE_SUB(示例如下)。
参数date是一个DATETIME或DATE值,指定一个日期的开始。
expr是一个表达式,指定从开始日期上增加还是减去间隔值。
expr是一个字符串;
它可以以一个“-”领头表示一个负的间隔值。
type是一个关键词,它标志着表达式以何格式被解释。
下表显示type和expr参数是如何关联的:
type值expr期望的格式
SECONDSECONDS
MINUTEMINUTES
HOURHOURS
DAYDAYS
MONTHMONTHS
YEARYEARS
MINUTE_SECOND“MINUTES:
SECONDS”
HOUR_MINUTE“HOURS:
MINUTES”
DAY_HOUR“DAYSHOURS”
YEAR_MONTH“YEARS-MONTHS”
HOUR_SECOND“HOURS:
MINUTES:
DAY_MINUTE“DAYSHOURS:
DAY_SECOND“DAYSHOURS:
在expr的格式中,MySQL允许任何字符作为定界符。
表中所显示的是建议的定界字符。
如果date参数是一个DATE值,并且计算的间隔仅仅有YEAR、MONTH和DAY部分(没有时间部分),那么返回值也是一个DATE值。
否则返回值是一个DATETIME值:
SELECT“1997-12-3123:
59:
59″+INTERVAL1SECOND;
1998-01-0100:
00:
00
SELECTINTERVAL1DAY+“1997-12-31″;
1998-01-01
SELECT“1998-01-01″–INTERVAL1SECOND;
1997-12-3123:
59
SELECTDATE_ADD(”1997-12-3123:
59″,
第二篇:
《MYSQL复习题及答案》
说明:
以下所有问题均假设已经初始登录到MySQL客户端,系统所有数据库命名方式可以采用中文,题目之间前后有相应的顺序,确保命名方式一致,根据问题的描述,写出相应的MySQL语句。
一、数据库设计
1.显示当前系统所有数据库,将MySQL设置为默认数据库,并显示MySQL数据库中的所有表
Showdatabases;
Usemysql;
Showtables;
2.创建数据库【选课】,设置数据库的编码字符集为UTF8,并将【选课】设置为默认数据库
Createdatabase选课
CharactersetUTF8;
Use选课;
3.系统包含以下实体,请创建相应的表,字段描述中并未给出相应的主键和相应的外键关联,请自行设计每个实体的主键和相应的外键关联字段。
提示:
【学院】【学生】之间存在一对多的关系
【学生】【课程】之间存在多对多关系,
它们之间的联系为【选课】。
【学生】,应包含【学号、姓名、出生日期】等属性。
【学院】,应包含【学院名称】等属性。
【课程】,应包含【课程名称,课程学分】等属性。
【选课】,应包含【成绩】等属性。
CREATETABLE学院
(学院名称varCHAR(20)primarykey);
CREATETABLE学生
(学号CHAR(10)primarykey,
姓名VARCHAR(10),
出生日期DATE,
学院名称VARCHAR(20)
ForeignKey(学院名称)references学院(学院名称));
CREATETABLE课程
(课程名称varCHAR(20)primarykey,
课程学分int);
CREATETABLE选课
(课程名称varCHAR(20),
学号CHAR(10),
成绩float,
primarykey(课程名称,学号),
ForeignKey(课程名称)references课程(课程名称),
ForeignKey(学号)references学生(学号));
二、数据库功能
1.设计【选课视图】,要求显示【学生姓名,课程名称,课程学分,成绩】字段
Createviewv_1(学生姓名,课程名称,课程学分,成绩)
As
Select学生姓名,课程名称,课程学分,成绩
From学生,课程,选课
Where学生.学号=选课.学号and课程.课程名称=选课.课程名称
2.设计触发器,当删除【课程】时,相应的触发器触发,从【选课】实体中删除相应的【选课】记录
Createtriggert_1afteron课程
Foreachrow
Beginmysql试题及答案。
Deletefrom选课where课程名称=old.课程名称;
mysql试题及答案。
end
3.设计一个函数,根据相应的【学院】返回学生的平均成绩
CREATEFUNCTIONT23(XYVARCHAR(20))
RETURNSFLOAT
BEGINmysql试题及答案。
DECLARECJFLOAT;
SELECTAVG(成绩)INTOCJFROM选课,学生
WHERE选课.学号=学生.学号and学院名称=XY;
RETURN(CJ);
END
4.设计一个存储过程,根据【学号】返回学生的学分,注意,成绩在60分以上才能
获得相应的学分。
CREATEPROCEDURET24(INXHCHAR(10),OUTXFINT)
BEGIN
SELECTSUM(课程学分)INTOXFFROM选课,课程
WHERE选课.课程名称=课程.课程名称AND学号=XH
AND成绩>
=60;
三、数据库查询与管理
1、查询没有选过任何课程的学生
SELECT*FROM学生WHERE学号NOTIN(SELECTDISTINCT学号FROM选课);
2、按照某一课程的成绩高低显示学生名单
SELECT*FROM学生,选课where学生.学号=选课.学号
and课程名称=’XXX’
orderby成绩desc;
3、查询某个学生的'
平均成绩
Select学号,avg(成绩)from选课where学号=’XXX’;
4、创建test用户,并将【选课】数据库的所有权限赋予test用户,并设定test用户可以在任何主机上登录。
GRANTALLPRIVILEGESON选课.*TO‘test’@’%’IDENTIFIEDBY’something’;
5、数据库备份
MYSQLDUMP–UTEST-Psomething选课>
xx.SQL
第三篇:
《MYSQL测试题
(2)》
一、单选题(共34分)
1、mysql中唯一索引的关键字是(C)
(1分)
A.fulltextindex
B.onlyindex
C.uniqueindex
D.index
2、下面关于索引描述中错误的一项是(C
)
A.索引可以提高数据查询的速度
B.索引可以降低数据的插入速度
C.innodb存储引擎支持全文索引
D.删除索引的命令是dropindex
(2分)
3、支持主外键,索引及事务的存储引擎为是(B)
A.MYISAM
B.INNODB
4、对事务的描述中不正确的是(C)(2分)
A.事务具有原子性
B.事务具有隔离性
C.事务回滚使用commit命令
5、mysql中,备份数据库的命令是(A)
A.mysqldump
B.mysql
D.copy
C.backup
(2分)
6、实现批量数据导入的命令是(B)
B.mysql
C.backup
D.return
7、创建用户的命令是(
A.joinuser
B.createuser
C.createroot
D.mysql
user
8、修改自己的mysql服务器密码的命令是(C)
A.mysql
B.grant
C.setpassword
D.changepassword
9、找回mysql服务器root密码的很重要的一步是跳过权限表的检查启动mysql,该命令是(D)
A.mysql-uroot–proot
B.mysqladmin
-uroot
-proot
C.netstartmysql
D.mysqld-nt
--skip-grant-tables
10、联合查询使用的关键字是(B)
A.UNION
B.JOIN
C.ALL
D.FULL
11、有订单表orders,包含用户信息userid,产品信息productid,以下(D)语句能够返回至少被订购过两回的productid?
(2分)
A.selectproductidfromorderswherecount(productid)>
1
B.selectproductidfromorderswheremax(productid)>
1
C.selectproductidfromorderswherehavingcount(productid)>
1groupbyproductid
D.selectproductidfromordersgroupbyproductidhavingcount(productid)>
12、子查询中可以使用运算符ANY,它表示的意思是(B)(2分)
A.满足所有的条件C.一个都不用满足
B.满足至少一个条件D.满足至少5个条件
13、一种存储引擎,其将数据存储在内存当中,数据的访问速度快,电脑关机后数据丢失,具有临时存储数据的特点,该存储引擎是(C)(2分)
A.MYISAM
B.INNODB
C.ROLLBACK(2分)
D.return
14、事务中能实现回滚的命令是(B)
A.TRANSACTION
D.SAVEPOINT
15、mysql中,还原数据库的命令是(C)
16、ysql中存储用户全局权限的表是(D)
A.table_priv
B.procs_priv
C.columns_priv
D.user
17、删除用户的命令是(A)
A.dropuser
B.userC.droprootD.truncateuser
18、给名字是zhangsan的用户分配对数据库studb中的stuinfo表的查询和插入数据权限的语句是(B)(2分)
A.grantselect,onstudb.stuinfofor‘zhangsan’@’localhost’
B.grantselect,onstudb.stuinfo
to‘zhangsan’@’localhost’
C.grant‘zhangsan’@’localhost’toselect,forstudb.stuinfo
D.grant‘zhangsan’@’localhost’tostudb.stuinfoonselect,
二、多项选择题(共12分)
20、事务具有下面的特性(
ABC
)(4分)
A稳定性
B原子性
C隔离性
D再生性
21、下列的函数中可以处理日期和时间的函数有(BCD)(4分)
Around
BWeekDay
CCurdate
DDayofMonth
22、mysql中的约束有(BCD)
A.检查约束
B.默认约束(4分)
C.非空约束
D.唯一约束
三、简答题(共12分)
24、在mysql中常用存储引擎有哪几种(最少三种),每个引擎特点区别?
(6分)
25忘记MySQL管理员root的密码如何解决?
写出步骤和指令(6分)
四、编程题(共42分)
1.有一个关于商品供应及顾客订单的数据库。
其中包括四个表,表中信息如下:
供应表apply(id、name、sid、price)
id供应厂家编号name供
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 习题 答案