對於剛入門學習sql的,我只推薦一本書Mick的《SQL基礎教程》。網上很多人推薦《SQL必知必會》,其實這本書更適合數據庫運維,對剛入門的朋友來說,理解不了。而Mick的《SQL基礎教程》的書通俗易懂,讓你學起來有趣的多了。興趣纔是學下去的理由。
下面回答這本書裏的數據如何導入數據庫裏。
如果你看到Mick《sql基礎教程》中的第1章的1-3《SQ概要:sql語句及其種類》(對應書裏第32頁)下面部分,就是要將數據導入數據庫裏了。
首先,確保你已經安裝了mysql和mysql圖形化客戶端navicat。如果沒有安裝的,參考這裏的步驟安裝:
下面我們聊聊如何使用mysql圖形化客戶端navicat導入到數據庫裏。
連接mysql服務端
如果你已經按前面給的教程創建了連接,併成功連接到數據庫。
當你如果打開navicat創建的連接圖標處是灰色的,表示客戶端沒用連接到mysql服務端。
鼠標右鍵點擊連接名稱,然後點擊“打開連接”
創建數據庫
第1步,創建數據庫
點擊菜單欄“查詢”下的“新建查詢,就可以打開輸入sql語句的地方。
然後輸入創建數據庫的sql語句,點擊運行,可以看到sql語句執行結果。
鼠標右鍵連接名稱,選擇“刷新”,就可以看到創建的數據庫了
第2步,修改數據庫編碼
因爲我們數據庫裏會存放中文內容,所以需要修改數據庫編碼,不然會面會報錯。按下圖設置數據庫的編碼。
修改完,點擊“確定”按鈕。
創建表
數據庫shop名稱前面的圖標是灰色的,表示當前沒有使用這個數據庫。
在數據庫名稱上鼠標右鍵,選擇“打開數據庫”。
點擊數據庫(shop)下的查詢,鼠標右鍵選中“新建查詢”。以這種方式打開的查詢編輯器裏的sql語句都是針對當前這個數據庫的。
在查詢編輯器裏輸入下面創建商品表(Product)的sql語句,點擊“運行”按鈕就會執行sql語句。
鼠標右鍵點擊“表”,選中“刷新”,我們就可以看到創建的表。雙擊表名,可以看到創建的表和sql語句裏定義的一樣。
插入數據
點擊下圖紅框的地方,我們回到剛纔寫sql語句的查詢編輯器裏。
在查詢編輯器裏寫入下面插入數據的sql語句。
-- 插入數據
這時候不要點擊“運行”,因爲運行會把這個“查詢編輯器”裏所有的sql都執行一遍。但是創建表的sql語句剛纔我們已經執行過了,現在只需要執行創建數據的sql語句。
首先,用鼠標選中要執行的那部分sql語句。
然後點擊下圖紅框的地方,就會只執行選中的sql語句。
我們可以通過界面下方的sql執行結果,看sql運行是否有報錯,如果沒有報錯,表示sql運行成功。
雙擊表名,我們就可以看到已經插入的數據。
ps:如果你之前打開過表,會遇到下面的問題
出現運行選中代碼後,product表未生成數據。
解決辦法:按下圖操作先關掉打開的表,然後重新打開
我們按下圖順序操作,將剛纔的sql語句保存下來,萬一以後需要。
保存後的sql語句,可以在下圖紅框的地方看到
我們也可以把創建數據庫的sql語句保存下來。
我們可以看到,創建數據庫的語句保存在連接名下(圖中紅色的部分),因爲這部分語句是創建數據庫的,不針對任何特定的數據庫。
而數據庫shop下創建的sql語句保存在它自己的查詢裏面(圖中藍色部分),表示這裏的語句是針對這個特定的數據庫的操作。
雙擊保存的查詢名稱,可以再次打開查詢編輯器,對sql進行編輯。
導出數據庫
按下圖操作我們將數據庫導出成文件。這樣以後你可以將文件分享給其他人,別人也可以使用你的數據庫,或者作爲數據庫的備份,哪天你數據庫裏的數據丟了,可以使用這個文件恢復。
導出成功後,我們就可以在剛纔保存文件的路徑下看到這個sql腳本文件後綴是.sql,這種類型的文件叫做sql腳本文件。
我們使用軟件notepad++打開sql腳本文件(windows用notepad++,在mac上可以用sublime text),沒有這個軟件的去官網下載一個,這個軟件可以打開各種類型的文件,是技術學習的必備工具。
打開後可以看到sql腳本文件,就是我們剛纔寫的sql語句,還有軟件導出時自動加了些sql語句。所以sql腳本文件就是一個包括了sql語句,文件名後綴是.sql的文件。
如果你有特別留意的話,會發現我們剛纔導出的sql腳本文件裏,有這樣一句sql:
DROP TABLE IF EXISTS `product`;
也就是說,如果數據庫裏已經有這個表了,那麼就刪除表以後再執行後面的sql語句。
因爲有時候數據庫裏面表了,如果沒有這一句會報錯。
導入sql腳本文件
按下圖操作把剛纔的sql文件導入數據庫裏。
選擇要導入的sql腳本文件,其他默認,然後點擊開始。
出現下面的信息,表示導入成功。如果不是下面的信息,表示導入有錯誤,具體查看報錯信息,根據報錯信息順藤摸瓜來解決。
導入成功後,點擊關閉。刷新數據庫可以看到導入的數據。
Mick《sql基礎教程》裏的數據如何導入數據庫裏?
前面我們演示了創建數據庫、在哪寫sql語句、導出sql腳本文件,導入sql腳本文件,知道了sql腳本文件是怎麼來的。現在我們回到Mick《sql基礎教程》中的第1章的1-3《SQ概要:sql語句及其種類》(對應書裏第32頁)。
我們看如何把書中說的sql腳本文件(CreateTableProduct.sql)導入數據庫裏。
爲了演示整個過程,我們把剛纔創建的表刪掉。
第1步,修改sql腳本文件
用notepad++打開sql腳本文件,瞅瞅裏面有啥。
我們看到裏面是創建表和增加數據的sql語句。
因爲有時候導入數據會報錯,當再次運行導入sql腳本文件,會報類似下面的錯誤:表已經存在。
爲了防止上面的錯誤,我一般都會在建立表的sql前面加上這麼一句(product是表名,根據你的實際需求,修改成你對應的表名):
-- 表存在時,先刪除表
DROP TABLE IF EXISTS Product;
第2步,創建數據庫
因爲我們前面已經創建了數據庫。後面導入數據,如果沒有數據庫,需要先創建數據庫。
第3步,導入sql腳本文件
按下圖步驟操作
導入結果顯示未成功(Unsuccessfully),我們看如何根據報錯信息順藤摸瓜找到原因。
將下圖1處的下拉框拉到最上面,我們就可以看到詳細的報錯信息是: [Err] 1366 - Incorrect string value: "\xD0\xF4" for column。
把這個報錯信息放到搜索引擎中,很快就可以找到解決方案。報錯原因是因爲編碼的問題。
或者報下面的錯誤:
解決辦法:用notepad++打開sql腳本文件,然後按下圖修改sql腳本文件編碼:
在notpad++中設置好編碼以後,記得點擊“保存”使sql腳本文件修改生效。
我將修改編碼後的sql腳本文件保存到下面這個文件裏了
再次運行導入sql文件,執行成功。刷新表,可以看到導入的數據。
總結
通過這個教程,你已經學會了:
1)如何使用navicat連接mysql服務端
2)如何在查詢編輯器裏寫sql語句
2)如何創建數據庫
3)如何導入sql腳本文件
4)如何導出sql腳本文件
5)Mick《sql基礎教程》中的數據如何導入
想要系統的學習sql可以看這個: