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














