当前位置: 首页 > news >正文

MySQL】从零开始了解数据库开发 --- 表的操作

在这里插入图片描述

永远记住,你的存在是有意义的,
你很重要,
你是被爱着的,
而且你为这个世界带来了无可取代的东西。
-- 麦克西 《男孩、鼹鼠、狐狸和马》--

从零开始了解数据库开发

  • 创建数据表
  • 查看表结构
  • 修改数据表结构
  • 重命名表
  • 复制表
  • 删除表

今天我们来学习数据表的操作

创建数据表

创建数据表的语法:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name
[
(create_definition,...)
][table_options][select_statement]

说明:

  • TEMPORARY:表示创建的表是一个临时表
  • IF NOT EXISTS:避免创建重复的表
  • create_definition:这是表的列属性,MySQL要求创建表时至少存在一列
  • table_options:表的一些特性参数,其中大多数选项涉及的是表数据的存储方式和储存位置,比如ENGINE指定储存引擎,多数情况下用户无需指明表选项
  • select_statement:SELECT语句描述部分,用于快速创建表

接下来来看白属性create_definition的具体格式:

col_name type[NOT NULL | NULL] [DEFAULT default_value][AUTO_INCREMENT][PRIMARY KEY][reference_definition]
  • col_name:列名称
  • type:字段类型
  • NOT NULL | NULL :指出列是否允许为空值,系统一般默认允许为空值,所以当不允许为空值时,必须使用NOT NULL
  • DEFAULT default_value:表示列的默认值
  • AUTO_INCREMENT:表示是否自动编号,每个表只能有一个 AUTO_INCREMENT列,并且必须被索引
  • PRIMARY KEY:是否为主键,一个表只能有一个主键,如果表中没有PRIMARY KEY ,而某些应用程序需要主键,那么MySQL将会返回第一个没有任何NULL列的UNIQUE键作为主键
  • reference_definition:为字段添加注释

查看表结构

对于一个创建成功的数据表可以使用

SHOW [FULL] COLUMNS FROM 数据表名 [FROM 数据库名]
# 或者是
SHOW [FULL] COLUMNS FROM 数据库名.数据表名

进行查看。同样也可以选择使用DESCRIBE语句查看数据表结构

DESCRIBE 数据表名 [列名]

修改数据表结构

修改表结构是指增加/修改/删除字段,修改字段名/类型以及修改表名,这可以使用ALTER TABLE语句来实现,语法格式如下。

ALTER [IGNORE] TABLE 数据表名 alter_spec[,alter_spec]... | table_options

说明:

  • IGNORE:可选项,表示如果出现重复关键的行,则执行一行,其他重复的行被删除。
  • 数据表名:用于指定要修改的数据表的名称。
  • alter_spec:用于定义要修改的内容,其语法格式为
    ADD [COLUMN] col_name create_definition [FIRST | AFTER col_name]           -- 添加新列,可指定位置(FIRST表示第一列,AFTER表示在某列之后)
    ADD [COLUMN] ( col_name create_definition, ...)                              -- 同时添加多列
    ADD INDEX [index_name] (index_col_name, ...)                                    -- 添加普通索引
    ADD PRIMARY KEY (index_col_name, ...)                                          -- 添加主键
    ADD UNIQUE [INDEX] [index_name] (index_col_name, ...)                           -- 添加唯一索引
    ALTER [COLUMN] columnname {SET DEFAULT literal | DROP DEFAULT}               -- 修改列的默认值(设置或删除)
    CHANGE [COLUMN] old_col_name new_column_name col_definition [FIRST | AFTER col_name]  -- 修改列名和列定义,可指定位置
    MODIFY [COLUMN] col_name col_definition [FIRST | AFTER col_name]      -- 修改列定义,可指定位置
    DROP [COLUMN] col_name                                                     -- 删除指定列
    DROP PRIMARY KEY                                                             -- 删除主键
    DROP INDEX index_name                                                         -- 删除索引
    RENAME [TO] new_table_name                                                     -- 重命名表

重命名表

重命名表的语法为:

RENAME TABLE 数据表名1 to 数据表名2

修改数据表名的操作与修改数据库名一样,不建议使用,因为底层一旦修改啊,上层的所有业务都要进行修改,可能会造成意料之外的问题。

复制表

创建表的CREATE TABLE语句还有另一种语法结构:在一个已经存在的数据表的基础上创建该表的备份,也就是复制表。这种语法的格式如下

CREATE TABLE [IF NOT EXISTS] 数据表名 , {LIKE 源数据表名 | (LIKE 源数据表名)}

该语句的功能是根据源数据表生成一个数据表。注意这个数据表只是复制结构,并没有拷贝内容:
在这里插入图片描述

如果要拷贝内容的话可以使用:

CREATE TABLE 数据表名 AS SELECT * from 源数据表

删除表

删除表的语法很简单:

DROP TABLE [IF EXISTS]

实际使用时避免真正删除数据表!

http://www.xdnf.cn/news/1463581.html

相关文章:

  • 盘点完今年CoRL最火的VLA论文,发现最强的机器人,竟是用“假数据”喂大的
  • 前端视觉交互设计全解析:从悬停高亮到多维交互体系(含代码 + 图表)
  • “我店”模式:热潮中的商机还是泡沫陷阱?深度解析当前入局可行性
  • 阿里云vs腾讯云按量付费服务器
  • 腾讯云大模型训练平台
  • BigDecimal的使用
  • 【AndroidStudio】官网下载免安装版,AndroidStudio压缩版的配置和使用
  • 华为网路设备学习-32(BGP协议 七)路由反射器与联邦
  • 中小企业数字化转型卡在哪?选对AI工具+用好企业微信,人力成本直降70%
  • SQLalachemy 错误 - Lost connection to MySQL server during query
  • 功能强大的多线程端口扫描工具,支持批量 IP 扫描、多种端口格式输入、扫描结果美化导出,适用于网络安全检测与端口监控场景
  • 基于SpringBoot的旅游管理系统的设计与实现(代码+数据库+LW)
  • 零基础直奔HCIE?先打好基础,后续才更轻松!
  • Redis 深度解析:数据结构、持久化与集群
  • 【Linux手册】动静态库:从原理到制作
  • mcp_clickhouse代码学习
  • 大彩串口屏-烧录与调试
  • 解决微信小程序开发初始化npm install包失败
  • uniapp阿里云验证码使用
  • Java观察者模式
  • 【Linux游记】基础指令篇
  • 关于CAN总线bus off 理论标准 vs 工程实践
  • XX汽集团数字化转型:全生命周期网络安全、数据合规与AI工业物联网融合实践
  • 数据可视化工具推荐:5款让图表制作轻松上手的神器
  • 23ai数据库通过SQLcl生成AWR报告
  • 【FastDDS】Layer Transport ( 01-overview )
  • 五年霸榜|悬镜安全持续引领《2025年中国网络安全市场全景图》DevSecOps开发安全赛道
  • Redis 发布订阅:社区的 “通知栏与分类订阅” 系统
  • Linux/UNIX系统编程手册笔记:DAEMON、编写安全的特权程序、能力、登录记账
  • 【QT 5.12.12 下载 Windows 版本】