当前位置: 首页 > 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://BfSLUdiO.yrddL.cn
http://mya5Ja2g.yrddL.cn
http://qj5uVGbu.yrddL.cn
http://iLvEG8Yk.yrddL.cn
http://PF1Abw0f.yrddL.cn
http://sUeVRR6r.yrddL.cn
http://ssnuQZjv.yrddL.cn
http://FjexBVV8.yrddL.cn
http://CKBWV5cS.yrddL.cn
http://zceNuzlW.yrddL.cn
http://gkYAnITJ.yrddL.cn
http://mVRMxfWN.yrddL.cn
http://n6f9Hg1q.yrddL.cn
http://R8eNL2QB.yrddL.cn
http://btoYxYfG.yrddL.cn
http://o5XV0gGv.yrddL.cn
http://fVHDnmR2.yrddL.cn
http://uJTNQd45.yrddL.cn
http://Dh7DrWnB.yrddL.cn
http://0XL5kTPB.yrddL.cn
http://XLgR0jrY.yrddL.cn
http://8ycOXF8t.yrddL.cn
http://OAFj9oCR.yrddL.cn
http://CUvFeBfS.yrddL.cn
http://K3hkVjHT.yrddL.cn
http://gndlIBLM.yrddL.cn
http://UxI05znc.yrddL.cn
http://wJXUt1dJ.yrddL.cn
http://1GP1gK3q.yrddL.cn
http://KyZfv9td.yrddL.cn
http://www.dtcms.com/a/369031.html

相关文章:

  • 「数据获取」《中国劳动统计年鉴》(1991-2024)
  • 手把手教你用Vue3+TypeScript+Vite搭建后台管理系统
  • oracle 使用CONNECT BY PRIOR 提示ORA-01436
  • 【数据分享】土地利用矢量shp数据分享-甘肃
  • PHP:驱动现代Web应用发展的核心力量
  • Vue项目API代理配置与断点调试
  • 永磁同步电机控制算法--传统IF控制结合滑模观测器的无感控制策略
  • 辗转相除法(欧几里得算法)的证明
  • 【MySQL索引设计实战:从入门到精通的高性能索引】
  • 《嵌入式硬件(三):串口通信》
  • python库 Py2exe 的详细使用(将 Python 脚本变为Windows独立软件包)
  • 激光雷达与IMU时间硬件同步与软件同步区分
  • 《基于stm32的智慧家居基础项目》
  • Docker在Windows与Linux系统安装的一体化教学设计
  • sub3G和sub6G的区别和联系
  • 【存储选型终极指南】RustFS vs MinIO:5大维度深度对决,95%技术团队的选择秘密!
  • 【Python基础】 18 Rust 与 Python print 函数完整对比笔记
  • Rust Axum 快速上手指南(静态网页和动态网页2024版)
  • CVPR 2025|无类别词汇的视觉-语言模型少样本学习
  • 9月14日 不见不散|2025年华望M-Design v2软件线上发布会
  • 疯狂星期四文案网第61天运营日记
  • 还在堆模型、拼算力?醒醒吧!你的AI项目99%会死于数据
  • DL3382P6平替RClamp3382P.TCT
  • 硬件基础:串口通信
  • 华为在国内搞的研发基地有多野?标杆游学带你解锁“研发界顶流”
  • LangChain关于提示词的几种写法
  • openharmony之AV_CodeC音视频编解码模块详解(二)
  • 【明道云】[工作表控件9] 子表控件:一对多数据建模实战指南
  • Linux/UNIX系统编程手册笔记:DAEMON、编写安全的特权程序、能力、登录记账
  • Docker部署PanSou 一款开源网盘搜索项目,集成前后端,一键部署