mysql面试常考题_mysql面试常见题目详解

第一题

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值