mysql面試常見題目

韋大仙發表於2018-05-20

第一題
某班學生和考試成績資訊如下表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;

相關文章