參考書籍:MySQL8入門到精通
參考網(wǎng)絡(luò)課程:mysql入門_尚硅谷(https://www.bilibili.com/video/BV12b411K7Zu?p=38)
1 基本概念
a) 什么是數(shù)據(jù)庫(kù)(DataBase警医,DB)
數(shù)據(jù)庫(kù)是由一批數(shù)據(jù)構(gòu)成的有序的集合蹂楣,這批數(shù)據(jù)存放在結(jié)構(gòu)話的數(shù)據(jù)表里。數(shù)據(jù)庫(kù)的種類大致分為3種:層次式數(shù)據(jù)庫(kù)乏盐、網(wǎng)絡(luò)式數(shù)據(jù)庫(kù)汹忠、關(guān)系式數(shù)據(jù)庫(kù)淋硝。
數(shù)據(jù)庫(kù)的特點(diǎn):
1)數(shù)據(jù)長(zhǎng)久存儲(chǔ)雹熬,實(shí)現(xiàn)數(shù)據(jù)貢獻(xiàn),減少數(shù)據(jù)冗余谣膳。
2)采用特定的數(shù)據(jù)類型
3)具有較高的數(shù)據(jù)獨(dú)立性
4)具有統(tǒng)一的數(shù)據(jù)控制功能
b) 什么是數(shù)據(jù)庫(kù)系統(tǒng)(Data Base System,DBS)
數(shù)據(jù)庫(kù)系統(tǒng)由硬件部分和軟件部分共同組成竿报,硬件用于存儲(chǔ)數(shù)據(jù),軟件部分主要包括數(shù)據(jù)庫(kù)管理系統(tǒng)和支持?jǐn)?shù)據(jù)庫(kù)管理系統(tǒng)的操作系統(tǒng)继谚,以及多種用于應(yīng)用開發(fā)的語(yǔ)言烈菌。類似于一個(gè)容器,一個(gè)數(shù)據(jù)庫(kù)中可以包含多個(gè)文件花履,一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)中可以包括多個(gè)數(shù)據(jù)庫(kù)芽世。
c) 數(shù)據(jù)庫(kù)管理系統(tǒng)(Data Base Management System,DBMS)
位于用戶和操作系統(tǒng)之間,用于對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一管理诡壁。
d) 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)(Data Base Application,DBA)
與數(shù)據(jù)庫(kù)管理系統(tǒng)功能類似济瓢,用于對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理,在DBMS無(wú)法滿足對(duì)數(shù)據(jù)庫(kù)管理的需求時(shí)妹卿,數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)負(fù)責(zé)與DBMS進(jìn)行通信旺矾,訪問(wèn)和管理DBMS中存儲(chǔ)的數(shù)據(jù)。
e) 什么是MySQL
結(jié)構(gòu)化執(zhí)行語(yǔ)言夺克,用戶通過(guò)SQL語(yǔ)言箕宙,與數(shù)據(jù)庫(kù)管理系統(tǒng)進(jìn)行通信,翻譯成機(jī)器語(yǔ)言铺纽,對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢和操作柬帕。
SQL語(yǔ)言主要包括了4個(gè)部分:
1)數(shù)據(jù)定義語(yǔ)言(DDL)drop、create狡门、alter等
2)數(shù)據(jù)查詢語(yǔ)言(DQL)select 語(yǔ)句
3)數(shù)據(jù)操作語(yǔ)言(DML)insert雕崩、update、delete等
4)數(shù)據(jù)控制語(yǔ)言 grant融撞、revoke、commit粗蔚、rollback等
2 MySQL圖形化界面(類似于集成開發(fā)環(huán)境)
我使用的系統(tǒng)為Ubuntu 20.04尝偎,使用的圖形化界面為MySQL workbench
## 1 安裝MySQL
sudo apt-get update # 訪問(wèn)源列表里的每個(gè)網(wǎng)址,并讀取軟件列表鹏控,然后保存在本地電腦
sudo apt-get upgrate # 把本地已安裝的軟件致扯,與剛下載的軟件列表里對(duì)應(yīng)軟件進(jìn)行對(duì)比,如果發(fā)現(xiàn)已安裝的軟件版本太低当辐,就會(huì)提示你更新
sudo apt-get install mysql-server # 默認(rèn)安裝最新版
## 啟動(dòng)MySQL
service mysql start
/etc/init.d/mysql start
## 關(guān)閉MySQL
service mysql stop
/etc/init.d/mysql stop
## 重啟MySQL
service mysql restart
/etc/init.d/mysql restart
## 查看MySQL服務(wù)狀態(tài)
systemctl status mysql.service
在使用MySQL之前需要啟動(dòng)MySQL服務(wù)抖僵,啟動(dòng)之后可以通過(guò)systemctl status mysql.service,查看MySQL狀態(tài)缘揪。
3 登陸 MySQL
在安裝MySQL的時(shí)候耍群,選擇了默認(rèn)選項(xiàng)义桂,可以通過(guò)以下命令查看MySQL的用戶名和密碼等。
# 登陸MySQL(-p不能有空格蹈垢,其他無(wú)所謂)
mysql -h [hostnam] -P [port] -u [username] -p[passwd]
4 MySQL基本操作
MySQL與其他的編程語(yǔ)言不同慷吊,不區(qū)分大小寫,推薦易用關(guān)鍵字使用大寫曹抬。與perl語(yǔ)言類似溉瓶,每條命令的行為使用分號(hào)分隔。MySQL也含有注釋谤民,包括了單行和多行注釋堰酿。
# 單行注釋
# xxxxx
-- xxxxx
# 多行注釋
/*
xxxxxx
xxxxxx
xxxxxx
xxxxxx
*/
# 查看mysql中數(shù)據(jù)庫(kù)(下表共5個(gè)數(shù)據(jù)庫(kù))
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myemployees |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
# 使用某個(gè)數(shù)據(jù)庫(kù)
mysql> USE myemployees;
mysql> SHOW TABLS;
+-----------------------+
| Tables_in_myemployees |
+-----------------------+
| departments |
| employees |
| jobs |
| locations |
+-----------------------+
4 rows in set (0.00 sec)
# 查看表結(jié)構(gòu)
DESC departments ;
+-----------------+------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------+------+-----+---------+----------------+
| department_id | int | NO | PRI | NULL | auto_increment |
| department_name | varchar(3) | YES | | NULL | |
| manager_id | int | YES | | NULL | |
| location_id | int | YES | MUL | NULL | |
+-----------------+------------+------+-----+---------+----------------+
4 rows in set (0.05 sec)
# 查看mysql版本
+-----------+
| VERSION() |
+-----------+
| 8.0.26 |
+-----------+
1 row in set (0.00 sec)