MySQL数据库应用技术试卷
建一个以自己名字拼音为命名的数据库。(3分)
CREATE DATABASE example;
- 令这个数据库为当前所使用的数据库。(2分)
USE example;
- 写出如下student表结构语句。(95分)
表1:
列名 | 数据类型 | 是否为空 | 键/索引 | 默认值 | 说明 |
sno | int(5) | 否 | 主键 | 学号 | |
sname | varchar(30) | 是 | 姓名 | ||
ssex | enum(‘男’,’女’) | 是 | 男 | 性别 | |
sbirthday | date | 是 | 1999-01-01 | 出生日期 | |
sphone | varchar(11) | 是 | 电话 | ||
sdept | Varchar(7) | 否 | 院系 | ||
saddress | Varchar(30) | 是 | 家庭住址 | ||
spostcode | Char(6) | 是 | 邮政编码 |
表2:
sno | sname | ssex | sbirthday | sphone | sdept | saddress | spostcode |
001 | 李勇 | 男 | 1999-01-01 | 1777805942 | 信息工程系 | 广西 | 532100 |
002 | 刘成 | 男 | 2000-02-01 | 1887805943 | 计算机系 | 广东省 | 510000 |
003 | 王敏 | 女 | 2000-05-06 | 1997814563 | 软件工程系 | 广东省 | 510000 |
004 | 张丽 | 女 | 2001-12-01 | 1775862146 | 物理系 | 湖南省 | 413000 |
005 | 林林 | 女 | 2002-04-12 | 1775555333 | 化学系 | 湖南省 | 413000 |
006 | 李思 | 女 | 2002-05-19 | 1774444333 | 计算机系 | 河南省 | 555200 |
007 | 小明 | 男 | 1999-12-17 | 1773333333 | 信息工程系 | 广西 | 532100 |
008 | 吴阳 | 男 | 2004-11-19 | 1772222333 | 计算机系 | 北京 | 100000 |
- 建立表结构(10分)
CREATE TABLE student (
sno INT(5) NOT NULL PRIMARY KEY, sname VARCHAR(30), ssex ENUM('男','女') DEFAULT '男', sbirthday DATE DEFAULT '1999-01-01', sphone VARCHAR(11), sdept VARCHAR(7) NOT NULL, saddress VARCHAR(30), spostcode CHAR(6)
);
- 添加数据(10分)
INSERT INTO student (sno, sname, ssex, sbirthday, sphone, sdept, saddress, spostcode) VALUES ('001', '李勇', '男', '1999-01-01', '1777805942', '信息工程系', '广西', '532100'), ('002', '刘成', '男', '2000-02-01', '1887805943', '计算机系', '广东省', '510000'), ('003', '王敏', '女', '2000-05-06', '1997814563', '软件工程系', '广东省', '510000'), ('004', '张丽', '女', '2001-12-01', '1775862146', '物理系', '湖南省', '413000'), ('005', '林林', '女', '2002-04-12', '1775555333', '化学系', '湖南省', '413000'), ('006', '李思', '女', '2002-05-19', '1774444333', '计算机系', '河南省', '555200'), ('007', '小明', '男', '1999-12-17', '1773333333', '信息工程系', '广西', '532100'), ('008', '吴阳', '男', '2004-11-19', '1772222333', '计算机系', '北京', '100000');
- 查看student表的详细信息(2分)
DESCRIBE student;
- 在student表中添加一个数据类型为char、长度为10的字段class,表示学生所在班级,新字段添加在“ssex”字段的后面。(4分)
ALTER TABLE student ADD class CHAR(10) AFTER ssex;
- 将student表中class字段删除。(2分)
ALTER TABLE student DROP COLUMN class;
- 将student表中sbirthday字段改名为sbirth。(3分)
ALTER TABLE student CHANGE sbirthday sbirth DATE;
- 将student表的存储引擎改为MyISAM。(3分)
ALTER TABLE student ENGINE = MyISAM;
- 查询全体学生的学号和姓名。(2分)
SELECT sno, sname FROM student;
- 输出学生表中的前5条记录。(3分)
SELECT * FROM student LIMIT 5;
- 查询所有男生的信息。(3分)
SELECT * FROM student WHERE ssex = '男';
- 查询所有男生的学号、姓名、系别及出生日期。(3分)
SELECT sno, sname, sdept, sbirth FROM student WHERE ssex = '男';
- 查询计算机工程系女生的信息。(3分)
SELECT * FROM student WHERE sdept = '计算机系' AND ssex = '女';
- 查询非计算机工程系的学生信息。(2分)
SELECT * FROM student WHERE sdept != '计算机系';
- 查询所有姓李的学生的个人信息。(3分)
SELECT * FROM student WHERE sname LIKE '李%';
- 查询名字中第2个字为“阳”字的学生的姓名和学号。(3分)
SELECT sname, sno FROM student WHERE sname LIKE '_阳%';
- 判断5是否包含在1~10之间(2分)
SELECT 5 BETWEEN 1 AND 10; -- 返回1(表示真)
- 表达式2&3,2&3&4的运算结果是?(2分)
2&3:2 的二进制是 0010,3 的二进制是 0011,按位与运算结果是 0010,即 2。
2&3&4:4 的二进制是 0100,0010(2&3 的结果)与 0100 按位与运算结果是 0000,即 0。
- 表达式2|3,2^3的运算结果是?(2分)
2|3:2 的二进制是 0010,3 的二进制是 0011,按位或运算结果是 0011,即 3。
2^3:按位异或运算,0010 与 0011 异或结果是 0001,即 1。
- 表达式100>>3,100<<3的运算结果是?(3分)
100>>3:100 的二进制是 01100100,右移 3 位后是 00001100,即 12。
100<<3:左移 3 位后是 1100100000,即 800。
- 将字符串12345678从第2位置开始,1个字符长的子串替换为字符串abc(3分)
SELECT INSERT('12345678', 2, 1, 'abc'); -- 返回1abc345678
- 将字符串ABc转为小写,字符串aBc转为大写(3分)
SELECT LOWER('ABc'), UPPER('aBc');
- 返回当前的日期和时间,年月日时分秒全部包含。(2分)
SELECT NOW();
- 计算2019-05-20到现在相差的天数(3分)
SELECT DATEDIFF(NOW(), '2019-05-20');
- 返回大于0.8和-0.8的最小整数(3分)
SELECT CEIL(0.8), CEIL(-0.8); -- 返回1, 0
- 返回当前数据库版本(2分)
SELECT VERSION();
- 求14的返回10进制数变成2进制数(3分)
SELECT BIN(14); --返回1110
- 给id字段创建唯一索引,索引名称为m_qinyu。(2分)
CREATE UNIQUE INDEX m_qinyu ON student(sno);
- 基于goods表创建视图v_table,显示字段有id,name,num。(3分)
CREATE VIEW v_table AS SELECT id, name, num FROM goods;
- 删除视图v_table(2分)
DROP VIEW v_table;
- 查看当前数据库的所有数据表。(2分)
SHOW TABLES;