Mysql表的操作

目录

一、创建表

二、查看表

三、修改表

一、创建表

语法:

create table table_name(

        field1 datatype,

        field2 datatype,

        field3 datatype

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

说明:

        field 表示列名

        datatype 表示列的类型

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

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

示例:

   Mysql表的操作_第1张图片

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

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

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

 

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

 Mysql表的操作_第2张图片

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

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

Mysql表的操作_第3张图片

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

        user1.frm:存储表结构

        user1.MYD:存储表数据

        user1.MYI:存储表索引

使用InnoDB

        user2.frm:存储表结构

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

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

二、查看表

语法:

        desc  table_name; //查看表结构

Mysql表的操作_第4张图片

输入:

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

Mysql表的操作_第5张图片

语法:

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

Mysql表的操作_第6张图片

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

Mysql表的操作_第7张图片

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

三、修改表

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

语法:

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

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

        old_name:表示之前表的名字

        new_name: 表示修改后表的名字

        to是可以省略的

Mysql表的操作_第8张图片

语法:

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

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

        table_name:表名

        oldline_name:之前的列名

        newline_name:更改后的列名

        properties:更改后的列的属性

示例

Mysql表的操作_第9张图片

Mysql表的操作_第10张图片

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

语法:

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

注:

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

示例

Mysql表的操作_第11张图片

语法:

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

注:        

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

        备注:comment备注

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

示例

Mysql表的操作_第12张图片

 语法:

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

注:

        changedproperties:修改后的列属性

Mysql表的操作_第13张图片

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

语法:

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

删之前:

Mysql表的操作_第14张图片

Mysql表的操作_第15张图片删除了password这一列。

语法:

        drop table table_name;//删除表

Mysql表的操作_第16张图片

你可能感兴趣的:(Mysql学习,mysql,数据库)