數據庫操作
創建數據庫
create database [if not exists] 數據庫名 [default charset utf8 collate utf8_general_ci];
if not exists
:表示如果數據庫不存在則創建,如果存在則不創建
default charset utf8
:指定數據庫的字符集,如果不指定將使用默認字符集
collate utf8_general_ci
:指定字符集的默認校對規則
使用數據庫
use 數據庫名;
刪除數據庫
drop database [if exists] 數據庫名;
查看數據庫
show databases [like '數據庫名'];
例如:show databases like '%_schema';
查看數據庫的定義聲明:
show create database 數據庫名;
修改數據庫
alter database [數據庫名] default charset <字符集名> collate <校對規則名>;
數據類型相關
MySQL的數據類型主要分爲:數值類型、字符串類型、日期時間類型和二進制類型。
數值類型
數值類型包括整數類型、浮點數類型、定點數類型。
整數類型
類型 | 字節數 | 有符號值範圍 | 無符號值範圍 |
---|---|---|---|
TINYINT | 1 | -128~127 | 0~255 |
SMALLINT | 2 | -32768~32767 | 0~65535 |
MEDIUMINT | 3 | -8388608~8388607 | 0~16777215 |
INT | 4 | -2147483648~2147483647 | 0~4294967295 |
BIGINT | 8 | -263~263-1 | 0~264 |
有無符號通過約束條件
UNSIGNED
來進行約束通過約束條件zerofill來用零佔位
浮點數類型
- FLOAT:單精度浮點數
- DOUBLE:雙精度浮點數
FLOAT(3, 2):表示總長度爲3,小數點後長度爲2
DOUBLE(5,3):表示總長度爲5,小數點後長度爲3
浮點數存在精度丟失問題,若涉及小數運算,儘量不要用浮點型
定點數類型
DECIMAL[(M[,D])]:常用於存儲精確的小數,M是總位數,D是小數點後的位數。M最大爲65,D最大爲30
定點數類型在存儲小數時也會存在精度丟失的問題。
字符串類型
CHAR[(M)]
:一個固定長度的字符串,在存儲時始終用空格填充指定的長度,M的範圍爲0~255,如果M省略,則長度爲1,存儲時佔M個字節。VARCHAR(M)
:可變長的字符串,M表示字符的最大列長度,M的範圍是0~65535,存儲時佔L+1個字節(L爲實際字符的長度)。TINYTEXT[(M)]
:不能有默認值,佔用L+1個字節,L<28TEXT[(M)]
:不能有默認值,佔L+2個字節,L<216MEDIUMTEXT[(M)]
:不能有默認值,佔L+3個字節,L<224LONGTEXT[(M)]
:不能有默認值,佔L+4個字節,L<232ENUM('value1','value2','value3',...)
:ENUM是一個字符串對象,其值允許從值列表中選擇,列表中值最多包含65535個不同的元素。SET('value1', 'value2',...)
字符串對象,該對象可以有零個或多個值,最多可包含64個不同的元素。
日期時間類型
類型名稱 | 日期格式 | 日期範圍 | 存儲需求 |
---|---|---|---|
YEAR | YYYY | 1901~2155 | 1字節 |
TIME | HH:MM:SS | -838:59:59~838:59:59 | 3字節 |
DATE | YYYY-MM-DD | 1000-01-01~9999-12-31 | 3字節 |
DATETIME | YYYY-MM-DD HH-MM-SS | 1000-01-01 00:00:00~9999-12-31 23:59:59 | 8字節 |
TIMESTAMP | YYYY-MM-DD HH-MM-SS | 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC | 4字節 |
二進制類型
類型名稱 | 說明 | 存儲需求 |
---|---|---|
BIT(M) | 位字段類型 | 大約(M+7)/8字節 |
BINARY(M) | 固定長度二進制字符串 | M字節 |
VARBINARY(M) | 可變長度二進制字符串 | M+1字節 |
TINYBLOB(M) | 非常小的BLOB | L+1字節,L<8 |
BLOB(M) | 小BLOB | L+2字節,L<16 |
MEDIUMBLOB(M) | 中等大小的BLOB | L+3字節,L<24 |
LONGBLOB(M) | 非常大的BLOB | L+3字節,L<32 |
對於BIT類型需要使用函數讀取
bin()顯示爲二進制
hex()顯示爲十六進制
參考文章:MySQL教程