MySQL数据库(3)—— 表操作

devtools/2025/2/20 15:04:37/

目录

一,创建表

1.1 创建表的SQL

1.2 演示

二,查看表

三,修改表

四,删除表


常用的表操作会涉及到两种SWL语句

  • DDL(Data Definition Language)数据定义语言:建表、改表、删表等,本篇博客讲的就是这个
  • DML(Data Manipulation Language)数据库操作语言:比如插入记录、删除记录、修改记录等

一,创建表

1.1 创建表的SQL

CREATE TABLE [IF NOT EXISTS] table_name(field1 datatype1 [COMMENT '注释信息'],field2 datatype2 [COMMENT '注释信息'],field3 datatype3  [COMMENT '注释信息']
)[CHARSET=charset_name] [COLLATE=collation_name] [ENGINE=engine_name];

  • field表示列名,datatype表示列的数据类型。

  • CHARSET:指定表所采用的编码格式,如果没有指定则以所在数据库的编码格式为准。

  • COLLATE:指定表所采用的校验规则,如果没有指定则以所在数据库的校验规则为准。

  • ENGINE:指定表所采用的存储引擎。

  • COMMENT:对指定列添加注释信息。

 使用 show engines 可以查看当前MySQL能支持的存储引擎:

可以看到只有InnoDB这个引擎后面的三个都是YES选项,所以我们目前MySQL默认使用的就是这个存储引擎 

1.2 演示

我们还是用我们前面的helloworld库来演示

我们先创建两个表,SQL如下:

mysql> create table if not exists user1(-> id int,-> name varchar(20) comment '用户名',-> password char(20) comment '密码',-> birthday date comment '用户的生日'-> )character set utf8 collate utf8_general_ci engine MyIsam;
mysql> create table if not exists user2(-> name varchar(20) comment '用户名',-> password char(20) comment '密码',-> birthday date comment '用户的生日'-> )character set utf8 collate=utf8_general_ci engine=InnoDB;

建表完成后,在Linux目录 /var/lib/mysql 的对应库目录下可以看到如下内容:

注意,采用不同的存储引擎,建表后产生的文件不一样:

  • 采用InnoDB存储引擎建表,会产生对应的xxx.frm(表结构)和 xxx.ibd(表数据+表索引)文件
  • 采用MyISAM存储引擎建表,会产生对应的 xxx.frm(表结构)、xxx.MYD(表数据)和 xxx.NYI(表索引)文件 

二,查看表

查看表结构的SQL为 desc 表名;  如下:

关于第一列的解释: 

  • Field:表示该字段名称。
  • Type:表示该字段的数据类型。
  • Null:表示该字段是否允许为空。
  • Key:表示索引类型,比如主键索引为PRI(后面讲)。
  • Default:表示该字段的默认值。
  • Extra:表示该字段的额外信息说明。

如果要查看创建表时的更具体地细节,可以使用下面SQL查看:(和查看库的那个很像)

show create table 表名

 

三,修改表

①相关SQL

ALTER TABLE table_name ADD 新增列名 新增列的属性;
ALTER TABLE table_name MODIFY 列名 修改后的列属性;
ALTER TABLE table_name DROP 列名;
ALTER TABLE table_name RENAME [TO] 新表名;
ALTER TABLE table_name CHANGE 列名 新列名 新列属性;

我们仍然以helloworld库的student表做演示:

 

②新增列

 我们可以在上面的表中新增一列class,表示该学生所在的班级:

这时我们再插入一条数据:

③修改列类型

 讲student表的id列的int类型也换成varchar类型,如下:

注意:修改列类型后会舍弃掉原来的comment字段,如果修改后要保留,需要重新设定comment字段 

④修改列名

 这个简单,加入我们要将列的class修改为“班级”:

⑤修改表名

 将表名student修改为“学生表”:

⑥删除列

 将学生表的班级列删除:

删除后,该列对应的信息也会一并删除 

四,删除表

删除表的SQL如下:

DROP [TEMPORARY] TABLE [IF EXISTS] table_name;
  • 在创建表语句中加上TEMPORARY关键字,那么服务器将创建出一个临时表,表示这个表会在我们与服务器的会话终止时自动drop

  • TEMPORARY表的名字可以与某个已有的永久表相同,当有TEMPORARY表存在时,对应的永久表会隐藏起来(即无法访问)。

  • 为了避免重新连接后(TEMPORARY已经不存在),在未做检测的情况下调用DROP误删了对应永久表,因此在使用DROP删除临时表时需要带上TEMPORARY关键字。


http://www.ppmy.cn/devtools/160105.html

相关文章

机器学习_14 随机森林知识点总结

随机森林(Random Forest)是一种强大的集成学习算法,广泛应用于分类和回归任务。它通过构建多棵决策树并综合它们的预测结果,显著提高了模型的稳定性和准确性。今天,我们就来深入探讨随机森林的原理、实现和应用。 一、…

数据分析--数据清洗

一、数据清洗的重要性:数据质量决定分析成败 1.1 真实案例警示 电商平台事故:2019年某电商大促期间,因价格数据未清洗导致错误标价,产生3000万元损失医疗数据分析:未清洗的异常血压值(如300mmHg&#xff…

一些网络编程的补充知识

1.INADDR_ANY 由于云服务器的IP地址是由对应的云厂商提供的,这个IP地址并不一定是真正的公网IP,这个IP地址是不能直接被绑定的,如果需要让外网访问,此时我们需要bind 0。系统当当中提供的一个INADDR_ANY,这是一个宏值…

工控网络安全介绍 工控网络安全知识题目

31.PDR模型与访问控制的主要区别(A) A、PDR把对象看作一个整体 B、PDR作为系统保护的第一道防线 C、PDR采用定性评估与定量评估相结合 D、PDR的关键因素是人 32.信息安全中PDR模型的关键因素是(A) A、人 B、技术 C、模型 D、客体 33.计算机网络最早出现在哪个年代(B) A、20世…

【RK3588嵌入式图形编程】-SDL2-构建模块化UI

构建模块化UI 文章目录 构建模块化UI1、概述2、创建UI管理器3、嵌套组件4、继承5、多态子组件6、总结在本文中,将介绍如何使用C++和SDL创建一个灵活且可扩展的UI系统,重点关注组件层次结构和多态性。 1、概述 在前面的文章中,我们介绍了应用程序循环和事件循环,这为我们的…

JavaScript(JS)

介绍 JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能使网页可交互 JavaScript 和Java 是完全不同的语言,不论是概念还是设计。但是基础语法类似 JS引入方式 内部脚本:将JS代码定义在HTML页面中 JavaScript代码…

【基础架构篇十五】《DeepSeek权限控制:RBAC+ABAC混合鉴权模型》

某天深夜,电商平台运营总监误触按钮,把价值千万的优惠券设置成全员可领。当你想追究责任时,却发现系统日志写着"操作人:admin"。这血淋淋的事故告诉我们:权限控制不是选择题,而是生死攸关的必答题。本文将深挖DeepSeek的RBAC+ABAC混合鉴权体系,看看他们如何做…

matlab齿轮传动

实现齿轮啮合分析,齿轮传动非线性分析,对扭转振动方程组进行求解,可得到齿轮扭转角随时间变化相关参数 列表 齿轮传动非线性分析,对扭转振动方程组进行求解,可得到齿轮扭转角随时间变化相关参数/niu_gou_yuan_Rg.m , …