柚子快報邀請碼778899分享:MySQL之對數(shù)據(jù)庫和表的操作
目錄
一、創(chuàng)建數(shù)據(jù)庫
二、字符集和校驗規(guī)則
1、查看系統(tǒng)默認(rèn)字符集
2、查看系統(tǒng)默認(rèn)的校驗規(guī)則
3、查看數(shù)據(jù)庫支持的字符集
4、查看數(shù)據(jù)庫支持的字符集校驗規(guī)則
5、校驗規(guī)則對數(shù)據(jù)庫的影響
三、操作數(shù)據(jù)庫
1、查看數(shù)據(jù)庫
2、查看創(chuàng)建語句
?編輯
?3、修改數(shù)據(jù)庫
4、數(shù)據(jù)庫的刪除
5、備份和恢復(fù)
數(shù)據(jù)庫的備份和恢復(fù)
某個數(shù)據(jù)庫中某張表的備份
同時備份多個數(shù)據(jù)庫
6、查看目前所在數(shù)據(jù)庫
7、查看數(shù)據(jù)庫連接情況
四、對表的操作
1、創(chuàng)建表
2、查看表結(jié)構(gòu)
3、修改表
4、刪除表
一、創(chuàng)建數(shù)據(jù)庫
語法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]
create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
說明:
1、大寫的表示關(guān)鍵字。 2、[]是可選項。if not exists 表示如果數(shù)據(jù)庫不存在就創(chuàng)建,如果存在,就不做任何事。 3、CHARACTER SET:指定數(shù)據(jù)庫采用的字符集。 4、COLLATE:指定數(shù)據(jù)庫字符集的校驗規(guī)則。
演示:
創(chuàng)建數(shù)據(jù)庫時,也可以開始就設(shè)置好數(shù)據(jù)庫的字符集和校驗規(guī)則。
create database db3 charset=utf8 collate utf8_general_ci;
二、字符集和校驗規(guī)則
什么是字符集和校驗規(guī)則?
創(chuàng)建數(shù)據(jù)庫的時候,一般有兩個編碼集:
數(shù)據(jù)庫編碼集:數(shù)據(jù)庫未來存儲數(shù)據(jù)的編碼方式。
數(shù)據(jù)庫校驗集:支持?jǐn)?shù)據(jù)庫進(jìn)行字段比較使用的編碼,本質(zhì)也是一種讀取數(shù)據(jù)庫中數(shù)據(jù)采用的編碼格式。
數(shù)據(jù)庫無論對數(shù)據(jù)做任何操作,都必須保證操作和編碼必須是編碼一致的。存數(shù)據(jù)的時候用什么編碼,取的時候就得用什么對應(yīng)的編碼去取。比如說,一本書是用中文寫的,那么就必須要讓會中文的人來讀才能夠讀懂內(nèi)容。
1、查看系統(tǒng)默認(rèn)字符集
show variables like 'character_set_database';
2、查看系統(tǒng)默認(rèn)的校驗規(guī)則
show variables like 'collation_database';
?
3、查看數(shù)據(jù)庫支持的字符集
字符集主要是控制用什么語言。比如utf8就可以使用中文。
show charset;
?
4、查看數(shù)據(jù)庫支持的字符集校驗規(guī)則
show collation;
?
5、校驗規(guī)則對數(shù)據(jù)庫的影響
~ 創(chuàng)建一個數(shù)據(jù)庫,校驗規(guī)則使用utf8_ general_ ci。
create database if not exists test1 collate utf8_general_ci;
然后我們查看一下其校驗規(guī)則:?
接著在test1數(shù)據(jù)庫中創(chuàng)建一張表:
create table person(name varchar(20));
?再插入一些數(shù)據(jù),之后查看插入的結(jié)果:
使用下面的語句進(jìn)行查詢:
select * from person where name='a';
~ 創(chuàng)建一個數(shù)據(jù)庫,校驗規(guī)則使用utf8_ bin:
create database if not exists test2 collate utf8_bin;
使用下面的語句進(jìn)行查詢:
select * from person where name='a';
?從上面的結(jié)果中,我們可以發(fā)現(xiàn),在select查詢中,utf8_ general_ ci是不會區(qū)分大小寫的,而utf8_ bin是會區(qū)分大小寫的。
再來看看下面test2(使用utf8_ bin校驗規(guī)則)數(shù)據(jù)庫中的我們根據(jù)name的排序結(jié)果:因為其區(qū)分大小寫且小寫字母的ascii碼大于大寫字母,所以會得到下面的結(jié)果。
select * from person order by name;
再來看看下面test1(使用utf8_ general_ ci校驗規(guī)則)數(shù)據(jù)庫中的我們根據(jù)name的排序結(jié)果:
因為utf8_ general_ ci不會區(qū)分大小寫,所以a和A就相當(dāng)于同一個字符,會被放在一起。
三、操作數(shù)據(jù)庫
1、查看數(shù)據(jù)庫
show databases;
作用:可以查看當(dāng)前MySQL客戶端下已經(jīng)存在的所有數(shù)據(jù)庫。
2、查看創(chuàng)建語句
show create database test1;
?3、修改數(shù)據(jù)庫
一般來說,我們對數(shù)據(jù)庫的修改主要是修改數(shù)據(jù)庫的字符集和校驗規(guī)則。
用法:
ALTER DATABASE db_name
[alter_spacification] ,[alter_spacification]...
alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
4、數(shù)據(jù)庫的刪除
用法:
DROP DATABASE [IF EXISTS] db_name;
演示:?
注:對應(yīng)的數(shù)據(jù)庫文件夾被刪除,里面的數(shù)據(jù)表全部被刪。特別注意的是,除非特殊情況,不要隨意刪除數(shù)據(jù)庫。
5、備份和恢復(fù)
數(shù)據(jù)庫的備份和恢復(fù)
備份,語法:在Linux命令行下執(zhí)行
mysqldump -P 端口號 -u root -p 密碼 -B 數(shù)據(jù)庫名 > 數(shù)據(jù)庫備份存儲的文件路徑
恢復(fù),語法:在登陸mysql客戶端,執(zhí)行下面語句:
source 備份文件所在路徑;
先刪除test2數(shù)據(jù)庫:
然后從備份恢復(fù)數(shù)據(jù)庫:?
?
某個數(shù)據(jù)庫中某張表的備份
如果備份的不是整個數(shù)據(jù)庫,而是其中的一張表:
mysqldump -u root -p 數(shù)據(jù)庫名 表名1 表名2 > 數(shù)據(jù)庫被備份后所在路徑
同時備份多個數(shù)據(jù)庫
mysqldump -u root -p -B 數(shù)據(jù)庫名1 數(shù)據(jù)庫名2 ... > 數(shù)據(jù)庫存放路徑
注:如果備份一個數(shù)據(jù)庫時,沒有帶上-B參數(shù), 在恢復(fù)數(shù)據(jù)庫時,需要先創(chuàng)建一個數(shù)據(jù)庫,然后使用數(shù)據(jù)庫,再使用source來還原。
6、查看目前所在數(shù)據(jù)庫
我們可以使用下面的語句查看目前所在的數(shù)據(jù)庫。
select database();
7、查看數(shù)據(jù)庫連接情況
show processlist;
使用該語句可以查看當(dāng)前有多少個客戶端連接這個服務(wù)器。
四、對表的操作
1、創(chuàng)建表
語法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校驗規(guī)則 engine 存儲引擎;
說明:
?eld:表示列名。
datatype:表示列的類型。
character set 字符集:如果沒有指定字符集,則以所在數(shù)據(jù)庫的默認(rèn)字符集為準(zhǔn)。
collate 校驗規(guī)則:如果沒有指定校驗規(guī)則,則以所在數(shù)據(jù)庫的默認(rèn)校驗規(guī)則為準(zhǔn)。
engine 存儲引擎:指定存儲引擎,如果沒有指定存儲引擎,則使用默認(rèn)存儲引擎。
2、查看表結(jié)構(gòu)
語法:
desc 表名;
?
說明:
field:字段名字????????type:字段類型????????Null:是否允許為空????????key:索引類型
default:默認(rèn)值????????extra:擴充
3、修改表
先在上面的users表中插入一些數(shù)據(jù):
添加字段:
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
在users表中添加一個字段,用于保存用戶的生日。?
修改字段:
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);
?刪除字段:
ALTER TABLE tablename DROP (column);
注:刪除字段一定要小心,刪除字段及其對應(yīng)的列數(shù)據(jù)都沒了。
修改表名
alter table 原表名 rename to 新表名
修改字段名
alter table 表名 change 原列名稱 新列名稱
——新字段需要完整定義
4、刪除表
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
柚子快報邀請碼778899分享:MySQL之對數(shù)據(jù)庫和表的操作
精彩文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。