本帖最后由 爱编码的J 于 2018-10-31 21:31 编辑
MySQL数据做为面试必问的题目,笔者给大家分享一些面试中遇到的题(题目不一定很难,但是一定会涉及很多常见的知识点)
以下为“学生选课系统”数据库,学生选课的关系模式为: 学生(学号(char10),姓名(char20),性别(char2),年龄(int),所在系(char20)) 课程(课程号(char10),课程名(char20),先行课(char10)) 选课(学号(char20),课程号(char20),成绩(int)) 根据系统,用SQL语句完成下面各题 [size=14.0000pt]1、查询物理系学生的学号不在201001-201011范围内的所有记录
2、将一个新学生记录(学号:‘96002’,姓名:‘张三’,所在系:‘英语系’),插入到学生表中
3、将学生表中全部学生的年龄加上3岁
4、在课程表上按“课程号”建立唯一索引
5、将学生表中年龄在19-22之间的物理系的女生所有记录插入到选课表中
参考答案(参考答案仅代表个人意见,如果有更好的答案或者是想法,在回复中多多交流,不喜勿喷): 建表: CREATE TABLE `Student` ( `s_id` int(10) NOT NULL COMMENT '学号', `s_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名', `age` int(11) NULL DEFAULT NULL COMMENT '年龄', `class` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '所在系', `sex` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别', PRIMARY KEY (`s_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
CREATE TABLE `Course` ( `c_id` int(10) NOT NULL COMMENT '课程号', `c_name` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '课程名', `c_c` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '先行课', UNIQUE INDEX `c_id`(`c_id`) USING BTREE, UNIQUE INDEX `c_id_2`(`c_id`) USING BTREE, UNIQUE INDEX `c_id_3`(`c_id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
CREATE TABLE `SC` ( `s_id` int(10) NULL DEFAULT NULL, `c_id` int(10) NULL DEFAULT NULL, `score` int(255) NULL DEFAULT NULL ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
1、SELECT * FROM `Student` WHERE `class` = '物理' AND `s_id` NOT BETWEEN 201001 AND 201011; 或者是 SELECT * FROM `Student` WHERE `class` = '物理' AND `s_id` < 201001 OR `s_id` > 201011; 思路:本题重在考察如何查询不在某个范围内的数据
2、INSERT INTO `Student`(`s_id`,`s_name`,`class`) VALUES(96002,'张三','英语系') 思路:常规的插入操作
3、UPDATE `Student` SET `Student`.`age` = `Student`.`age` + 3 思路:更新操作,同时需要批量改变某个字段的值
4、ALTER TABLE `Course` ADD UNIQUE KEY(`c_id`); 思路:建立索引操作
5、INSERT INTO `SC`(`s_id`,`c_id`) SELECT `Student.s_id,Course.c_id FROM `Student`,`Course` WHERE `Student`.`sex`='女' AND `Student`.`class`='物理' AND `Student`.`age` BETWEEN 19 AND 22 思路:查询后同时进行插入操作,进行组合式操作
|