【MySQL初阶】04-数据表的操作
前言: 在有了数据类型的认识之后啊,我们就可以进入到数据表的创建等相关操作,那么本章节将讲述MySQL中数据表的操作的基本语法以及使用。
显示表
- 前提:我们想要创建数据表,那么就先查看是否在数据库中有这张表,如果有了,我们就不要么不创建,要么就删除已有的表再重新建新的表,那么在操作数据表之前,得先告诉MySQL想要操作的目标数据库:
use 数据库名;
语法:
show tablses;
创建数据表
语法
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_namefield datatype [约束] [comment '注解内容'][, field datatype [约束] [comment '注解内容']] ...
) [engine 存储引擎] [character set 字符集] [collate 排序规则];
语法解释:
细节1:上述语法简要形式如下:
顺着这个模版,我们就来创建一张student表如下
细节2:各个字段之间使用 逗号 分隔开,最后一个字段不可以使用逗号
细节3:创建表是可以使用校验来判断当前数据库中是否存在该表
细节4:解释语法中的其他参数
总结:创建表的完整形式
-- 总结创建表的完整形式
-- 首先都是根据需求来的
create table if not exists 表名(字段1 字段类型,字段2, 字段类型,字段2, 字段类型,...
); #注意最后要加分号
查看表的结构
语法:
describe 表名;
演示及解释如下图:
修改数据表
语法的格式:如何和MySQL沟通:
- 让MySQL干什么? ==》 修改表结构
- 对应的目标是什么? ==》 哪一张表(tbl_name)
- 具体怎么做? ==》 通过不同的子句指定要做的修改类型(添加/修改/删除/重命名列,或重命名表)
参数语法说明和演示:
• tbl_name:要修改的表名
alter table 员工表 ...;
• add:向表中添加新列
语法: add [column] 列名 列定义 [first | after 列名]
演示:
-- 在最后添加"手机号"列
alter table 员工表 add 手机号 varchar(15);-- 在"姓名"列后添加"邮箱"列
alter table 员工表 add 邮箱 varchar(100) after 姓名;
• modify:修改现有列的定义
语法: modify [column] 列名 新定义 [first | after 列名]
演示:
-- 扩展姓名列的长度
alter table 员工表 modify 姓名 varchar(50);-- 将手机号列移到邮箱列之后
alter table 员工表 modify 手机号 varchar(15) after 邮箱;
• drop:删除表中的列
语法: drop [column] 列名
演示:
alter table 员工表 drop 手机号;
• rename column:重命名现有列
语法: rename column 旧列名 to 新列名
演示:
alter table 员工表 rename column 邮箱 to 电子邮箱;
• rename [to | as] new_tbl_name:重命名表
语法: rename [to | as] 新表名
演示:
alter table 员工表 rename to 职员表;
-- 或
alter table 员工表 rename as 职员表;
完整示例(组合多个操作):
alter table 员工表add 入职日期 date after 姓名,modify 姓名 varchar(50),rename column 邮箱 to 工作邮箱,rename to 职员信息表;
示例解释如下图:
补充说明:修改表的结构语法比较复杂,比价繁琐,不建议背,而是记住和MySQL的沟通方式,等遇到对应的操作的时候去查阅相关开发文档/或者开发手册去完成具体的业务
删除表
语法:
drop table [if exists] 表名;
示例:
注意事项:
- 删除表必须谨慎操作,一旦删除,数据永久丢失
- 删除表会永久删除表结构和所有数据
- 操作不可逆,除非有备份
- 生产环境务必先备份再操作
注意:删除表的危险性比删除数据库还高,因为数据库删了容易发现,但是表删了,很难发现,所以在做删除表的操作的时候,务必不要冲动。
补充细节1:在SQL中对字段或者表名的命名,如果单词超过两个,那么通常使用的是“蛇形命名法”,也就是说带下划线。例如如下所示:
create table if not exists student_info(student_id int,student_name varchar(20)
);
到此,数据表的相关操作便结束了!!!