目录

一、创建表

二、查看表

三、修改表

一、创建表

语法:

create table table_name(

field1 datatype,

field2 datatype,

field3 datatype

) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

field 表示列名

datatype 表示列的类型

character set 字符集,如果没有指定字符集,则会继承所在数据库的字符集

collate 校验规则,如果没有指定校验规则,则会继承所在数据库的校验规则

示例:

注意:这里if not exists 是一个选项,可有可无。

不自定义设置编码和校验规则,创建的表会默认采用数据库的编码和校验规则

查看当前表的编码和校验规则:

关于创建表使用不同的存储引擎:

创建表user1使用的存储引擎是MyIsam,创建表user2使用的存储引擎是InnoDB.

我们在Linux中可以查看它们的文件有何差异:

使用不同的存储引擎,创建文件的类型和种类是不相同的。使用MyIsam,在数据目中有三个不同的文件,分别是:

user1.frm:存储表结构

user1.MYD:存储表数据

user1.MYI:存储表索引

使用InnoDB

user2.frm:存储表结构

user2.ibd:存储表数据和表索引

也就是使用InnoDB会把表数据和表索引存储在一个.ibd类型的文件中。

二、查看表

语法:

desc table_name; //查看表结构

输入:

show tables; //查看当前数据库中的表有哪些

语法:

show create table table_name; // 显示创建表时的详细信息

这样查看很不方便,可以在查看时加上 \G 选项,可以格式化显示,把不需要的给屏蔽掉。

这是因为加上 \G 选项,mysqld会对我们写的指令进行词法语法分析,转化为标准的写法。

三、修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

语法:

alter table old_name rename to new_name;//修改表名

注:加粗和有颜色的字体为关键字。

old_name:表示之前表的名字

new_name: 表示修改后表的名字

to是可以省略的

语法:

alter table table_name change oldline_name newline_name properties;//更改列名

注: 加粗和有颜色的为关键字

table_name:表名

oldline_name:之前的列名

newline_name:更改后的列名

properties:更改后的列的属性

示例

对列名称做修改,不仅要修改列名称,还要对它的相关属性做修改

语法:

insert into table_name (可指定列)values (根据表中的列一一对应填写数据); //插入数据

注:

values前可指定要插入哪一列,不指定插入哪一列时,默认是全部列插入。

示例

语法:

alter table table_name add line_name type 备注 位置; //新增列

注:

type:表示新增列的类型,大小

备注:comment备注

位置:在列中的位置,比如在哪一列后面添加

示例

语法:

alter table table_name modify line_name changedproperties;//修改某一列的属性

注:

changedproperties:修改后的列属性

修改时扩大列可允许数据大小是不影响存储数据的,但是这是一种覆盖式修改,之前的备注,也就是comment内容也就没有了。

语法:

alter table table_name drop line_name; //删除某一列

删之前:

删除了password这一列。

语法:

drop table table_name;//删除表