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表删除。

相关推荐
米优2 分钟前
C/C++中实现自定义自动释放堆内存空间类
c语言·开发语言·c++
jerryinwuhan6 分钟前
linux_shell_2
linux
Hncj20226 分钟前
项目02--JsonRpc
linux·c++·ubuntu·rpc
网安INF7 分钟前
入侵检测系统(IDS)解析
网络·网络协议·安全·网络安全·ids
盛世宏博北京8 分钟前
学校图书馆自动化恒温恒湿控制系统技术方案
网络·数据库·人工智能
Sammyyyyy21 分钟前
MongoDB 的文档模型与 CRUD 实战
开发语言·数据库·mongodb·servbay
JobDocLS21 分钟前
Linux系统相关知识
linux·运维·服务器
00后程序员张22 分钟前
IOScer 开发环境证书包括哪些,证书、描述文件与 App ID 的协同管理实践
android·ios·小程序·https·uni-app·iphone·webview
QT 小鲜肉27 分钟前
【Linux命令大全】001.文件管理之gitview命令(实操篇)
linux·运维·服务器·chrome·笔记
挖矿大亨27 分钟前
C++中的引用
开发语言·c++