mysql基礎知識掃盲

來源:互聯網
上載者:User

標籤:having   成功   sel   min   允許   let   content   優先   就會   

 一:串連mysql

關於mysql的下載和安裝我在這裡就不說了,第一步我們要串連我們的mysql伺服器,開啟cmd命令切換到你安裝MySQL Server 的bin目錄下,然後輸入mysql -h localhost -u root -p

其中-h 表示你的主機地址(本機就是localhost,記住不要帶連接埠號碼) -u 就是串連資料庫名稱 -p就是串連密碼。出現以就表示串連成功了

 

二:常用的sql語句

2.1:建立資料庫 create database 資料庫名

2.2:刪除資料庫 drop database 資料庫名

2.3:查詢系統中的資料庫 show databases

2.4:使用資料庫 use 資料庫名

2.5:查詢資料庫的表 show tables

2.6:查詢表結構 desc +表名

2.7:查詢建立表的sql語句 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普通查詢

在這裡我建立了一個資料放了2個表,看

3.2:查詢不重複記錄

用關鍵字distinct如

3.3:排序和限制

用關鍵字order by進行排序desc降序asc升序,limit關鍵字進行限制輸出

order by後面跟欄位(order by唯寫一次即可先排第一個欄位然後第二個以此類推,limit 後面第一個數是索性,第二個是輸出的個數)。

 

四:彙總操作

很多情況下,使用者都需要進行一些統計,比如統計整個公司的人數或者部門的人數,這時就會用到彙總操作。彙總操作文法入戲下

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

where 條件

group by field1,field2...fieldn

with rollup

having 條件

fun_name叫做彙總函式或者彙總操作,常見的有sum(求和)、 count(*)記錄數、 max(最大值)、min(最小值)。

group by 表示要分類彙總的欄位,比如按照部門分類統計的員工數量,部門就應該寫在group by後面

with rollup 是可選文法,表示是否對分類彙總後的結合在進行匯總

having 表示對分類後的結果在次進行篩選

4.1:按照課程號進行統計班級的人數

4.2:按年級統計人數,並統計總人數

rollup就是進行人數匯總的,我們可以看出。

4.3:統計年齡不小於20的人數

having和where的區別:having是對彙總後的結果進行篩選,而where是在彙總錢就對記錄進行篩選,如果邏輯允許,儘可能使用where先過濾記錄,這樣將減少結果集,對彙總的效率大大的提高,然後在根據having進行過濾。

 

五:表串連

如果需要同時顯示多個表中的欄位的時候,就可以使用表串連來實現這樣的功能。從大類上可以分為內串連和外串連,他們的主要區別是:內串連僅僅篩選出2個表互相匹配的記錄,而外串連會篩選出其他不匹配的記錄,我們經常使用的是內串連。

 

5.1:查詢學生所選擇的課程

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

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

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

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

 

六:子查詢

某些情況下,當進行查詢的時候,需要的條件是另外一個select語句的結果,這個時候就用到了子查詢,用於子查詢的關鍵字主要包括in、not in、=、!=、exist、not exist等

如使用in進行查詢

但是使用內串連同樣能達到以上的效果

但是內串連的效率在很多情況下都是高於子查詢的,所以如果不影響商務邏輯的前提下優先考慮內聯。

 

七:聯合

將2個表的資料按照一定規則下查詢出來,將結果合并一起顯示出來。這個時候我們就可以使用union或者union all。具體文法如下

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

union和union all的區別在於union是在篩選的結果集去除重複的記錄。

切記不可以2個表不匹配就進行聯合,如下

如果我們每個表都查詢2個欄位

八:常見的函數

8.1:concat

cancat函數:把傳入的參數連成一個字串,任何字串和null進行拼接的結果都是null,如

8.2:insert(str,x,y,instr)函數,將字串str從第X個位置開始,y個字元長的字串替換成instr下面把字串hellomysql2016的第5個字元後面的4個字元替換成you

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

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

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

8.6:repeat(str,x):返回str重複x次的結果

8.7:replace(str,a,b)用字串b替換字串str中所有出現字串a。

8.8:trim(str)去掉開頭和結尾的空格

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

參考的資料是深入淺出的mysql。

mysql基礎知識掃盲

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.