MySQL學習筆記(3)——操作數據庫中的表

MySQL學習筆記(3)——操作數據庫中的表

參考視頻:https://www.bilibili.com/video/BV1NJ411J79W?p=6

1.創建數據表

1.1 SQL語句建表格式

SQL語句建表/可視化建表

創建demo表,有id和name兩個字段.

id字段 爲int類型長度爲8 id` int(8),無符號數(unsigned),0填充(zerofill),非空(NOT NULL),

自增(AUTO_INCREMENT),備註(COMMENT)爲id編號

name字段爲varchar長度爲30 name` varchar(30),非空(NOT NULL),

默認值爲張三(DEFAULT ‘張三’),備註(COMMENT)爲姓名

主鍵設置爲id,存儲引擎爲InnoDB, 數據庫默認編碼爲utf-8

DROP TABLE IF EXISTS `demo`;
CREATE TABLE `demo` (
  `id` int(8) unsigned zerofill NOT NULL AUTO_INCREMENT COMMENT 'id編號',
  `name` varchar(30) NOT NULL DEFAULT '張三' COMMENT '姓名',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

建表格式:

CREATE TABLE [IF NOT EXISTS] `表名`(
    `字段名稱` 字段類型 [字段屬性] [索引] [備註/註釋],
    `字段名稱` 字段類型 [字段屬性] [索引] [備註/註釋],
    ...
    `字段名稱` 字段類型 [字段屬性] [索引] [備註/註釋]
)[表類型:存儲引擎][字符集設置][備註/註釋]

注意:

[ ]中的內容代表可選, 字段用 ` 括住(tab鍵上面那個),不是單引號

最後一個字段定義完不用加逗號,

tips:查看創建數據庫/數據表的語句

SHOW CREATE DATABASE blog;  -- 查看創建數據庫語句
SHOW CREATE TABLE blog;  -- 查看創建數據表的語句
DSC blog;  -- 顯示錶結構

1.2.數據表的類型(存儲引擎)

就是以上的ENGINE=InnoDB,建表中通過 ENGINE 設置。

一般就是InnoDBMYISAM。早年使用MYISAM

MYISAM InnoDB
事務支持 不支持 支持
數據行鎖定 不支持 支持
外鍵約束 不支持 支持
全文索引 支持 不支持,5.6.4版本後支持(全英文)
表空間大小 較小 較大(約爲MYISAM兩倍)

瞭解即可

  • MYISAM` 節約空間,速度較快
  • InnoDB安全性高,支持事務處理,多表多用戶操作

在物理空間存在的位置:

所有數據庫文件都存下data下,本質還是文件存儲!

MySQL存儲引擎在物理文件上的區別(5.7版本)

  • InnoDB在數據庫表中只有一個*.frm文件,以及上級目錄下的ibddata1文件

  • MYISAM對應的文件:

    • *.frm表結構的定義文件;

    • *.MYD 數據文件(data)

    • *.MYI 索引文件(index)

1.3 數據表的字符集編碼

DEFAULT CHARSET=utf8;

不設置的話,默認的字符集編碼(Lanti1)不支持中文,會導致中文亂碼問題。

修改編碼格式的方法:

  • 建表語句裏設置CHARSET=utf8(建議用這種,通用性更高)
  • 配置文件my.ini中配置默認的編碼格式character-set-server=utf-8

2. 修改與刪除表

2.1 修改表及表中字段

  • **關鍵字:ALTER **

修改表名:RENAME AS

ALTER TABLE 舊錶名 RENAME AS 新表名;

 --把demo數據表改名爲demo1
ALTER TABLE demo RENAME AS demo1;

增加字段:ADD

ALTER TABLE 表名 ADD 字段名 字段屬性;

 -- 在demo1數據表中添加一個字段,名稱爲sge,類型INT,長度2
ALTER TABLE demo1 ADD age INT(2);

修改字段:MODIFY修改字段類型和字段約束;CHANGE重命名字段

ALTER TABLE 表名 MODIFY 字段名 字段屬性;

ALTER TABLE 表名 CHANGE 舊字段名 新字段名;

 -- 修改字段名稱或者約束
 
 --修改demo1表中age字段的約束,改爲VARCHAR類型長度2,默認值設爲18
ALTER TABLE demo1 MODIFY age VARCHAR(2) DEFAULT '18'; 

-- 字段重命名,將demo1表中的age重命名爲age1
ALTER TABLE demo1 CHANGE age age1; 

2.2 刪除表及表中字段

刪除表:DROP

DROP TABLE IF EXISTS 表名;

DROP TABLE IF EXISTS demo1; -- 刪除數據表demo1

刪除表的字段:DROP

ALTER TABLE 表名 DROP 字段名;

-- 刪除demo1表中的age1字段
ALTER TABLE demo1 DROP age1;

所有的創建和刪除操作儘量加上存在判斷,防止報錯,即IF EXISTS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章