1、創建表
- create table + 表名( 欄位1名稱 資料型別 約束 備注,欄位2名稱 資料型別 約束 備注,欄位3名稱 資料型別 約束 備注 )engine=INNODB default CHARSET=utf8 comment'學生表'
- engine=INNODB 存盤引擎
- CHARSET=utf8 字符編碼集
- comment'學生表' 備注
- mysql 常用的資料型別
- int 存盤整數
- float 存盤小數
- char 存盤字符(固定字符長度)
- varchar 存盤字符(可變長字符長度)
- 注意點
- int(3) int(M) M 指最大顯示寬度
- char(20) char(M) M 指最大能存盤 20 個字符
- 約束條件
- 約束用于對表中欄位進行限制,保證表中資料的正確性和唯一性
- 約束型別
- primary key 主鍵約束
- 說明:非空,唯一,用于唯一標識對應的記錄,類似身份證
- foreign key 外鍵約束
- 說明:用于表與表建立關系模型,使表與表緊密的結合起來
- not null 非空約束
- 說明:欄位值不能為 Null
- default 默認值約束
- 說明:默認給欄位指定默認值
- auto_increment 自增約束
- 說明:作用在整數型別,欄位默認從 1 開始自增
- primary key 主鍵約束
# 創建 t_student 表 mysql> create table t_student(id int(3) primary key comment'學生id', name varchar(30) comment'學生姓名')engine=INNODB default CHARSET=utf8 comment'學生表'; # 查看驗證 t_student 表創建成功 mysql> show tables; +-------------------+ | Tables_in_student | +-------------------+ | t_student | +-------------------+2、查看表結構
- desc + 表名
mysql> desc t_student;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(3) | NO | PRI | NULL | |
| name | varchar(30) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
- 修改表名
- alter table + 表名 rename + 新表名
# 修改 t_student 表名稱為 t_stu mysql> alter table t_student rename t_stu; # 查看驗證修改成功 mysql> show tables; +-------------------+ | Tables_in_student | +-------------------+ | t_stu | +-------------------+
- 修改表欄位
- alter table + 表名 change + 原欄位名 + 新欄位名 資料型別,約束
# 修改 t_stu 表欄位 id 為 uid mysql> alter table t_stu change id uid int(3) comment'用戶id'; # 查看驗證修改成功 mysql> desc t_stu; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | uid | int(3) | NO | PRI | 0 | | | name | varchar(30) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+
- 修改主鍵 uid 為自增長
- alter table + 表名 change + 原欄位名 + 新欄位名 資料型別 auto_increment
# 修改主鍵 uid 設為自增長 mysql> alter table t_stu change uid uid int(3) auto_increment; # 查看驗證修改成功 mysql> desc t_stu; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int(3) | YES | | NULL | | | uid | int(3) | NO | PRI | NULL | auto_increment | | name | varchar(30) | YES | | NULL | | | age | int(3) | YES | | NULL | | | sex | varchar(10) | YES | | NULL | | | phone | varchar(11) | YES | | NULL | | +-------+-------------+------+-----+---------+----------------+
- 添加表欄位,并放到第一個欄位前
- alter table + 表名 add + 欄位名 資料型別 約束 first
# 在 t_stu 第一個欄位前添加表欄位 id mysql> alter table t_stu add id int(3) first; # 查看驗證添加成功 mysql> desc t_stu; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | uid | int(3) | NO | PRI | 0 | | | name | varchar(30) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+
- 添加表欄位,并放到某個欄位后
- alter table + 表名 add + 欄位名 資料型別 約束 after +欄位名
# 在 t_stu 表中 name 欄位后添加 age 欄位 mysql> alter table t_stu add age int(3) after name; # 查看驗證添加成功 mysql> desc t_stu; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | uid | int(3) | NO | PRI | 0 | | | name | varchar(30) | YES | | NULL | | | age | int(3) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+
- 同時添加兩個欄位,默認添加到欄位最后
- alter table + 表名 add(欄位1 資料型別,欄位2 資料型別)
# 在表 t_stu 中同時新增 sex 和 phone 兩個欄位 mysql> alter table t_stu add(sex varchar(10),phone varchar(11)); # 查看驗證新增成功 mysql> desc t_stu; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | uid | int(3) | NO | PRI | 0 | | | name | varchar(30) | YES | | NULL | | | age | int(3) | YES | | NULL | | | sex | varchar(10) | YES | | NULL | | | phone | varchar(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+
- 洗掉表欄位
- alter table + 表名 drop + 欄位
# 洗掉表中 uid 欄位 mysql> alter table t_stu drop uid; # 驗證洗掉成功 mysql> desc t_stu; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | name | varchar(30) | YES | | NULL | | | age | int(3) | YES | | NULL | | | sex | varchar(10) | YES | | NULL | | | phone | varchar(11) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+
- 洗掉表兩個欄位
- alter table + 表名 drop 欄位1,drop 欄位2
# 同時洗掉 sex 和 phone 兩個欄位 mysql> alter table t_stu drop sex,drop phone; # 驗證洗掉成功 mysql> desc t_stu; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(3) | YES | | NULL | | | name | varchar(30) | YES | | NULL | | | age | int(3) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+
- 洗掉表(洗掉表資料和表結構)
- drop table + 表名
drop table t_stu;
- 修改表的備注
- alter table + 表名 comment "備注說明"
mysql> alter table t_student comment"student table";
- 修改表欄位的備注
- alter table + 表名 modify + 欄位名 資料型別 comment "備注說明"
mysql> alter table t_student modify id int(3) comment "student id";
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/58179.html
標籤:MySQL
上一篇:MySQL 庫操作
下一篇:MySQL 增刪改查(單表)
