人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

mysql基礎(chǔ)知識(shí)掃盲

發(fā)布日期:2021-12-14 19:10 | 文章來(lái)源:源碼之家

本篇主要介紹關(guān)于mysql的一些非?;A(chǔ)的知識(shí),為后面的sql優(yōu)化做準(zhǔn)備。

一:連接mysql

關(guān)于mysql的下載和安裝我在這里就不說(shuō)了,第一步我們要連接我們的mysql服務(wù)器,打開(kāi)cmd命令切換到你安裝MySQL Server 的bin目錄下,然后輸入mysql -h localhost -u root -p

其中-h 表示你的主機(jī)地址(本機(jī)就是localhost,記住不要帶端口號(hào)) -u 就是連接數(shù)據(jù)庫(kù)名稱 -p就是連接密碼。出現(xiàn)以下圖就表示連接成功了

二:常用的sql語(yǔ)句

2.1:創(chuàng)建數(shù)據(jù)庫(kù) create database 數(shù)據(jù)庫(kù)名

2.2:刪除數(shù)據(jù)庫(kù) drop database 數(shù)據(jù)庫(kù)名

2.3:查詢系統(tǒng)中的數(shù)據(jù)庫(kù) show databases

2.4:使用數(shù)據(jù)庫(kù) use 數(shù)據(jù)庫(kù)名

2.5:查詢數(shù)據(jù)庫(kù)的表 show tables

2.6:查詢表結(jié)構(gòu) desc +表名

2.7:查詢創(chuàng)建表的sql語(yǔ)句 show create table +表名

2.8:刪除表 drop +表名

2.9:一次刪除多條表記錄:delete t1,t2 from t1,t2[where 條件] 如果from后面用別名那么delete后面也需要用別名

3.0:一次性更新多次表update t1,t2 ...tn set t1.field=expr1,tn.exprn=exprn;

三:查詢

3.1:select普通查詢

在這里我創(chuàng)建了一個(gè)數(shù)據(jù)放了2個(gè)表,看下圖

3.2:查詢不重復(fù)記錄

用關(guān)鍵字distinct如下圖

3.3:排序和限制

用關(guān)鍵字order by進(jìn)行排序desc降序asc升序,limit關(guān)鍵字進(jìn)行限制輸出

order by后面跟字段(order by只寫一次即可先排第一個(gè)字段然后第二個(gè)以此類推,limit 后面第一個(gè)數(shù)是索性,第二個(gè)是輸出的個(gè)數(shù))。

四:聚合操作

很多情況下,用戶都需要進(jìn)行一些統(tǒng)計(jì),比如統(tǒng)計(jì)整個(gè)公司的人數(shù)或者部門的人數(shù),這時(shí)就會(huì)用到聚合操作。聚合操作語(yǔ)法入戲下

select 【field1,field2...fieldn】fun_name from 表名

where 條件

group by field1,field2...fieldn

with rollup

having 條件

fun_name叫做聚合函數(shù)或者聚合操作,常見(jiàn)的有sum(求和)、 count(*)記錄數(shù)、 max(最大值)、min(最小值)。

group by 表示要分類聚合的字段,比如按照部門分類統(tǒng)計(jì)的員工數(shù)量,部門就應(yīng)該寫在group by后面

with rollup 是可選語(yǔ)法,表示是否對(duì)分類聚合后的結(jié)合在進(jìn)行匯總

having 表示對(duì)分類后的結(jié)果在次進(jìn)行篩選

4.1:按照課程號(hào)進(jìn)行統(tǒng)計(jì)班級(jí)的人數(shù)

4.2:按年級(jí)統(tǒng)計(jì)人數(shù),并統(tǒng)計(jì)總?cè)藬?shù)

rollup就是進(jìn)行人數(shù)匯總的,從圖中我們可以看出。

4.3:統(tǒng)計(jì)年齡不小于20的人數(shù)

having和where的區(qū)別:having是對(duì)聚合后的結(jié)果進(jìn)行篩選,而where是在聚合錢就對(duì)記錄進(jìn)行篩選,如果邏輯允許,盡可能使用where先過(guò)濾記錄,這樣將減少結(jié)果集,對(duì)聚合的效率大大的提高,然后在根據(jù)having進(jìn)行過(guò)濾。

五:表連接

如果需要同時(shí)顯示多個(gè)表中的字段的時(shí)候,就可以使用表連接來(lái)實(shí)現(xiàn)這樣的功能。從大類上可以分為內(nèi)連接和外連接,他們的主要區(qū)別是:內(nèi)連接僅僅篩選出2個(gè)表互相匹配的記錄,而外連接會(huì)篩選出其他不匹配的記錄,我們經(jīng)常使用的是內(nèi)連接。

5.1:查詢學(xué)生所選擇的課程

外連接又分為左連接和右連接。

左連接(包含所有左邊表中的記錄甚至右邊表中沒(méi)有和它匹配的記錄)

右連接(包含所有右邊表中的記錄甚至左邊表中沒(méi)有和它匹配的記錄)

從中可以看出左連接是以左邊的表為主,右連接是以右邊的表為主。

六:子查詢

某些情況下,當(dāng)進(jìn)行查詢的時(shí)候,需要的條件是另外一個(gè)select語(yǔ)句的結(jié)果,這個(gè)時(shí)候就用到了子查詢,用于子查詢的關(guān)鍵字主要包括in、not in、=、!=、exist、not exist等

如使用in進(jìn)行查詢

但是使用內(nèi)連接同樣能達(dá)到以上的效果

但是內(nèi)連接的效率在很多情況下都是高于子查詢的,所以如果不影響業(yè)務(wù)邏輯的前提下優(yōu)先考慮內(nèi)聯(lián)。

七:聯(lián)合

將2個(gè)表的數(shù)據(jù)按照一定規(guī)則下查詢出來(lái),將結(jié)果合并一起顯示出來(lái)。這個(gè)時(shí)候我們就可以使用union或者union all。具體語(yǔ)法如下

select * from t1 union\union all select * from t2 union\union all select * from tn;

union和union all的區(qū)別在于union是在篩選的結(jié)果集去除重復(fù)的記錄。

切記不可以2個(gè)表不匹配就進(jìn)行聯(lián)合,如下

如果我們每個(gè)表都查詢2個(gè)字段

八:常見(jiàn)的函數(shù)

8.1:concat

cancat函數(shù):把傳入的參數(shù)連成一個(gè)字符串,任何字符串和null進(jìn)行拼接的結(jié)果都是null,如下圖

8.2:insert(str,x,y,instr)函數(shù),將字符串str從第X個(gè)位置開(kāi)始,y個(gè)字符長(zhǎng)的字符串替換成instr下面把字符串hellomysql2016的第5個(gè)字符后面的4個(gè)字符替換成you

8.3:Lower(Str)和Upper(Str)把字符串轉(zhuǎn)換成小寫或者大寫。

8.4:left(str,x)和right(str,x)分別返回字符串最左邊的x個(gè)字符和最右邊的x個(gè)字符,如果第二個(gè)參數(shù)為null,不返回任何字符

8.5:ltrim(str)和rtrim(str)去掉字符串左邊或者右邊的字符

8.6:repeat(str,x):返回str重復(fù)x次的結(jié)果

8.7:replace(str,a,b)用字符串b替換字符串str中所有出現(xiàn)字符串a(chǎn)。

8.8:trim(str)去掉開(kāi)頭和結(jié)尾的空格

8.9:substring(str,x,y):返回從字符串str中的第x個(gè)位置起y個(gè)字符串長(zhǎng)度的字符串。

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持本站!

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開(kāi)通

自選配置、實(shí)時(shí)開(kāi)通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問(wèn)服務(wù)

1對(duì)1客戶咨詢顧問(wèn)

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部