MySQL表的操作

前言

在第一篇文章中,我们将所有的SQL语句分为三种,分别是DDL,DML,DCL。其分别对应的是数据定义语言,数据操作语言,数据控制语言。其中表的操作主要设计DDL与DML。DDL主要在建表、删表、修改表体现。而DML主要体现在插入表内容、删除表内容体现。

创建表

创建表的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 表示列的类型。
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。
  • COMMENT用于对指定列添加注释信息。
  • ENGINE用于指定表所采用的存储引擎。

创建表案例

创建一个users表,其用于表示某位人的基本信息:id号、用户名、用户的密码、生日。每个元素后面都带上注释,搜索引擎使用MyISAM,字符集使用utf8。

不要忘记,在创建表之前要先创建数据库并且use该数据库。

其创建案例如下:

不同的存储引擎,创建表的文件不一样。其中users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

  • users.frm:表结构
  • users.MYD:表数据
  • users.MYI:表索引

类似如下:

查看表结构

SQL语法如下:

复制代码
desc 表名;

查看我们刚才创建的表,查询结果如下:

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

如果想要查看更详细的细节,可以采用show create tables 表名。该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 列名 新列名 新列属性;

这里我们还是采用刚才创建的users表。

ADD

在users表中新增一列用于保存用户的电话。如下:

除此之外还可以将新增的列指定在表的位置,需要使用SQL语句的after。比如我们再新增addr在name后。

补充:新增列的其他属性如果不指定全为系统默认。

MODIFY

我们将刚才新增的addr修改为varchar(128)。

结果如下:

DROP

我们将addr列删除。

RANAME

我们将users表名修改为employee。

CHANGE

我们刚修改表名后的employee表中的tel修改为email。

删除表

删除表的SQL如下:

复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] table_name;

其中在创建表语句中加上TEMPORARY关键字,那么服务器将创建出一个临时表,该表会在你与服务器的会话终止时自动消失。TEMPORARY表的名字可以与某个已有的永久表相同,当有TEMPORARY表存在时,对应的永久表会隐藏起来(即无法访问)。为了避免重新连接后(TEMPORARY已经不存在),在未做检测的情况下调用DROP误删了对应永久表,因此在使用DROP删除临时表时需要带上TEMPORARY关键字。

将employee表删除。

相关推荐
p***s911 小时前
Spring数据库原理 之 DataSource
java·数据库·spring
虹科网络安全1 小时前
艾体宝干货 | Redis Java 开发系列#1 从零开始的环境搭建与实践指南
java·数据库·redis
火山引擎开发者社区1 小时前
火山引擎向量数据库 Milvus 版正式商业化:AI 时代的向量检索新标杆
数据库·milvus·火山引擎
十五年专注C++开发1 小时前
Asio2: 一个基于 Boost.Asio 封装的高性能网络编程库
网络·c++·boost·asio·asio2
gcfer1 小时前
CS144 中的C++知识积累
c++·右值引用·智能指针·optional容器
神秘的土鸡1 小时前
openEuler 25.09 企业级 MySQL主从复制部署与性能优化实战提升50%
linux·数据库·mysql·性能优化·openeuler
韩立学长1 小时前
基于Springboot课堂教学辅助系统08922bq1(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
知识分享小能手1 小时前
CentOS Stream 9入门学习教程,从入门到精通, CentOS Stream 9 命令行基础 —语法知识点与实战详解(4)
linux·学习·centos