mysql語法題_mysql數據庫題語法練習

一、練習。導入下面sql執行語句

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

/*數據導入:

Navicat Premium Data Transfer

Source Server : localhost

Source Server Type : MySQL

Source Server Version : 50624

Source Host : localhost

Source Database : sqlexam

Target Server Type : MySQL

Target Server Version : 50624

File Encoding : utf-8

Date: 10/21/2016 06:46:46 AM*/SET NAMES utf8;

SET FOREIGN_KEY_CHECKS= 0;-- ----------------------------

-- Table structure for `class`-- ----------------------------DROP TABLE IF EXISTS `class`;

CREATE TABLE `class` (

`cid`int(11) NOT NULL AUTO_INCREMENT,

`caption` varchar(32) NOT NULL,

PRIMARY KEY (`cid`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ----------------------------

-- Records of `class`-- ----------------------------BEGIN;

INSERT INTO `class` VALUES ('1', '三年二班'), ('2', '三年三班'), ('3', '一年二班'), ('4', '二年九班');

COMMIT;-- ----------------------------

-- Table structure for`course`-- ----------------------------DROP TABLE IF EXISTS `course`;

CREATE TABLE `course` (

`cid`int(11) NOT NULL AUTO_INCREMENT,

`cname` varchar(32) NOT NULL,

`teacher_id`int(11) NOT NULL,

PRIMARY KEY (`cid`),

KEY `fk_course_teacher` (`teacher_id`),

CONSTRAINT `fk_course_teacher` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`tid`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `course`-- ----------------------------BEGIN;

INSERT INTO `course` VALUES ('1', '生物', '1'), ('2', '物理', '2'), ('3', '體育', '3'), ('4', '美術', '2');

COMMIT;-- ----------------------------

-- Table structure for`score`-- ----------------------------DROP TABLE IF EXISTS `score`;

CREATE TABLE `score` (

`sid`int(11) NOT NULL AUTO_INCREMENT,

`student_id`int(11) NOT NULL,

`course_id`int(11) NOT NULL,

`num`int(11) NOT NULL,

PRIMARY KEY (`sid`),

KEY `fk_score_student` (`student_id`),

KEY `fk_score_course` (`course_id`),

CONSTRAINT `fk_score_course` FOREIGN KEY (`course_id`) REFERENCES `course` (`cid`),

CONSTRAINT `fk_score_student` FOREIGN KEY (`student_id`) REFERENCES `student` (`sid`)

) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `score`-- ----------------------------BEGIN;

INSERT INTO `score` VALUES ('1', '1', '1', '10'), ('2', '1', '2', '9'), ('5', '1', '4', '66'), ('6', '2', '1', '8'), ('8', '2', '3', '68'), ('9', '2', '4', '99'), ('10', '3', '1', '77'), ('11', '3', '2', '66'), ('12', '3', '3', '87'), ('13', '3', '4', '99'), ('14', '4', '1', '79'), ('15', '4', '2', '11'), ('16', '4', '3', '67'), ('17', '4', '4', '100'), ('18', '5', '1', '79'), ('19', '5', '2', '11'), ('20', '5', '3', '67'), ('21', '5', '4', '100'), ('22', '6', '1', '9'), ('23', '6', '2', '100'), ('24', '6', '3', '67'), ('25', '6', '4', '100'), ('26', '7', '1', '9'), ('27', '7', '2', '100'), ('28', '7', '3', '67'), ('29', '7', '4', '88'), ('30', '8', '1', '9'), ('31', '8', '2', '100'), ('32', '8', '3', '67'), ('33', '8', '4', '88'), ('34', '9', '1', '91'), ('35', '9', '2', '88'), ('36', '9', '3', '67'), ('37', '9', '4', '22'), ('38', '10', '1', '90'), ('39', '10', '2', '77'), ('40', '10', '3', '43'), ('41', '10', '4', '87'), ('42', '11', '1', '90'), ('43', '11', '2', '77'), ('44', '11', '3', '43'), ('45', '11', '4', '87'), ('46', '12', '1', '90'), ('47', '12', '2', '77'), ('48', '12', '3', '43'), ('49', '12', '4', '87'), ('52', '13', '3', '87');

COMMIT;-- ----------------------------

-- Table structure for`student`-- ----------------------------DROP TABLE IF EXISTS `student`;

CREATE TABLE `student` (

`sid`int(11) NOT NULL AUTO_INCREMENT,

`gender`char(1) NOT NULL,

`class_id`int(11) NOT NULL,

`sname` varchar(32) NOT NULL,

PRIMARY KEY (`sid`),

KEY `fk_class` (`class_id`),

CONSTRAINT `fk_class` FOREIGN KEY (`class_id`) REFERENCES `class` (`cid`)

) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `student`-- ----------------------------BEGIN;

INSERT INTO `student` VALUES ('1', '男', '1', '理解'), ('2', '女', '1', '鋼蛋'), ('3', '男', '1', '張三'), ('4', '男', '1', '張一'), ('5', '女', '1', '張二'), ('6', '男', '1', '張四'), ('7', '女', '2', '鐵錘'), ('8', '男', '2', '李三'), ('9', '男', '2', '李一'), ('10', '女', '2', '李二'), ('11', '男', '2', '李四'), ('12', '女', '3', '如花'), ('13', '男', '3', '劉三'), ('14', '男', '3', '劉一'), ('15', '女', '3', '劉二'), ('16', '男', '3', '劉四');

COMMIT;-- ----------------------------

-- Table structure for`teacher`-- ----------------------------DROP TABLE IF EXISTS `teacher`;

CREATE TABLE `teacher` (

`tid`int(11) NOT NULL AUTO_INCREMENT,

`tname` varchar(32) NOT NULL,

PRIMARY KEY (`tid`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ----------------------------

--Records of `teacher`-- ----------------------------BEGIN;

INSERT INTO `teacher` VALUES ('1', '張磊老師'), ('2', '李平老師'), ('3', '劉海燕老師'), ('4', '朱云海老師'), ('5', '李杰老師');

COMMIT;

SET FOREIGN_KEY_CHECKS= 1;

init.sql

導入方法。路徑不支持中文

#準備表、記錄

mysql>create database db1;

mysql>use db1;

mysql> source /root/init.sql

生成如下表

45cf08ddf64ed36414c2856fe1d56ec8.png

二、練習題部分

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1、查詢所有的課程的名稱以及對應的任課老師姓名2、查詢學生表中男女生各有多少人3、查詢物理成績等于100的學生的姓名4、查詢平均成績大于八十分的同學的姓名和平均成績5、查詢所有學生的學號,姓名,選課數,總成績6、 查詢姓李老師的個數7、 查詢沒有報李平老師課的學生姓名8、 查詢物理課程比生物課程高的學生的學號9、 查詢沒有同時選修物理課程和體育課程的學生姓名10、查詢掛科超過兩門(包括兩門)的學生姓名和班級11、查詢選修了所有課程的學生姓名12、查詢李平老師教的課程的所有成績記錄13、查詢全部學生都選修了的課程號和課程名14、查詢每門課程被選修的次數15、查詢之選修了一門課程的學生姓名和學號16、查詢所有學生考出的成績并按從高到低排序(成績去重)17、查詢平均成績大于85的學生姓名和平均成績18、查詢生物成績不及格的學生姓名和對應生物分數19、查詢在所有選修了李平老師課程的學生中,這些課程(李平老師的課程,不是所有課程)平均成績最高的學生姓名20、查詢每門課程成績最好的前兩名學生姓名

View Code

三、參考答案。

1、查詢所有的課程的名稱以及對應的任課老師姓名

914325d8dd63a2ef3801afa91b0c3dba.png

2、查詢學生表中男女生各有多少人

d62513406ea88d765048dda6cda32591.png

3、查詢物理成績等于100的學生的姓名

1eba590105376b1903f8fcbcc0cf0a5b.png

4、查詢平均成績大于八十分的同學的姓名和平均成績。有問題

dc0f7a00d6a713402190a65a1b3d77e7.png

5、查詢所有學生的學號,姓名,選課數,總成績

cfbe84a5c1cdc9a252846029cb642d49.png

6、查詢姓李老師的個數

5ee02b105007620283edbb8dadc93c44.png

7、查詢沒有報李平老師課的學生姓名

分析

teacher表,李平老師(tid= 2)

course表,發現李平老師教 物理, cid= 2score表,發現 cid=2的就是物理,尋找有物理分的學生idselect sname from student where sid not in(select student_id from score where course_id = 2);

fb37895ccc032e3b7c01506add6f629b.png

8、 查詢物理課程比生物課程高的學生的學號

select t1.student_id from(select student_id,num from score where course_id =(select cid from course where cname = "物理")

)ast1

inner join

(select student_id,num from score where course_id =(select cid from course where cname = '生物')

)as t2 on t1.student_id =t2.student_idwhere t1.num > t2.num;

9f48cc2557107f8ba7a80d2d1aafc01f.png

9、查詢沒有同時選修物理課程和體育課程的學生姓名

select student.sname from student where sid in(select student_id from score where course_id in(select cid from course where cname = '物理' or cname = '體育')

group by student_id

having count(course_id)= 1);

92e12b5c5e8c920a22a80df13ff6688e.png

10、查詢掛科超過兩門(包括兩門)的學生姓名和班級

select student.sname,class.caption fromstudent

inner join

(select student_id from score where num < 60group by student_id

having count(course_id)>= 2)ast1

inner joinclass on student.sid = t1.student_id and student.class_id = class.cid;

972d47037fc3659034d267d2a40c5ad0.png

11 、查詢選修了所有課程的學生姓名

select student.sname from student where sid in(select student_id fromscore

group by student_id

having count(course_id)=(select count(cid) fromcourse)

);

54cc45a3df94649eef850f4d135b3347.png

12、查詢李平老師教的課程的所有成績記錄

select * from score where course_id in(select cid fromcourse

inner join

teacher on course.teacher_id= teacher.tid where teacher.tname = '李平老師');

fa009816af66b942e34521065a12f6ed.png

13、查詢全部學生都選修了的課程號和課程名

select * fromstudent

left join

(select student_id,group_concat(cname) fromscore

inner join

course on score.course_id=course.cid

group by student_id)ast1

on student.sid= t1.student_id;

14、查詢每門課程被選修的次數

6705ae5166919ec477b83bdd835b9d39.png

15、查詢之選修了一門課程的學生姓名和學號

select sid,sname from student where sid in(select student_id fromscore

group by student_id

having count(course_id)= 1);

3e50ebf16645d44c49f353319ae09d31.png

16、查詢所有學生考出的成績并按從高到低排序(成績去重)

f258ee54fadd873a02894be2f4835f8e.png

17、查詢平均成績大于85的學生姓名和平均成績

select sname,t1.avg_num fromstudent

inner join

(select student_id,avg(num) as avg_num fromscore

group by student_id

having avg(num)> 85)as t1 on student.sid = t1.student_id;

227fab4fc373fc4208a0d8a6736a3ea1.png

18、查詢生物成績不及格的學生姓名和對應生物分數

select sname 姓名,num 生物成績 fromscore

left join course on score.course_id=course.cid

left join student on score.student_id=student.sidwhere course.cname = '生物'and score.num<60;

2decb6a5a0cbf90bec31ea080cc8138b.png

19、查詢在所有選修了李平老師課程的學生中,這些課程(李平老師的課程,不是所有課程)平均成績最高的學生姓名

select sname from student where sid =(select student_id from score where course_id in(select course.cid fromcourse

inner join

teacher on course.teacher_id=teacher.tidwhere teacher.tname = '李平老師')

group by student_id

order by avg(num) desc

limit1);

92853351541ebe0b561269a6358480c0.png

20、查詢每門課程成績最好的前兩名學生姓名

第一步:求出每門課程的課程course_id,與最高分數first_num

46e96aa521a41303be9a03c6726d9dd7.png

第二步:去掉最高分,再按照課程分組,取得的最高分,就是第二高的分數second_num

select score.course_id,max(num) second_num fromscore

inner join

(select course_id,max(num) first_num fromscore

group by course_id

)as t on score.course_id =t.course_idwhere score.num

group by course_id;

a209b70c9f5dedda90721879ae5f0ae8.png

第三步:將表1和表2聯合到一起,得到一張表t3,包含課程course_id與該們課程的first_num與second_num

select t1.course_id,t1.first_num,t2.second_num from(select course_id,max(num) first_num fromscore

group by course_id

)ast1

inner join

(select score.course_id,max(num) second_num fromscore

inner join

(select course_id,max(num) first_num fromscore

group by course_id)as t on score.course_id =t.course_idwhere score.num

group by course_id

)as t2 on t1.course_id = t2.course_id;

fb031be419376b427e3cc9fbccda3ced.png

調整

select score.student_id,t3.course_id,t3.first_num,t3.second_num fromscore

inner join

(select t1.course_id,t1.first_num,t2.second_num from(select course_id,max(num) first_num fromscore

group by course_id

)ast1

inner join

(select score.course_id,max(num) second_num fromscore

inner join

(select course_id,max(num) first_num fromscore

group by course_id)as t on score.course_id =t.course_idwhere score.num

group by course_id

)as t2 on t1.course_id =t2.course_id

)as t3 on score.course_id =t3.course_idwhere score.num >=t3.second_num

and score.num<=t3.first_num

order by course_id;

b5bf8d034c2d4f922c0ea22848921374.png

檢驗

51e19e9ecfef20911b3cc2edd2f976bc.png

21、查詢不同課程但成績相同的學號,課程號,成績

3a5fbf194dfd3b3fa799e9bd7ab47b0a.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452929.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452929.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452929.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ipv4的不足

v地址基本耗盡&#xff0c;這是當前最棘手的問題v路由表越來越大v功能不足&#xff0c;缺少對多媒體信息傳輸的支持v缺少對高速傳輸的支持v缺少對安全的支持v缺少對主機漫游的支持

OpenGL開發庫的詳細介紹

OpenGL開發庫的組成 開發基于OpenGL的應用程序&#xff0c;必須先了解OpenGL的庫函數。它采用C語言風格&#xff0c;提供大量的函數來進行圖形的處理和顯示。OpenGL庫函數的命名方式非常有規律。所有OpenGL函數采用了以下格式<庫前綴><根命令><可選的參數個數&g…

thinkphp5運行原理_ThinkPHP5.1~5.2全版本遠程代碼執行高危漏洞預警

漏洞綜述關于ThinkPHPThinkPHP是一個快速、兼容而且簡單的輕量級國產PHP開發框架&#xff0c;其借鑒了國外很多優秀的框架和模式&#xff0c;包括使用面向對象的開發結構和MVC模式&#xff0c;融合了Struts的思想和TagLib(標簽庫)、RoR的ORM映射和ActiveRecord模式等。該框架常…

ASP.NET MVC中controller和view相互傳值的方式

ASP.NET MVC中Controller向view傳值的方式&#xff1a; ViewBag、ViewData、TempData單個值的傳遞Json匿名類型ExpandoObjectCookieViewModel(向普通View頁面傳個Model對象、向強類型頁面傳一個Model對象、用一個ViewModel對象解決所有問題)ASP.NET MVC中view向Controller傳值的…

自定義SeekBar 實時顯示百分比進度

進度下方實時顯示百分比進度禁止掉了SeekBar的滑動事件 詳情 githus地址

數據結構與算法--3.字符串的旋轉

題目&#xff1a; A是含有n個元素的數組&#xff0c;如果可以申請到最大內存&#xff0c;那么把A從位置i開始旋轉是比較簡單的。例如&#xff1a;A:a,b,c,d,e.其中i3,旋轉后的字符串A為&#xff1a;d,e,a,b,c要求設計一個時間復雜度為O(n),空間復雜度為O(1)的算法&#xff0c;…

三網融合情況下,實時語音通信技術解決之道

隨著技術和標準的不斷成熟,伴隨著“三網合一”的大潮,VoIP可望成為下一代電信基礎設施結構的楊心,使未來各電信業務綜合統一在IP網絡上成為可能,導致數據的融合和未來電信市場的重組,并帶來新的經濟模式和價值鏈。 Internet在全世界范圍內的快速發展和語音信號處理技術的進步,促…

ipv6相對于ipv4的改進

v更大的地址空間&#xff1a;16字節&#xff0c;128位v首部的簡化&#xff1a;只有7個固定域&#xff0c;撤消了有關分段的域和校驗和域&#xff0c;以便更快地處理分組&#xff0c;提高路由器的吞吐量縮短延時。v更好地支持選項&#xff1a;選項是有次序的&#xff0c;以便路由…

輕量高效的開源JavaScript插件和庫 【轉】

圖片布局輪播圖彈出層音頻視頻編輯器字符串表單存儲動畫時間其它加載器構建工具測試包管理器CDN圖片 baguetteBox.js - 是一個簡單易用的響應式圖像燈箱效果腳本。demoLightgallery.js - 是一個功能齊全的JavaScript圖像燈箱插件。demoviewerjs - 是一個圖像預覽插件。democrop…

Linux內核中的常用宏container_of其實很簡單【轉】

轉自&#xff1a;http://blog.csdn.net/npy_lp/article/details/7010752 開發平臺&#xff1a;Ubuntu11.04 編 譯器&#xff1a;gcc version 4.5.2 (Ubuntu/Linaro4.5.2-8ubuntu4) Container_of在Linux內核中是一個常用的宏&#xff0c;用于從包含在某個結構中的指針獲得結構本…

mysql concat例子_MYSQL中CONCAT詳解

concat()函數1. 功能&#xff1a;返回結果為連接參數產生的字符串。如有任何一個參數為NULL &#xff0c;則返回值為 NULL。2. 語法concat(str1, str2,...)3. 例子案例一&#xff1a;mysql> select concat(蘋果,香蕉,梨子);------------------------------| CONCAT(蘋果,香蕉…

常見的狀態響應碼

200&#xff1a;請求正常&#xff0c;服務器正常的返回數據 301&#xff1a;永久重定向。比如在訪問www.jingdong.com的時候&#xff0c;會重定向到www.jd.com。 302&#xff1a;臨時重定向。比如在訪問一個需要登錄的界面時&#xff0c;而此時沒有登錄&#xff0c;那么就會重定…

軟件行業為什么那么多項目經理

記得聽誰說過&#xff0c;軟件行業的項目經理太濫了&#xff0c;二十幾歲的毛頭小伙子&#xff0c;動不動就是項目經理&#xff0c;手下沒幾個人&#xff0c;管的也沒幾個事&#xff0c;在其他行業&#xff0c;項目經理一般都是四五十歲的老頭子做&#xff0c;要聯系這&#xf…

ipv6的表示方法

v冒分十六進制表示法X:X:X:X:X:X:X:X 其中X表示地址中16位二進制數的十六進制值 例&#xff1a;FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 v零壓縮法如其中有多個連續的零&#xff0c;則可用零壓縮法 如 &#xff1a;1080:0000:0000:0000:0008:0800:200C:417A 可寫成&am…

mysql php7安裝配置_centos7無網絡下安裝部署php7.1.33+mysql5.7.28+apache2.4.6-Go語言中文社區...

centos7無網絡下安裝部署php7.1.33mysql5.7.28apache2.4.6一、1、先ping www.baidu.com&#xff0c;root賬戶下&#xff0c;如果未聯網&#xff0c;創建目錄&#xff0c;把提前下載好的rpm包拷貝到rpm目錄下如圖&#xff1a;(如果沒有安裝包請查看我的另一篇教程下載這些安裝包…

webkit渲染

2019獨角獸企業重金招聘Python工程師標準>>> 參考鏈接 理解WebKit和Chromium 簡明魔法學院 Chrome軟件渲染 WebKit渲染基礎 Webkit 渲染基礎 Webkit不是瀏覽器,它是一個渲染引擎 軟件渲染 硬件渲染(GPU加速) 會觸發GPU加速的屬性 CSS3 3D transformation, trans…

element ui中dialog相關問題

一&#xff0c;今天需要在dialog里面引入另一個頁面&#xff0c;就是打開dialog顯示該頁面&#xff08;把頁面放到dialog中&#xff09;&#xff0c;引入的語句如下&#xff1a; <iframe src"view?pathrkdj_b" ></iframe> 二&#xff0c;使用table組件時…

數據結構與算法--4.使用堆棧模擬隊列

問題&#xff1a; 隊列的插入和刪除遵循先入先出的原則&#xff0c;而堆棧遵循后進先出的原則。用兩個堆棧模擬隊列&#xff0c;要求實現時不能分配超過O&#xff08;1&#xff09;的內存&#xff0c;時間復雜度必須是o&#xff08;m&#xff09;。 思路&#xff1a; 用兩個…

IT行業的你,在成本部門還是利潤部門

題外話&#xff1a;本文應該引起項目管理者和開發人員的思考&#xff1a;如何進行薪酬管理&#xff1f;如何規劃職業生涯&#xff1f; 生在IT行業&#xff0c;發現周圍很多朋友對薪酬問題有疑問&#xff0c;因為這種不解&#xff0c;導致經常帶情緒&#xff0c;對工作、生活很…

ipv4到ipv6的過渡

v雙協議站&#xff1a;過渡時期&#xff0c;站點必須同時支持IPv4和IPv6v隧道技術&#xff1a;IPv6主機之間通信必須使用IPv4的隧道v首部轉換&#xff1a;用于發送方使用IPv6&#xff0c;而接收方使用IPv4