我们创建好了数据库以后,就可以创建相应的数据表,那么创建表也是属于DDL数据定义层面,接下来我们来学习一下。
1、创建数据表
创建指令:create table tb_name [表选项]
我们发现指令与数据库的创建指令是相同的,没什么大的区别。
PS:当然我们创建表之前,首先先选择相应的数据库。
接下来我们创建一张学生信息表
create table student_studentinfo(
id int,
name varchar(5),
class_id int);
关于列类型以及列约束即列属性会在后面说到。
这里有几个要注意的地方:我们在创建数据表时是选择了相应的数据库的,使用的指令是:
use db_name
同时,在创建数据表时,我们在业务逻辑上设置表的前缀,一般在成熟的项目里都有前缀,为什么要设置前缀呢?主要有以下几个因素
A、当我们只有一个数据库时,如果一个数据库里有多个项目,为了防止数据表的管理混乱,一般我们都要设置前缀以便识别和管理。
B、当数据表非常多的时候,使用前缀得于快速检索,如一个数据库里有多个项目,如有学生信息系统,学生考试系统,教师管理系统,那么通过前缀就可以快速的检索到数据表。
数据表名的规则也是要遵循标识符的规则,这里不再多说。
那么我们再创建数据表,如果没有选择数据库,我们可以这样创建:
create table db_name.tb_name
我们上次说到创建数据库时会在data目录 下自动生动以数据库名命名的目录,那么我们在创建数据表的时候也会自动一些文件。
我们发现教师信息表生成了两个后缀名.frm .ibd的文件,其实这两个文件是数据表的结构以及索引和数据的存储文件,这是innodb存储引擎默认生成的文件,那么如果是myisam的话则会生成三个文件。
2、查看数据表 查看创建的数据表信息以及表的结构
指令:show tables; show create table tb_name;describle tb_name
show tables 是查看当前数据库下有哪些数据表,和查看库一样。
show create table tb_name 则是查看数据表的相关创建信息
describle tb_name 也支持简写 desc tb_name
同理,我们查看数据表时也支持show tables like 指令
这里就不测试了哈。
3、删除数据表
针对不想要的表我们可以删除,和删除数据库的方法是一样的
删除指令:drop table tb_name 或是drop table if exists tb_name
4、数据表的更新操作
A、可以更新表名
rename table old_tbname to new_tbname
同时该指令也支持跨数据库命名
所以利用这个功能我们可以完成数据库的复制和重命名功能。
1、首先我们先创建一个数据库
2、利用rename指令将要复制的数据库里的所有表全部复制到新的数据库里
复制多张表可以这样:rename table tb_name1 to db_name.tb_name,tb_name2 to db_name.tb_name2 ...
通过这两步就可以完成数据库的复制了。
B、可以更新表的结构
更新表的结构主要有添加新的列定义
修改列定义
重命名列定义
删除列定义
alter table tb_name add 列定义
modify 列名 列定义
change 列名 新列名 列定义
drop 列名
重命名一个列
更新一个列
关于列的删除就非常简单了,在这里就没演示怎么操作了。
C、可以更新表的选项信息
更新表的字符编码或是存储引擎
alter table tb_name character set 编码
alter table tb_name engine 存储引擎
最后是数据表的删除操作了,通过前面的知识我们已经知道怎么删除数据库了,所以删除表和删除数据库是一样的道理。这里不演示了。
一般来说,数据表删除后是不可以恢复的,最好慎用drop命令。