數(shù)據(jù)定義語言:
drop #刪除數(shù)據(jù)庫谊惭、表等對(duì)象
create #創(chuàng)建數(shù)據(jù)庫缩歪、表等對(duì)象
alter #修改數(shù)據(jù)庫刻蚯、表
數(shù)據(jù)操作語言:
select #查詢表中數(shù)據(jù)
insert #向表中插入數(shù)據(jù)
update #更新表中數(shù)據(jù)
delete #刪除表中數(shù)據(jù)
數(shù)據(jù)查詢語言:
#用來查詢表中記錄
select
from #子句
where #子句等等
數(shù)據(jù)控制語言:
grant #賦予用戶操作權(quán)限
revoke #取消用戶操作權(quán)限
commit #確認(rèn)對(duì)數(shù)據(jù)中數(shù)據(jù)進(jìn)行的變更
rollback #取消對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行變更
MySQL默認(rèn)自帶數(shù)據(jù)庫:
數(shù)據(jù)庫 | 描述 |
---|---|
information_schema | 該數(shù)據(jù)庫保存了mysql服務(wù)器所有數(shù)據(jù)庫的信息殿怜;比如數(shù)據(jù)庫的名隶症、數(shù)據(jù)庫的表逐样、訪問權(quán)限仗哨、數(shù)據(jù)庫表的數(shù)據(jù)類型晚吞,數(shù)據(jù)庫索引的信息等等 |
performance_schema | 主要用于收集數(shù)據(jù)庫服務(wù)器性能參數(shù)桥言,可用于監(jiān)控服務(wù)器在一個(gè)較低級(jí)別的運(yùn)行過程中的資源消耗萌踱、資源等待等情況 |
sys | 庫中所有的數(shù)據(jù)源來自:performance_schema。目標(biāo)是把performance_schema的把復(fù)雜度降低号阿,讓DBA能更好的閱讀這個(gè)庫里的內(nèi)容并鸵。讓DBA更快的了解DB的運(yùn)行情況 |
mysql | mysql的核心數(shù)據(jù)庫,類似于sql server中的master表扔涧,主要負(fù)責(zé)存儲(chǔ)數(shù)據(jù)庫的用戶园担、權(quán)限設(shè)置、關(guān)鍵字等mysql自己需要使用的控制和管理信息 |
MySQL數(shù)據(jù)庫常用命令
命令 | 簡寫 | 具體含義 |
---|---|---|
? | (?) | 顯示幫助信息 |
clear | (\c) | 明確當(dāng)前輸入語句 |
connect | (\r) | 連接到服務(wù)器枯夜,可選參數(shù)數(shù)據(jù)庫和主機(jī)弯汰。 |
delimiter | (\d) | 設(shè)置語句分隔符。 |
ego | (\G) | 發(fā)送命令到mysql服務(wù)器湖雹,并顯示結(jié)果咏闪。 |
exit | (\q) | 退出MySQL |
go | (\g) | 發(fā)送命令到mysql服務(wù)器。 |
help | (\h) | 顯示幫助信息 |
notee | (\t) | 不寫輸出文件摔吏。 |
(\p) | 打印當(dāng)前命令 | |
prompt | (\R) | 改變mysql提示信息汤踏。 |
quit | (\q) | 退出MySQL |
rehash | (#) | 重建完成散列。 |
source | (.) | 執(zhí)行一個(gè)SQL腳本文件舔腾,以一個(gè)文件名作為參數(shù)溪胶。 |
status | (\s) | 從服務(wù)器獲取MySQL的狀態(tài)信息。 |
tee | (\T) | 設(shè)置輸出文件(輸出文件)稳诚,并將信息添加所有給定的輸出文件哗脖。 |
use | (\u) | 用另一個(gè)數(shù)據(jù)庫,數(shù)據(jù)庫名稱作為參數(shù)。 |
charset | (\C) | 切換到另一個(gè)字符集 |
warnings | (\W) | 每一個(gè)語句之后顯示警告才避。 |
nowarning | (\w) | 每一個(gè)語句之后不顯示警告橱夭。 |
一、MySQL數(shù)據(jù)庫的使用
登錄數(shù)據(jù)庫
[sudo] mysql -u[用戶名] -p[密碼]
mysql > exit; #退出數(shù)據(jù)庫
創(chuàng)建數(shù)據(jù)庫
#語法
create database [if not exists] 數(shù)據(jù)庫名 [[default] character set 字符集名] [[default] collate 校對(duì)規(guī)則名];
_______
通常規(guī)則: create database 數(shù)據(jù)庫名 [設(shè)置字符集名] [校對(duì)規(guī)則]
數(shù)據(jù)庫名:創(chuàng)建的數(shù)據(jù)庫名稱
if not exists:在創(chuàng)建數(shù)據(jù)庫之前進(jìn)行判斷桑逝,只有該數(shù)據(jù)庫目前尚不存在時(shí)才能執(zhí)行操作棘劣。此選項(xiàng)可以用來避免數(shù)據(jù)庫已經(jīng)存在而重復(fù)創(chuàng)建的錯(cuò)誤
[default] character set:指定字符集名
常用字符集: utf8
[default] collate:指定字符集的默認(rèn)校對(duì)規(guī)則
_______
mysql > create database mysql_01;
Query OK #表示創(chuàng)建成功
_______
#查詢所有數(shù)據(jù)庫
mysql > show databases;
#查詢建立的數(shù)據(jù)庫
mysql > show create database 數(shù)據(jù)庫名;
#查看當(dāng)前使用的數(shù)據(jù)庫
mysql > show database();
#使用數(shù)據(jù)庫
mysql > use 數(shù)據(jù)庫名;
_______
#創(chuàng)建數(shù)據(jù)庫時(shí)指定字符集
mysql > create database if not exists mysql_02_utf8 default character set utf8;
#查詢創(chuàng)建的指定字符集的數(shù)據(jù)庫
mysql > show create detabase mtsql_02_utf8;
查看字符集
mysql > show variables like "%character%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |#客戶來源端使用的字符集
| character_set_connection | utf8mb4 |#連接層字符集
| character_set_database | utf8mb3 |#當(dāng)前選中數(shù)據(jù)庫的默認(rèn)字符集
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |#查詢結(jié)果字符集
| character_set_server | utf8mb4 |#默認(rèn)的內(nèi)部操作字符集
| character_set_system | utf8mb3 |#系統(tǒng)元數(shù)據(jù)(字段名等)字符集
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
_______
variables:變量
%:模糊匹配
character:字符集
修改數(shù)據(jù)庫
#語法
mysql > alter database 數(shù)據(jù)庫名 [[default] character set 字符集名] [default] collate 校對(duì)規(guī)則名];
########
mysql > alter database 數(shù)據(jù)庫名 character set 字符集名;
########
alter database:更改數(shù)據(jù)庫的全局特性,使用 alter database 需獲取數(shù)據(jù)庫的 alter 權(quán)限
character set:用于更改數(shù)據(jù)庫默認(rèn)字符集
刪除數(shù)據(jù)庫
#語法
mysql > drop database [if exists] 數(shù)據(jù)庫名;
_______
if exists:防止當(dāng)前數(shù)據(jù)庫不存在時(shí)發(fā)生的錯(cuò)誤
二楞遏、MySQL數(shù)據(jù)庫數(shù)據(jù)類型
整數(shù)類型
類型名稱 | 說明 | 存儲(chǔ)需求 |
---|---|---|
TINYINT | 很小的整數(shù) | 1字節(jié) |
SMALLINT | 小的整數(shù) | 2字節(jié) |
MEDIUMINT | 中等大小的整數(shù) | 3字節(jié) |
INT(INTEGER) | 整數(shù) | 4字節(jié) |
BIGINT | 大整數(shù) | 8字節(jié) |
小數(shù)類型
類型名稱 | 說明 | 存儲(chǔ)需要 |
---|---|---|
FLOAT | 單精度浮點(diǎn)數(shù) | 4字節(jié) |
DOUBLE | 雙精度浮點(diǎn)數(shù) | 8字節(jié) |
日期和時(shí)間類型
類型名稱 | 說明 | 存儲(chǔ)需要 |
---|---|---|
YEAR | YYYY | 1字節(jié) |
TIME | HH:MM:SS | 3字節(jié) |
DATE | YYYY-MM-DD | 3字節(jié) |
DATETIME | YYYY-MM-DD HH:MM:SS | 8字節(jié) |
字符串類型
類型名稱 | 說明 | 存儲(chǔ)需要 |
---|---|---|
CHAR(M) | 固定長度非二進(jìn)制字符串 | M字節(jié)茬暇,1<=M<=255 |
VARCHAR(M) | 變長非二進(jìn)制字符串 | L+1字節(jié),L<=M && 1<=M<=255 |
TEXT | 小的非二進(jìn)制字符串 | L+2字節(jié)寡喝,L<2^16 |
CHAR與VARCHAR的區(qū)別
- CHAR是一種固定長度的類型糙俗,VARCHAR則是一種可變長度的類型;
- CHAR(M)類型的數(shù)據(jù)列里,每個(gè)值都占用M個(gè)字節(jié)预鬓,如果某個(gè)長度小于M巧骚,MySQL就會(huì)在它的右邊用空格字符補(bǔ)足;
- VARCHAR(M)類型的數(shù)據(jù)列里,每個(gè)值只占用剛好夠用的字節(jié)再加上一個(gè)用來記錄其長度的字節(jié)(即總長度為L+1字節(jié))
二進(jìn)制類型
類型名稱 | 說明 | 存儲(chǔ)需要 |
---|---|---|
BIT(M) | 位字段類型 | 大約(M+7)/8字節(jié) |
BINARY(M) | 固定長度二進(jìn)制數(shù)據(jù) | M字節(jié) |
VARBINARY(M) | 可變長度二進(jìn)制字符串 | L+1字節(jié) |
BLOB(M) | L+2字節(jié)格二,L<2^16 |