【MySql】DDL語句表處理
阿新 • • 發佈:2021-02-16
DDL 操作 資料表
MySQL常見的資料型別
型別 | 描述 |
---|---|
int | 整型 |
double | 浮點型 |
varchar | 字串型 |
char | 型別在MySql中char型別也代表字串 |
date | 日期型別,給是為 yyyy-MM-dd ,只有年月日,沒有時分秒 |
詳細的資料型別(瞭解即可)
欄位型別 | 中文說明 | 欄位說明 | Java型別 |
---|---|---|---|
字串 | 型別 | java.lang.String | |
char(n) | 固定長度 | 最多255個字元 | java.lang.String |
varchar(n) | 可變長度 | 最多65535個字元 | java.lang.String |
tinytext | 可變長度 | 最多255個字元 | java.lang.String |
text | 可變長度 | 最多65535個字元 | java.lang.String |
mediumtext | 可變長度 | 最多2的24次方-1個字元 | java.lang.String |
longtext | 可變長度 | 最多2的32次方-1個字元 | java.lang.String |
日期 | 型別 | ||
date | 3位元組,日期 | 格式:2021-02-01 | Date |
time | 3位元組,時間 | 格式:14:00:00 | Date |
datetime | 8位元組,日期時間 | 格式:2021-02-01 14:00:00 | Date |
timestamp | 4位元組,自動儲存記錄修改的時間 | java.sql.Timestamp | |
year | 1位元組,年份 | Date | |
整數 | 型別 | ||
tinyint | 1位元組 | 範圍(-128~127) | int |
smallint | 2位元組 | 範圍(-32768~32767) | int |
mediumint | 3位元組 | 範圍(-8388608~8388607) | int |
int | 4位元組 | 範圍(-2147483648~2147483647) | int |
bigint | 8位元組 | 範圍(-9.22*10的18次方) | int |
浮點 | 型別 | ||
float(m,d) | 4位元組,單精度浮點型 | m總個數,d小數位 | float |
double(m,d) | 8位元組,雙精度浮點型 | m總個數,d小數位 | double |
decimal(m,d) | decimal是儲存為字串的浮點數 | double |
注意:
MySQL中的 char型別與 varchar型別,都對應了 Java中的字串型別,區別在於:
-
char型別是固定長度的: 根據定義的字串長度分配足夠的空間。
-
varchar型別是可變長度的: 只使用字串長度所需的空間
-
比如:儲存字串 “abc”
x char(10) -- 佔用10個位元組 y varchar(10) -- 佔用3個位元組
適用場景:
- char型別適合儲存 固定長度的字串,比如 密碼 ,性別一類
- varchar型別適合儲存 在一定範圍內,有長度變化的字串
建立表
CREATE TABLE 表名(
欄位名稱1 欄位型別(長度) [約束],
欄位名稱2 欄位型別 [約束] --注意 最後一列不要加逗號
);
快速建立一個表結構相同的表(複製表結構):
create table 新表名 like 舊錶名
查看錶
命令 | 說明 |
---|---|
show tables; | 檢視當前資料庫中的所有表名 |
desc 表名; | 檢視資料表的結構 |
show create table 表名 | 檢視建立表的sql |
刪除表
命令 | 說明 |
---|---|
drop table 表名; | 刪除表(從資料庫中永久刪除某一張表) |
drop table if exists 表名; | 判斷表是否存在, 存在的話就刪除,不存在就不執行刪除 |
修改表
-
修改表名
to
rename table 舊錶名 to 新表名
-
修改表的字符集
character set
alter table 表名 character set 字符集
-
向表中新增列, 關鍵字
add
alter table 表名 add 欄位名稱 欄位型別
-
修改表中列的 資料型別或長度 , 關鍵字
modify
alter table 表名 modify 欄位名稱 欄位型別
-
修改列名稱 , 關鍵字
change
alter table 表名 change 舊列名 新列名 型別(長度);
-
刪除列 ,關鍵字
drop
alter table 表名 drop 列名;