MYSQL如何查詢成績(jī)?yōu)榍?名的學(xué)生
需求:查詢成績(jī)?yōu)榍?名的學(xué)生
拿到需求后,先對(duì)需求進(jìn)行分析,找出篩選的條件
Mysql查詢
1、最基本的查詢
select * from table where name="panpan"
2、查前5名
在mysql中篩選數(shù)據(jù)的前幾名,可以用關(guān)鍵字:limit
select * from table where name="panpan" limit 1
說(shuō)明:查詢表中名為panpan的第一條記錄
3、以什么條件進(jìn)行篩選,需求是以成績(jī)進(jìn)行篩選,則可以用order by 排序篩選
select * from table order by grade
查詢應(yīng)用
合并后查詢:
select * from score order by grade limit 5
說(shuō)明:查詢到score表里的grade ,以grade篩選,提取出前5條記錄
查詢成績(jī)最高和最低的人
簡(jiǎn)單描述
成績(jī)表中有學(xué)生姓名、學(xué)生科目以及學(xué)生分?jǐn)?shù)。查詢分?jǐn)?shù)最高和分?jǐn)?shù)最低的學(xué)生的以及學(xué)生的分?jǐn)?shù)。注意的點(diǎn)如下:
1、group by,select 選擇的列,必須是group by 中的列,或者是函數(shù)形式。
2、利用MAX() 和MIN()sql函數(shù)。
3、建立的表結(jié)構(gòu)如下。
-- ---------------------------- -- Table structure for grade -- ---------------------------- DROP TABLE IF EXISTS `grade`; CREATE TABLE `grade` ( `stu_name` varchar(255) NOT NULL, `stu_subject` varchar(255) NOT NULL, `score` int(255) DEFAULT NULL, PRIMARY KEY (`stu_subject`,`stu_name`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- ---------------------------- -- Records of grade -- ---------------------------- INSERT INTO `grade` VALUES ('lilei', 'shuxue', '99'); INSERT INTO `grade` VALUES ('xiaoyong', 'shuxue', '66'); INSERT INTO `grade` VALUES ('lilei', 'yingyu', '80'); INSERT INTO `grade` VALUES ('xiaoyong', 'yingyu', '55'); INSERT INTO `grade` VALUES ('lilei', 'yuwen', '78'); INSERT INTO `grade` VALUES ('xiaoyong', 'yuwen', '88');
思路
1) 按照科目分組查詢成績(jī)最高的人
SELECT grade.stu_subject, MAX(grade.score) as score from grade GROUP BY stu_subject;
2) 顯示出成績(jī)最高的人的姓名和科目名稱
SELECT grade.* from grade, (SELECT grade.stu_subject, MAX(grade.score) as score from grade GROUP BY stu_subject )b WHERE grade.score = b.score and grade.stu_subject = b.stu_subject;
3) 顯示出列標(biāo)題.
SELECT “成績(jī)最高”,grade.* from grade, (SELECT grade.stu_subject, MAX(grade.score) as score from grade GROUP BY stu_subject )b WHERE grade.score = b.score and grade.stu_subject = b.stu_subject;
成績(jī)最低的也是如此就是利用MIN()函數(shù), 如果需要同時(shí)查出, 可以用union 如下sql
SELECT "成績(jī)最高",grade.* from grade, (SELECT grade.stu_subject, MAX(grade.score) as score from grade GROUP BY stu_subject )b WHERE grade.score = b.score and grade.stu_subject = b.stu_subject UNION SELECT "成績(jī)最低",grade.* from grade, (SELECT grade.stu_subject, MIN(grade.score) as score from grade GROUP BY stu_subject )b WHERE grade.score = b.score and grade.stu_subject = b.stu_subject;
查詢結(jié)果如下圖所示:
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Navicat Premiun遠(yuǎn)程連接MySQL報(bào)錯(cuò)10038解決方案
這篇文章主要介紹了Navicat Premiun遠(yuǎn)程連接MySQL報(bào)錯(cuò)10038解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Mysql常見(jiàn)的慢查詢優(yōu)化方式總結(jié)
優(yōu)化是一項(xiàng)復(fù)雜的任務(wù),因?yàn)樗罱K需要對(duì)整個(gè)系統(tǒng)的理解,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Mysql常見(jiàn)的慢查詢優(yōu)化方式,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05SQL實(shí)現(xiàn)LeetCode(175.聯(lián)合兩表)
這篇文章主要介紹了SQL實(shí)現(xiàn)LeetCode(175.聯(lián)合兩表),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08詳解MySQL數(shù)據(jù)庫(kù)、表與完整性約束的定義(Create)
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)、表與完整性約束的定義(Create),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-04-04通過(guò)代碼實(shí)例了解頁(yè)面置換算法原理
這篇文章主要介紹了通過(guò)代碼實(shí)例了解頁(yè)面置換算法原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08面試被問(wèn)select......for update會(huì)鎖表還是鎖行
select … for update 是我們常用的對(duì)行加鎖的一種方式,那么select......for update會(huì)鎖表還是鎖行,本文就詳細(xì)的來(lái)介紹一下,感興趣的可以了解一下2021-11-11mySQL count多個(gè)表的數(shù)據(jù)實(shí)例詳解
這篇文章通過(guò)實(shí)例給大家介紹了mySQL中count多個(gè)表的數(shù)據(jù),也就是多個(gè)表如何聯(lián)合查詢,文中通過(guò)項(xiàng)目中遇到的一個(gè)問(wèn)題進(jìn)行分析和實(shí)現(xiàn),給出了詳細(xì)的示例代碼,相信對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面來(lái)一起看看吧。2016-11-11mysql報(bào)錯(cuò)ERROR 1396 (HY000): Operation ALT
這篇文章主要給大家介紹了關(guān)于mysql報(bào)錯(cuò)ERROR 1396 (HY000): Operation ALTER USER failed for root@localhost的解決方式,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-05-05