MySQL環(huán)境配置和10分鐘快速入門
MySQL的基礎(chǔ)知識(shí),能夠讓你快速入門MySQL,具體內(nèi)容包含:相關(guān)術(shù)語 數(shù)據(jù)類型 安裝 MySQL(以Ubuntu為例)4種語言學(xué)習(xí)資料 MySQL內(nèi)置函數(shù)
一、相關(guān)術(shù)語
數(shù)據(jù)庫(kù)
database:以某種有組織的方式存儲(chǔ)的數(shù)據(jù)集合。通常是一個(gè)文件或者一組文件。表
table:結(jié)構(gòu)化的文件,用來存儲(chǔ)某種特定類型的數(shù)據(jù)。存儲(chǔ)在表中的數(shù)據(jù)是同一種類型的數(shù)據(jù)或者清單。表名具有唯一性,表的特性:數(shù)據(jù)在表中如何存儲(chǔ) 存儲(chǔ)什么類型的數(shù)據(jù) 數(shù)據(jù)如何分解 各個(gè)部分的信息如何命名 列
column:表由列組成,列存儲(chǔ)表中的某部分的信息。列是表中的字段。表中每個(gè)列存儲(chǔ)特定的信息,比如商品的表中有:商品的名稱、生產(chǎn)日期、產(chǎn)地等。每個(gè)列都有相應(yīng)的數(shù)據(jù)類型行
row:表中的數(shù)據(jù)是按照行存儲(chǔ)的,所保存的記錄是存儲(chǔ)在自己的行內(nèi)。比如顧客表中,每行存儲(chǔ)一個(gè)顧客的相關(guān)信息。有時(shí)候行業(yè)稱之為記錄record垂直的列為表列,水平行為表行
主鍵
primary key:一列(或一組列),能夠唯一標(biāo)識(shí)表中每一行,比如訂單表中的訂單ID。主鍵是用來表示一個(gè)特定的行。表中任何一列都是可以作為主鍵,滿足條件:任意兩行都不具有相同的主鍵值 每一行必須有一個(gè)主鍵值(主鍵列不允許NULL值) 主鍵的值不允許修改或者更新 主鍵值不能重用
二、數(shù)據(jù)類型
MySQL數(shù)據(jù)庫(kù)中主要的數(shù)據(jù)類型有四種:
整數(shù)類型 小數(shù)類型 字符串類型 日期時(shí)間類型
2.1 整數(shù)類型
2.2 小數(shù)類型
float(m,d):?jiǎn)尉龋?位精度;m表示總個(gè)數(shù),d表示小數(shù)位double(m,d):雙精度,16位精度;m表示總個(gè)數(shù),d表示小數(shù)位decimal(m,d):定點(diǎn)數(shù),m表示總長(zhǎng)度,d表示小數(shù)位
2.3 字符串類型
用的最多的是char和varchar以及text,其中:
char:定長(zhǎng),不夠補(bǔ)空格,多了減掉;比如char(10):輸入12345678**,后面自動(dòng)補(bǔ)兩個(gè)空格。特點(diǎn):存取速度快,占空間varchar:變長(zhǎng),根據(jù)實(shí)際自動(dòng)改變長(zhǎng)度。特點(diǎn):存取速度慢,節(jié)省空間text:主要是用于存儲(chǔ)文本信息
2.4 日期類型
| 類型 | 大小 | 格式 | 用途 |
|---|---|---|---|
| DATE | 3 | YYYY-MM-DD | 日期值 |
| TIME | 3 | HH:MM:SS | 時(shí)間值或者持續(xù)時(shí)間 |
| YEAR | 1 | YYYY | 年份值 |
| DATETIME | 8 | YYYYMMDD | 混合日期和時(shí)間值 |
| TIMESTAMP | 8 | HHMMSS | 混合日期和時(shí)間值,時(shí)間戳 |
2.5 字段名修飾
常見的字段修飾語:
| 修飾語 | 作用 |
|---|---|
| unsigned | 無符號(hào) |
| auto_increment | 自增 |
| default | 默認(rèn)值 |
| comment | 字段解釋說明 |
| not null | 非空 |
| null | 空 |
| unique | 唯一索引 |
| index | 普通索引 |
| primary key | 主鍵,必須指定為auto_increment |
2.6 常見運(yùn)算符
常用的運(yùn)算符有:
| 符號(hào) | 含義 |
|---|---|
| = | 賦值或者判斷 |
| !=或者<> | 不等于 |
| < | 小于 |
| > | 大于 |
| <=、>= | 小于等于或者大于等于 |
| OR | 或 |
| AND | 與 |
| BETWEEN…AND… | 在….和….之間 |
| IN、NOT IN | 在或者不在 |
三、安裝MySQL
下面是以Ubuntu18為例安裝MySQL數(shù)據(jù)庫(kù)。
3.1 官網(wǎng)下載
進(jìn)入 MySQL數(shù)據(jù)庫(kù)的官網(wǎng)。里面有各種版本,MySQL5.5,MySQL5.6,MySQL5.7,MySQL8.0。其中前三者是應(yīng)用最廣泛的, 8.0目前剛出來,屬于起步階段,問題還是很多;而且網(wǎng)上的資源比較少。
MySQL5.7社區(qū)版本
文件下載
這里是以安裝5.7版本為例
選擇對(duì)應(yīng)的系統(tǒng)和版本
下載DEB文件
點(diǎn)擊開始安裝
3.2 安裝客戶端和環(huán)境
進(jìn)入到安裝包所在的文件目錄下,筆者是Downloads下:
sudo dpkg -i mysql-community-source_5.7.26-1ubuntu18.04_amd64.deb
# 更新軟件源
sudo apt-get upgrade
安裝客戶端和環(huán)境的具體步驟:
# 安裝mysql服務(wù)
sudo apt-get install mysql-server
# 安裝客戶端
sudo apt install mysql-client
# 安裝依賴
sudo apt install libmysqlclient-dev
# 檢查狀態(tài)
sudo netstat -tap | grep mysql
3.3 配置root密碼
mysql5.7安裝完成后普通用戶不能進(jìn)mysql,原因:root的plugin被修改成了auth_socket,用密碼登陸的plugin應(yīng)該是mysql_native_password,直接用root權(quán)限登錄就不用密碼,修改root密碼和登錄驗(yàn)證方式:
$sudo su # 進(jìn)入root賬戶
# mysql # 輸入mysql,進(jìn)入mysql服務(wù) ;root賬戶下分隔符是#,普通用戶是$
mysql> select user, plugin from mysql.user;
+------------------+-----------------------+
| user | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
4 rows in set (0.00 sec)
mysql> update mysql.user set authentication_string=PASSWORD('renrenren'), plugin='mysql_native_password' where user='root'; # 修改root賬戶密碼
mysql> flush privileges; # 刷新權(quán)限
mysql> exit # 退出msyql服務(wù)
Bye
# exit # 退出root賬戶,進(jìn)入普通賬戶(第一個(gè)星號(hào)不是注釋)
$ sudo /etc/init.d/mysql restart # 重啟msyql服務(wù)
$ mysql -uroot -p # 進(jìn)入mysql服務(wù)中,接下來輸入上面步驟中設(shè)置的密碼
Enter password: (上面的密碼)
3.4 配置遠(yuǎn)程登錄
默認(rèn)的MySQL服務(wù)是只允許本地服務(wù)的,但是大部分時(shí)候需要遠(yuǎn)程服務(wù),下面進(jìn)行配置:
$sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf # 進(jìn)入配置文件,注釋掉bind-address = 127.0.0.1
保存退出,進(jìn)入MySQL服務(wù),執(zhí)行授權(quán)命令:
$sudo -uroot -p
Enter password: (上面的密碼)
mysql> grant all on *.* to root@'%' identified by 'renrenren' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>flush privileges;
mysql> exit
Bye
$sudo /etc/init.d/mysql restart # 重啟mysql配置服務(wù)
四、4種語句
語句分類
結(jié)構(gòu)化查詢語言Structured Qurey Language,語句必須是以分號(hào)結(jié)束,且關(guān)鍵詞不區(qū)分大小寫,主要包含四種語句:
DDL,data defination language數(shù)據(jù)定義語言DML,data manipulation language數(shù)據(jù)操作語言DCL,data control language數(shù)據(jù)控制語言DQL,data query language數(shù)據(jù)查詢語言
DDL
data defination language,數(shù)據(jù)定義語言;作用主要是:創(chuàng)建、刪除、修改庫(kù)表結(jié)構(gòu)。針對(duì)庫(kù)表結(jié)構(gòu)
DML
data manipulation language,數(shù)據(jù)操作語言;作用主要是:增、刪、改表的記錄針對(duì) 表的操作
DCL
data control language,數(shù)據(jù)控制語言;用戶創(chuàng)建及授權(quán)操作針對(duì)數(shù)據(jù)庫(kù)的 用戶
DQL
data query language,數(shù)據(jù)查詢語言;查詢數(shù)據(jù)主要是 查詢功能
五、學(xué)習(xí)資料
首先推薦是一本書《SQL必知必會(huì)》,一本非常經(jīng)典的 SQL入門書籍?一個(gè)網(wǎng)站: sqlzoo,是一個(gè)非常適合新手和提升SQL的練習(xí)網(wǎng)站一門課程:《網(wǎng)易課程- MySQL從入門到精通》菜鳥課程:提供很多 MySQL的學(xué)習(xí)資料
六、MySQL內(nèi)置大全
介紹MySQL中常見的內(nèi)置函數(shù):
往期精彩:
【原創(chuàng)首發(fā)】機(jī)器學(xué)習(xí)公式推導(dǎo)與代碼實(shí)現(xiàn)30講.pdf
【原創(chuàng)首發(fā)】深度學(xué)習(xí)語義分割理論與實(shí)戰(zhàn)指南.pdf














