MySQL數(shù)據(jù)庫(kù)相關(guān)操作
字符集的設(shè)置及寫入操作
- 修改my.ini配置文件,可修改MySQL默認(rèn)的字符集.
修改[mysql]選項(xiàng)組下的default_character_set的值可以同時(shí)改變character_set_client, character_set_connection, character_set_database的值
修改[mysql]選項(xiàng)組下的character_set_server的值可同時(shí)改變character_set_database, character_set_server的值
- 在MySQL命令行通過以下命令臨時(shí)修改當(dāng)前會(huì)話的字符集以及字符序
set character_set_client = gbk;
set character_set_connection = gbk;
set character_set_database = gbk;
set character_set_results = gbk;
set character_set_server = gbk;
set collation_connection = gbk_chinese_ci;
set collation_database = gbk_chinese_ci;
set collation_server = gbk_chinese_ci;
- 連接MySQL服務(wù)器時(shí)可指定字符集
mysql -default-character-set = 字符集 -h 服務(wù)器IP地址 -u 賬戶名 -p 密碼
- 寫入腳本(SQL文件)
\.C:\mysql\init.sql
source C:\mysql\init.sql
MySQL數(shù)據(jù)庫(kù)的選擇
使用命令USE 數(shù)據(jù)庫(kù)名;
選擇數(shù)據(jù)庫(kù)
查看MySQL數(shù)據(jù)庫(kù)
SHOW DATABASES [like 通配字符串];
可選參數(shù)like 通配字符串] 表示模糊匹配, 有"%“和”_“兩種語(yǔ)法,其中”%“代表多個(gè)字符, 而”_"只能代表一個(gè)字符
MySQL數(shù)據(jù)庫(kù)的創(chuàng)建
CREATE DATABASE [if not exists] 數(shù)據(jù)庫(kù)名 [charset 字符集名稱];
可選參數(shù)[if not exists] 表示當(dāng)指定數(shù)據(jù)庫(kù)在不存在時(shí)即創(chuàng)建,若已存在指定數(shù)據(jù)庫(kù)不創(chuàng)建也不會(huì)出錯(cuò).
數(shù)據(jù)庫(kù)名若是關(guān)鍵字或非英文字符應(yīng)用反引號(hào)(數(shù)字1左邊的字符`)定界.
可選參數(shù)[charset 字符集名稱] 可指定用哪個(gè)字符集來創(chuàng)建數(shù)據(jù)庫(kù).
常用字符集有g(shù)bk,gb2312, utf8, big5等,MySQL默認(rèn)字符集latin1是單字節(jié)編碼,而漢字gbk等是雙字節(jié)編碼,字符集選用不對(duì)可能導(dǎo)致亂碼.
一種字符集可能有多種字符序,通常以"字符集名稱開頭,中間用國(guó)家名,最后用ci, cs或bin結(jié)束"
來對(duì)字符集進(jìn)行命名, 其中以ci結(jié)尾的對(duì)大小寫不敏感, 以cs結(jié)尾的對(duì)大小寫敏感, 以bin結(jié)尾的表示按二進(jìn)制值進(jìn)行比較.
顯示MySQL數(shù)據(jù)庫(kù)的創(chuàng)建信息
SHOW CREATE DATABASE 數(shù)據(jù)庫(kù)名;
MySQL數(shù)據(jù)庫(kù)的修改
ALTER DATABASE 數(shù)據(jù)庫(kù)名 charset 字符集名稱;
MySQL數(shù)據(jù)庫(kù)的刪除
DROP DATABASE [if not exists] 數(shù)據(jù)庫(kù)名;
MySQL的存儲(chǔ)引擎與數(shù)據(jù)類型
MySQL的存儲(chǔ)引擎
- 查看MySQL支持的存儲(chǔ)引擎
格式一: SHOW ENGINES;
格式二: SHOW ENGINES\g
格式三: SHOW ENGINES\G
(區(qū)別在于使用的"結(jié)束符"不同,顯示的格式和信息不同, 推薦格式三)
使用;和\g作用相同,僅簡(jiǎn)單顯示各個(gè)存儲(chǔ)引擎的信息, \G的顯示效果最好,對(duì)所支持的各種存儲(chǔ)引擎會(huì)從"引擎名稱"“是否支持該引擎”“關(guān)于該引擎的說明評(píng)論”“是不是支持事務(wù)”“該引擎支持的分布式是否支持XA規(guī)范”"是否支持事務(wù)處理中的保存點(diǎn)"等方面逐個(gè)的、詳細(xì)到顯示出來.
- 查看當(dāng)前MySQL支持的存儲(chǔ)引擎
SHOW VARIABLES LIKE '%storage_engine%';
- 臨時(shí)更改默認(rèn)的存儲(chǔ)引擎
set default_storage_engine = MyISAM;
"="右邊可選存儲(chǔ)引擎可為MyISAM, InonoDB, Memory.
- 永久地更改默認(rèn)的存儲(chǔ)引擎
在my.ini配置文件中的[mysqld]選項(xiàng)組中更改default_storage_engine的值
- 常見引擎種類
- MyISAM
特點(diǎn): 不支持事務(wù), 不支持外鍵, 訪問速度快, 占用空間小.
MyISAM存儲(chǔ)引擎的表存儲(chǔ)成3個(gè)文件,文件名字與表名相同.
以.frm為擴(kuò)展名的文件存儲(chǔ)表的結(jié)構(gòu);
以MYD為擴(kuò)展名的文件存儲(chǔ)數(shù)據(jù)(my data);
以MYI為拓展名的文件存儲(chǔ)索引(my index);
MyISAM存儲(chǔ)引擎的表支持3種存儲(chǔ)格式: 靜態(tài),動(dòng)態(tài),壓縮.
靜態(tài)模式和動(dòng)態(tài)模式根據(jù)是否使用xBLOB、xTEXT、varchar來自動(dòng)選擇;壓縮模式只能使用Myisampack工具來創(chuàng)建. - InnoDB
InnoDB具有較強(qiáng)的事務(wù)處理能力及較好的事務(wù)安全性并且支持外鍵.
不足之處在于讀寫效率稍差,占用數(shù)據(jù)空間相對(duì)較大. - MEMORY
它使用存儲(chǔ)在內(nèi)存中的內(nèi)容來創(chuàng)建表,而且所有數(shù)據(jù)也都放在內(nèi)存中,其特點(diǎn)是訪問速度快,但安全上沒有保障.
每個(gè)基于MEMORY存儲(chǔ)引擎的表實(shí)際對(duì)應(yīng)一個(gè)磁盤文件,該文件的文件名與表名相同,類型為frm類型,該文件中只存儲(chǔ)表的結(jié)構(gòu),而其數(shù)據(jù)文件都存儲(chǔ)在內(nèi)存中.
MySQL中的數(shù)據(jù)類型
- 整數(shù)類型
|類型|字節(jié)數(shù)|取值范圍(有符號(hào))|取值范圍(無符號(hào)UNSIGNED)|說明|
|:–??:–??:–??:–??:–??:–??
|TINYINT|1字節(jié)|-128127|0255|最小整數(shù)|
|SMALLINT|2字節(jié)|-3276832767|065535|小型整數(shù)|
|MEDIUMINT|3字節(jié)|-83886088388607|016777215|中型整數(shù)|
|INT|4字節(jié)|-21474836482147483647|04294967295|標(biāo)準(zhǔn)整數(shù)|
|BIGINT|8字節(jié)|-922372036854775808922372036854775807|018446744073709551615|大整數(shù)|
- 浮點(diǎn)數(shù)類型(小數(shù)點(diǎn)后數(shù)字位數(shù)不確定)
數(shù)據(jù)類型 | 單位 | 取值范圍 | 說明 |
---|---|---|---|
float | 8或4字節(jié) | +(-)3.402823466E + 38 | 單精度浮點(diǎn)數(shù) |
double | 8字節(jié) | +(-)1.797693148623157E + 308 // +(-)2.225072014E - 308 | 雙精度浮點(diǎn)數(shù) |
- 定點(diǎn)數(shù)類型(小數(shù)點(diǎn)后位數(shù)確定)
decimal(length, precision)用于表示精度確定的小數(shù)類型, length決定了該小數(shù)的最大位數(shù), precision用于設(shè)置精度(小數(shù)點(diǎn)后的位數(shù)).
例如:
decimal(5, 2): 總位數(shù)5,小數(shù)點(diǎn)后2位,取值范圍為-999.99 ~ 999.99
數(shù)據(jù)類型 | 單位 | 取值范圍 | 說明 |
---|---|---|---|
decimal | 自定義長(zhǎng)度 | 可變 | 小數(shù)位數(shù)確定的小數(shù) |
- 字符串類型
MySQL字符串類型主要支持6種: char、varchar、tinytext、text、mediumtext、longtext.文章來源:http://www.zghlxwxcb.cn/news/detail-445979.html
常規(guī)字符串類型 | 取值范圍 | 說明 |
---|---|---|
char(n) | 0~255個(gè)字符 | 固定長(zhǎng)度為n的字符串,其中n的取值范圍為0~255,英文一個(gè)字節(jié),漢字兩個(gè)字節(jié) |
varchar(n) | 0~65535個(gè)字符(與字符集編碼有關(guān)) | 長(zhǎng)度可變,最多8000個(gè)英文,4000個(gè)漢字 |
text | 長(zhǎng)度可變,超大數(shù)據(jù),只能保存字符數(shù)據(jù) |
MySQL數(shù)據(jù)庫(kù)的默認(rèn)引擎是innodb, innodb必須記錄varchar真實(shí)占用的字節(jié)數(shù)L,innodb最多分配2個(gè)字節(jié)(16bit)的空間去記錄這個(gè)L.不同字符集的字符需要的字節(jié)數(shù)存在差異.文章來源地址http://www.zghlxwxcb.cn/news/detail-445979.html
- 二進(jìn)制數(shù)據(jù)類型(存儲(chǔ)二進(jìn)制數(shù)據(jù)的數(shù)據(jù)類型)
類型 | 取值范圍 | 說明 |
---|---|---|
binary | 0~255 | 固定長(zhǎng)度,存儲(chǔ)二進(jìn)制數(shù) |
varbinary | 可變長(zhǎng)度,存儲(chǔ)二進(jìn)制數(shù) | |
bit | 1~64 | 固定長(zhǎng)度,存儲(chǔ)二進(jìn)制數(shù) |
tinyblob | 0~255 | 可變長(zhǎng)度,存儲(chǔ)二進(jìn)制數(shù) |
blob | 0 ~ 2^16-1 | 可變長(zhǎng)度,存儲(chǔ)圖片、聲音 |
mediumblob | 0 ~ 2^24-1 | 可變長(zhǎng)度,存儲(chǔ)圖片、聲音、視頻 |
longblob | 0 ~ 2^32-1 | 可變長(zhǎng)度,存儲(chǔ)圖片、視頻、聲音 |
- 日期與時(shí)間類型
類型 | 取值范圍 | 說明 |
---|---|---|
date | 1000-01-01 ~ 9999-12-31 | 日期,格式為YYYY-MM-DD |
time | -838:59:59 ~ 838:59:59 | 時(shí)間,格式為HH:MM:SS |
datetime | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 日期和時(shí)間,格式為YYYY-MM-DD HH:MM:SS |
timestamp | 1970-01-01 00:00:00 ~ 2037年的某個(gè)時(shí)刻 | 時(shí)間戳,在處理報(bào)告時(shí)使用,顯示格式取決于M的值 |
year | 1901 ~ 2155 | 年份可指定兩位數(shù)字和四位數(shù)字的格式 |
- enum枚舉類型(單選)與set集合類型(復(fù)選)
類型 | 最大值 | 說明 |
---|---|---|
enum(“value1”, “value2”, …) | 65535 | 該類型的字段只能容納所列值之一或?yàn)镹ULL(單選) |
set(“value1”, “value2”, …) | 64 | 該類型的字段可以容納一組值或?yàn)镹ULL(多選) |
到了這里,關(guān)于MySQL數(shù)據(jù)庫(kù)(database)相關(guān)操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!