SQL基礎(chǔ)介紹

1. 基本語法

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

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

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

簡單介紹客戶端Navicat的使用

菜單-新建連接
新建連接

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

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

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

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

select

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

SELECT 列名稱 FROM 表名稱
或者
SELECT * FROM 表名稱

使用Navicat執(zhí)行查詢

-- 查看學(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ù)目

我們上面,都是查詢一張表所有的數(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)行過濾。

SELECT 列名稱 FROM 表名稱 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ú)的過濾條件,實(shí)際上,我們的會(huì)有各種各樣的情況,需要同時(shí)滿足多種過濾條件,這就用到了 and 和 or。

AND 和 OR 可在 WHERE 子語句中把兩個(gè)或多個(gè)條件結(jié)合起來。
如果第一個(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)查詢

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容