欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

從0到1學(xué)會MySQL單表查詢

 更新時間:2023年11月14日 11:46:16   作者:Dawn黎明開始  
這篇文章主要給大家介紹了關(guān)于如何從0到1學(xué)會MySQL單表查詢的相關(guān)資料,單表查詢是指從一張表數(shù)據(jù)中查詢所需的數(shù)據(jù),文中通過代碼介紹的非常詳細,需要的朋友可以參考下

1.查詢表中若干列

例如:查詢?nèi)w學(xué)生的學(xué)號和姓名

select sno,sname
from student;

(1)查詢?nèi)苛?/h3>

(例如:查詢?nèi)w學(xué)生的信息)

方法一:在select關(guān)鍵字后面列出所有列名

代碼如下????

select  sno,sname,ssex,sage,sdept
from student;

方法二:將<目標列表表達式>指定為*

代碼如下????

select *
from student;

(2)查詢經(jīng)過計算的值

select子句中的<目標列表達式>不僅可以為表中的屬性列,也可以是表達式

例如:查詢?nèi)w學(xué)生的姓名及其出生年份

代碼如下????

select sname,2023-sage
from student;

 運行結(jié)果????

45fe27e57fd2406e848c7751d3db6115.png

(3)使用列別名改變查詢結(jié)果的列標題(AS可以省略)

代碼如下????

SELECT Sname AS NAME,'Year of Birth:' AS BIRTH, 
       2014-Sage AS BIRTHDAY,LOWER(Sdept)  AS DEPARTMENT
	FROM Student;

運行結(jié)果????

14d483d10a324a08826c7038b873acd1.png

2.查詢表中若干元組

(1)消除取值重復(fù)的行

如果沒有指定DISTINCT關(guān)鍵字,則缺省為ALL

例如:(查詢選修了課程的學(xué)生學(xué)號)

未指定DISTINCT關(guān)鍵字

代碼如下????

SELECT sno
FROM sc;
/*
SELECT ALL sno
FROM sc;
*/

運行結(jié)果????

897492e5129e4bbab47f2363720e47d8.png

指定DISTINCT關(guān)鍵字

代碼如下????

SELECT DISTINCT sno
FROM sc;

運行結(jié)果????

0122d924882443fbac0c39ffb22602e1.png

(2)比較大小

例如:查詢計算機科學(xué)系全體學(xué)生的名單

代碼如下????

SELECT sname
FROM student
WHERE sdept='cs';

運行結(jié)果????

ffb649341287423d9fe565fc31ba5fdd.png

例如:所有年齡在20歲以下的學(xué)生姓名和年齡

代碼如下????

SELECT sname,sage
FROM student
WHERE sage<20;

運行結(jié)果????

b6fc254d43d047ce8ff4279aa3b1af4f.png

 例如:查詢考試成績有不及格的學(xué)生的學(xué)號

代碼如下????

SELECT DISTINCT sno
FROM sc
WHERE grade<60;
 

(3)確定范圍

謂詞:between   and,not between   and

例如:查詢年齡在20~23歲(包括20歲和23歲)之間的學(xué)生的姓名,年齡

代碼如下????

SELECT sname,sage
FROM student
WHERE sage BETWEEN 20 AND 23;

運行結(jié)果????

65647fdeeb354abcbf81a05c7c78854f.png

(4)確定集合

謂詞: in<值表>,not in<值表>

代碼如下????

SELECT sname ,ssex,sdept
FROM student
WHERE sdept IN ('CS','MA','IS');

運行結(jié)果????

e2fdb6458dd34f3da7a5ac7f439e7868.png

(5)字符匹配

謂詞:[not]like'<匹配串>'[ESCAPE'<換碼字符>']

<匹配串>可以是一個完整的字符串,也可以含有通配符%和_

%(百分號)代表任意長度(長度可以為0)的字符串

例如:a%b表示以a開頭,以b結(jié)尾的任意長度的字符串

_(下劃線)代表任意單個字符

例如:a_b表示以a開頭,以b結(jié)尾的長度為3的任意字符串

-----------------------------------

(1)匹配串含固定字符串

例如:查詢學(xué)號為201215121的學(xué)生的詳細情況

代碼如下????

SELECT *
FROM student
WHERE sno='201215121';

運行結(jié)果????

b5c6d4c2bdde451498869222828048cb.png

(2)匹配串為含通配符的字符串

例如:查詢所有姓劉學(xué)生的姓名,學(xué)號,性別

代碼如下????

SELECT sname ,sno,ssex
FROM student
WHERE sname LIKE '劉%';

運行結(jié)果????

145b4f1d460e4675824aeac9fb4b882e.png

例如:查詢姓"歐陽"且全名為三個漢字的學(xué)生的姓名

代碼如下????

SELECT sname
FROM student
WHERE sname LIKE '歐陽_';

例如:查詢名字中第二個字為"陽"字的學(xué)生的姓名和學(xué)號

代碼如下????

SELECT sname,sno
FROM student
WHERE sname LIKE '_陽%';

例如:查詢所有不姓劉的學(xué)生姓名,學(xué)號和性別

代碼如下????

SELECT sname ,sno,ssex
FROM student
WHERE sname NOT LIKE '劉%';

 (3)使用換碼字符將通配符轉(zhuǎn)義為普通字符

ESCAPE'/'表示"/"為換碼字符

例如:查詢DB_Design課程的課程號和學(xué)分

代碼如下????

select cno,ccredit
from course
where cname like'DB/_Design'ESCAPE'/';

例如:查詢以"DB_"開頭,且倒數(shù)第3個字符為i的課程的詳細情況

代碼如下????

select *
from course
where cname like 'DB/_%i__'ESCAPE'/';

(6)涉及空值的查詢

謂詞: is null 或 is  not null

注意:"is"不能用 "="代替

例如:某些學(xué)生選修課程后沒有參加考試,所以有選課記錄,但沒有考試成績

查詢?nèi)鄙俪煽兊膶W(xué)生的學(xué)號和相應(yīng)的課程號

代碼如下????

select sno,cno
from sc
where grade is null;

3.ORDER BY子句

特點

可以按一個或多個屬性列排序

升序:ASC;降序:DESC;缺省值為升序

對于空值,排序時顯示的次序由具體系統(tǒng)實現(xiàn)來決定

例子

例1

(查詢選修了3課程的學(xué)生的學(xué)號及其成績,查詢結(jié)果按分數(shù)降序排列)

SC表如下????

代碼如下????

SELECT Sno,Grade
FROM SC
WHERE Cno='3'
ORDER BY grade DESC;

運行結(jié)果????

例2

(查詢?nèi)w學(xué)生情況,查詢結(jié)果按所在系的系好升序排列,同一系中的學(xué)生按年齡降序排列)

Student表如下????

代碼如下????

SELECT *
FROM Student
ORDER BY Sdept,Sage DESC;

運行結(jié)果????

4.聚焦函數(shù)

(1)統(tǒng)計元組個數(shù)

COUNT(*)

例如:(查詢學(xué)生總?cè)藬?shù))

代碼如下????

SELECT COUNT(*)
FROM student;

運行結(jié)果????

(2)統(tǒng)計一列中值的個數(shù)

COUNT([DISTINCT|ALL]<列名>)

 例如:(查詢選修了課程的學(xué)生人數(shù))

代碼如下????

SELECT COUNT(DISTINCT sno)
FROM sc;

運行結(jié)果????

(3)計算一列值的總和(此列必須為數(shù)值型)

SUM([DISTINCT|ALL]<列名>)

 例如:(查詢學(xué)生201215012選修課程的總學(xué)分數(shù))

代碼如下????

SELECT SUM(Ccredit)
FROM sc,course
WHERE sno='201215012' AND sc.`Cno`=course.`Cno`;

(4)計算一列值的平均值(此列必須為數(shù)值型)

AVG([DISTINCT|ALL]<列名>)

 例如:(查詢選修1號課程的學(xué)生平均成績)

代碼如下????

SELECT  AVG(Grade)
FROM sc
WHERE cno='1';

(5)求一列中的最大值和最小值

MAX([DISTINCT|ALL]<列名>)

 例如:(查詢選修1號課程的學(xué)生最高分數(shù))

代碼如下????

SELECT MAX(Grade)
FROM sc
WHERE cno='1';

MIN([DISTINCT|ALL]<列名>)

 例如:(查詢選修1號課程的學(xué)生最低分數(shù))

代碼如下????

SELECT MIN(Grade)
FROM sc
WHERE cno='1';?

5.GROUP BY子句

特點

細化聚焦函數(shù)的作用對象

如果未查詢結(jié)果分組,聚焦函數(shù)將作用于整個查詢結(jié)果

對查詢結(jié)果分組后,聚焦函數(shù)將分別作用于每個組

按指定的一列或多列值分組,值相等的為一組

代碼如下????

SELECT sno, AVG(Grade)
FROM sc
GROUP BY sno

運行結(jié)果????

HAVING短語與WHERE子句的區(qū)別

(1)作用對象不同

(2)WHERE子句作用于基表或視圖,從中選擇滿足條件的元組

(3)HAVING短語作用于組,從中選擇滿足條件的組

例如:(查詢平均成績大于等于85分的學(xué)生學(xué)號和平均成績)

錯誤代碼????:

SELECT sno, AVG(Grade)
FROM sc
WHERE AVG(grade)>=85
GROUP BY sno

正確代碼如下????

SELECT sno, AVG(Grade)
FROM sc
GROUP BY sno
HAVING AVG(grade)>=85

注意:WHERE子句中是不能用聚焦函數(shù)作為條件表達式

總結(jié)

到此這篇關(guān)于MySQL單表查詢的文章就介紹到這了,更多相關(guān)MySQL單表查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis集成MySQL使用游標查詢處理大批量數(shù)據(jù)方式

    Mybatis集成MySQL使用游標查詢處理大批量數(shù)據(jù)方式

    這篇文章主要介紹了Mybatis集成MySQL使用游標查詢處理大批量數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • MySql死鎖排查的問題解決

    MySql死鎖排查的問題解決

    本文主要介紹了MySQL死鎖的排查方法和解決方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • Mysql中STR_TO_DATE函數(shù)使用(字符串轉(zhuǎn)為日期/時間值)

    Mysql中STR_TO_DATE函數(shù)使用(字符串轉(zhuǎn)為日期/時間值)

    這篇文章主要給大家介紹了關(guān)于Mysql中STR_TO_DATE函數(shù)使用的相關(guān)資料,STR_TO_DATE函數(shù)的主要功能是字符串轉(zhuǎn)為日期/時間值,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Mysql連接join查詢原理知識點

    Mysql連接join查詢原理知識點

    在本文里我們給大家整理了一篇關(guān)于Mysql連接join查詢原理知識點文章,對此感興趣的朋友們可以學(xué)習(xí)下。
    2019-02-02
  • 淺談mysql的timestamp存在的時區(qū)問題

    淺談mysql的timestamp存在的時區(qū)問題

    本文主要介紹了淺談mysql的timestamp存在的時區(qū)問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Mysql存儲過程學(xué)習(xí)筆記--建立簡單的存儲過程

    Mysql存儲過程學(xué)習(xí)筆記--建立簡單的存儲過程

    我們常用的操作數(shù)據(jù)庫語言SQL語句在執(zhí)行的時候需要要先編譯,然后執(zhí)行,而存儲過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中,用戶通過指定存儲過程的名字并給定參數(shù)(如果該存儲過程帶有參數(shù))來調(diào)用執(zhí)行它。
    2014-08-08
  • MySQL存儲過程的優(yōu)化實例

    MySQL存儲過程的優(yōu)化實例

    在編寫MySQL存儲過程的過程中,我們會時不時地需要對某些存儲過程進行優(yōu)化,其目的是確保代碼的可讀性、正確性及運行性能。本文以作者實際工作為背景,介紹了對某一個MySQL存儲過程優(yōu)化的整個過程。
    2016-07-07
  • MySQL是怎么保證主備一致的

    MySQL是怎么保證主備一致的

    大家知道 binlog 可以用來歸檔,也可以用來做主備同步,但它的內(nèi)容是什么樣的呢?為什么備庫執(zhí)行了 binlog 就可以跟主庫保持一致了呢,本文就詳細的介紹一下
    2021-09-09
  • Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析

    Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析

    這篇文章主要介紹了Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • mysql5.7.19 winx64安裝配置方法圖文教程(win10)

    mysql5.7.19 winx64安裝配置方法圖文教程(win10)

    這篇文章主要為大家詳細介紹了mysql5.7.19 winx64安裝配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評論