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

MYSQL学习笔记(九):MYSQL表的“增删改查”

前言

  • 学习和使用数据库可以说是程序员必须具备能力,这里将更新关于MYSQL的使用讲解,大概应该会更新30篇+,涵盖入门、进阶、高级(一些原理分析);
  • 这一篇讲述一些在MYSQL的数据类型,和表的“增删改查”基本操作;
  • 虽然MYSQL命令很多,但是自己去多敲一点,到后面忘记了,查一下就可以回忆起来使用了;
  • 这一系列也是本人学习MYSQL做的笔记,也是为了方便后面忘记查询;
  • 参考资料:尚硅谷、黑马、csdn和知乎博客;
  • 欢迎收藏 + 关注,本人将会持续更新

    文章目录

    • 创建和管理表
      • 1. 基础知识
        • 1.1 表的基本概念
        • 1.2 标识符命名规范
        • 1.3 MySQL中的数据类型
      • 2. 创建和管理数据库
        • 2.1 创建数据库
        • 2.2 使用数据库
        • 2.3 修改数据库
        • 2.4 删除数据库
      • 3.创建表
        • 3.1 创建方式1
        • 3.2 创建方式2
        • 3.3 查看表结构
      • 4. 修改表
        • 4.1 修改数据表
          • 4.1.1 修改表名
          • 4.1.2 修改字符集
        • 4.2 增加字段
          • 4.2.1 在最后添加字段
          • 4.2.2 在第一个位置添加字段
          • 4.2.3 在指定位置添加字段
        • 4.3 删除字段
        • 4.4 修改字段
          • 4.4.1 修改字段的数据类型
          • 4.4.2 修改字段名
          • 4.4.3 修改字段的顺序
      • 5. 删除表

创建和管理表

1. 基础知识

1.1 表的基本概念

在MySQL数据库中,表是一种很重要的数据库对象,是组成数据库的基本元素,由若干个字段组成,主要用来实现存储数据记录。

表是包含数据库中所有数据的数据库对象。数据在表中的组织方式与在电子表格中相似,都是按行和列的格式组织的,其特点:

  • 每一行代表一条唯一的记录;
  • 每一列代表记录中的一个字段。

表的基本操作包含创建表、查看表、删除表和修改表,也就是我们常说的:“增删改查”。

1.2 标识符命名规范

  1. 数据库名、表名不得超过30个字符,变量名限制为29个
  2. 只能包含大写、小写、数字字符以及下划线
  3. 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名
  4. 不能和保留字、函数名冲突。

1.3 MySQL中的数据类型

类型具体类型
整数类型TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT
浮点类型FLOAT、DOUBLE
定点数类型DECIMAL
位类型BIT
日期时间类型YEAR、TIME、DATE、DATETIME、TIMESTAMP
文本字符串类型CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT
枚举类型ENUM
集合类型SET
二进制字符串类型BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB
json类型JSON对象、JSON数组
空间数据类型单值:GEOMETRY、POINT、LINESTRING、POLYGON
集合:MULTPOINT、MULTILINESTRING、MULTIPOLGON、GEOMTRYCOLLECTION

其中,常用的几类类型介绍如下:

类型描述
INT4个字节
CHAR(size)定长字符数据,若未指定,默认为一个字符,最大长度255
VARCHAR(size)可变字符数据,更具字符串实际长度保存,必须指定长度
FLOAT(M,D)单精度,4个字节。M=整数位+小数位,D=小数位(D<=M<=255,0<=D<=30),默认M+D<=6
DOUBLE(M,D)双精度,8个字节。D<=M<=255,0<=D<=30,默认M+D<=15
DECIMAL(M,D)高精度,M+2个字节。D<=M<=65,0<=D<=30,默认最大取值范围和DOUBLE一样
DATE日期类型,格式‘YYY-MM-DD’
BLOD二进制心事的长文本数据,最大可达4G
TEXT长文本数据,最大可达4G

2. 创建和管理数据库

2.1 创建数据库

  • 方式1:创建数据库

    CREATE DATABASE 数据库名;
    
  • 方式2:创建数据库并指定字符集

    CREATE DATABASE 数据库名 CHARACTER SET "uft8";
    
  • 方式3:判断数据库是否已经存在,不存在则创建(推荐)

    CREATE DATABASE IF NOT EXISTS 数据库名;
    

    注意:数据库不能改名。一些可视化工具可以改名,它是创建新库,然后把所有表复制到新库,再把旧库删掉完成的。

数据库创建完成之后,可以通过SHOW CREATE DATABASE 数据库名;,查看创建的数据库。

2.2 使用数据库

  • 查看当前连接中有哪些数据库
SHOW DATABASES;
  • 切换数据库

在多个数据库之间切换

USE 数据库名;
  • 查看当前使用的数据库
SHOW DATABASE();
  • 查看指定数据库所有表
SHOW TABLES FROM 数据库名;

2.3 修改数据库

修改数据库字符集

ALTER DATABASE 数据库名 CHARACTER SET 字符集;	#比如 gbk、utf8
#查看默认字符集
SHOW VARIABLES LIKE '%character%';
#查看所有字符集
SHOW CHARSET;

2.4 删除数据库

  • 直接删除

    DROP DATABASE 数据库名;
    
  • 如果数据库存在则删除,否则报一个警告(不会报错)

    DROP DATABASE IF EXISTS 数据库名;
    

3.创建表

在 MySQL数据库管理系统中创建表通过SQL语句CREATE TABLE 来实现

3.1 创建方式1

自己指定字段和数据类型

语法:

CREATE TABLE [IF NOT EXISTS] 表名(字段名 数据类型,字段名 数据类型,...字段名 数据类型,
);

范例:

CREATE TABLE myemp
(id INT COMMENT '员工编号',ename VARCHAR(20) COMMENT '员工名称',deptno INT COMMENT '所在部门编号',sal INT COMMENT '工资'
);

3.2 创建方式2

基于现有表创建新表

  • 基于现有表创建新表,同时导入数据

    #单个表
    CREATE TABLE myemp1
    AS
    SELECT empno,ename,sal FROM emp;#多个表
    CREATE TABLE myemp2
    AS
    SELECT e.empno,e.ename,e.sal,d.dname 
    FROM emp e JOIN dept d
    ON e.deptno=d.deptno;
    
  • 基于现有表创建新表,只复制表结构,不导入数据

    CREATE TABLE myemp3
    AS
    SELECT empno,ename,sal FROM emp WHERE 1 = 2;  # 1 != 2, 这样的意思结果就是:查询到空表
    

3.3 查看表结构

创建完表,如果需要查看一下表的结构,可以通过执行SQL语句 DESCRIBE来实现,其语法形式如下:

DESC/DESCRIBE table_name;

DESC为DESCRIBE的简写形式,更为方便。


还有一种更详细查看表结构的语句:

SHOW CREATE TABLE table_name;

4. 修改表

修改数据表前提是数据库中已经存在该表.

修改表指的是修改数据库中已经存在的数据表的结构。

4.1 修改数据表

4.1.1 修改表名

**方法一:**通过 ALTER TABLE 语句来修改表名,语法规则如下:

ALTER TABLE <旧表名> RENAME [TO] <新表名>;

其中,TO 为可选参数,使用与否均不影响结果。

范例:

ALTER TABLE myemp RENAME memp;
#结合 修改数据库
ALTER DATABASE my CHARACTER SET "utf8";

注意:只能修改单表名。

**方法二:**通过 RENAME TABLE 语句来修改表名,语法规则如下

#注意别忘了 table
RENAME TABLE <旧表名> TO <新表名>[,旧表名2 TO 新表名2]

范例:

RENAME memp TO myemp,myemp1 TO memp1;

注意:可以同时修改多个表的表名。

4.1.2 修改字符集

通过 ALTER TABLE 语句来实现表字符集的修改,语法规则如下:

ALTER TABLE <表名> [DEFAULT] CHARACTER SET <字符集名> [DEFAULT] COLLATE <校对规则名>;

其中,DEFAULT 为可选参数,使用与否均不影响结果。

ALTER TABLE myemp CHARACTER SET gb2312;

4.2 增加字段

对于表,可以看成是由列和行来构成的,其中“列”经常被称为字段。

4.2.1 在最后添加字段

在创建表之后如果要增加一列,需要使用下面的语句。

ALTER TABLE table_name ADD 字段名 数据类型;

范例:

ALTER TABLE myemp ADD job VARCHAR(10);
4.2.2 在第一个位置添加字段
ALTER TABLE table_name ADD 字段名 数据类型 FIRST;
4.2.3 在指定位置添加字段

把字段1 添加到字段2之后

ALTER TABLE table_name ADD 字段名1 数据类型 AFTER 字段名2;

4.3 删除字段

ALTER TABLE table_name DROP 字段名;

4.4 修改字段

4.4.1 修改字段的数据类型
ALTER TABLE table_name MODIFY 字段名 数据类型;
4.4.2 修改字段名
ALTER TABLE table_name CHANGE 旧字段名 新字段名 数据类型;

如果数据类型和原来的数据类型一样,则只会修改字段名,如果数据类型不同,则同时会修改数据类型。

4.4.3 修改字段的顺序
ALTER TABLE table_name MODIFY	字段名 数据类型 FIRST;
ALTER TABLE table_name MODIFY	字段名1 数据类型 AFTER 字段名2;	
  • 第一个语句:把字段移动到第一个
  • 第二个语句:把字段1 移动到字段2之后

5. 删除表

DROP TABLE [IF EXISTS] table_name[,表1,表2...];

相关文章:

MYSQL学习笔记(九):MYSQL表的“增删改查”

前言&#xff1a; 学习和使用数据库可以说是程序员必须具备能力&#xff0c;这里将更新关于MYSQL的使用讲解&#xff0c;大概应该会更新30篇&#xff0c;涵盖入门、进阶、高级(一些原理分析);这一篇讲述一些在MYSQL的数据类型&#xff0c;和表的“增删改查”基本操作;虽然MYSQ…...

Oracle JDK、Open JDK zulu下载地址

一、Oracle JDK https://www.oracle.com/java/technologies/downloads/ 刚进去是最新的版本&#xff0c;往下滑可以看到老版本 二、Open JDK的 Azul Zulu https://www.azul.com/downloads/ 直接可以选版本等选项卡...

分类解析决策模型

一、按理性程度划分的决策模型 1. 完全理性模型(古典决策理论) 核心假设:决策者拥有完全信息,能计算所有选项的效用并选择最优解。数学模型: 期望效用理论(Expected Utility Theory, EU): E U = ∑ ( p i...

【SPIE出版,见刊快速,EI检索稳定,浙江水利水电学院主办】2025年物理学与量子计算国际学术会议(ICPQC 2025)

2025年物理学与量子计算国际学术会议&#xff08;ICPQC 2025&#xff09;将于2025年4月18-20日在中国杭州举行。本次会议旨在汇聚全球的研究人员、学者和业界专家&#xff0c;共同探讨物理学与量子计算领域的最新进展与前沿挑战。随着量子技术的快速发展&#xff0c;其在信息处…...

【网络】高级IO——Reactor版TCP服务器

1.什么是Reactor Reactor 是一种应用在服务器端的开发模式&#xff08;也有说法称 Reactor 是一种 IO 模式&#xff09;&#xff0c;目的是提高服务端程序的并发能力 它要解决什么问题呢&#xff1f; 传统的 thread per connection 用法中&#xff0c;线程在真正处理请求之前首…...

3.Docker常用命令

1.Docker启动类命令 1.启动Docker systemctl start docker 2.停止Docker systemctl stop docker 3.重启Docker systemctl restart docker 4.查看Docker状态 systemctl status docker 5.设置开机自启(执行此命令后每次Linux重启后将自启动Docker) systemctl enable do…...

【uni-app】对齐胶囊容器组件

代码碎片 <template><div><view :style"{ height: ${statusBarHeight}px }"></view><viewclass"":style"{height: ${menuButtonHeight menuButtonPadding * 2}px,width: ${menuButtonInfo.left}px,}"><slot …...

JUC并发—10.锁优化与锁故障

大纲 1.标志位修改场景优先使用volatile(服务优雅停机) 2.数值递增场景优先使用Atomic类(心跳计数器) 3.共享变量仅对当前线程可见的场景优先使用ThreadLocal(edits log的处理) 4.读多写少需要加锁的场景优先使用读写锁(服务注册表的并发读写) 5.尽量减少线程对锁占用时间…...

Java 大视界 -- 区块链赋能 Java 大数据:数据可信与价值流转(84)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...

大数据学习之PB级音乐数据中心数仓综合项目(1)-理论知识和项目需求、歌曲热度与歌手热度排行

一、理论知识和项目需求 1.课程介绍 2.数据库与ER建模_数据库三范式 3.数据库与ER建模_ER实体关系模型 4.数据库与维度建模_数据仓库(DATA WAREHOUSE) 5.数据库与维度建模_数据库与数据仓库区别 6.数据库与维度建模_数据仓库的发展历程 7.数据库与维度建模_维度建模 8.数据库与…...

DeepSeek vs ChatGPT:AI 领域的华山论剑,谁主沉浮?

一、引言 在当今科技飞速发展的时代&#xff0c;人工智能&#xff08;AI&#xff09;已然成为推动各领域变革的核心力量。而在人工智能的众多分支中&#xff0c;自然语言处理&#xff08;NLP&#xff09;因其与人类日常交流和信息处理的紧密联系&#xff0c;成为了最受瞩目的领…...

七星棋牌顶级运营产品全开源修复版源码教程:6端支持,200+子游戏玩法,完整搭建指南(含代码解析)

棋牌游戏一直是移动端游戏市场中极具竞争力和受欢迎的品类&#xff0c;而七星棋牌源码修复版无疑是当前行业内不可多得的高质量棋牌项目之一。该项目支持 6大省区版本&#xff08;湖南、湖北、山西、江苏、贵州&#xff09;&#xff0c;拥有 200多种子游戏玩法&#xff0c;同时…...

本2硕9电子科学专业,想走linux或是嵌入式,要具体学哪些技术

​今天给大家分享的是一位粉丝的提问&#xff0c;本2硕9电子科学专业&#xff0c;想走linux或是嵌入式&#xff0c;要具体学哪些技术 接下来把粉丝的具体提问和我的回复分享给大家&#xff0c;希望也能给一些类似情况的小伙伴一些启发和帮助。 同学提问&#xff1a; 你好&…...

从混沌到有序:一个数据血缘分析的进化故事

从混沌到有序&#xff1a;一个数据血缘分析的进化故事 从混沌到有序的数据治理之路数据血缘的建设方法和实践路径数据血缘的实践场景和未来趋势。 数据就像流淌在企业血管中的血液&#xff0c;它的每一次流动、每一次转化都留下独特的印记。 作为数据工程师&#xff0c;我曾困惑…...

从猜想终结到算法革新,弹性哈希开启数据存储新篇章

目录 哈希表的前世今生基本原理从传统到现代&#xff1a;哈希表的演变历程 安德鲁 克拉皮文及其团队的创作历程弹性哈希详解基本原理优点技术细节 漏斗哈希解析基本原理优点技术细节 新算法的实际应用案例电子商务推荐系统金融交易监控系统社交媒体内容过滤物联网设备管理 结论…...

先进制造aps专题三十 用免费生产排程软件isuperaps进行长期生产计划制定

isuperaps是生产排产软件&#xff0c;同时也可以用来制定长期生产计划 通过isuperaps制定长期生产计划&#xff0c;一个指导原则就是大bom, 单工序&#xff0c;大bom的意思是bom中只包含主要的半成品和原料&#xff0c;单工序的意思是半成品/产品生产以工厂或车间为基本生产单…...

实验-安装Proteus

Ver V0.0 250222&#xff1a;安装Proteus8.17SP4 说明 &#xff08;1&#xff09;如果有找到Proteus8.17最后版本SP5&#xff0c;再更新了&#xff1b; &#xff08;2&#xff09;8.17是8X最后一个大版本&#xff0c;后面是Proteus9。 内容 下载&#xff1a; 链接:https…...

‌最新版DeepSeek保姆级安装教程:本地部署+避坑指南

大家好&#xff0c;我是冰河~~ 本文旨在提供一个全面且详细的DeepSeek本地部署指南&#xff0c;帮助大家在自己的设备上成功运行DeepSeek模型。无论你是AI领域的初学者还是经验丰富的开发者&#xff0c;都能通过本文的指导&#xff0c;轻松完成DeepSeek的本地部署。 一、本地…...

【学习笔记】Cadence电子设计全流程(三)Capture CIS 原理图绘制(1-8)

【学习笔记】Cadence电子设计全流程&#xff08;三&#xff09;Capture CIS 原理图绘制&#xff08;1&#xff09; 3.1 原理图设计思路3.2 Cadence 原理图的新建3.3 在原理图中添加元器件3.4 元器件对齐3.5 原理图元器件信号联通&#xff08;走线&#xff09;3.6 OrCAD Capture…...

3damx 发动机活塞运动动画

使用HD解算器绑定&#xff1a;点(绑定的最终目标对象)→曲柄→活塞&#xff08;子控父&#xff0c;反向解算&#xff09; 点:绑定到轮子上的连接点...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...