共計 2433 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章將為大家詳細講解有關 mysql 有哪些基礎知識,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
一:連接 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 有哪些基礎知識”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。