Mysql數(shù)據(jù)庫的增刪改查、備份、還原等基本操作大全
一、創(chuàng)建數(shù)據(jù)庫—create
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name
- 大寫的表示關(guān)鍵字
- [] 是可選項(xiàng)
- CHARACTER SET: 指定數(shù)據(jù)庫采用的字符集
- COLLATE: 指定數(shù)據(jù)庫字符集的校驗(yàn)規(guī)則
1.1 字符集與校驗(yàn)規(guī)則
創(chuàng)建數(shù)據(jù)庫的時(shí)候,有兩個(gè)編碼集:
1.數(shù)據(jù)庫編碼集——數(shù)據(jù)庫未來存儲數(shù)據(jù)
2.數(shù)據(jù)庫校驗(yàn)集——支持?jǐn)?shù)據(jù)庫進(jìn)行字段比較使用的編碼,本質(zhì)也是一種讀取數(shù)據(jù)庫中數(shù)據(jù)采用的編碼格式
數(shù)據(jù)庫無論對數(shù)據(jù)做任何操作,都必須保證操作和編碼必須是匹配的的,防止亂碼
1.1.1 查看系統(tǒng)默認(rèn)字符集以及校驗(yàn)規(guī)則
show variables like 'character_set_database';//查看默認(rèn)字符集 show variables like 'collation_database';//查看默認(rèn)校驗(yàn)規(guī)則
show charset; 查看數(shù)據(jù)庫支持的字符集
show collation; 查看數(shù)據(jù)庫支持的字符集校驗(yàn)規(guī)則
1.1.2 默認(rèn)方式建立數(shù)據(jù)庫
if not exists:如果不存在就創(chuàng)建,存在就返回waring
1.1.3 指定編碼集建立數(shù)據(jù)庫
關(guān)鍵語句
charset=utf8/設(shè)置字符集*/ collate utf8_general_ci/*設(shè)置校驗(yàn)規(guī)則*/
1.2 建庫的本質(zhì)
上篇文章中說道數(shù)據(jù)庫的本質(zhì)就是一個(gè)目錄,那么直接在指定文件夾下建立一個(gè)目錄通過show databases
也是可以查到的,但是不建議這么做
二、查看數(shù)據(jù)庫及其相關(guān)屬性—show
2.1 顯示所有數(shù)據(jù)庫
前面提到了show databases
顯示mysql下的所有數(shù)據(jù)庫
2.2 顯示數(shù)據(jù)庫的創(chuàng)建語句
show create database 數(shù)據(jù)庫名;
/…/不是注釋,他表示如果mysql版本大于4.01,d2創(chuàng)建語句就變成了
CREATE DATABASE
d2 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
3.2 顯示目前處于那個(gè)數(shù)據(jù)庫
select database();
三、修改數(shù)據(jù)庫—alter
ALTER DATABASE db_name [alter_spacification [,alter_spacification]...] alter_spacification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name
對數(shù)據(jù)庫的修改主要指的是修改數(shù)據(jù)庫的字符集,校驗(yàn)規(guī)則
如下圖,數(shù)據(jù)庫d2原本校驗(yàn)編碼是utf8_bin,通過ALTER修改其校驗(yàn)碼為utf8
四、數(shù)據(jù)庫刪除—drop
如果存在數(shù)據(jù)庫,就刪除
DROP DATABASE [IF EXISTS] db_ name;
執(zhí)行刪除之后的結(jié)果:
數(shù)據(jù)庫內(nèi)部看不到對應(yīng)的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)庫文件夾被刪除,級聯(lián)刪除,里面的數(shù)據(jù)表全部被刪
注意:不要隨意刪除數(shù)據(jù)庫,否則你就會成為3個(gè)月獲得60萬的男人
五、補(bǔ)充:校驗(yàn)規(guī)則對數(shù)據(jù)庫的影響
前面提到的編碼集在數(shù)據(jù)庫中有什么作用呢?通過一個(gè)案例觀察一下
創(chuàng)建一個(gè)數(shù)據(jù)庫,校驗(yàn)規(guī)則使用utf8_ general_ ci[不區(qū)分大小寫]
區(qū)分大小寫的查詢以及結(jié)果[utf8_ bin]
六、數(shù)據(jù)庫的備份與還原(重中之重)
6.1 數(shù)據(jù)庫的備份與還原
前面說道,數(shù)據(jù)庫的本質(zhì)就是linux下一個(gè)文件目錄,最簡單的方法就是直接復(fù)制那個(gè)目錄,但是這種方式可移植性不太好,下面來介紹一下常用的備份方式
mysqldump -P3306 -u root -p 密碼 -B 數(shù)據(jù)庫名 > 數(shù)據(jù)庫備份存儲的文件路徑
第一步:備份數(shù)據(jù)庫
sql文件里不僅僅備份了數(shù)據(jù)庫內(nèi)的數(shù)據(jù),之前的有效操作也一并備份了
第二步:刪除數(shù)據(jù)庫
第三步:恢復(fù)數(shù)據(jù)庫
6.2 其他情況
6.2.1 只備份表
mysqldump -u root -p 數(shù)據(jù)庫名 表名1 表名2 > D:/mytest.sql
6.2.2 備份多個(gè)數(shù)據(jù)庫
mysqldump -u root -p -B 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 ... > 數(shù)據(jù)庫存放路徑
6.2.3 -B選項(xiàng)
如果備份一個(gè)數(shù)據(jù)庫時(shí),沒有帶上-B參數(shù),在恢復(fù)數(shù)據(jù)庫時(shí),需要先創(chuàng)建空數(shù)據(jù)庫,然后使用(use db_name)數(shù)據(jù)庫,再使用source來還原
到此這篇關(guān)于Mysql數(shù)據(jù)庫的增刪改查、備份、還原等基本操作的文章就介紹到這了,更多相關(guān)mysql增刪改查、備份、還原內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL 5.7.18 release版安裝指南(含有bin文件版本)
這篇文章主要介紹了MySQL 5.7.18 release版安裝指南,本文只談?wù)搑elease版,即含有bin文件版本,需要的朋友可以參考下2017-04-04如何通過sql查找所有父節(jié)點(diǎn)和所有子節(jié)點(diǎn)(以mysql為例)
這篇文章主要給大家介紹了關(guān)于如何通過sql查找所有父節(jié)點(diǎn)和所有子節(jié)點(diǎn),本文以mysql為例,項(xiàng)目中遇到一個(gè)需求,要求查處菜單節(jié)點(diǎn)的所有節(jié)點(diǎn),這里給大家總結(jié)下,需要的朋友可以參考下2023-08-08區(qū)別于Oracle的MySQL?insert會阻塞update
這篇文章主要介紹了區(qū)別于Oracle的MySQL?insert會阻塞update的問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03windows10更換mysql8.0.17詳細(xì)教程
這篇文章主要為大家介紹了windows10更換mysql8.0.17的詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08