從SQL的角度來看,數據庫就是一個以某種有組織的方式存儲的數據集合。我們可以采用數據庫對數據進行有效的存儲與管理,并運用數據庫進行合理的處理與分析,使其轉化為有價值的數據信息。什么是數據分析,如何快速上手數據分析呢?下面就由小編為您帶來數據分析教程的相關介紹。
理解數據庫的一種簡單辦法是將其想象為一個存放數據的文件柜, 往文件柜里存放數據資料時,先在文件柜中創建文件,然后將相關的數據資料放入特定的文件中,這種存儲某種特定類型數據的結構化的文件就稱為表。每個表都有唯一的表名(在同一數據庫中不能有兩個相同的表名)。
表由列組成,每一列存儲著某種特定的信息,并且具有相應的數據類型。表中的數據是按行存儲的,所保存的每個記錄存儲在自己的行內,并且應盡量保證每一行都有一列(或幾列)能夠唯一標識該行的主鍵。表中的任何列都可以作為主鍵,只要它滿足以下條件:任意兩行主鍵值不同、主鍵列不允許NULL值,且習慣上不更新或重用主鍵值。
SQL(發音為字母S-Q-L或sequel)的全稱為“Structured Query Language” (結構化查詢語言),是一種專門用來與數據庫溝通的語言,用以查詢關系數據庫表的內容,以及插入、更新和刪除數據。SQL簡潔易學,功能強大,靈活使用其語言元素,可以進行非常復雜和高級的數據庫操作。
SQL不是某個特定數據庫供應商專有的語言,幾乎所有主要的DBMS(數據庫管理系統)都支持SQL,因此掌握該語言使你幾乎能與所有數據庫打交道。標準SQL由ANSI標準委員會管理,從而稱為ANSI SQL。
所有主要的DBMS即使有自己的擴展(提供執行特定操作的額外功能或簡化方法),也都支持ANSI SQL。本教程主要使用標準SQL,提供的SQL示例代碼在MySQL 5.7.19環境下測試通過,然而本教程所探討的概念也適用于其他SQL環境。
SQL不是一個應用,而是一種語言。因此,為了學習SQL,我們還需要一個支持SQL語句執行的應用程序。
實際上,數據的所有存儲、檢索、管理和處理都是由數據庫軟件——DBMS(數據庫管理系統)完成的。較為流行的DBMS包括MySQL、 Oracle、 Microsoft SQL Sever、 PostgreSQL等,以下主要介紹MySQL。
MySQL是一個開源的關系型數據庫管理系統,由瑞典MySQL AB公司開發,目前為 Oracle 旗下產品,是世界上最受歡迎的數據庫管理系統之一。
數據分析
有兩種方式使用MySQL。在安裝MySQL時會自帶一個名為mysql命令行實用程序,這是一個純文本工具,可以用來執行任何SQL語句。另外,MySQL 官方發布了一個名為MySQL Workbench的可視化管理工具,用戶可以在安裝MySQL時一起選擇安裝,也可以獨立下載安裝。較為流行的MySQL數據庫可視化管理工具包括MySQL Workbench、 Navicat、 phpMyAdmin、Sequel Pro等。在Windows平臺學習SQL時,推薦使用MySQL Workbench。
有兩種方式使用mysql命令行實用程序。第一種方式是從開始菜單欄中打開MySQL 5.7 Command Line Client,輸入密碼,出現如下界面表示數據庫連接成功:
第二種方式:如果已經將MySQL Sever安裝目錄下的bin子目錄加入到了windows的環境變量中,可以直接在命令行中輸入mysql -u root -p 命令,回車后輸入密碼即可連接成功。如下圖所示:數據庫連接成功后,在mysql>提示下輸入USE database 打開數據庫,例如USE world就是打開world數據庫。
在mysql>提示下輸入SQL語句,每條語句須以分號(;)結束。結果將顯示在屏幕上。
輸入\h可以顯示可能用到的命令列表,輸入\s可以顯示狀態信息(如MySQL版本信息)。
輸入\q或quit可以退出程序。
盡管我們可以在命令提示符下通過一行行的輸入或者通過重定向文件來執行mysql語句,但該方式效率較低, 且由于沒有執行前的語法自動檢查, 輸入失誤造成的一些錯誤的可能性會大大增加。
使用MySQL Workbench 可以通過可視化的方式直接管理數據庫中的內容, 并且 MySQL Workbench 的 SQL 腳本編輯器支持語法高亮以及輸入時的語法檢查,方便我們學習SQL??赏ㄟ^以下操作使用MySQL Workbench:
運行MySQL Workbench。界面左下角列出了可用的MySQL數據庫連接,可直接點擊打開,輸入密碼便可連接。如果沒有在此列出,可選擇【MySQL Connections】右側的加號按鈕,創建新的連接。
登陸成功后的Workbench界面概覽如下圖所示:
其中,區域1顯示的是數據庫服務器中已經創建的數據庫列表。區域2是關于數據庫的操作列表。區域3是sql的編輯器和執行環境,區域4是執行結果的列表。
輸入SQL語句后,點擊Execute(帶有閃電圖片) 或使用快捷鍵【ctrl+enter】運行SQL,將結果顯示在下面。如下圖所示:
完成前面的安裝與設定工作后,MySQL中已經有一個內建的范例數據庫world。但這個數據庫比較簡單,為了更好地練習SQL語句,我們還需要做最后一項準備工作:導入樣例表。后續教程將會基于此樣例表編寫各式SQL語句。
本教程采用著名暢銷書Sams Teach Yourself SQL in 10 Minutes 一書中所提供的樣例表。樣例表描述的是一個隨身物品推銷商使用的訂單錄入系統,下圖顯示了5張表之間的關系:
其中,Customers表存儲所有顧客信息;Vendors表存儲銷售產品的供應商,每個供應商在這個表中都有一個記錄,包含了供應商名字、地址、所在城市等數據元素,其中使用vend_id作為其主鍵;Products表包含產品目錄,每行一個產品,并且借助vend_id(供應商的唯一ID)與供應商相關聯;
Orders表存儲顧客訂單,每個訂單都有唯一編號(order_num列),且根據cust_id列關聯到相應的顧客;OrderItems表則存儲每個訂單中的實際物品,每個訂單的每個物品一行。對于Orders表的每一行,在OrderItems表中有一行或多行與之對應。
每個訂單物品由訂單號加訂單物品(第一個物品、第二個物品等)唯一標識。訂單物品用order_num列與其相應的訂單相關聯。此外,每個訂單物品還包含該物品的產品ID(把物品關聯到Products表)。上圖中表之間的連線便說明了表之間的關系。
- create.txt包含創建5個數據庫表(包括定義所有主鍵和外鍵約束)的SQL語句。
- populate.txt包含用來填充這些表的SQL INSERT語句。
導入步驟如下:
- 根據上述教程,運行MySQL Workbench,并連接到MySQL。新建一個數據庫,點擊【Create a New Schema】按鈕,出現如下對話框。輸入新建數據庫的名稱,選擇【apply】
在彈出的確認窗口中選擇【Apply】及【Finish】。然后在SCHEMAS一欄中雙擊創建成功的tjsql,表示選中該數據庫,可以看到tjsql一欄變為黑體。
將create.txt中的內容復制粘貼到SQL窗口中,并選擇執行,用以創建5個數據庫表;
同樣,將populate.txt中的內容復制粘貼到SQL窗口中并執行,用以填充5個數據庫表。
使用SELECT * FROM Customers; 語句測試結果如下圖表示導入成功。
查看數據庫和表
(1)查看數據庫
在MySQL中可以建立許多數據庫,當不知道可以使用哪些數據庫時,可用MySQL的SHOW命令顯示當前可用的數據庫列表:
SHOW DATABASES;
顯示當前服務器的所有數據庫
1
2
3
4
在MySQL Workbench中輸出結果為:
包含在這個列表中的可能是MySQL內部使用的數據庫(如information_schema)。當然,你自己的數據庫列表可能看上去與這里的不一樣。
(2)選擇數據庫
在執行任何數據庫操作前,都需要選擇一個數據庫,才能讀取其中的數據。方法是使用USE關鍵字:
USE tjsql;
選擇使用tjsql數據庫
1
2
3
USE 語句并不返回任何結果。如果是在MySQL Workbench中運行該語句,可以在SCHEMAS一欄看到被選中的數據庫名稱變為黑體(與雙擊該數據庫名稱等效);如果是在mysql 命令行實用程序中執行該語句,則會顯示輸出“Database changed” 表示數據庫選擇成功。
(3)查看數據表
進入到某個數據庫后,我們可以使用 SHOW TABLES;來顯示該數據庫有多少個數據表:
SHOW TABLES;
顯示當前數據庫下所有的表
1
2
3
SQL作為當前使用最為廣泛的數據庫語言,已經成為數據工程師的必備技能之一。這份學習指南的第一部分介紹了數據庫、SQL和MySQL的基本概念,完成了SQL環境的基本搭建。第二部分和第三部分介紹了如何使用SELECT語句進行數據查詢,包括排序、過濾、分組、子查詢等基本方法、函數的使用以及如何使用JOIN和UNION查詢一次性跨多個表來訪問相關數據。最后一部分還介紹了數據管理的基本操作,包括插入、更新和刪除數據等。 以上就是小編為您介紹的數據分析教程,希望對您有所幫助。
[免責聲明]
文章標題: 數據分析教程:從菜鳥到大神
文章內容為網站編輯整理發布,僅供學習與參考,不代表本網站贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時溝通。發送郵件至36dianping@36kr.com,我們會在3個工作日內處理。