SQL基礎(chǔ)介紹

1. 基本語(yǔ)法

SQL(Structured Query Language)結(jié)構(gòu)化查詢(xún)語(yǔ)言,通過(guò)SQL,我們就可以查詢(xún)數(shù)據(jù)庫(kù)中的數(shù)據(jù),而數(shù)據(jù)再數(shù)據(jù)庫(kù)中又是以表的形式保存的,所以SQL查詢(xún),主要就是對(duì)表進(jìn)行查詢(xún)。

SQL的語(yǔ)法就和學(xué)習(xí)英語(yǔ)的語(yǔ)法、漢語(yǔ)拼音一樣,滿(mǎn)足給定的套路,去使用就可以了。

當(dāng)我們拿到了數(shù)據(jù)庫(kù)的連接信息,連接到一個(gè)數(shù)據(jù)庫(kù)上,我們就可以開(kāi)始寫(xiě)SQL了。

簡(jiǎn)單介紹客戶(hù)端Navicat的使用

菜單-新建連接
新建連接

這一個(gè)一個(gè)圓柱形的,就是一個(gè)數(shù)據(jù)庫(kù)實(shí)例,下面那些電子表格圖標(biāo)的就是表,數(shù)據(jù)就存儲(chǔ)在表中。

數(shù)據(jù)庫(kù)及表

使用Navicat查看表結(jié)構(gòu)信息,介紹下表、字段、注釋等

對(duì)象信息
表結(jié)構(gòu)信息

select

下面,我們來(lái)看看,怎樣查看一張表的數(shù)據(jù);SQL的語(yǔ)法呢,就好比是一個(gè)公式,初學(xué)的話(huà)我們?nèi)ヌ子镁涂梢粤恕?/p>

SELECT 列名稱(chēng) FROM 表名稱(chēng)
或者
SELECT * FROM 表名稱(chēng)

使用Navicat執(zhí)行查詢(xún)

-- 查看學(xué)生表數(shù)據(jù),指定字段
select s_id,s_name from t_student;
學(xué)生表數(shù)據(jù)
-- 查看所有字段
select *from t_student;
學(xué)生表數(shù)據(jù)

排序

排序是很常用的功能,我們想要對(duì)結(jié)果集進(jìn)行指定的排序,就要使用order by

order by 字段名

默認(rèn)升序,可以使用desc降序排列

-- 學(xué)生ID降序排列
select *from t_student order by s_id desc;
降序排列

多字段排序

-- 班級(jí)ID升序排列,班級(jí)ID一樣的按學(xué)生ID降序排列
select *from t_student order by c_id,s_id desc;
多字段排序

limit

指定返回記錄的數(shù)目

我們上面,都是查詢(xún)一張表所有的數(shù)據(jù),有的時(shí)候表的數(shù)據(jù)量很大,或者我們只想看看排名前3的數(shù)據(jù),我們就可以使用limit

-- 學(xué)生ID降序排列,取前3條記錄
select *from t_student order by s_id desc limit 3;
limit

where

前面,我們可以查看一張表的所有數(shù)據(jù)、做排序、然后只取前幾行,實(shí)際使用時(shí),一定會(huì)有這樣的需求,比如我們只想看學(xué)生ID是105的記錄,就需要使用where了,它可以對(duì)數(shù)據(jù)進(jìn)行過(guò)濾。

SELECT 列名稱(chēng) FROM 表名稱(chēng) WHERE 列 運(yùn)算符 值

常用的運(yùn)算符.png
-- 查看學(xué)生ID是105的學(xué)生信息
select *from t_student where s_id = 105;

-- 查看學(xué)生ID不是105的其他學(xué)生信息
select *from t_student where s_id <> 105 ;

-- 查看學(xué)生ID在103和108之間的學(xué)生信息
select *from t_student where s_id between 103 and 108;

這里還有一個(gè)操作符很常用,就是 in 和 not in。
in 表示在多個(gè)值中存在,加上not則表示不存在

-- 查看學(xué)生ID是103,105,,107的學(xué)生信息
select *from t_student where s_id in (103,105,107);

-- 查看學(xué)生ID不在102中的其他學(xué)生信息
select *from t_student where s_id not in (102);

like

匹配字符串,像‘xxxx’一樣

%: 表示任意個(gè)或多個(gè)字符
_:表示任意單個(gè)字符

-- 查看喜歡吃肉的學(xué)生信息
select *from t_student where s_hobby like '吃肉%';
select *from t_student where s_hobby like '%吃肉%';
like使用

and 和 or

上面,我們都是一個(gè)單獨(dú)的過(guò)濾條件,實(shí)際上,我們的會(huì)有各種各樣的情況,需要同時(shí)滿(mǎn)足多種過(guò)濾條件,這就用到了 and 和 or。

AND 和 OR 可在 WHERE 子語(yǔ)句中把兩個(gè)或多個(gè)條件結(jié)合起來(lái)。
如果第一個(gè)條件和第二個(gè)條件都成立,則 AND 運(yùn)算符顯示一條記錄。
如果第一個(gè)條件和第二個(gè)條件中只要有一個(gè)成立,則 OR 運(yùn)算符顯示一條記錄。

-- 查看班級(jí)ID是901的所有男生信息
select *from t_student where c_id=901 and s_gender=0;

-- 查看班級(jí)ID是901或者s_id大于107的學(xué)生信息
select *from t_student where c_id=901 or s_id > 107;

流程控制

關(guān)聯(lián)查詢(xún)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容