🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。
🎯每天努力一点点,技术变化看得见
文章目录
- 创建表
- 查看表结构
- 修改表
- 删除表
创建表
语法:
create table table_name(
field1 datatype,
field2 datatype,
field3 datatype
)charset=字符集名称 collate=校验规则名称 engine=存储引擎名称
说明:
● filed表示列名
● datatype表示列的类型
● charset(写成character set也可以)字符集,如果没有指定字符集,则以所在数据库的字符集为准
●collate校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
●engine存储引擎,如果没有指定存储引擎,则以所在数据库的存储引擎为准
创建表案例:
案例: 创建一个学生表,其中包含学号、姓名、性别。
上述的charset、collate、engine后面可以不跟’=',可以直接对应的取值,如下图所示↓↓↓
上述的charset还可以写成character set,且各属性之间可以选择使用空格间隔,也可以选择使用逗号间隔↓↓↓
★ps:不同的存储引擎创建的表的文件是不一样的↓↓↓
其中student和student_copy表的存储引擎是InnoDB,在数据库目录中各有两个不同的文件:以.frm
结尾的是表结构,以.ibd
结尾的是表索引。
而student_recopy表的存储引擎是MyISAM,在数据库目录中有三个不同的文件:以.frm
结尾的是表结构,以.MYD
结尾的是表数据,以.MYI
结尾的是表索引。
关于什么是索引,及存储引擎的具体差异,将于后序文章中介绍,这里先了解:不同的存储引擎在具体存储时存在一定的差异
查看表结构
上文使用的show create table [表名称] \G
虽然能够查看表的创建语句,但无法清晰明了的展现表的各个细节。
如果想查看表的各个细节,可以使用如下指令↓↓↓
desc 表名称;
修改表
在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。
表添加字段语法:
alter table table_name add(column datatype [default expr][,column datatype]...);
表删除字段语法:
alter table table_name drop(column [,column]...);
表修改字段属性(不修改字段名称)语法:
alter table_name modify(column datatype [default expr][, column datatype]...);
表修改字段属性(可修改字段名称)语法:
alter table tabel_name change 原字段名称 新字段名称 [default expr];
表名称修改语法:
alter table 原表名称 rename to 新表名称;
修改表案例:
案例1: 给student表添加年龄字段,并添加在姓名之后
alter table student add age int after name;
案例2: 给student插入3条数据后,在所有字段之后添加birthday字段
insert into student values('0001','小明',18,'男');
insert into student values('0002','小菜',19,'男');
insert into student values('0003','小树',23,'男');
select * from student;
alter table student add dirthday date;
★ps:从上面可知,由于添加字段,原来的数据中没有新增字段的数据,这些位置会被填写Defaut数值。原来的数据并不会受到影响。
案例3: 将student表中的name字段varchar长度修改为64
alter table student modify name varchar(64);
案例4: 删除age字段
★ps:删除字段一定要小心,删除字段及其对应的列数据都没了
案例5: 修改student表表名为stu
★ps:rename语句中,to可以省略
案例6: 修改gender字段名为sex
删除表
语法:
drop [temporary] table [if exists] table_name [,table_name]...
下图演示了删除stu表↓↓↓
🎈欢迎进入半夜学习MySQL专栏,查看更多文章。
如果上述内容有任何问题,欢迎在下方留言区指正b( ̄▽ ̄)d