MySQL入門

剛開始接觸SQL語言,剛開始入門確實坑很多,我安裝了一個Navicat ,界面更友好一些,適合入門。!!!!提醒大家,標點符號一定要在英文狀態下輸入!

1.下載並安裝MySQL

Download MySQL Community Server

2.安裝Navicat(可視化MySQL數據管理工具)

Products | Navicat

3.什麼是SQL語言?

訪問資料庫需要以某種資料庫系統能夠理解的方式去訪問,SQL(structure query language)結構化查詢語言,是每一個資料庫都通用的語言。

4.基礎操作

1.SELECT語句(簡單查詢)

SELECT是用於從表中選取數據集,結果被儲存在一個結果表中(也稱結果集)。

#查詢全表 SELECT * FROM 訂單 #查詢其中的一部分數據列 SELECT 訂單ID,銷售額,利潤 FROM 訂單 #查詢前n行 SELECT * FROM 訂單 LIMIT 10 #查詢當前表總共有多少行 SELECT COUNT(*) FROM 訂單

關鍵詞DISTANCE用於返回唯一不同的值。

語法:SELECT DISTANCE 列名稱 FROM 表名稱舉例:#查詢獨立訂單號碼 SELECT DISTINCT(訂單ID) FROM 訂單 #有多少個獨立訂單號 SELECT COUNT(DISTINCT(訂單ID)) FROM 訂單

2.對查詢結果進行排序

#DESC 是降序排列,ASC是升序排列SELECT 訂單ID,銷售額,利潤 FROM 訂單 ORDER BY 銷售額 DESC

3.條件查詢(where子句)

如果需要有條件的從表中選取數據可以使用WHERE子句。下面的運算符可以在WHERE子句中使用:

其中<>也可以寫成!=。

#查詢銷售額大於10000並且沒有虧損的訂單 SELECT * FROM 訂單 WHERE 銷售額>10000 AND 利潤>0 #這樣的訂單有多少? SELECT COUNT(*) FROM 訂單 WHERE 銷售額>10000 AND 利潤>0

注釋:當條件值為數字時不需要引號。但是條件值為文本時需要引號。

SELECT *FROM 訂單 WHERE (城市 = 上海 AND 銷售額>10000)OR (城市 =北京 AND 銷售額>10000)

上面代碼的意思是:

查找出上海市銷售額大於10000或者是北京市銷售額大於10000的,當有括弧時,會優先對括弧內的的進行判斷或者當有多個括弧時先對最裡面的括弧進行判斷。

SELECT * FROM 訂單 WHERE 城市 IN ( 北京,上海,南京)

當我們要查詢多個條件,比如上海北京南京三個城市,可以使用in,避免連續使用and比較麻煩。

SELECT * FROM 訂單 where 郵寄方式 LIKE %標準%

上述語句的意思是在郵寄方式這一列查找包含「標準」欄位的數據,%代表的是通配符,含義是無所謂「標準」前面和後面是什麼意思。如果寫的是「標準%」代表欄位必須是以標準開始無所謂後面是什麼。

4.分組查詢(group by 語句)

#不同省份的獨立訂單數 SELECT 省,COUNT(DISTINCT(訂單ID)) 訂單數 FROM 訂單 GROUP BY 省#不同省、不同城市獨立訂單數 SELECT 省,城市,COUNT(DISTINCT(訂單ID)) 訂單數 FROM 訂單 GROUP BY 省,城市#在這裡要注意使用GRUOP BY 語句時,要將GROUP BY 後面的元素放在SELECT後面的第一個

如果我想知道每個省一共有多少訂單,其中有多少訂單類別是傢具類,佔比是多少,可以利用IF函數來計算還有,在count中0也會計算,所以要把if函數的第三個函數寫成null,代表類別不是傢具的就排除在外。

SELECT 省,COUNT(訂單ID),COUNT(IF (類別 LIKE%傢具%,訂單ID,NULL)) FROM 訂單 GROUP BY 省

第一列是省,第二列是訂單數,第三列表示的類別是傢具的訂單數。

5.having子句

用於在GROUP BY 語句的條件下繼續添加條件,注意不能使用WHERE語句,WHERE語句和GROUP by 不能共存。

#每訂單總利潤 SELECT 訂單ID,地區,省,城市,SUM(利潤) 利潤 FROM 訂單 GROUP BY 訂單ID HAVING 地區=華東

6.子查詢

#篩選出退貨的訂單ID SELECT 訂單ID FROM 退貨 WHERE 退回=是 #找出這些訂單的詳情 SELECT * FROM 訂單 WHERE 訂單ID IN (SELECT 訂單ID FROM 退貨 WHERE 退回=是)

7.表連接

(1)簡單的連接查詢

SELECT * FROM 訂單 A JOIN 退貨 B ON A.訂單ID = B.訂單ID

(2)內連接

SELECT * FROM 訂單 A INNER JOIN 退貨 B ON A.訂單ID = B.訂單ID

(3)左連接

SELECT * FROM 訂單 A LEFT JOIN 退貨 B ON A.訂單ID = B.訂單ID

6.修改數據表中的數據

(1)alter語句

#添加數據列 ,將成本類型設置為double型,長度為10,小數點數為2ALTER TABLE 訂單 ADD COLUMN 成本 DOUBLE(10,2)#刪除數據列 ALTER TABLE 訂單 DROP COLUMN 客戶名稱

(2)updata 語句

UPDATE 訂單 SET 成本=銷售額-利潤

(3)delete語句

#刪除 DELETE FROM 訂單 WHERE 郵寄方式=標準級

最後,建議大家進行數據操作時先複製一下表,一旦操作失誤數據不是很容易找回。

SQL 語法?

www.w3school.com.cn

為大家推薦這個網站,可以在這裡查看一些語法。


推薦閱讀:

TAG:MySQL入門 | 數據分析 | 數據分析師 |