Mysql表的简单操作

🏝️专栏:Mysql_猫咪-9527的博客-CSDN博客
🌅主页:猫咪-9527-CSDN博客 

“欲穷千里目,更上一层楼。会当凌绝顶,一览众山小。”

目录

3.1 创建表

 3.2 查看表结构

3.3 修改表

1. 添加字段

2. 修改字段

3. 删除字段

4.修改字段名

5. 修改表名

6.删除表 

3.4 实践案例:修改表


在数据库中,表的操作主要包括表的创建、查看、修改、删除等。了解如何操作这些表是数据库管理和开发的基本技能。

3.1 创建表

创建表时,指定表的结构、数据类型、字符集、校验规则和存储引擎等。以下是创建表的详细语法:

语法:

create table table_name (field1 datatype [constraint],field2 datatype [constraint],...
) [character set charset_name] [collate collation_name] [engine storage_engine];
  • field: 表示列名(字段名)

  • datatype: 列的数据类型(如 int、varchar、date 等)

  • constraint: 可选的约束条件(如 primary key、not null、unique 等)

  • character set: 字符集(可选,如果未指定,使用数据库的默认字符集)

  • collate: 校验规则(可选,如果未指定,使用数据库的默认校验规则)

  • engine: 存储引擎(如 innodb、myisam 等)

注:括号[]里面可以省略,自定义写或者不写。

 

 查看表的创建信息:

show create table user;

其中被圈起来的就是我们没有写,默认被添加的。

示例:

create table user (id int primary key, name varchar(20) not null comment '用户名', password char(32) not null comment '密码是32位的md5值', birthday date comment '生日'
) character set utf8 collate utf8_general_ci engine=myisam;

作用:

  • 创建一个名为 users 的表,包含 idnamepasswordbirthday 字段。

  • 设置字符集为 utf8,校验规则为 utf8_general_ci,存储引擎使用 myisam

说明

  • primary key:定义主键,确保该字段唯一且不为空。

  • not null:字段不能为空。

  • comment:给字段加注释,便于理解字段用途。

存储引擎说明

不同存储引擎具有不同的特性:

  • myisam:适用于读取较多的场景,存储和索引分离。

  • innodb:支持事务,行级锁,外键约束,适用于高并发写操作。

 3.2 查看表结构

语法:

desc 表名;

或者

show columns from table_name;
  • table_name: 表的名称

使用规则:

  • describe: 显示表的字段信息,包括字段名、数据类型、是否允许 null 值、键的类型(如 primary keyindex 等)及其他信息。

  • show columns: 和 describe 类似,但输出格式可能略有不同。

示例:

describe user;

3.3 修改表

1. 添加字段

语法:

alter table table_name add column column_name datatype 
[constraint] [after existing_column];

注:mysql支持分段书写指令 

  • table_name: 表的名称

  • column_name: 新增字段的名称

  • datatype: 字段的数据类型

  • constraint: 可选约束,指定列的规则,如 not nulldefault

  • existing_column: 如果指定,将字段添加到该字段之后

使用规则:

  • add column: 添加新字段时,可以指定新字段的默认值、约束条件以及字段的位置(是否放在已有字段后面)。

示例:

alter table user add assets varchar(100) comment '图片路径' after birthday;

作用:

  • users 表中添加名为 assets 的字段,用于保存图片路径,数据类型为 varchar(100),并放置在 birthday 字段后。

2. 修改字段

语法:

alter table table_name modify column column_name datatype [constraint];
  • column_name: 要修改的字段名称

  • datatype: 新的数据类型

  • constraint: 可选约束

使用规则:

  • modify column: 修改现有字段的类型或约束条件。可以改变数据类型、长度、是否允许 null 等。

  • 修改字段时,字段位置不能更改。

示例:

alter table users modify name varchar(60) not null;

作用:

  • 修改 users 表中 name 字段的长度为 60,并设置为 not null。 

 

3. 删除字段

语法:

alter table table_name drop column column_name;
  • column_name: 要删除的字段名称

使用规则:

  • drop column: 删除字段时会丢失该字段的数据,操作前请确保备份。

示例:

drop table user drop asserts;

作用:

  • 删除 user 表中的 asserts 字段。

4.修改字段名

语法:

alter table table_name change column old_column_name new_column_name datatype [constraint];
  • table_name: 表的名称

  • old_column_name: 要修改的字段的原名称

  • new_column_name: 修改后的字段名称

  • datatype: 字段的数据类型(必须重新指定)

  • constraint: 可选的约束(如 not nullunique 等)

使用规则:

  • change column: 用于修改字段名称,同时可以修改字段的数据类型和约束。修改时,必须提供字段的完整数据类型,即使只是修改名称,也需要指定数据类型。

  • 注意:在修改字段名时,不能省略数据类型和原字段名称。

示例:

alter table users change column name xingming varchar(60) not null;

作用:

  • users 表中的 name 字段重命名为 xingming,并将数据类型修改为 varchar(60),且字段不能为空(not null)。

5. 修改表名

语法:

alter table old_table_name rename to new_table_name;
  • old_table_name: 原表名

  • new_table_name: 新表名

使用规则:

  • rename to: 修改表名时,要保证新名称没有与现有表重名。

6.删除表 

drop table [表名];

3.4 实践案例:修改表

假设我们有一个 users 表,包含以下字段:idnamepasswordbirthday

1. 插入数据

insert into users (id, name, password, birthday) 
values (1, 'a', 'b', '1982-01-04'),(2, 'b', 'c', '1984-01-04');

2. 查看表结构

describe users;

3. 添加字段:添加 assets 字段,保存图片路径:

alter table users add assets varchar(100) comment '图片路径' after birthday;

4. 修改字段:修改 name 字段的长度:

alter table users modify name varchar(60);

5. 删除字段:删除 password 字段:

alter table users drop password;

6. 修改表名:将表名 users 改为 employee

alter table users rename to employee;

7. 最终查看表结构

describe employee;

注: 

  • 创建表:创建表时,确保字段类型、约束条件、字符集和存储引擎的选择合适。

  • 修改表:通过 alter table 命令,可以添加、删除、修改字段,甚至修改表名。

  • 删除表:使用 drop table 命令删除表,操作时要格外小心。

  • 注意:所有的修改表结构的操作都会影响数据完整性,因此在进行这些操作时,务必先做好备份。

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

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

相关文章

【云馨AI-大模型】自动化部署Dify 1.1.2,无需科学上网,Linux环境轻松实现,附Docker离线安装等

Dify介绍 官网:https://dify.ai/zh生成式 AI 应用创新引擎开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。 Dify安装脚本 目录创建 mkdir -p /data/yunxinai &&a…

WordPress上传图片时显示“未提供数据”错误

在WordPress中上传图片时显示“未提供数据”的错误,通常是由多种原因引起的,以下是一些常见的问题及其解决方法: 1. 文件权限问题 WordPress需要正确的文件和目录权限才能正常上传图片。如果权限设置不正确,可能会导致无法上传图…

python3面试题20个(python web篇)

更多内容请见: python3案例和总结-专栏介绍和目录 文章目录 1.python asyncio的原理?2.对Flask蓝图(Blueprint)的理解?3.Flask 和 Django 路由映射的区别?4.什么是wsgi,uwsgi,uWSGI?5.Django、Flask、Tornado的对比?6.CORS 和 CSRF的区别?7.Session,Cookie,JWT的理解8.简…

RedisTemplate和RedissonClient适用的场景有什么不同

在 Spring Boot 项目中,RedisTemplate 和 RedissonClient 分别针对不同的使用场景设计,以下是它们的核心区别和适用场景分析: 一、RedisTemplate(Spring Data Redis) 定位 Spring 官方提供的 Redis 操作工具&#xf…

人脸表情识别系统分享(基于深度学习+OpenCV+PyQt5)

最近终于把毕业大论文忙完了,众所周知硕士大论文需要有三个工作点,表情识别领域的第三个工作点一般是做一个表情识别系统出来,如下图所示。 这里分享一下这个表情识别系统: 采用 深度学习OpenCVPyQt5 构建,主要功能包…

GitHub供应链攻击事件:Coinbase遭袭,218个仓库暴露,CI/CD密钥泄露

此次供应链攻击涉及GitHub Action "tj-actions/changed-files",最初是针对Coinbase的一个开源项目的高度定向攻击,随后演变为范围更广的威胁。 攻击过程与影响 Palo Alto Networks Unit 42在一份报告中指出:“攻击载荷主要针对其…

Redis 核心源码解析:从设计哲学到企业级应用实践

一、Redis 的核心设计哲学 Redis 的成功源于其 「用内存换时间」 的核心理念,围绕以下三个核心原则构建: 极简主义:单线程模型避免锁竞争,代码保持高度内聚。 性能至上:所有数据常驻内存,网络层采用事件驱…

GZCTF平台搭建及题目上传

前言 我用手里的Ubuntu虚拟机搭建的,大家根据自己的实际情况来吧 安装及部署 首先,你的虚拟机需要有Docker和Docker-Compose,前者可以看我之前的文章,另外一个可以输入下面的命令安装,注意先获取管理员权限&#xff…

Pycharm社区版创建Flask项目详解

一、创建工程项目 二、配置工程目录 新建的空项目下创建目录。 1、新建app.py文件 2、app.py代码如下: from flask import Flask, render_templateapp Flask(__name__)app.route("/") def root():"""主页:return: Index.html"&qu…

CentOS 7 64位安装Docker

以下是在已有的 CentOS 7 64 位虚拟机上安装 Docker 并配置华为镜像源的详细步骤: 1. 备份原有 Yum 源(可选,建议操作) # 备份原有仓库文件 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backu…

运动仿真——phased.Platform

在雷达仿真过程中,运动仿真的必要性,以及运动仿真可以实现哪些功能,在matlab对应的user guide中已经讲的很清楚了,这里不再赘述。 本文主要介绍phased.Platform的一些“坑”,和典型的用法。 第一坑:系统对…

缓存删除三级补偿方案:延迟队列+消息队列+定时任务兜底

问题背景: 在 Cache-Aside 模式中,更新数据库后删除缓存失败会导致数据不一致。本文提供工业级三级补偿方案,实现最终一致性保障。 整体架构: 更新操作触发 → 一级延迟队列 → 二级消息队列 → 三级定时任务方案实现: 一、第一级补偿:延迟队…

从零开始实现 C++ TinyWebServer 数据库连接池 SqlConnectPool详解

文章目录 数据库连接池是什么?Web Server 中为什么需要数据库连接池?SqlConnectPool 成员变量实现 Init() 函数实现 ClosePool() 函数SqlConnectRAII 类SqlConnectPool 代码SqlConnectPool 测试 从零开始实现 C TinyWebServer 项目总览 项目源码 数据库连…

C++题目

1、内存管理 1.内存模型 栈:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。 堆:就是那些由new分配的内存块,其释放由程序员控制(一个new对应一个delete&#xff09…

天地图InfoWindow插入React自定义组件

截至2025年03月21日天地图的Marker不支持添加Label; 同时Label和Icon是不支持自定义HTMLElement只支持String;目前只有InfoWindow支持自定义HTMLElement; 效果图 React核心api import ReactDOM from react-dom/client const content document.createElement(div);…

Java并发编程面试汇总

Java并发编程 一、 基础概念1. 进程与线程的区别是什么?2. 创建线程的几种方式?3. 线程的生命周期(状态)有哪些?4. 什么是守护线程(Daemon Thread)?5. 线程优先级(Priori…

【STM32】第一个工程的创建

目录 1、获取 KEIL5 安装包2、开始安装 KEIL52.1、 激活2.2、安装DFP库 3、工程创建4、搭建框架5、开始编写代码 1、获取 KEIL5 安装包 要想获得 KEIL5 的安装包,在百度里面搜索“KEIL5 下载”即可找到很多网友提供的下载文件,或者到 KEIL 的官网下载&a…

动态规划~01背包问题

01背包问题 经典的0 - 1背包问题的解决方案。 二维数组的版本 代码功能概述 0 - 1背包问题指的是有 n 个物品和一个容量为 m 的背包,每个物品有对应的体积 v[i] 和价值 w[i],需要从这些物品里挑选若干个放入背包,让背包内物品的总价值达到最…

深入理解Java享元模式及其线程安全实践

引言 在软件系统中,当需要处理海量细粒度对象时,直接创建大量实例可能会导致内存消耗激增和性能下降。享元模式(Flyweight Pattern)通过共享对象内部状态,成为解决这类问题的经典方案。然而在多线程环境下&#xff0c…

1、mysql基础篇--概述

关系型数据库(RDBMS) 概念特点:数据模型: 概念 建立在关系模型基础上,有多张表相互连接的二维表组成的数据库 特点: 1、使用表存储,格式统一,便于维护 2、使用sql语言操作&#…