亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

1.查詢表中若干列

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

select sno,sname
from student;

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

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

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

代碼如下????

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

方法二:將<目標(biāo)列表表達(dá)式>指定為*

代碼如下????

select *
from student;

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

select子句中的<目標(biāo)列表達(dá)式>不僅可以為表中的屬性列,也可以是表達(dá)式

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

代碼如下????

select sname,2023-sage
from student;

 運(yùn)行結(jié)果????

45fe27e57fd2406e848c7751d3db6115.png

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

代碼如下????

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

運(yùn)行結(jié)果????

14d483d10a324a08826c7038b873acd1.png

2.查詢表中若干元組

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

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

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

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

代碼如下????

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

運(yùn)行結(jié)果????

897492e5129e4bbab47f2363720e47d8.png

指定DISTINCT關(guān)鍵字

代碼如下????

SELECT DISTINCT sno
FROM sc;

運(yùn)行結(jié)果????

0122d924882443fbac0c39ffb22602e1.png

(2)比較大小

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

代碼如下????

SELECT sname
FROM student
WHERE sdept='cs';

運(yùn)行結(jié)果????

ffb649341287423d9fe565fc31ba5fdd.png

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

代碼如下????

SELECT sname,sage
FROM student
WHERE sage<20;

運(yùn)行結(jié)果????

b6fc254d43d047ce8ff4279aa3b1af4f.png

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

代碼如下????

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;

運(yùn)行結(jié)果????

65647fdeeb354abcbf81a05c7c78854f.png

(4)確定集合

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

代碼如下????

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

運(yùn)行結(jié)果????

e2fdb6458dd34f3da7a5ac7f439e7868.png

(5)字符匹配

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

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

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

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

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

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

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

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

例如:查詢學(xué)號(hào)為201215121的學(xué)生的詳細(xì)情況

代碼如下????

SELECT *
FROM student
WHERE sno='201215121';

運(yùn)行結(jié)果????

b5c6d4c2bdde451498869222828048cb.png

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

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

代碼如下????

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

運(yùn)行結(jié)果????

145b4f1d460e4675824aeac9fb4b882e.png

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

代碼如下????

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

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

代碼如下????

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

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

代碼如下????

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

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

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

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

代碼如下????

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

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

代碼如下????

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

(6)涉及空值的查詢

謂詞: is null 或 is  not null

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

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

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

代碼如下????

select sno,cno
from sc
where grade is null;

3.ORDER BY子句

特點(diǎn)

可以按一個(gè)或多個(gè)屬性列排序

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

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

例子

例1

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

SC表如下????

代碼如下????

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

運(yùn)行結(jié)果????

例2

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

Student表如下????

代碼如下????

SELECT *
FROM Student
ORDER BY Sdept,Sage DESC;

運(yùn)行結(jié)果????

4.聚焦函數(shù)

(1)統(tǒng)計(jì)元組個(gè)數(shù)

COUNT(*)

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

代碼如下????

SELECT COUNT(*)
FROM student;

運(yùn)行結(jié)果????

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

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

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

代碼如下????

SELECT COUNT(DISTINCT sno)
FROM sc;

運(yùn)行結(jié)果????

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

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

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

代碼如下????

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

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

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

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

代碼如下????

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

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

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

 例如:(查詢選修1號(hào)課程的學(xué)生最高分?jǐn)?shù))

代碼如下????

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

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

 例如:(查詢選修1號(hào)課程的學(xué)生最低分?jǐn)?shù))

代碼如下????

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

5.GROUP BY子句

特點(diǎn)

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

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

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

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

代碼如下????

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

運(yùn)行結(jié)果????

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

(1)作用對(duì)象不同

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

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

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

錯(cuò)誤代碼????:

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ù)作為條件表達(dá)式

總結(jié)

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

相關(guān)文章

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

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

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

    MySql死鎖排查的問題解決

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

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

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

    Mysql連接join查詢?cè)碇R(shí)點(diǎn)

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

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

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

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

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

    MySQL存儲(chǔ)過程的優(yōu)化實(shí)例

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

    MySQL是怎么保證主備一致的

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

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

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

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

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

最新評(píng)論