mysql查询数学成绩信息_【MySQL】:利用DQL查询表中的数据
DQL(Data Query Language):數(shù)據(jù)查詢語言,用以查詢數(shù)據(jù)庫中表的記錄(數(shù)據(jù))。
CREATE TABLE exam(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
chinese DOUBLE,
math DOUBLE,
english DOUBLE
);
INSERT INTO exam VALUES(NULL,'關(guān)羽',85,76,70);
INSERT INTO exam VALUES(NULL,'張飛',70,75,70);
INSERT INTO exam VALUES(NULL,'趙云',90,65,95);
INSERT INTO exam VALUES (NULL,'黃忠',NULL,88,76);
一、基本查詢
select關(guān)鍵字后面跟著的是字段名,*表示查詢結(jié)果顯示所有字段。
1、查詢所有信息與指定信息
-- 查詢表中所有學(xué)生的信息
SELECT * FROM exam;
SELECT id,NAME,chinese,math,english FROM exam;
-- 查詢表中所有學(xué)生的姓名和英語成績(jī)
SELECT NAME,english FROM exam;
2、清除重復(fù)值
-- 過濾重復(fù)的英語成績(jī)
SELECT DISTINCT english FROM exam;
3、查詢結(jié)果參與運(yùn)算
參與運(yùn)算的需要是數(shù)值類型。
-- 計(jì)算總分并以score顯示 也可省去 AS (如果有null值,結(jié)果也會(huì)為null,可用ifnull(x,y))
SELECT NAME,math+chinese+english AS score FROM exam;
-- 查詢所有成績(jī)的總和,如果null用0代替。
SELECT NAME,IFNULL(math,0)+IFNULL(chinese,0)+IFNULL(english,0) AS score FROM exam;
二、條件查詢
SELECT 字段名 FROM 表名 WHERE 條件
1、比較運(yùn)算符
-- 查詢姓名為張飛的成績(jī)
SELECT * FROM exam WHERE NAME='張飛';
-- 查詢英語成績(jī)大于90的同學(xué)
SELECT * FROM exam WHERE english>90;
-- 查詢數(shù)學(xué)成績(jī)?yōu)?5,76的同學(xué) IN(集合)
SELECT NAME,math FROM exam WHERE math IN(75,76);
-- 查詢英語成績(jī)?yōu)閚ull的同學(xué) is null 而不是 = null
SELECT NAME,chinese FROM exam WHERE chinese IS NULL;
-- 查詢英語成績(jī)[70,95]區(qū)間內(nèi)的同學(xué) BETWEEN..AND
SELECT NAME,english FROM exam WHERE english BETWEEN 70 AND 95;
-- 查詢所有姓張的同學(xué) 模糊查詢 LIKE pattern
SELECT * FROM exam WHERE NAME LIKE '張%';
MySQL通配符
%:匹配任意多個(gè)字符串。
_:匹配一個(gè)字符。
2、邏輯運(yùn)算符
-- 查詢數(shù)學(xué)大于70,語文大于80的同學(xué)
SELECT * FROM exam WHERE math>70 AND chinese>80;
-- 查詢語文成績(jī)不大于80的同學(xué)
SELECT * FROM exam WHERE NOT(chinese>80);
-- 查詢數(shù)學(xué)成績(jī)大于90,或者語文成績(jī)大于80的同學(xué)
SELECT * FROM exam WHERE math>90 OR chinese>80;
order by排序
1、單列排序
-- 排序查詢 select column1,column2.. from table_name order by column_name asc|desc
SELECT NAME,IFNULL(chinese,0) FROM exam ORDER BY chinese;-- 默認(rèn)升序asc
SELECT NAME,IFNULL(chinese,0) FROM exam ORDER BY chinese DESC;-- 指定降序desc
2、組合排序
-- 查詢所有同學(xué)信息,英語默認(rèn)升序,英語成績(jī)相同的情況下,按數(shù)學(xué)成績(jī)降序
SELECT * FROM exam ORDER BY english,math DESC;
聚合函數(shù)
聚合函數(shù)將會(huì)忽略空值,與此前不同,聚合函數(shù)可處理一列的值:求和,求平均等等。
1、COUNT:計(jì)算個(gè)數(shù)
-- 統(tǒng)計(jì)班級(jí)共有幾個(gè)學(xué)生
SELECT COUNT(id) id_count FROM exam;
SELECT COUNT(1) FROM exam;
SELECT COUNT(*) FROM exam;
-- 統(tǒng)計(jì)數(shù)學(xué)成績(jī)大于80的學(xué)生個(gè)數(shù)
SELECT COUNT(math) FROM exam WHERE math>80;
2、SUM:求和
-- 統(tǒng)計(jì)數(shù)學(xué)總成績(jī)
SELECT SUM(math) FROM exam;
-- 統(tǒng)計(jì)語文、英語、數(shù)學(xué)各科的總成績(jī)
SELECT SUM(math),SUM(chinese),SUM(english) FROM exam;
-- 統(tǒng)計(jì)語文、英語、數(shù)學(xué)各科的總成績(jī)
SELECT SUM(IFNULL(math,0)+IFNULL(chinese,0)+IFNULL(english,0)) AS all_sum FROM exam;
3、AVG:求平均
-- 查詢數(shù)學(xué)平均分
SELECT AVG(math) FROM exam;
4、MAX/MIN:最大/最小值
-- 查詢最小的語文成績(jī)
SELECT NAME,MIN(IFNULL(chinese,0)) FROM exam;
-- 查詢最大的英語成績(jī)
SELECT NAME,MAX(english) FROM exam;
總結(jié)
以上是生活随笔為你收集整理的mysql查询数学成绩信息_【MySQL】:利用DQL查询表中的数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国内黑客团队“盘古”再出手,最新iPho
- 下一篇: 排行榜|当 DB-Engines 遇见墨