[MySQL] MySQL表的基础操作

文章目录

一、创建表

1、1 SQL语法

1、2 实例演示

二、查询表

三、修改表

3、1 修改表名字

3、2 新增列(字段)

3、3 修改列类型

3、4 修改列名

3、5 删除表

四、总结


🙋‍♂️ 作者:@Ggggggtm 🙋‍♂️

👀 专栏:MySQL 👀

💥 标题:MySQL表的基础操作💥

 ❣️ 寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景 ❣️

一、创建表

1、1 SQL语法

  首先我们先来学一下创建表的操作。后续都是对表进行增删查改操作!创建表的语法:

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

  注意,我们在上篇文章中讲解到了库的字符集与校验规则的设置。表也是可以设置自己对应的字符集和校验规则的。其次,上述字符集设置中,character set 等同于 charset

  语法说明:

  • field 表示列名;
  • datatype 表示列的类型;
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准;
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准;
  • engine是用来指定表所采用的存储引擎。

1、2 实例演示

  下面我们结合一个实际例子来理解一下。具体如下图:

  首先说明一下,上述语句中 comment 是用来添加注释信息的。那么我们来查看一下所见建的表。查看表结构的详细信息用到的语句是:desc 表名字。具体如下图:

  我们所添加的注释信息在哪里看呢?这时候我们就需要用查看创建表时的语句的详细信息了,具体如下图:

  我们再来看看使用特定的存储引擎后,创建出来的表有什么不同的。如下图:

  当我们不指定存储引擎时,数据库会使用默认的存储引擎:innodb。我们通过linux下对应的文件可以也看出,不同的存储引擎所创建出来的表也是有所不同的。

  t1 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

  • t1.frm:表结构;
  • t1.MYD:表数据;
  • t1.MYI:表索引。

  t2 表存储引擎是 innodb,在数据目中有两个不同的文件,分别是:

  • t2.frm:表结构;
  • t2.ibd:表数据和表索引;

  后续文章我们也会对他们之间的详细区别进行详解的。这里我们知道不同的存储引擎创建出来的表是有所不同的即可。

二、查询表

  查询某个库中都有那几个表,可以用语句:show tables。具体如下图:

  我们在上述创建中也提到了查询表结构的详细信息,所用到的语句是:desc 表名字。具体如下:

  说明一下,desc表中的每一行都表示一个字段,并包含以下属性:

  1. Field:字段名称。
  2. Type:数据类型。例如,VARCHAR(64)、INT、FLOAT 等。
  3. Null:是否允许 NULL 值。如果是 'YES',则可以是 NULL;如果是 'NO',则必须有值。
  4. Key:主键、唯一键或普通索引的类型。'PRI' 是主键,'UNI' 是唯一键,'MUL' 是多列键,'ALL' 是全索引。
  5. Default:字段的默认值。如果没有默认值,则为空。
  6. Extra:字段的一些额外信息。例如,'auto_increment' 表示该字段是自动递增的,'on update CURRENT_TIMESTAMP' 表示该字段在更新时会自动设置当前时间戳。

  这里就先了解一下,不做过多解释,后续文章会对此属性进行详解。

  我们也可通过show create table 表名字来查看创建表时的具体的细节。如下图: 

  我们怎么查看表中所存储的信息呢?可直接使用select语句进行查看。具体如下图:

  我们是先插入了两条数据再进行查询。这里也就不再对查询做过多解释。我们所说的插入一个字段,对应到表中也就是插入了一列。

三、修改表

  修改表主要用到的语句是:alter table 表名字 要修改的操作及内容。 下面我们通过实例来一一理解。

3、1 修改表名字

  再次提醒,一般情况下是不支持对数据库的名字进行修改的。但是可以修改表的名字。语句:alter table 表名字 rename to 新表名字。该语句中的 to 是可以省去的。具体实例如下:

3、2 新增列(字段)

   在不断的开发中,可能会向表中新增一列。这个也是可以的。所用到的语句:

alter table 表名字 add 新增列明 新增列属性;

  具体如下图:

  我们看到新增的一列默认是在表中的最后的位置。当然,我们想要增加到其他位置呢?具体如下图:

  可以使用语句:alter table 表名字 add 新增列明 新增列属性 after 列名。

3、3 修改列类型

   有时候我们定义的列类型时,后续因为数据原因,需要变动。比如修改某个字段类型的最大长度等等。所用到的语句:alter table 表名字 modify 列名字 修改后列类型。下面我们看一个实例:

  上图中,我们就是把名字的最大长度进行了修改。注意:如果还需要注释信息时,我们再修改时也应该写上。从这里我们也看出来了,修改并不是指定式的修改内容,而是覆盖式的去修改内容。

3、4 修改列名

  列的名字也是可以被修改的。所用语句:

alter table 表名字 change 列名字 新列名字 新列属性。 

  我们看一个实例:

  这里的修改也是覆盖式的进行修改,原来的建表时的注释信息也会被覆盖掉。如下图:

3、5 删除表

  删除表也就意味着删除表中的所有数据。所以当在删除表的时候,要确定表中的信息没有用了,否则不要轻易删除。具体语句:

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~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/169506.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻松搜寻GitHub宝藏!掌握这些技巧快速找到理想项目

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推荐--…

开放领域问答机器人1

开放领域问答机器人是一种智能机器人,它不受限制,可以回答任何问题。这种机器人主要通过自然语言处理技术来理解用户的问题,并从大量的数据中获取相关信息,以提供准确的答案。它的应用领域广泛,包括客户服务、教育、医…

序列化模块-json和pickle

一、json json是所有语言都通用的一种序列化格式 ,只支持 列表、 字典、 字符串、 数字 , 字典的key必须是字符串 1、dumps、loods # 在内存中做数据转换 : # durps 数据类型 转成 字符串 序列化 # loods 字符串 转成 数据类型 反序…

能源监测管理系统有哪些作用与效果?

随着全球能源的不断增加,能源的有限性与环境问题日益严重,用能管理企业需要一种高效的方法来管理能源与利用能源,因此能源监测管理系统成为了一种不可或缺的工具。 能源监测管理系统的重要性 1、实现节能减排的目标 通过系统,可…

Flowable 外部表单

内置表单需要在每个节点中去配置,当如果多个节点使用同一套表单属性就要配置多次比较麻烦,修改的时候也要修改多次,外部表单可以定义一次,然后其它节点都去引用同一个表单属性。 外部表单需要定义一个.form后缀的文件。 外部表单…

postgresql|数据库|提升查询性能的物化视图解析

前言: 我们一般认为数字的世界是一个虚拟的世界,OK,但我们其实有些需求是和现实世界一模一样的,比如,数据库尤其是关系型数据库,希望在使用的数据库能够更快(查询速度),…

【4】Gradle-快速入门使用【Gradle多模块项目详解】

目录 【4】Gradle-快速入门使用【Gradle多模块项目详解】创建多项目构建添加子项目命名建议 项目依赖项项目路径不同模块的build.gradle配置 子项目之间共享构建逻辑公约插件跨项目配置buildSrc开发公约插件 调整多模块项目配置修改项目树的元素 了解Gralde配置时间和执行时间并…

【见缝插针】射击类游戏-微信小程序项目开发流程详解

还记得小时候玩过的见缝插针游戏吗,比一比看谁插得针比较多,可有趣了,当然了,通过它可以训练自己的手速反应,以及射击水平,把握时机,得分越高就越有成就感,相信小朋友们会喜欢它的&a…

npm install 报错 chromedriver 安装失败的解决办法

npm install chromedriver --chromedriver_cdnurlhttp://cdn.npm.taobao.org/dist/chromedriver

使用MybatisPlus时出现的java.lang.NullPointerException异常~

错误描述如下所示: 错误原因:Junit的导包错误 单元测试的包有如下所示两个 我们应该根据springboot的版本进行选择, 在Spring Boot 2.2.X以后使用import org.junit.jupiter.api.Test Junit5 在Spring Boot 2.2.x之前使用import org.junit.T…

无需公网IP,贝锐花生壳内网穿透远程访问NAS

群晖DSM 7.0及以上版本 1.1 安装运行花生壳套件 (1)通过浏览器输入群晖NAS的内网地址,登录进去后,点击【套件中心】,搜索【花生壳】,并点击【安装套件】; (2) 勾选我接…

[mysql]索引优化-2

目录 一、分页查询优化1.根据自增且连续的主键排序的分页查询2.根据非主键字段排序的分页查询 二、Join关联查询优化1.嵌套循环连接 Nested-Loop Join(NLJ) 算法2.基于块的嵌套循环连接 Block Nested-Loop Join(BNL)算法 三、count(*)查询优化1.查询mysql自己维护的总行数2.sho…