首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MySQL 表操作实用指南

MySQL 表操作实用指南

作者头像
云域A
发布2026-02-03 13:39:20
发布2026-02-03 13:39:20
870
举报

一、查询

显示所有表

这将返回一个表格,其中包含数据库中所有的表的名称。

代码语言:javascript
复制
SHOW TABLES;
查看特定表的结构

table_name 替换为您想要查看结构的表的名称。这将返回一个结果集,包含了表的列名、数据类型、键信息等。

代码语言:javascript
复制
DESCRIBE table_name;
-- 或者
DESC table_name;
查看表的详细信息
代码语言:javascript
复制
SHOW CREATE TABLE table_name;

这将返回一个结果集,其中包含了用于创建指定表的 SQL 语句,包括列定义、索引、主键等信息。

请确保将上述语句中的 table_name 替换为您要查询的实际表的名称。

二、创建

CREATE TABLE 表名(

字段1 字段1类型 [ COMMENT 字段1注释 ],

字段2 字段2类型 [COMMENT 字段2注释 ],

字段3 字段3类型 [COMMENT 字段3注释 ],

......

字段n 字段n类型 [COMMENT 字段n注释 ]

) [ COMMENT 表注释 ] ;

代码语言:javascript
复制
create table tb_user(
	id int comment '编号',
	name varchar(50) comment '姓名',
	age int comment '年龄',
	gender varchar(1) comment '性别'
) comment '用户表';

三、数据类型

MySQL中的数据类型有很多,主要分为三类:数值类型、字符串类型、日期时间类型。

数值类型

INT: 用于存储整数值,如年龄、数量等。

DECIMAL: 用于存储精确的十进制数,如货币金额。

FLOAT: 用于存储单精度浮点数,适用于近似值。

DOUBLE: 用于存储双精度浮点数,提供更高的精度。

代码语言:javascript
复制
CREATE TABLE 示例 (
    编号 INT,
    价格 DECIMAL(10, 2),
    温度 FLOAT,
    重量 DOUBLE
);
字符串类型

CHAR: 用于存储固定长度的字符,适合存储长度固定的数据,如国家代码。

VARCHAR: 用于存储可变长度的字符,适用于较短的字符串,如姓名。

TEXT: 用于存储大段文本,如文章内容。

代码语言:javascript
复制
CREATE TABLE 示例 (
    国家代码 CHAR(2),
    姓名 VARCHAR(100),
    描述 TEXT
);

3、日期时间类型:

DATE: 用于存储日期,格式为'YYYY-MM-DD'。

TIME: 用于存储时间,格式为'HH:MM:SS'。

TIMESTAMP: 用于存储日期和时间的组合,通常用于记录数据的创建或修改时间。

代码语言:javascript
复制
CREATE TABLE 示例 (
    出生日期 DATE,
    预约时间 TIME,
    创建时间 TIMESTAMP
);

四、表操作-案例

设计一张员工信息表,要求如下:

1. 编号(纯数字)

2. 员工工号 (字符串类型,长度不超过10位)

3. 员工姓名(字符串类型,长度不超过10位)

4. 性别(男/女,存储一个汉字)

5. 年龄(正常人年龄,不可能存储负数)

6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)

7. 入职时间(取值年月日即可)

对应的建表语句如下:
代码语言:javascript
复制
create table emp(
	id int comment '编号',
	workno varchar(10) comment '工号',
	name varchar(10) comment '姓名',
	gender char(1) comment '性别',
	age tinyint unsigned comment '年龄',
	idcard char(18) comment '身份证号',
	entrydate date comment '入职时间'
) comment '员工表';

五、表操作-主键、约束、修改

在表的创建语句中,使用主键(Primary Key)来标识唯一的员工编号(ID),这样可以确保编号的唯一性。

代码语言:javascript
复制
CREATE TABLE emp (
  id INT PRIMARY KEY COMMENT '编号',
  workno VARCHAR(10) COMMENT '工号',
  name VARCHAR(10) COMMENT '姓名',
  gender CHAR(1) COMMENT '性别',
  age TINYINT UNSIGNED COMMENT '年龄',
  idcard CHAR(18) COMMENT '身份证号',
  entrydate DATE COMMENT '入职时间'
) COMMENT '员工表';

使用约束来确保数据的完整性,比如使用 NOT NULL 约束来防止某些字段为空,使用 UNIQUE 约束来确保身份证号的唯一性。

代码语言:javascript
复制
CREATE TABLE emp (
  id INT PRIMARY KEY COMMENT '编号',
  workno VARCHAR(10) NOT NULL COMMENT '工号',
  name VARCHAR(10) NOT NULL COMMENT '姓名',
  gender CHAR(1) COMMENT '性别',
  age TINYINT UNSIGNED COMMENT '年龄',
  idcard CHAR(18) UNIQUE NOT NULL COMMENT '身份证号',
  entrydate DATE COMMENT '入职时间'
) COMMENT '员工表';

在表操作中,可以为添加字段、修改字段和删除字段的操作添加一个注释,以便其他开发人员能够理解操作的目的。

如果需要修改表名,建议为新表名选择一个有意义的名称,以提高代码的可读性。表名的命名应具有描述性,能够清晰地表示表的用途。

在修改字段名和字段类型时,建议使用更具描述性的字段名,以提高代码的可维护性。在修改字段名和类型时,还应确保已有数据与新字段名和类型兼容。

代码语言:javascript
复制
-- 为emp表增加一个新的字段"昵称"为nickname,类型为VARCHAR(20)
ALTER TABLE emp ADD nickname VARCHAR(20) COMMENT '昵称';

-- 将emp表的nickname字段修改为username,类型为VARCHAR(30)
ALTER TABLE emp CHANGE nickname username VARCHAR(30) COMMENT '用户名';

-- 删除emp表的字段username
ALTER TABLE emp DROP username;

-- 修改表名emp改employee
ALTER TABLE emp RENAME TO employee;

六、删除表

代码语言:javascript
复制
DROP TABLE [ IF EXISTS ] 表名;

可选项 IF EXISTS 代表,只有表名存在时才会删除该表,表名不存在,则不执行删除操作(如果不

加该参数项,删除一张不存在的表,执行将会报错)。

案例

如果tb_user表存在,则删除tb_user表

代码语言:javascript
复制
DROP TABLE IF EXISTS tb_user;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、查询
    • 显示所有表
    • 查看特定表的结构
    • 查看表的详细信息
  • 二、创建
  • 三、数据类型
    • 数值类型
    • 字符串类型
  • 四、表操作-案例
    • 设计一张员工信息表,要求如下:
    • 对应的建表语句如下:
  • 五、表操作-主键、约束、修改
  • 六、删除表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档