「前言」文章內(nèi)容大致是數(shù)據(jù)庫表的基本操作
「歸屬專欄」MySQL
「主頁鏈接」個人主頁
「筆者」楓葉先生(fy)
「楓葉先生有點文青病」「句子分享」
人生當(dāng)苦無妨,良人當(dāng)歸即好。
——烽火戲諸侯《雪中悍刀行》
一、創(chuàng)建表
創(chuàng)建表語法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
...
field datatype
) character set 字符集 collate 校驗規(guī)則 engine 存儲引擎
說明:
- field 表示列名
- datatype 表示列的類型
- character set 字符集,如果沒有指定字符集,則以所在數(shù)據(jù)庫的字符集為準(zhǔn)
- collate 校驗規(guī)則,如果沒有指定校驗規(guī)則,則以所在數(shù)據(jù)庫的校驗規(guī)則為準(zhǔn)
查看自己現(xiàn)在所在的數(shù)據(jù)庫
select database();
創(chuàng)建表案例1:
create table if not exists user1(
id int,
name varchar(20) comment '用戶名',
password char(32) comment '用戶密碼',
birthday date comment '用戶生日'
)character set utf8 collate utf8_general_ci engine MyIsam;
ls /var/lib/mysql/user -l
不同的存儲引擎,創(chuàng)建表的文件不一樣,表存儲引擎是MyISAM
,在數(shù)據(jù)目中有三個不同的文件,分別是:
- user1.frm:表結(jié)構(gòu)
- user1.MYD:表數(shù)據(jù)
- user1.MYI:表索引
查看表結(jié)構(gòu)
desc 表名;
注:desc的全稱是describe
各個列的意思:
創(chuàng)建表案例2,與創(chuàng)建表案例1進(jìn)行索引對比
create table if not exists user2(
id int,
name varchar(20) comment '用戶名',
password char(32) comment '用戶密碼',
birthday date comment '用戶生日'
)charset=utf8 collate=utf8_general_ci engine=InnoDB;
索引的不同,創(chuàng)建表的文件不一樣。
二、修改表
在項目實際開發(fā)中,經(jīng)常修改某個表的結(jié)構(gòu),比如字段名字,字段大小,字段類型,表的字符集類型,表的存儲引擎等等。我們還有需求,添加字段,刪除字段等等。這時我們就需要修改表
查看數(shù)據(jù)庫的表
語法:
show tables;
修改表名
alter table 表名 rename to 新的表名;
注意:to
可以省掉
例如,將 user1 修改表名為employee
alter table user1 rename to employee;
查看表創(chuàng)建時的信息
語法:
show create table 表名;
例如(在我這里,這個命令打印格式有點問題)
給表增加列
語法:
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,columndatatype]...);
說明:
- 大寫的表示關(guān)鍵字
- [] 是可選項,可以選擇不寫
例如,給表在最后新增一列
alter table employee add path_image varchar(128) comment '用戶頭像路徑' after birthday;
after birthday
意思是在birthday
這列之后插入,插入新字段后,對原來表中的數(shù)據(jù)沒有影響
修改表的某一列
語法:
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,columndatatype]...);
- 大寫的表示關(guān)鍵字
- [] 是可選項,可以選擇不寫
例如,修改表的name列,將其長度改成60
alter table employee modify name varchar(60);
但是,查看創(chuàng)建表時的信息,注解comment
沒有了,舊的的屬性直接被新的屬性直接覆蓋了
刪除表的某一列
語法:
alter table 表名 drop 表的哪一列;
例如,刪除birthday列
alter table employee drop birthday;
注意:刪除字段一定要小心,刪除字段及其對應(yīng)的列數(shù)據(jù)都沒了,不建議使用
修改某一列的名字
alter table 表名 change 舊的列名 新的列名+屬性;
注意:新字段需要完整定義,即增加該列的屬性
例如,將name列修改為xingming
table employee change name xingming varchar(60);
三、 刪除表
語法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
- 大寫的表示關(guān)鍵字
- [] 是可選項,可以選擇不寫
例如,刪除一個表文章來源:http://www.zghlxwxcb.cn/news/detail-544582.html
drop table user2;
注意:不要輕易刪除表
--------------------- END ----------------------文章來源地址http://www.zghlxwxcb.cn/news/detail-544582.html
「 作者 」 楓葉先生
「 更新 」 2023.7.9
「 聲明 」 余之才疏學(xué)淺,故所撰文疏漏難免,
或有謬誤或不準(zhǔn)確之處,敬請讀者批評指正。
到了這里,關(guān)于【MySQL系列】表的學(xué)習(xí)及基本操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!