一、 数据库设计
1. 显示当前系统所有数据库,将MySQL设置为默认数据库,并显示MySQL数据库中的所有表
Show databases;
Use mysql;
Show tables;
2. 创建数据库【选课】,设置数据库的编码字符集为UTF8,并将【选课】设置为默认数据库
Create database选课
Character set UTF8;
Use选课;
3. 系统包含以下实体,请创建相应的表,字段描述中并未给出相应的主键和相应的外键关联,请自行设计每个实体的主键和相应的外键关联字段。
提示:
【学院】【学生】之间存在一对多的关系
【学生】【课程】之间存在多对多关系,
它们之间的联系为【选课】。
【学生】,应包含【学号、姓名、出生日期】等属性。
【学院】,应包含【学院名称】等属性。
【课程】,应包含【课程名称,课程学分】等属性。
【选课】,应包含【成绩】等属性。
CREATE TABLE 学院
(学院名称 varCHAR(20) primary key);
CREATE TABLE 学生
(学号 CHAR(10) primary key,
姓名 VARCHAR(10),
出生日期 DATE,
学院名称VARCHAR(20)
Foreign Key (学院名称) references 学院(学院名称));
CREATE TABLE 课程
(课程名称 varCHAR(20) primary key,
课程学分 int);
CREATE TABLE 选课
(课程名称 varCHAR(20),
学号 CHAR(10),
成绩 float,
primary key (课程名称,学号),
Foreign Key(课程名称) references 课程(课程名称),
Foreign Key(学号) references 学生(学号));
二、 数据库功能
1. 设计【选课视图】,要求显示【学生姓名,课程名称,课程学分,成绩】字段
Create view v_1 (学生姓名,课程名称,课程学分,成绩)
As
Select学生姓名,课程名称,课程学分,成绩
From 学生,课程,选课
Where 学生.学号=选课.学号 and 课程.课程名称=选课.课程名称
2. 设计触发器,当删除【课程】时,相应的触发器触发,从【选课】实体中删除相应的【选课】记录
Create trigger t_1 after on 课程
For each row
Beginmysql试题及答案。
Delete from 选课 where 课程名称=old.课程名称;mysql试题及答案。
end
3. 设计一个函数,根据相应的【学院】返回学生的平均成绩
CREATE FUNCTION T23(XY VARCHAR(20) )
RETURNS FLOAT
BEGINmysql试题及答案。
DECLARE CJ FLOAT;
SELECT AVG(成绩) INTO CJ FROM 选课,学生
WHERE 选课.学号=学生.学号 and学院名称=XY;
RETURN(CJ);
END
4. 设计一个存储过程,根据【学号】返回学生的学分,注意,成绩在60分以上才能
获得相应的学分。
CREATE PROCEDURE T24(IN XH CHAR(10),OUT XF INT)
BEGIN
SELECT SUM(课程学分) INTO XF FROM 选课,课程
WHERE 选课.课程名称=课程.课程名称 AND 学号=XH
AND 成绩>=60;
END
三、 数据库查询与管理
1、 查询没有选过任何课程的学生
SELECT * FROM 学生 WHERE 学号 NOT IN(SELECT DISTINCT 学号 FROM 选课);
2、 按照某一课程的成绩高低显示学生名单
SELECT * FROM 学生,选课 where 学生.学号=选课.学号
and 课程名称=’XXX’
order by 成绩 desc;
3、 查询某个学生的平均成绩
Select学号,avg(成绩) from 选课 where 学号=’XXX’;
4、 创建test用户,并将【选课】数据库的所有权限赋予test用户,并设定test用户可以在任何主机上登录。
GRANT ALL PRIVILEGES ON选课.* TO ‘test’@’%’ IDENTIFIED BY ’something’ ;
5、数据库备份
MYSQLDUMP –UTEST -P something 选课>xx.SQL
第三篇:《MYSQL测试题 (2)》
一、单选题(共34分)
1、mysql中唯一索引的关键字是( C )
(1分)
A. fulltext index
B.only index
C.unique index
D.index
2、下面关于索引描述中错误的一项是( C )
A.索引可以提高数据查询的速度
(1分)
B.索引可以降低数据的插入速度
C.innodb存储引擎支持全文索引
D.删除索引的命令是drop index
(2分)
3、支持主外键,索引及事务的存储引擎为是( B )
A.MYISAM
B.INNODB
C.MEMORY
4、对事务的描述中不正确的是( C ) (2分)
A.事务具有原子性
B.事务具有隔离性
C.事务回滚使用commit命令
5、 mysql中,备份数据库的命令是( A )
A.mysqldump
B.mysql
D.copy
C.backup
(2分)
6、 实现批量数据导入的命令是(B )
A.mysqldump
B.mysql
C.backup
D.return
7、 创建用户的命令是(
A. join user
(2分)
B.create user
C.create root
D.mysql user
(2分)
8、 修改自己的mysql服务器密码的命令是( C )
A.mysql
B.grant
C.set password
D.change password
9、 找回mysql服务器root密码的很重要的一步是跳过权限表的检查启动mysql,该命令是 ( D)
(2分)
A. mysql -u root –proot
B. mysqladmin -uroot -proot
C. net start mysql
D. mysqld-nt --skip-grant-tables
10、联合查询使用的关键字是( B )
A.UNION
B.JOIN
(2分)
C.ALL
D.FULL
11、有订单表orders,包含用户信息userid, 产品信息 productid, 以下( D )语句能够返回至少被订购过两回的productid? (2分)
A. select productid from orders where count(productid)>1
B. select productid from orders where max(productid)>1
C. select productid from orders where having count(productid)>1 group by productid
D. select productid from orders group by productid having count(productid)>1
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
B.COMMIT
C.MEMORY
D.SAVEPOINT
15、mysql中,还原数据库的命令是(C )
A.mysqldump
B.mysql
C.backup
(2分)
16、ysql中存储用户全局权限的表是( D )
A. table_priv
B.procs_priv
(2分)
C.columns_priv
D.user
17、删除用户的命令是(A )
A. drop user B. user C.drop root D.truncate user
18、给名字是zhangsan的用户分配对数据库studb中的stuinfo表的查询和插入数据权限的语句是( B ) (2分)
A.grant select, on studb.stuinfo for‘zhangsan’@’localhost’ B.grant select, on studb.stuinfo to ‘zhangsan’@’localhost’
C.grant‘zhangsan’@’localhost’ to select, for studb.stuinfo
D.grant ‘zhangsan’@’localhost’ to studb.stuinfo on select,