全棧 - 11 數據庫 MySQL使用方法

這是全棧數據工程師養成攻略系列教程的第十一期:11 數據庫 MySQL使用方法。javascript

咱們已經掌握瞭如何用MAMP或WAMP在我的電腦上搭建Web環境,其中包含了用於存儲數據的關係型數據庫MySQL,如今就讓咱們來了解下如何使用MySQL。php

基本概念

MySQL中能夠存在多個數據庫(Database),每一個數據庫對應一個相對獨立的項目。一個數據庫中能夠包含多個數據表(Table),不一樣的數據表用來存儲不一樣用途的數據。舉例來講,能夠新建一個chat數據庫用於存儲和某一社交網站相關的數據,裏面有usermessage兩個表,分別用來存儲用戶基本信息、用戶之間的聊天記錄。須要注意的是,數據庫名和數據表名最好都使用英文名稱。java

數據表和Excel中的表格很相似,既有行也有列,即咱們以前說起的二維表結構。以user表爲例,每一行記錄了一名用戶的基本信息,每一列即用戶信息的一個字段,例如姓名、性別、職業等。mysql

MySQL涉及的操做包括新建或刪除數據庫,以及在一個已有的數據庫中新建、清空或刪除數據表。除此以外,主要就是在一個已有的數據表中對數據進行CURD操做,即CreateUpdateReadDelete,分別對應插入數據、更新數據、讀取數據、刪除數據。接下來咱們將瞭解,如何使用命令行、Web工具、本地軟件、Python代碼四種方法,來操做MySQL數據庫。web

命令行

能夠在命令行中輸入如下命令,按回車後再輸入MySQL數據庫的密碼,便可進入MySQL提供的交互命令行,相似Python的交互編程環境,每敲一行MySQL語句,按回車便可執行。這種方法僅適用於單獨安裝MySQL數據庫,不適用於MAMP或WAMP,並且對代碼能力要求較高,故不推薦使用。sql

mysql -u root -p複製代碼

Web工具

Web工具是指在MySQL內核之上,基於Web開發出的圖形化操做界面。只要在網站上點一點,便可完成對MySQL的各種操做。其中最爲經常使用的一種即phpMyAdmin,基於PHP開發,簡單、輕量、好用,在MAMP或WAMP中也會自帶phpMyAdmin。數據庫

在MAMP的歡迎頁面上能夠找到使用phpMyAdmin管理MySQL的連接,點擊後將看到如下界面,左側中所顯示的是當前已存在的數據庫,右側中則顯示了菜單欄和對應的內容。編程

首先讓咱們來嘗試下如何新建數據庫。默認狀況下會存在三個數據庫,information_schemamysqlperformance_schema,這三個數據庫是MySQL自帶的,不要去動它們。點擊左側中的New,或者右側菜單欄中的Databases,均可以在右側中看到當前已存在數據庫的一些基本信息,以及進行數據庫新建操做。服務器

輸入新建數據庫的名稱,推薦使用全英文。這裏咱們輸入douban,由於須要將以前爬取的豆瓣電影數據存入數據庫中。選擇Collationutf8_general_ci,而後點擊Create便可。less

新建好數據庫後,因爲數據庫爲空,會自動跳到新建數據表的頁面。給數據表取個英文名,這裏輸入movie,而後選擇表的列數,默認爲4,點擊Go進入下一步。即便數據表最終不是4列也不要緊,多的列會自動忽略,列數不夠一樣能夠繼續加,因此不用擔憂。

接下來須要配置每一列的詳細內容,包括Name、Type、Length/Values、Default、Collation、Attributes、Null、Index、A_I、Comments。咱們首先填寫第一個字段,每一個數據表都須要一個主鍵即id,不一樣的行具備惟一不一樣的id,用於進行彼此區分。

  • Name:字段的名稱,純英文,讓咱們輸入id
  • Type:字段的變量類型,id應當是正整數,因此使用默認的INT便可;
  • Length/Values:字段的長度,不填的話會使用默認值,即INT類型的默認長度;
  • Default:插入數據時若是不提供值,字段的默認值,這裏能夠先無論;
  • Collation:不填的話則使用數據庫的Collation,不然覆蓋,這裏能夠先無論;
  • Attributes:字段的屬性,這裏能夠先無論;
  • Null:字段是否默認爲空值,默認不勾選;
  • Index:字段使用何種索引,這裏選擇PRIMARY,即主鍵,若是有彈窗則點擊Go便可;
  • A_I:是否自增,Auto Increasement,即在插入數據時若是不提供值,會自動增長,第一條記錄爲1,第二條記錄爲2,以此類推。這裏須要勾上,由於咱們但願id是自增的,從而不一樣記錄使用不一樣的id;
  • Comments:字段的備註信息,能夠留空無論。

接下來再填一下電影的標題字段,Name輸入title,Type選爲VARCHAR,Length/Values輸入255,由於255個字符對於標題而言足夠了,其餘選項不用管。Type的可選值包括數值類Numeric、日期時間類Date and time、文本類String、空間類Spatial四大類,以上所使用的VARCHAR是一種長度可變的字符串,使用時須要設置最大長度。若是須要存儲更長的文本,能夠考慮TEXTMEDIUMTEXTLONGTEXT等。

同理,繼續填寫電影的連接字段,填入urlVARCHAR255;對於電影的簡介字段,因爲電影簡介可能會很長,因此Name輸入summary,Type選擇TEXT;至於電影的評分字段,因爲評分能夠是小數,因此Name輸入score,Type選擇Numeric類中的FLOAT。若是須要繼續增長字段,輸入須要增長的列數並點擊Go,而後根據字段特徵完善Name、Type和Length/Values便可。

字段信息所有填寫完畢後,點擊右下方的Save便可完成數據表的新建,左側中會選中剛纔新建的數據庫和數據表,右側中會出現新的菜單欄。點擊Browse能夠查看數據表內的數據記錄,點擊Structure能夠查看數據表的結構,即各項字段的配置內容,點擊SQL能夠在當前數據表上執行SQL命令,點擊Insert能夠向當前數據表中插入數據記錄,點擊ExportImport分別能夠導出和導入數據表,點擊Operations能夠進一步執行清空數據表和刪除數據表等操做。

在上圖所示的Structure標籤頁中,能夠查看數據表的結構,即各項字段的詳細配置,並對某個字段執行修改Change、刪除Drop等操做。除此以外,還能夠向數據表中添加若干列,以及查看數據表的空間存儲狀況。

若是在左側點擊某一數據庫,則右側的菜單欄相應地會變成數據庫級別的操做,如查看數據庫的結構,即各個數據表的基本信息,在當前數據庫上執行SQL命令,導出和導入數據庫,執行刪除數據庫等操做。

細心的話能夠發現,每次在phpMyAdmin上執行相關操做以後,右側菜單欄下都會出現相應的SQL命令,說明phpMyAdmin都是將咱們的點擊操做轉換成了相應的SQL命令,而後交與MySQL執行。

讓咱們嘗試下向movie表中插入數據。在左側中點擊douban數據庫中的movie表,選擇右側菜單欄中的Insert,依次在title、url、summary、score的Value中填寫對應的值,id留空。若是須要同時插入兩條數據,則取消勾選ignore並填寫第二條數據的對應值。若是須要同時插入更多數據,則在底部的Continue insertion with後選擇相應的行數,並依次填寫相關數據。數據所有填寫完畢後,點擊頁面下方的Go,便可進行數據插入操做,在菜單欄下也能夠看到對應INSERT命令。以後再點擊Browse,便可查看剛插入的數據。

總而言之,phpMyAdmin是一款簡單輕量好用的Web工具,它提供的功能雖然有限,但都是管理MySQL所需的最爲核心的功能,所以更容易上手,不會由於功能太多反而致使眼花繚亂。

本地軟件

相對於phpMyAdmin等Web工具,本地數據管理軟件鏈接更穩定、功能更強大,例如Navicat Premium,Mac OS版本的軟件界面以下圖所示。

Navicat支持MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB等多種數據庫,在數據庫和數據表之上還有數據鏈接(Connection)這一律念,由於Navicat能夠記錄並鏈接多個主機上的數據庫,而phpMyAdmin做爲一種Web工具僅能鏈接本地數據庫。

讓咱們來嘗試新建一個鏈接。點擊左上角的Connection,選擇MySQL,在彈出的對話框中依次填入鏈接名稱、主機地址、端口、用戶名、密碼等信息,其中基於MAMP安裝的MySQL主機地址即爲localhost,點擊OK便可新建一個鏈接。固然,新建鏈接時還能夠涉及到更多配置內容,這裏就不展開講了。

新建鏈接後,在Navicat軟件界面的左側便可看到當前已存在的所有鏈接,雙擊鏈接名稱便可查看鏈接下存在的數據庫,雙擊數據庫名稱便可創建數據鏈接,並查看數據庫下存在的數據表。在鏈接名、數據庫名、數據表名上右鍵,都會出現一系列可執行的操做,例如在數據庫名和數據表名的右鍵菜單裏,都有Execute SQL FileDump SQL File兩項,分別對應數據庫級別和數據表級別的導入和導出操做。

總的來講,Navicat功能更強大,使用門檻也更高,畢竟可點擊的按鈕、可配置的選項、可執行的操做都遠遠更多。我我的的習慣是,使用phpMyAdmin完成新建數據庫、新建數據表、定義表字段等操做,由於phpMyAdmin簡單輕量,但又足以完成這些任務;使用Python代碼對數據表進行CURD操做,由於項目中涉及的數據記錄可能很是多,因此用Python代碼處理天然是最高效和靈活的選擇;當須要導入導出大量數據,或者導入導出須要對涉及字段進行靈活配置時,則使用Navicat完成複雜的導入導出任務。

因此,我首先在本機上編程並將數據庫和數據表整理好,在本地Web環境上實現Web項目和數據庫的交互,而後將數據庫導出並導入到雲端服務器上的MySQL,最後將Web項目也部署到服務器上,便可完成一次數據項目的開發。

至於如何使用Python來操縱MySQL數據庫,將在下一節中進行講解。

視頻連接:MySQL使用方法

若是以爲文章不錯,不妨點一下左下方的喜歡~

相關文章
相關標籤/搜索