【mysql】—— 表的操作

news2024/12/24 2:16:33

前言:

在上期中,我们把 mysql 中库的基本操作进行了相应的讲解。本期,我将给大家讲解的是关于mysql 中表的基本操作。

MySQL标志矢量图 - 设计之家

目录

(一)创建表

(二)查看表结构

1、DESCRIBE 方式

 2、SHOW CREATE TABLE方式

(三)修改表

总结


 

(一)创建表

要创建一个 MySQL 表,你需要使用 CREATE TABLE 语句,并指定表的名称以及列的名称、数据类型和约束条件。

  • 以下是一个示例的 MySQL 表创建语句:
CREATE TABLE table_name (
    field1 datatype,
    field2 datatype,
    field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
【说明】
  1. field 表示列名
  2. datatype 表示列的类型
  3. character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  4. collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

 

在上面的语法中,你需要将 表名 替换为你想要创建的表的实际名称。然后,按照逗号分隔的方式指定每个列的名称、数据类型和约束条件。

例如,创建一个名为 user1 的表,包含 idname 、 passwordbirthday 这四个列,可以使用以下语句:

 

 【说明】

这条 SQL 语句用于创建一个名为 user1 的表。下面对每一行进行解释说明:

  • create table if not exists user1:创建一个名为 user1 的表,如果该表不存在的话。
  • (id int, name varchar(20) comment '用户名', password char(32) comment '用户密码', birthday date comment '生日'):定义了表的列和数据类型。该表包含四个列,分别是 id(整数类型)、name(最大长度为20的字符串类型,且带有注释 '用户名')、password(长度为32的字符类型,且带有注释 '用户密码')和 birthday(日期类型,带有注释 '生日')。
  • character set utf8 collate utf8_general_ci:设置字符集为 UTF-8,并设置排序规则为 utf8_general_ci。这样可以支持存储和处理中文字符。
  • engine MyIsam:指定使用 MyISAM 存储引擎。MyISAM 是 MySQL 的一种存储引擎,适用于读取频繁、写入较少的情况。

总之,上述 SQL 语句创建了一个名为 user1 的表,该表包含了 idnamepasswordbirthday 四个列,每个列都有其对应的数据类型和注释。字符集被设置为 UTF-8,排序规则为 utf8_general_ci。该表使用 MyISAM 存储引擎进行数据存储。如果表 user1 已经存在,则不会执行任何操作。

  • 我们去相应的目录下查看当前文件中创建的数据,具体如下:

紧接着,我在创建一张新的表,风格和上述的创建有点不同之处,大家可以根据自己的喜爱选择相应的创建方式。具体如下:

  【说明】

这条 SQL 语句用于创建一个名为 user2 的表。下面对每一行进行解释说明:

  • 本次创建除了最后的引擎不一样之外其他的都是一模一样的,只是创建的方式不一样;
  • engine=InnoDB:指定使用 InnoDB 存储引擎。InnoDB 是 MySQL 的一种事务型存储引擎,适用于要求事务支持和数据完整性的场景。

  • 当我们在去相应的文件下查看创建的数据时,发现了一个不一样的地方(两种引擎下创建出的数据不一样)。具体如下:

 

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

(二)查看表结构

在 MySQL 中,可以使用 DESCRIBE SHOW CREATE TABLE 语句来查看表的结构。

1、DESCRIBE 方式

  • 使用 DESCRIBE 语句:
DESCRIBE table_name;

table_name 替换为要查看结构的表名。执行该语句后,将返回包含列名、数据类型、键信息等表结构的结果集。 

  • 例如,当前我要查看之前创建的表的相关信息,我们就可以这样做:

 2、SHOW CREATE TABLE方式

  • 使用 SHOW CREATE TABLE 语句:

同样,将 table_name 替换为要查看结构的表名。执行该语句后,将返回一个结果集,其中包含创建表的 SQL 语句,其中包含完整的表结构定义。

 

【比较】

  1. 这两个语句都可以用于查看表的结构,但 SHOW CREATE TABLE 提供了包含完整表结构的 SQL 语句,更详细和全面;
  2. DESCRIBE 则提供了简洁的列信息。根据具体需求,选择适合的语句进行使用。

(三)修改表

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

 

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);

在 MySQL 中,可以使用 ALTER TABLE 语句来修改表的结构和属性。以下是一些常见的表操作示例:

  • 修改表名为 Hello 

  •  在 Hello 表添加二条记录

  •  在 Hello 表添加一个字段,假设用于保存图片路径

【说明】

这个 ALTER TABLE 语句用于在名为 Hello 的表中添加一个名为 image_path 的列,该列的数据类型是 VARCHAR(100),注释为 '照片路径'。新列将在现有的 birthday 列之后插入。

具体解释如下:

  • ALTER TABLE Hello:表示要修改的表是 Hello 表。
  • ADD image_path varchar(100):表示要向 Hello 表添加一个名为 image_path 的列,数据类型为 VARCHAR(100)。VARCHAR(100) 意味着该列可以存储最大长度为 100 的字符串。
  • COMMENT '照片路径':表示对新列添加注释,注释内容为 '照片路径'。
  • AFTER birthday:表示新列将被插入到现有的 birthday 列之后。这意味着 image_path 列将成为 birthday 列的后一个列。
  • 并且插入新字段后,对原来表中的数据没有影响

通过执行这个 ALTER TABLE 语句,将在 Hello 表中成功添加一个名为 image_path 的列,该列可以存储最大长度为 100 的字符串,并且具有注释 '照片路径'。

 

  • 修改列的数据类型(修改name,将其长度改成60

 我们还可以发现修改前后的一个区别:

 

  • 删除列:

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

  • 修改列名:

 

  • 删除表
语法格式 DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...

 

以上只是一些常见的表操作示例,MySQL 的 ALTER TABLE 语句还支持其他更复杂的操作,如修改列属性、添加索引等。根据具体需求,可以使用不同的 ALTER TABLE 语句来修改表。在执行 ALTER TABLE 语句时,需要注意备份重要数据以防意外发生。

总结

以上便是关于 mysql 中表的基本操作的全部内容。感谢大家的观看与支持!!!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/777596.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Data Structure, Algorithm,and Applications in C++

在学习这本书进阶内容之前,我们可以跟着它的第一章部分再巩固和复习。本书由Sartaj Sahni撰写,由王立柱和刘志红翻译。全书通俗易懂,内容丰富,是巩固C内容的不二选择。希望本文对各位有所帮助。 目录 1.函数与参数 1.1.传值参数…

【备考2023年CISSP认证考试学习手册,信息系统安全在职人员日常参考指南——《CISSP信息系统安全专家认证All-in-One(第9版)》】

《CISSP信息系统安全专家认证All-in-One(第9版)》针对最新发布的CISSP考试做了全面细致的修订和更新,涵盖(ISC)2新开发的2021 CISSP考试大纲的所有目标。这本综合性权威指南编排精当,每章开头列出学习目标,正文中穿插考试提示,章末…

精准测试之分布式调用链底层逻辑

目录 前言: ⼀、分布式调⽤链系统概述 分布式架构所带来的问题 分布式链路监控的作用 ⼆、调用链系统的演进 链路监控系统列表 三、调用链系统的底层实现逻辑 调用链系统的本质 调用链基本元素 事件捕捉 事件串联 事件的开始与结束 上传 四、Span 内容…

抖音账号矩阵系统源码解析和实现技巧。

开发背景 抖音是目前非常火爆的一款短视频社交软件,拥有数亿用户,每天都有大量的视频上传和分享。如何有效地管理和运营这些用户账号成为了各大抖音号主的一个难题。而抖音账号矩阵系统源码解析和实现技巧则成为了越来越多人关注的话题。 首先&#xf…

python用selenium模拟谷歌浏览器点页面

1、cmd安装selenium,输入pip install selenium 2、模拟点击热搜第一条进去,连接如下 https://weibo.com/newlogin?tabtypeweibo&gid102803&openLoginLayer0&urlhttps%3A%2F%2Fweibo.com%2F 3、查看谷歌版本 4、并去下面下载对应版本的web…

分布式光伏电站监控及集中运维管理-安科瑞黄安南

前言:今年以来,在政策利好推动下光伏、风力发电、电化学储能及抽水蓄能等新能源行业发展迅速,装机容量均大幅度增长,新能源发电已经成为新型电力系统重要的组成部分,同时这也导致新型电力系统比传统的电力系统更为复杂…

mac系统占用100多G怎么清除 mac内存系统占用了好多怎么清理

mac电脑运行速度足以傲视其他电脑系统,不易卡顿死机是苹果电脑的优势,但是其偏小的存储空间令人十分头痛。如果你的mac磁盘容量是仅有12GB,在使用一段时间之后,系统内存很有可能就要占用100多G,很快电脑会出现空间不够…

前端学习——ajax (Day2)

案例 - 图书管理 Bootstrap 弹框 modal官方文档 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport"…

小程序分类如何移动顺序

小程序的分类排序功能可以帮助商家根据自己的需求来调整展示在前端页面上的分类顺序&#xff0c;以便更好地呈现商品和提升用户体验。下面将介绍如何在小程序中进行分类移动顺序的操作步骤。 在小程序管理员后台->分类管理&#xff0c;可以看到所有的分类。 向上移动分类&a…

基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试

Jgrpc 本项目为基于 Go/Grpc/kubernetes/Istio 开发微服务的最佳实践提供参考。 并基于 Jenkins/Gitlab/Harbor 实现了CICD。 并使用 grpc-gateway 作为网关代理。 本最佳实践分为三个部分&#xff1a; 创建一个 pingservice 的微服务创建一个 pongservice 的微服务基于Je…

万宾管网水质监测仪 | 守护城市水生态环境

WITBEE万宾 管网水质监测仪EN400-WQ&#xff0c;新一代城市生命线智能监测仪器&#xff0c;可选 COD、氨氮和电导率等7项组合监测指标&#xff0c;4G无线通信适应地下排水管网极端恶劣环境&#xff0c;3年自供电长续航&#xff01;

【远程访问】文件同步工具:本地搭建免费开源的Syncthing自动文件同步服务器

文章目录 1.前言2. Syncthing网站搭建2.1. Syncthing下载和安装2.2. Syncthing网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 在数据爆炸的当下&#xff0c;每天都会产生海量的数据&#xff0c;这些数据可…

手劈二叉树

二叉树 概念 二叉树是一种常见的树状数据结构&#xff0c;每个节点最多有两个子节点&#xff0c;称为左子节点 和右子节点。它可以为空树&#xff08;没有任何节点&#xff09;&#xff0c;或者由根节点及其子节点组成。特点 具有层级结构&#xff0c;其中顶层的节点被称为根…

请求头/响应头、POST的使用方法、常用协议状态码

POST请求方法&#xff1a;添加资源 常用的几种数据格式&#xff1a; 1、XML的格式 2、表单数据格式 3、JSON数据格式 请求地址 请求方法 请求头 请求参数 COOKI E&#xff1a; 1、反爬虫 2、身份认证 Referer:请求是从哪个页面发送过来的 User-Agent&#xff1a;通…

机器学习---经验误差与过拟合、方差与偏差、性能度量、比较检验

1. 经验误差与过拟合 第三张图建立的模型&#xff0c;在训练集中通过x可以很好的预测y&#xff0c;然而我们不能预期该模型能够很好的预 测集外的数据&#xff0c;换句话说&#xff0c;这个模型没有很好的泛化能力。 第一张图建立了一个线性模型&#xff0c;但是该模型并没有…

PHP中常用数组排序算法

一&#xff1a;冒泡排序 1&#xff1a;算法步骤 比较相邻项的值&#xff0c;如果前者比后者大&#xff0c;交换顺序。 进行一轮比较后&#xff0c;最后一个值为最大的值。 进行下一轮比较&#xff0c;比上次少比较一项。 以此类推&#xff0c;比较剩下最后一项的时候&#…

【Hive】group by 分组聚合后使用窗口函数

文章目录 1. group by 分组聚合后使用排序窗口函数1.1 两种思路 与 简单例子1.2 新思路的解释 2. group by 分组聚合后使用聚合窗口函数3. group by 分组聚合后使用分析窗口函数 1. group by 分组聚合后使用排序窗口函数 1.1 两种思路 与 简单例子 group by 之后&#xff0c;…

AI时代带来的图片造假危机,该如何解决

一、前言 当今&#xff0c;图片造假问题非常泛滥&#xff0c;已经成为现代社会中一个严峻的问题。随着AI技术不断的发展&#xff0c;人们可以轻松地通过图像编辑和AI智能生成来篡改和伪造图片&#xff0c;使其看起来真实而难以辨别&#xff0c;之前就看到过一对硕士夫妻为了骗…

【Linux】进程信号 -- 信号保存与递达 | 信号捕捉 | 僵尸进程的信号处理方法

阻塞信号信号相关概念内核中的表示sigset_t信号集操作函数sigprocmasksigpending 小实验 - 观察pending表 信号的捕捉流程sigaction1.小实验&#xff1a;如果进程在处理2号信号&#xff0c;那我们继续发送2号信号会怎么样&#xff1f;2.如何正在处理这个信号&#xff0c;同时屏…

js - 关于防抖和节流函数的使用和细节

文章目录 一、什么是防抖二、应用场景三、实现原理1&#xff0c;第一个问题&#xff1a;为什么使用了闭包&#xff08;也就是说timer为什么定义到了外面&#xff09;2&#xff0c;第二个问题&#xff1a;防抖函数中this的指向问题&#xff1a; 四、节流函数 一、什么是防抖 事…