MySQL 數(shù)據(jù)庫表的操作實戰(zhàn)案例
MySQL 表是數(shù)據(jù)存儲的核心容器,掌握表的創(chuàng)建、查看、修改、刪除是數(shù)據(jù)庫開發(fā)必備技能。本文結合實戰(zhàn)案例,帶你系統(tǒng)學習 MySQL 表的所有基礎操作,小白也能快速上手。
一、創(chuàng)建表(CREATE TABLE)
創(chuàng)建表是定義數(shù)據(jù)結構的第一步,需指定字段名、數(shù)據(jù)類型,還可配置字符集、校驗規(guī)則、存儲引擎。
1. 基礎語法
CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) CHARACTER SET 字符集 COLLATE 校驗規(guī)則 ENGINE 存儲引擎;
- field:列名(字段名)
- datatype:列的數(shù)據(jù)類型(int、varchar、date 等)
- CHARACTER SET:字符集,不指定則繼承數(shù)據(jù)庫字符集
- COLLATE:校驗規(guī)則,不指定則繼承數(shù)據(jù)庫規(guī)則
- ENGINE:存儲引擎,決定表的存儲方式與特性
2. 實戰(zhàn)案例
創(chuàng)建用戶表 users,包含 id、姓名、密碼、生日:
CREATE TABLE users ( id INT, name VARCHAR(20) COMMENT '用戶名', password CHAR(32) COMMENT '密碼是32位的md5值', birthday DATE COMMENT '生日' ) CHARACTER SET utf8 ENGINE MyISAM;
3. 存儲引擎與文件說明
不同存儲引擎生成的磁盤文件不同:
- MyISAM:3 個文件
users.frm:表結構文件users.MYD:表數(shù)據(jù)文件users.MYI:表索引文件
- InnoDB(默認):2 個文件
表名.frm:表結構表名.ibd:數(shù)據(jù) + 索引合并存儲
文件路徑示例(Windows):C:\ProgramData\MySQL\MySQL Server 5.7\Data\數(shù)據(jù)庫名\
二、查看表結構(DESC)
創(chuàng)建表后,用 DESC 命令快速查看字段、類型、是否為空等信息。
語法
DESC 表名; -- 或 DESCRIBE 表名;
示例
DESC users;
返回結果包含:
- Field:字段名
- Type:數(shù)據(jù)類型
- Null:是否允許為空
- Key:索引類型
- Default:默認值
- Extra:額外信息(自增等)
三、修改表(ALTER TABLE)
業(yè)務迭代中常需調(diào)整表結構,ALTER TABLE 可完成添加字段、修改字段、刪除字段、重命名表 / 字段等操作。
1. 添加字段
ALTER TABLE 表名 ADD 字段名 數(shù)據(jù)類型 [COMMENT '注釋'] [位置];
- 位置:
FIRST(最前)、AFTER 字段名(指定字段后)
示例:給 users 加圖片路徑字段,放在 birthday 后:
ALTER TABLE users ADD assets VARCHAR(100) COMMENT '圖片路徑' AFTER birthday;
? 新增字段不影響原有數(shù)據(jù),舊數(shù)據(jù)該字段默認為 NULL。
2. 修改字段類型 / 長度
ALTER TABLE 表名 MODIFY 字段名 新數(shù)據(jù)類型;
示例:把 name 長度從 20 改為 60:
ALTER TABLE users MODIFY name VARCHAR(60);
3. 刪除字段
?? 危險操作:刪除字段會永久丟失該列所有數(shù)據(jù)!
ALTER TABLE 表名 DROP 字段名;
示例:刪除 password 字段:
ALTER TABLE users DROP password;
4. 重命名表
ALTER TABLE 舊表名 RENAME [TO] 新表名; -- TO 可省略
示例:users 改名為 employee:
ALTER TABLE users RENAME TO employee;
5. 重命名字段
CHANGE 需完整定義新字段(名稱 + 類型):
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 數(shù)據(jù)類型;
示例:name 改為 xingming:
ALTER TABLE employee CHANGE name xingming VARCHAR(60);
四、刪除表(DROP TABLE)
徹底刪除表結構 + 所有數(shù)據(jù),不可逆,務必謹慎!
語法
DROP [TEMPORARY] TABLE [IF EXISTS] 表名1 [, 表名2...];
- IF EXISTS:表不存在也不報錯,腳本必備
- TEMPORARY:僅刪除臨時表
示例
-- 安全刪除單表 DROP TABLE IF EXISTS users; -- 同時刪除多表 DROP TABLE IF EXISTS t1, t2, employee;
五、完整操作流程(實戰(zhàn)回顧)
-- 1. 創(chuàng)建表 CREATE TABLE users ( id INT, name VARCHAR(20), password CHAR(32), birthday DATE ) CHARSET utf8 ENGINE MyISAM; -- 2. 插入測試數(shù)據(jù) INSERT INTO users VALUES (1,'a','b','1982-01-04'), (2,'b','c','1984-01-04'); -- 3. 添加字段 ALTER TABLE users ADD assets VARCHAR(100) AFTER birthday; -- 4. 修改字段長度 ALTER TABLE users MODIFY name VARCHAR(60); -- 5. 刪除字段 ALTER TABLE users DROP password; -- 6. 重命名表 ALTER TABLE users RENAME TO employee; -- 7. 重命名字段 ALTER TABLE employee CHANGE name xingming VARCHAR(60); -- 8. 刪除表 DROP TABLE IF EXISTS employee;
六、高頻注意事項
- 刪除字段 / 表前必備份,數(shù)據(jù)丟失無法恢復
- 字段命名避關鍵字,如
order、user等 - 字符集統(tǒng)一,推薦
utf8mb4支持 emoji - 生產(chǎn)優(yōu)先 InnoDB,支持事務、外鍵、崩潰恢復
- ALTER 謹慎執(zhí)行,大表會鎖表,建議低峰操作
總結
MySQL 表操作核心就 4 類:
- CREATE TABLE:建表定結構
- DESC:查結構看細節(jié)
- ALTER TABLE:改字段 / 表名
- DROP TABLE:刪表清數(shù)據(jù)
掌握這些,日常開發(fā) 90% 的表結構需求都能搞定。
到此這篇關于MySQL 數(shù)據(jù)庫表的操作的文章就介紹到這了,更多相關mysql數(shù)據(jù)庫表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL實現(xiàn)查詢數(shù)據(jù)庫表記錄數(shù)
這篇文章主要介紹了MySQL實現(xiàn)查詢數(shù)據(jù)庫表記錄數(shù),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
MySql中的Full?Text?Search全文索引優(yōu)化
這篇文章主要為大家介紹了MySql中的Full?Text?Search全文索引優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
Mysql的數(shù)據(jù)庫遷移到另一個機器上的方法詳解
今天小編就為大家分享一篇關于Mysql的數(shù)據(jù)庫遷移到另一個機器上的方法詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04

