文章目录
一、创建表
1、1 SQL语法
1、2 实例演示
二、查询表
三、修改表
3、1 修改表名字
3、2 新增列(字段)
3、3 修改列类型
3、4 修改列名
3、5 删除表
四、总结
♂️ 作者:@Ggggggtm ♂️
专栏:MySQL
标题:MySQL表的基础操作
❣️ 寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景 ❣️
首先我们先来学一下创建表的操作。后续都是对表进行增删查改操作!创建表的语法:
CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;
注意,我们在上篇文章中讲解到了库的字符集与校验规则的设置。表也是可以设置自己对应的字符集和校验规则的。其次,上述字符集设置中,character set 等同于 charset 。
语法说明:
- field 表示列名;
- datatype 表示列的类型;
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准;
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准;
- engine是用来指定表所采用的存储引擎。
下面我们结合一个实际例子来理解一下。具体如下图:
首先说明一下,上述语句中 comment 是用来添加注释信息的。那么我们来查看一下所见建的表。查看表结构的详细信息用到的语句是:desc 表名字。具体如下图:
我们所添加的注释信息在哪里看呢?这时候我们就需要用查看创建表时的语句的详细信息了,具体如下图:
我们再来看看使用特定的存储引擎后,创建出来的表有什么不同的。如下图:
当我们不指定存储引擎时,数据库会使用默认的存储引擎:innodb。我们通过linux下对应的文件可以也看出,不同的存储引擎所创建出来的表也是有所不同的。
t1 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:
- t1.frm:表结构;
- t1.MYD:表数据;
- t1.MYI:表索引。
t2 表存储引擎是 innodb,在数据目中有两个不同的文件,分别是:
- t2.frm:表结构;
- t2.ibd:表数据和表索引;
后续文章我们也会对他们之间的详细区别进行详解的。这里我们知道不同的存储引擎创建出来的表是有所不同的即可。
查询某个库中都有那几个表,可以用语句:show tables。具体如下图:
我们在上述创建中也提到了查询表结构的详细信息,所用到的语句是:desc 表名字。具体如下:
说明一下,desc表中的每一行都表示一个字段,并包含以下属性:
Field
:字段名称。Type
:数据类型。例如,VARCHAR(64)、INT、FLOAT 等。Null
:是否允许 NULL 值。如果是 'YES',则可以是 NULL;如果是 'NO',则必须有值。Key
:主键、唯一键或普通索引的类型。'PRI' 是主键,'UNI' 是唯一键,'MUL' 是多列键,'ALL' 是全索引。Default
:字段的默认值。如果没有默认值,则为空。Extra
:字段的一些额外信息。例如,'auto_increment' 表示该字段是自动递增的,'on update CURRENT_TIMESTAMP' 表示该字段在更新时会自动设置当前时间戳。这里就先了解一下,不做过多解释,后续文章会对此属性进行详解。
我们也可通过show create table 表名字来查看创建表时的具体的细节。如下图:
我们怎么查看表中所存储的信息呢?可直接使用select语句进行查看。具体如下图:
我们是先插入了两条数据再进行查询。这里也就不再对查询做过多解释。我们所说的插入一个字段,对应到表中也就是插入了一列。
修改表主要用到的语句是:alter table 表名字 要修改的操作及内容。 下面我们通过实例来一一理解。
再次提醒,一般情况下是不支持对数据库的名字进行修改的。但是可以修改表的名字。语句:alter table 表名字 rename to 新表名字。该语句中的 to 是可以省去的。具体实例如下:
在不断的开发中,可能会向表中新增一列。这个也是可以的。所用到的语句:
alter table 表名字 add 新增列明 新增列属性;
具体如下图:
我们看到新增的一列默认是在表中的最后的位置。当然,我们想要增加到其他位置呢?具体如下图:
可以使用语句:alter table 表名字 add 新增列明 新增列属性 after 列名。
有时候我们定义的列类型时,后续因为数据原因,需要变动。比如修改某个字段类型的最大长度等等。所用到的语句:alter table 表名字 modify 列名字 修改后列类型。下面我们看一个实例:
上图中,我们就是把名字的最大长度进行了修改。注意:如果还需要注释信息时,我们再修改时也应该写上。从这里我们也看出来了,修改并不是指定式的修改内容,而是覆盖式的去修改内容。
列的名字也是可以被修改的。所用语句:
alter table 表名字 change 列名字 新列名字 新列属性。
我们看一个实例:
这里的修改也是覆盖式的进行修改,原来的建表时的注释信息也会被覆盖掉。如下图:
删除表也就意味着删除表中的所有数据。所以当在删除表的时候,要确定表中的信息没有用了,否则不要轻易删除。具体语句:
drop table 表名字;
具体实例如下:
本文章主要对表的操作进行的详细讲解,下面对本文章所用到的语句进行一个简单的总结。具体如下:
CREATE TABLE [IF NOT EXISTS] table_name( field1 datatype1 [COMMENT '注释信息'], field2 datatype2 [COMMENT '注释信息'], field3 datatype3 [COMMENT '注释信息'] )[CHARSET=字符集] [COLLATE=校验规则] [ENGINE=存储引擎]; DESC 表名字; SHOW TABLES; ALTER TABLE table_name RENAME [TO] 新表名字; ALTER TABLE table_name ADD 新增列名字 新增列类型; ALTER TABLE table_name MODIFY 列名字 修改后列类型; ALTER TABLE table_name DROP 列名字; ALTER TABLE table_name CHANGE 列名字 新列名 新列类型; DROP TABLE;
我们应该多加练习这些语句的使用,也应该熟练掌握这些语句的使用。本篇文章的内容就到这里,感谢阅读ovo~