為了更好的學習MySQL,實戰(zhàn)是鞏固和學習的最好途徑押桃,所以我們需要構(gòu)建一個MySQL練習數(shù)據(jù)庫。從網(wǎng)絡上下載了美國某電商數(shù)據(jù)集导犹,其包含以下信息:
- 引用表唱凯。共三個引用表,其中兩張表包含人口統(tǒng)計信息(美國人口統(tǒng)計局2000年的統(tǒng)計數(shù)據(jù))谎痢,另一張表包含關(guān)于日期的日歷信息磕昼。
- Subscribers數(shù)據(jù)集,用于描述移動電話公司的客戶子集节猿。
- Purchases數(shù)據(jù)集票从,用于描述客戶購買模式的數(shù)據(jù)集。
這些數(shù)據(jù)集的實體-關(guān)系圖表(ER圖)如下:
下面我們就開始構(gòu)建MySQL練習數(shù)據(jù)庫吧滨嘱。
1. 創(chuàng)建數(shù)據(jù)庫
打開Navicat峰鄙,連接本地MySQL,新建數(shù)據(jù)庫太雨。填寫數(shù)據(jù)庫名吟榴,選擇字符集和排序規(guī)則。如下圖所示:
- 字符集一般選擇 utf-8或者gbk囊扳。
- 排序規(guī)則的選擇需要注意的是吩翻,utf8_general_ci兜看、utf8_general_cs、utf8_bin的區(qū)別狭瞎,ci全稱為case insensitive细移,意思是大小寫不敏感,cs區(qū)分大小寫熊锭,bin是以二進制數(shù)據(jù)存儲葫哗,且區(qū)分大小寫。如果要求數(shù)據(jù)庫不區(qū)分大小寫球涛,則需要選擇ci結(jié)尾的劣针。
2. 創(chuàng)建數(shù)據(jù)表
因為下載的數(shù)據(jù)集均為txt文檔,故需要將這些數(shù)據(jù)集導入數(shù)據(jù)庫中亿扁。
在創(chuàng)建好的數(shù)據(jù)庫下捺典。右鍵點擊表,選擇導入向?qū)А?/strong>从祝,進入導入向?qū)Ы缑妫?br>
1)選擇相應的文件格式襟己,點擊下一步。
2)選擇數(shù)據(jù)源和編碼格式牍陌,點擊下一步擎浴。
3)選擇字段分隔符,點擊下一步毒涧。
4)自定義選項贮预,如數(shù)據(jù)是從第幾行開始,到第幾行結(jié)束契讲,日期的格式等等仿吞。點擊下一步。
5)預覽數(shù)據(jù)字段捡偏,對數(shù)據(jù)類型進行更改唤冈。點擊下一步。
6)選擇導入模式银伟。點擊下一步你虹。
7)點擊開始即可完成數(shù)據(jù)的導入工作。
上面七個步驟即為使用Navicat導入txt文檔的過程彤避,當然除了txt文檔還有其他類型的文檔(如csv傅物、excel、json等)可導入數(shù)據(jù)表中忠藤,其步驟也大同小異挟伙。
剩余的8個txt文檔同樣可通過Navicat進行導入。
當然,除了使用Navicat導入外尖阔,還可以使用以下sql語句案例進行導入贮缅。
-- 使用sqltest數(shù)據(jù)庫
USE sqltest;
-- 如果數(shù)據(jù)表Campaigns存在,則先刪除
DROP TABLE IF EXISTS Campaigns;
-- 創(chuàng)建Campaigns數(shù)據(jù)表
CREATE TABLE Campaigns (
CampaignId int NOT NULL PRIMARY KEY,
CampaignName varchar(50) NOT NULL,
Channel varchar(50) NOT NULL,
Discount int NOT NULL,
FreeShppingFlag char(1) NOT NULL
) ;
-- 本地導入txt文檔
LOAD DATA LOCAL INFILE 'E:\\Folder\\SQLTest\\testdata\\campaigns.txt' IGNORE INTO TABLE Campaigns
-- FIELDS TERMINATED BY表示字段分隔符
FIELDS TERMINATED BY ' '
-- LINES TERMINATED BY 表示行分隔符
LINES TERMINATED BY '\n'
-- IGNORE 1 LINES表示忽略第一行進行導入
IGNORE 1 LINES ;
至此介却,所有的數(shù)據(jù)集已導入到MySQL中谴供,接下來,我們就可以使用這些數(shù)據(jù)集來進行實戰(zhàn)了齿坷。