【MySQL】表的操作

今天我们来谈谈MySQL下对表的操作


目录

一、创建表

二、查看表

2.1 查看库中存有的表

2.2 查看表结构 

2.3 查看表的创建语句

三、修改表

3.1 重命名表名

3.2 新增列

3.3 修改列的数据类型

3.4 删除列

3.5 重命名列

3.6 向表中插入数据

四、删除表


一、创建表

我们要想在数据库中创建表首先要进入想要创建表的库中,我们可以使用use语句来选择我们所要创建表的库:

use 库名称;

【MySQL】表的操作_第1张图片

上面我就选择了user1这个库来准备建表

下面是建表语句:

CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

table_name 表示表名

field 表示列名

datatype 表示列的类型

character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准

collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

engine 存储引擎,如果没有指定存储引擎,则以配置文件中的存储引擎为准

现在我们创建了一个person1表: 

【MySQL】表的操作_第2张图片

我们可以看到该表中有id/name/birthday三种不同类型的数据(对于数据类型我们在下期博客中会仔细讲解),并且该表使用的字符集为utf8,校验规则为utf8_general_ci,存储引擎为MyISAM,其中comment后的内容是对数据做的解释。

创建完后我们查看一下该库中的文件:【MySQL】表的操作_第3张图片

可以看到一下子多出来三个文件。

现在我们再来创建一个一模一样的表person2:

【MySQL】表的操作_第4张图片

我们可以看到person2这个表唯一不同的是存储引擎是InnoDB,创建完后我们查看一下该库中的文件:

【MySQL】表的操作_第5张图片

这次创建person2表只多了两个文件,这是由于存储引擎的不同所导致的(MyISAM存储引擎会将索引和数据分开存,InnoDB存储引擎会将数据和索引存在一起,关于索引我们在后期会谈到)。

二、查看表

2.1 查看库中存有的表

show tables;

当我们选择了一个库时,可以用上面语句来查看库中存有的表:

【MySQL】表的操作_第6张图片

2.2 查看表结构 

desc 表名称;

用上面的语句我们可以查看具体某个表的结构: 

 【MySQL】表的操作_第7张图片

我们可以看到该语句显示了表的数据名称、数据类型、约束、主键、外键等信息(约束、主键、外键我们后面会仔细讲解)

2.3 查看表的创建语句

show create table 表名称;

通过上面的语句我们可以看到创建表时的语句:

【MySQL】表的操作_第8张图片

不过直接显示太乱了,我们可以将语句中的;换成\G

【MySQL】表的操作_第9张图片

这样子就可以去除一下无用的符号,更加方便我们查看

三、修改表

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

3.1 重命名表名

alter table 表原名 rename to 重命名的表名;

下面我们将person1表重命名为person: 

【MySQL】表的操作_第10张图片

3.2 新增列

ALTER TABLE 想要新增列的表名 ADD 新增列名 数据类型 AFTER 想要增添的位置;

下面我们在person表原有的birthday这个列后面插入一个数据类型为varchar(128),列名为address的新列:

【MySQL】表的操作_第11张图片

我们发现新增的非常成功,comment在这里说明这个列是记录用户住址的

3.3 修改列的数据类型

alter table 列所在的表名 modify 列名 新的数据类型;

在下面我们将person这个表的name列的数据类型做了修改: 

【MySQL】表的操作_第12张图片

但是我们修改后可以发现,原来comment说明的内容没有了,所以我们在修改列类型的时候要注意这一点,在修改前应该仔细查看创建表时的语句。

3.4 删除列

注意:删除列一定要小心,删除的列及其对应表中的列数据都会被删除!

alter table 列所在的表名 drop 列名;

下面我们演示删除person表的birthday列: 

【MySQL】表的操作_第13张图片

3.5 重命名列

alter table 表名 change 列名 重命名的列名 数据类型;

我们想要对列进行重命名会比较麻烦,要加上列的数据类型:

【MySQL】表的操作_第14张图片

 

3.6 向表中插入数据

insert into 想要插入的表名(所要插入的列1,所要插入的列2...) values(数据1,数据2...);

下面我们向t1这张表中插入数据做演示: 

【MySQL】表的操作_第15张图片

下面我们向num这个列插入数据1:

【MySQL】表的操作_第16张图片

下面我们向name这个列插入数据'张三':

【MySQL】表的操作_第17张图片

如果表名称后面不写要插入的列,则默认从左到右向所有列插入数据:

 【MySQL】表的操作_第18张图片

 

四、删除表

drop table 表名;

现在我们演示删除person2这个表 :

【MySQL】表的操作_第19张图片


本期博客到这里就结束了,下期很快和大家见面~

更多MySQL技能请看:http://t.csdn.cn/W9dQl

博主努力更新中~

你可能感兴趣的:(MySQL,sql,数据库,mysql,linux)