【MySQL初阶】04-数据表的操作

前言: 在有了数据类型的认识之后啊,我们就可以进入到数据表的创建等相关操作,那么本章节将讲述MySQL中数据表的操作的基本语法以及使用。

显示表

  • 前提:我们想要创建数据表,那么就先查看是否在数据库中有这张表,如果有了,我们就不要么不创建,要么就删除已有的表再重新建新的表,那么在操作数据表之前,得先告诉MySQL想要操作的目标数据库:use 数据库名;

    语法:
sql 复制代码
show tablses;

创建数据表

语法

sql 复制代码
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
 field datatype [约束] [comment '注解内容']
 [, field datatype [约束] [comment '注解内容']] ...
) [engine 存储引擎] [character set 字符集] [collate 排序规则];

语法解释:


细节1:上述语法简要形式如下:

顺着这个模版,我们就来创建一张student表如下


细节2:各个字段之间使用 逗号 分隔开,最后一个字段不可以使用逗号


细节3:创建表是可以使用校验来判断当前数据库中是否存在该表


细节4:解释语法中的其他参数




总结:创建表的完整形式

sql 复制代码
-- 总结创建表的完整形式
-- 首先都是根据需求来的
create table if not exists 表名(
  字段1 字段类型,
  字段2, 字段类型,
  字段2, 字段类型,
  ...
); #注意最后要加分号

查看表的结构

语法:

sql 复制代码
describe 表名;

演示及解释如下图:


修改数据表

语法的格式:如何和MySQL沟通:

  • 让MySQL干什么? ==》 修改表结构
  • 对应的目标是什么? ==》 哪一张表(tbl_name)
  • 具体怎么做? ==》 通过不同的子句指定要做的修改类型(添加/修改/删除/重命名列,或重命名表)

参数语法说明和演示:

• tbl_name:要修改的表名

sql 复制代码
alter table 员工表 ...;

• add:向表中添加新列

语法: add [column] 列名 列定义 [first | after 列名]
演示:

sql 复制代码
-- 在最后添加"手机号"列
alter table 员工表 add 手机号 varchar(15);

-- 在"姓名"列后添加"邮箱"列  
alter table 员工表 add 邮箱 varchar(100) after 姓名;

• modify:修改现有列的定义

语法: modify [column] 列名 新定义 [first | after 列名]
演示:

sql 复制代码
-- 扩展姓名列的长度
alter table 员工表 modify 姓名 varchar(50);

-- 将手机号列移到邮箱列之后
alter table 员工表 modify 手机号 varchar(15) after 邮箱;

• drop:删除表中的列

语法: drop [column] 列名
演示:

sql 复制代码
alter table 员工表 drop 手机号;

• rename column:重命名现有列

语法: rename column 旧列名 to 新列名
演示:

sql 复制代码
alter table 员工表 rename column 邮箱 to 电子邮箱;

• rename [to | as] new_tbl_name:重命名表

语法: rename [to | as] 新表名
演示:

sql 复制代码
alter table 员工表 rename to 职员表;
-- 或
alter table 员工表 rename as 职员表;

完整示例(组合多个操作):

sql 复制代码
alter table 员工表
  add 入职日期 date after 姓名,
  modify 姓名 varchar(50),
  rename column 邮箱 to 工作邮箱,
  rename to 职员信息表;

示例解释如下图:


补充说明:修改表的结构语法比较复杂,比价繁琐,不建议背,而是记住和MySQL的沟通方式,等遇到对应的操作的时候去查阅相关开发文档/或者开发手册去完成具体的业务


删除表

语法:

sql 复制代码
drop table [if exists] 表名;

示例:


注意事项:

  • 删除表必须谨慎操作,一旦删除,数据永久丢失
  • 删除表会永久删除表结构和所有数据
  • 操作不可逆,除非有备份
  • 生产环境务必先备份再操作
    注意:删除表的危险性比删除数据库还高,因为数据库删了容易发现,但是表删了,很难发现,所以在做删除表的操作的时候,务必不要冲动。

补充细节1:在SQL中对字段或者表名的命名,如果单词超过两个,那么通常使用的是"蛇形命名法",也就是说带下划线。例如如下所示:

sql 复制代码
create table if not exists student_info(
  student_id int,
  student_name varchar(20)
);

到此,数据表的相关操作便结束了!!!

相关推荐
Elastic 中国社区官方博客13 小时前
在 Elasticsearch 中使用 Mistral Chat completions 进行上下文工程
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
编程爱好者熊浪15 小时前
两次连接池泄露的BUG
java·数据库
南宫乘风16 小时前
基于 Flask + APScheduler + MySQL 的自动报表系统设计
python·mysql·flask
TDengine (老段)16 小时前
TDengine 字符串函数 CHAR 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
qq74223498417 小时前
Python操作数据库之pyodbc
开发语言·数据库·python
姚远Oracle ACE17 小时前
Oracle 如何计算 AWR 报告中的 Sessions 数量
数据库·oracle
Dxy123931021618 小时前
MySQL的SUBSTRING函数详解与应用
数据库·mysql
码力引擎18 小时前
【零基础学MySQL】第十二章:DCL详解
数据库·mysql·1024程序员节
杨云龙UP18 小时前
【MySQL迁移】MySQL数据库迁移实战(利用mysqldump从Windows 5.7迁至Linux 8.0)
linux·运维·数据库·mysql·mssql
l1t18 小时前
利用DeepSeek辅助修改luadbi-duckdb读取DuckDB decimal数据类型
c语言·数据库·单元测试·lua·duckdb