標籤:

mysql初級學習之旅

mysql初級學習之旅

來自專欄初級——數據分析之路

資料庫就是放數據的地方,mysql就是資料庫的操作系統之一,sql語句就是操作數據的語言,嗷嗷嗷

一、資料庫設計

資料庫的設計我主要分為了四個方面

庫操作

表操作

欄位操作

數據操作

此外也包含了一些資料庫的導入導出,備份和恢復的知識點。

二、基本操作

基本操作主要是是關於單表查詢的,select本身就是相當於取集合。這裡需要理解sql語言的執行順序,已經各種條件是取行還是取列的邏輯思維。

  • 常見錯誤

1 在SELECT子句中書寫了多餘的列

使用聚合函數時,SELECT 子句中只能存在以下三種元素

常數

聚合函數

GROUP BY子句中指定的列名(聚合鍵)

把聚合鍵之外的列名寫在了select子句之中

SELECT product_name, purchase_price, COUNT(*) FROM Product

GROUP BY purchase_price;

2 在GROUP BY子句中寫了列的別名

在GROUP BY子句中不能使用select子句定義的別名

代碼執行順序的問題

3 GROUP BY子句顯示的結果能排序嘛

Group by子句的結果是無序的

4 在where子句用聚合函數

只有 SELECT 子句、HAVING子句、ORDER BY子句能夠使用COUNT等聚合函數

三、鏈接等高級sql語言

個人遇到的問題主要是關聯子查詢,這點比較難以理解,經過查詢知道關聯子查詢的信息流是雙向的,即外部查詢的每行數據傳遞一個值給子查詢,然後子查詢為每一行數據執行一次並返回它的記錄。此外,結合條件一定要寫在子查詢中。

此外還有函數、謂詞、CASE 表達式等用法,這個需要多練。

  • 表的加法——UNION
    • 以【行】為單位進行操作(行數增減);【列】沒有變
  • 聯結(join)
    • 以【列】為單位進行操作,進行「添加列」的運算;

四、關於sqlzoo

sqlzoo大部分的都可以做出來,主要是多練,時間充裕可以多做幾遍,主要是題目的理解、多表時的欄位的fk關係、設計的思路。

總結:

1 表的設計思路和欄位的理解很重要

2 理解mysql背後的數學原理

3 mysql才剛剛入門,學習之路還很長


推薦閱讀:

MySQL基礎(二):列類型、列屬性
資料庫優化,自己瞎扒的
MySQL之wait/interactive_timeout
採用Jquery+Ajax+PHP+MySQL實現分類列表管理 上
令人迷惑的SQL查詢結果

TAG:MySQL |