【MySQL】表的操作

文章目录

    • [1. 创建表](#1. 创建表)
    • [2. 创建表案例](#2. 创建表案例)
    • [3. 查看表结构](#3. 查看表结构)
    • [4. 修改表](#4. 修改表)
      • [4.1 修改表名为 user](#4.1 修改表名为 user)
      • [4.2 在 user 表中添加两条记录](#4.2 在 user 表中添加两条记录)
      • [4.3 在 user 表中添加一个字段(新增一列)](#4.3 在 user 表中添加一个字段(新增一列))
      • [4.4 修改 name 字段的属性,将其长度改成 60](#4.4 修改 name 字段的属性,将其长度改成 60)
      • [4.5 删除 password 列](#4.5 删除 password 列)
      • [4.6 将 name 列修改为 xingming](#4.6 将 name 列修改为 xingming)
    • [5. 删除表](#5. 删除表)

1. 创建表

语法

sql 复制代码
CREATE TABLE table_name (
 	field1 datatype,
 	field2 datatype,
 	field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

说明:

  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

2. 创建表案例

老规矩,在建表之前,我们先创建一个 user_db 的数据库:

sql 复制代码
// 建库
create database user_db;

// 使用库
use user_db;

结果如下:

建表的语法:

sql 复制代码
create  table  users (
 	id int,
 	name varchar(20) comment '用户名',
 	password char(32) comment '密码是32位的md5值',
 	birthday date comment '生日'
) character set utf8 engine MyISAM;

结果如下:

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

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

我们可以在 /var/lib/mysql/user_db 目录下查看:

此时,我们再建一个 engineinnodb 的数据库,观察存储目录:

此时可以看到存储引擎为 innodb 的表只有 2 个配置文件。

3. 查看表结构

查看表结构之前,先确认自己在哪一个数据库中:

sql 复制代码
select database();

结果如下:

再查看我当前所在的这个数据库里面有几张表:

sql 复制代码
show tables;

结果如下:

接着再查看表的详细信息:

sql 复制代码
desc 表名;

结果如下:

其中,每一列的含义如下:

除此之外,我们还可以查看表创建的时候的详细信息:

sql 复制代码
show create table user1 \G

结果如下:

4. 修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。

语法如下:

sql 复制代码
ALTER TABLE  tablename ADD (column datatype [DEFAULT expr][,column datatype]...);

ALTER TABLE  tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);

ALTER TABLE  tablename DROP (column);

我们来看几个案例:

4.1 修改表名为 user

语法:

sql 复制代码
alter table users rename to employee;

结果如下:

注意: to 可以省掉。

4.2 在 user 表中添加两条记录

语法:

sql 复制代码
insert into user value (1, '张三', '123456', '2000-10-1');
insert into user value (2, '李四', '1234567', '2002-12-25');

结果如下:

4.3 在 user 表中添加一个字段(新增一列)

主要用于保存图片路径,并且把新增的列放到表的最后。

sql 复制代码
alter table user add image_path varchar(128) comment '用户的头像路径' after birthday;

结果如下,并且可以看到插入新字段后,对原来表中的数据没有影响:

4.4 修改 name 字段的属性,将其长度改成 60

sql 复制代码
alter table user modify name varchar(60);

结果如下:

4.5 删除 password 列

sql 复制代码
alter table user drop password;

结果如下:

注意:删除字段一定要小心,删除字段及其对应的列数据都没了。

4.6 将 name 列修改为 xingming

sql 复制代码
alter table user change name xingming varchar(60) comment '用户的名字';

结果如下:

5. 删除表

语法:

sql 复制代码
DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

示例:

sql 复制代码
drop table user;

结果如下:

相关推荐
ba_pi1 分钟前
每天写点什么2026-03-19-Doris三种存储模型
java·数据库·mysql
oem1102 分钟前
Python Web爬虫入门:使用Requests和BeautifulSoup
jvm·数据库·python
CSDN_Colinw11 分钟前
Python GUI开发:Tkinter入门教程
jvm·数据库·python
Hui Baby12 分钟前
TIDB分布式数据库提交设想
数据库·分布式·tidb
ZhengEnCi20 分钟前
J7A-已有数据表如何安全添加新字段 🛡️
数据库
2401_8331977322 分钟前
用Python制作一个文字冒险游戏
jvm·数据库·python
一叶飘零_sweeeet29 分钟前
数据库连接池天花板之争:HikariCP 与 Druid 底层原理 + 高并发调优全拆解
数据库·hikaricp·数据库连接池·druid
GoodStudyAndDayDayUp29 分钟前
RUO-VUE-PRO权限关联sql
java·数据库·sql
@insist12331 分钟前
数据库系统工程师-SQL 数据定义语言(DDL)核心知识点与软考实战指南
数据库·oracle·软考·数据库系统工程师·软件水平考试