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

相关推荐
123过去5 小时前
wifi-honey使用教程
linux·网络·测试工具
志栋智能6 小时前
低成本自动化巡检:7×24小时守护业务稳定
运维·网络·自动化
ZTLJQ6 小时前
数据的基石:Python中关系型数据库完全解析
开发语言·数据库·python
升鲜宝供应链及收银系统源代码服务6 小时前
《IntelliJ + Claude Code + Gemini + ChatGPT 实战配置手册升鲜宝》
java·前端·数据库·chatgpt·供应链系统·生鲜配送
2301_818419017 小时前
C++中的解释器模式变体
开发语言·c++·算法
爱学习的大牛1237 小时前
windows tcpview 类似功能 c++
c++
跟着珅聪学java7 小时前
js编写中文转unicode 教程
前端·javascript·数据库
小江的记录本7 小时前
【Redis】Redis全方位知识体系(附《Redis常用命令速查表(完整版)》)
java·数据库·redis·后端·python·spring·缓存
Deitymoon7 小时前
linux——孤儿进程和僵尸进程
linux
biter down7 小时前
C++11 统一列表初始化+std::initializer_list
开发语言·c++