欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql面试常见题目

程序员文章站 2023-11-14 08:57:22
第一题 某班学生和考试成绩信息如下表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为成绩, ......

第一题
某班学生和考试成绩信息如下表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;