本文最后更新于2024-10-15,距今已有 605 天,若文章内容或图片链接失效,请留言反馈。
4_【MySQL系列】表的学习及基本操作
「前言」文章内容大致是数据库表的基本操作。
一、创建表
创建表语法:
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
...
field datatype
) character set 字符集 collate 校验规则 engine 存储引擎
说明:
- field 表示列名。
- datatype 表示列的类型。
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准。
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。
查看自己现在所在的数据库
select database();

创建表案例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

不同的存储引擎,创建表的文件不一样,表存储引擎是MyISAM ,在数据目中有三个不同的文件,分别是:
- user1.frm:表结构。
- user1.MYD:表数据。
- user1.MYI:表索引。
查看表结构
desc 表名;
desc 的全称是describe。

各个列的意思:

创建表案例2,与创建表案例1进行索引对比。
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;

索引的不同,创建表的文件不一样。

二、修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。
我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
查看数据库的表
语法:
show tables;

修改表名
alter table 表名 rename to 新的表名;
注意:to可以省掉。
例如,将 user1 修改表名为 employee。
alter table user1 rename to employee;

查看表创建时的信息
语法:
show create table 表名;
例如(在我这里,这个命令打印格式有点问题)

给表增加列
语法:
ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,columndatatype]...);
说明:
- 大写的表示关键字
- [] 是可选项,可以选择不写
例如,给表在最后新增一列。
alter table employee add path_image varchar(128) comment '用户头像路径' after birthday;
after birthday意思是在birthday这列之后插入,插入新字段后,对原来表中的数据没有影响

修改表的某一列
语法:
ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,columndatatype]...);
- 大写的表示关键字
- [] 是可选项,可以选择不写
例如,修改表的name列,将其长度改成60。
alter table employee modify name varchar(60);

但是,查看创建表时的信息,注解comment没有了,旧的的属性直接被新的属性直接覆盖了。

删除表的某一列
语法:
alter table 表名 drop 表的哪一列;
例如,删除birthday列。
alter table employee drop birthday;

注意:删除字段一定要小心,删除字段及其对应的列数据都没了,不建议使用。
修改某一列的名字
alter table 表名 change 旧的列名 新的列名+属性;
注意:新字段需要完整定义,即增加该列的属性。
例如,将name列修改为xingming
table employee change name xingming varchar(60);

三、 删除表
语法格式:
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
- 大写的表示关键字
- [] 是可选项,可以选择不写
例如,删除一个表
drop table user2;

注意:不要轻易删除表。
--------------- END ---------------
「 作者 」 枫叶先生
「 更新 」 2023.7.9
「 声明 」 余之才疏学浅,故所撰文疏漏难免,
或有谬误或不准确之处,敬请读者批评指正。
4_【MySQL系列】表的学习及基本操作
http://114.132.213.38:6250/archives/0de245a9-cbbd-4813-aeb2-471c95d0385f
评论