IT虾米网

mysql面试常见题目

mate10pro 2018年05月27日 数据库 1474 0
第一题
 某班学生和考试成绩信息如下表Student所示:
 Student表
 ID SName Mark
 1 Jack 90
 2 Marry 96
 3 Rose 88
 4 Bob 86
 5 John 83
 6 Belty 85
 7 Robert
 其中ID为学生的编号,SName为姓名,Mark为成绩,请针对以下问题,写出相应的SQL:
 CREATE TABLE student(id tinyint unsigned primary key auto_increment,snamevarchar(10) not null,mark decimal(4,1));
 1、 请查询成绩大于85分的学生的姓名;
 SELECT sname FROM student WHERE mark > 85;
 2、 请查询成绩大于等于90分的人数;
 SELECT count(id) FROM student WHERE mark >= 90;
 3、 Robert此次考试考了80分,但是成绩没能录入表中,请将其成绩添加进入;
 UPDATE student SET mark = 80 WHERE id = 7;
 4、 请将Rose的成绩修改为87.5;
 UPDATE student SET mark = 87.5 WHERE id = 3;
 5、 请删除Belty的记录;
 DELETE FROM student WHERE id = 6;
 6、 查询分数在83和90之间的学生名字
 SELECT sname FROM student WHERE mark >= 83 and mark <= 90;
 SELECT sname FROM student WHERE mark between 83 and 90;
 7、 查询首字母为J的学生姓名
 SELECT sname FROM student WHERE sname like ‘J%’;
 8、 查询学习最好的学生姓名和成绩
 SELECT sname,max(mark),mark FROM student;
 第二题
现有关系数据库如下:
 同学表(学号char(6)、姓名、性别、年龄、名族、身份证号、宿舍号)
 宿舍表(宿舍号char(6)、宿舍电话)
 用SQL语言实现下列功能的sql语句代码:
 1、 创建数据表[宿舍表]代码:
 宿舍表(宿舍号char(6)、宿舍电话)
 要求使用:主键(宿舍号)
 CREATE TABLE dormitory(did char(6) primary key,telvarchar(13));
 2、 创建数据表[同学表]代码:
 同学表(学号char(6)、姓名、性别、年龄、民族、身份证号、宿舍号)
 要求使用:主键(学号)、外键(宿舍号)、默认(汉族)、非空(民族、姓名、年龄)、唯一(身份证号)
CREATE TABLE student1(sid char(6) primary key,snamevarchar(10) not 
null,sexenum(‘男’,’女’,’保密’),age tinyint unsigned not 
null,nationalityvarchar(10) not null default ‘汉族’,cidvarchar(18) 
unique,ssid char(6),foreign key(ssid) references dormitory(did) on 
delete cascade on update cascade);
 3、 将下列宿舍信心添加到宿舍表的代码
 宿舍号 宿舍电话
 101 6331157
 102 6331777
 1)、修改:宿舍号为101的宿舍电话:6331158
 UPDATE dormitory SET tel = ‘6331158’ WHERE did = ‘101’;
 2)、删除:宿舍号为102的宿舍信息
 DELETE FROM dormitory WHERE did = ‘102’;
 第三题
 根据要求编写SQL语句,设有一个数据表Store_Information,用于存储2009年某连锁商店各地分店的每月营业额信息,片段如下:
 sName Sales sDate
 北京店 15000 2009-6-10
 天津店 2500 2009-6-10
 北京店 3000 2009-6-10
 哈尔滨店 7000 2009-6-11
 1)、创建该表,所有字段均不可为空
 CREATE TABLE store_information(snamevarchar(10) not null,sales decimal(8,2) not null,sdate date not null);
 2)、修改表结构,添加一列可以为空的备注信息:Memo
 3)、将所有分店名称均由”某某店”改成”某某分店”,改后片段如下
 sName Sales sDate Memo
 北京分店 15000 2009-6-10
 天津分店 2500 2009-6-10
 北京分店 3000 2009-6-10
 哈尔滨分店 7000 2009-6-11
 UPDATE store_information SET sname = ‘北京分店’ WHERE sname = ‘北京店’;
 UPDATE store_information SET sname =replace(sname,’店’,’分店’);
 4)、查询各分店的平均日营业额
 SELECT sname,round(avg(sales)/30,2) FROM store_information GROUP BY sname;
 5)、查询哪些分店的营业总额超过了17000
 SELECT sname,sum(sales) FROM store_information GROUP BY sname HAVING sum(sales) > 17000;
评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!