MySQL庫(kù)的操作之創(chuàng)建、刪除與管理數(shù)據(jù)庫(kù)
一、MySQL數(shù)據(jù)庫(kù)基礎(chǔ)概念
在MySQL中,數(shù)據(jù)庫(kù)(Database)是存儲(chǔ)有組織數(shù)據(jù)的容器,一個(gè)MySQL服務(wù)器可以管理多個(gè)數(shù)據(jù)庫(kù),每個(gè)數(shù)據(jù)庫(kù)包含多個(gè)表(Table)、視圖(View)、存儲(chǔ)過(guò)程(Procedure)等對(duì)象。
另外想要了解底層的同學(xué)可以去了解一下mysql的主從復(fù)制原理,這個(gè)在大廠面試中經(jīng)常出現(xiàn)
二、查看現(xiàn)有數(shù)據(jù)庫(kù)
在對(duì)庫(kù)進(jìn)行操作之前,我們要先查看一下我們現(xiàn)在已經(jīng)有哪些庫(kù)了,查看庫(kù)的語(yǔ)句為:
SHOW DATABASES;
(大小寫均可)

如圖,我這里就已經(jīng)有了六個(gè)數(shù)據(jù)庫(kù)
之前我們?cè)谥v操作系統(tǒng)的時(shí)候總喜歡提的一句話就是:在操作系統(tǒng)下,一切皆文件。
其實(shí)這里的數(shù)據(jù)庫(kù)在操作系統(tǒng)下同樣也是以文件的形式存在的,我們可以查看/var/lib/mysql這個(gè)路徑,在這個(gè)路徑中我們就可以看到我們的這幾個(gè)數(shù)據(jù)庫(kù),而且是以文件夾的形式存在的

三、創(chuàng)建數(shù)據(jù)庫(kù)
基本語(yǔ)法
CREATE DATABASE [IF NOT EXISTS] 數(shù)據(jù)庫(kù)名 [CHARACTER SET 字符集名稱] [COLLATE 校對(duì)規(guī)則];
常用選項(xiàng)說(shuō)明
| 選項(xiàng) | 說(shuō)明 | 示例值 |
|---|---|---|
| IF NOT EXISTS | 避免重復(fù)創(chuàng)建時(shí)報(bào)錯(cuò) | IF NOT EXISTS |
| CHARACTER SET | 指定字符集 | utf8mb4 |
| COLLATE | 指定排序規(guī)則 | utf8mb4_general_ci |
注釋:[ ]中的內(nèi)容屬于可選項(xiàng),并不一定要加上
實(shí)際示例
創(chuàng)建簡(jiǎn)單數(shù)據(jù)庫(kù):
CREATE DATABASE my_shop;

出現(xiàn)這個(gè)就代表我們創(chuàng)建成功,此時(shí)我們查看庫(kù)或者查看特定路徑下是否存在文件夾都可以驗(yàn)證這一點(diǎn)
創(chuàng)建帶字符集的數(shù)據(jù)庫(kù)(推薦使用utf8mb4以支持emoji表情):
CREATE DATABASE my_blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
安全創(chuàng)建(避免重復(fù)):
CREATE DATABASE IF NOT EXISTS my_forum;

如圖,此時(shí)我們創(chuàng)建一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)的時(shí)候就會(huì)出現(xiàn)警告創(chuàng)建失敗
四、字符集和校驗(yàn)規(guī)則
在上面創(chuàng)建數(shù)據(jù)庫(kù)中我們提到了字符集和校驗(yàn)規(guī)則的概念,下面我們來(lái)講一下它對(duì)我們創(chuàng)建數(shù)據(jù)庫(kù)有什么影響
系統(tǒng)默認(rèn)字符集和校驗(yàn)規(guī)則
首先我們來(lái)看一下系統(tǒng)默認(rèn)的字符集和校驗(yàn)規(guī)則:
show variables like 'character_set_database'; show variables like 'collation_database';

以上兩種就是系統(tǒng)默認(rèn)的字符集和校驗(yàn)規(guī)則
查看字符集和校驗(yàn)規(guī)則
首先我們先講一下字符集的作用:其實(shí)就是控制使用什么語(yǔ)言,比如這里我們系統(tǒng)默認(rèn)的utf8就可以使用中文,校驗(yàn)規(guī)則則需要與字符集保持一致
查看字符集:
show charset;

(節(jié)選部分)
查看校驗(yàn)規(guī)則:
show collation;

也是有很多
校驗(yàn)規(guī)則對(duì)數(shù)據(jù)庫(kù)的影響
我們可以通過(guò)校驗(yàn)規(guī)則在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)做一些有意思的操作,比如創(chuàng)建的數(shù)據(jù)庫(kù)是否區(qū)分大小寫等
創(chuàng)建一個(gè)區(qū)分大小寫的數(shù)據(jù)庫(kù):
create database test2 collate utf8_bin;
創(chuàng)建一個(gè)不區(qū)分大小寫的數(shù)據(jù)庫(kù):
create database test1 collate utf8_general_ci;
五、修改數(shù)據(jù)庫(kù)
對(duì)數(shù)據(jù)庫(kù)的修改操作主要是針對(duì)數(shù)據(jù)庫(kù)的字符集和校驗(yàn)規(guī)則
ALTER DATABASE 數(shù)據(jù)庫(kù)名 CHARACTER SET 字符集名稱 COLLATE 校對(duì)規(guī)則;
示例:
ALTER DATABASE my_shop CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
六、選擇/切換數(shù)據(jù)庫(kù)
要對(duì)特定數(shù)據(jù)庫(kù)進(jìn)行操作,需要先選擇它:
USE 數(shù)據(jù)庫(kù)名;
示例:
USE my_shop;
查看當(dāng)前選擇的數(shù)據(jù)庫(kù):
SELECT DATABASE();

七、刪除數(shù)據(jù)庫(kù)
基本語(yǔ)法
DROP DATABASE [IF EXISTS] 數(shù)據(jù)庫(kù)名;
注意事項(xiàng)
數(shù)據(jù)不可恢復(fù):刪除操作會(huì)永久刪除數(shù)據(jù)庫(kù)及其所有內(nèi)容
權(quán)限要求:需要DROP權(quán)限
推薦做法:先備份再刪除
實(shí)際示例
基本刪除:
DROP DATABASE old_database;
安全刪除(避免不存在的數(shù)據(jù)庫(kù)報(bào)錯(cuò)):
DROP DATABASE IF EXISTS temp_database;
八、常見問(wèn)題解答
Q:創(chuàng)建數(shù)據(jù)庫(kù)時(shí)報(bào)錯(cuò)"Can't create database"怎么辦?
A:檢查:
是否有CREATE權(quán)限
數(shù)據(jù)庫(kù)名是否合法
磁盤空間是否充足
Q:如何查看數(shù)據(jù)庫(kù)的創(chuàng)建語(yǔ)句?
SHOW CREATE DATABASE 數(shù)據(jù)庫(kù)名;
Q:為什么推薦使用utf8mb4而不是utf8?
A:MySQL的utf8只支持最多3字節(jié)字符,而utf8mb4支持完整的4字節(jié)UTF-8編碼(如emoji表情)。
九、總結(jié)
掌握MySQL數(shù)據(jù)庫(kù)的基本操作是數(shù)據(jù)庫(kù)管理的第一步。記?。?/p>
創(chuàng)建前規(guī)劃好字符集和命名
刪除前務(wù)必備份重要數(shù)據(jù)
定期維護(hù)數(shù)據(jù)庫(kù)結(jié)構(gòu)
以上就是本篇關(guān)于數(shù)據(jù)庫(kù)各種操作的講解了
到此這篇關(guān)于MySQL庫(kù)的操作之創(chuàng)建、刪除與管理數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)MySQL庫(kù)創(chuàng)建、刪除與管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- mysql數(shù)據(jù)庫(kù)刪除重復(fù)數(shù)據(jù)只保留一條方法實(shí)例
- Mysql如何刪除數(shù)據(jù)庫(kù)表中的某一列
- 關(guān)于mysql數(shù)據(jù)庫(kù)誤刪除后的數(shù)據(jù)恢復(fù)操作說(shuō)明
- MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)刪除操作詳解
- python針對(duì)mysql數(shù)據(jù)庫(kù)的連接、查詢、更新、刪除操作示例
- Navicat中新建MySQL數(shù)據(jù)庫(kù)與新建、修改、刪除數(shù)據(jù)表及刪除數(shù)據(jù)庫(kù)詳細(xì)操作方法
相關(guān)文章
Mysql中replace與replace into的用法講解
今天小編就為大家分享一篇關(guān)于Mysql中replace與replace into的用法講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
Windows 下noinstall方式安裝 mysql 5.7.5 m15 winx64(推薦)
這篇文章主要介紹了Windows 下noinstall方式安裝 mysql-5.7.5-m15-winx64的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-09-09
mysql limit分頁(yè)優(yōu)化詳細(xì)介紹
MySQL最常用也最需要優(yōu)化的就是limit,MySQL的limit給分頁(yè)帶來(lái)了極大的方便,但數(shù)據(jù)量一大的時(shí)候,limit的性能就急劇下降,需要的朋友可以參考下2016-12-12
詳解MySQL事務(wù)的ACID如何實(shí)現(xiàn)
事務(wù)(Transaction)是并發(fā)控制的基本單位,所謂的事務(wù)呢,它是一個(gè)操作序列,這些操作要么都執(zhí)行,要么都不執(zhí)行,它是一個(gè)不可分割的工作單位,本文給大家詳細(xì)介紹了MySQL事務(wù)的ACID如何實(shí)現(xiàn),需要的朋友可以參考下2023-10-10
MySQL數(shù)據(jù)庫(kù)的主從同步配置與讀寫分離
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)的主從同步配置與讀寫分離,需要的朋友可以參考下2018-01-01
Mysql刪除重復(fù)的數(shù)據(jù) Mysql數(shù)據(jù)去重復(fù)
這篇文章主要介紹了Mysql刪除重復(fù)的數(shù)據(jù) Mysql數(shù)據(jù)去重復(fù),需要的朋友可以參考下2016-08-08
對(duì)MySQL慢查詢?nèi)罩具M(jìn)行分析的基本教程
這篇文章主要介紹了對(duì)MySQL慢查詢?nèi)罩具M(jìn)行分析的基本教程,文中提到的Query-Digest-UI這個(gè)基于B/S的圖形化查看工具非常好用,需要的朋友可以參考下2015-12-12

