【MySQL】基本操作

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:MySQL

在这里插入图片描述


目录

  • 👉🏻创建和删除数据库
  • 👉🏻数据库编码集和数据库校验集
    • 校验规则对数据库的影响
  • 👉🏻操作数据库
    • 其它命令
  • 👉🏻表的操作
    • 创建表
      • 不同的存储引擎,创建表的文件不一样
    • 查看表结构
    • 修改表

👉🏻创建和删除数据库

在 MySQL 中,创建和删除数据库的语法如下:

创建数据库:

CREATE DATABASE database_name;

其中,database_name 是你想要创建的数据库的名称。

示例:

CREATE DATABASE my_database;

删除数据库:

DROP DATABASE [IF EXISTS] database_name;
  • IF EXISTS:可选项,表示如果数据库存在则删除,如果不存在则不报错。
  • database_name 是你要删除的数据库的名称。

示例:

DROP DATABASE IF EXISTS my_database;

需要注意的是,删除数据库将会删除数据库中的所有数据和表结构,因此在执行删除操作时应谨慎。

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_ general_ ci
如果指明字符集和校验规则创建

create database db charset=utf8 collate utf8_general_ci;//形如这种

我们也可以查看数据库目录下的dp.opt文件内容,可以知道当前数据库的字符集和校验规则
在这里插入图片描述


在 MySQL 中,SQL 语句的关键字不区分大小写,但是通常建议将 SQL 语句中的关键字和函数名大写,将数据库对象名称(如表名、列名等)小写,以增强可读性和代码的清晰度。虽然大小写不敏感,但这种约定可以帮助区分关键字和标识符,使代码更易于理解。

👉🏻数据库编码集和数据库校验集

数据库编码集(Character Set)是指数据库中字符的编码规则,用于确定数据库中存储的字符如何映射到二进制数据。它决定了数据库可以支持哪些字符集和语言,以及如何存储和比较文本数据。常见的数据库编码集包括 UTF-8、UTF-16、GBK、Latin1 等。

数据库校验集(Collation)则是指数据库中字符的排序规则,它定义了数据库中的文本数据如何排序和比较。每种编码集都有相应的多个校验集可供选择,不同的校验集会影响到字符串的比较、排序、搜索等操作的结果。例如,对于相同的字符串,在不同的校验集下可能会有不同的排序结果。常见的数据库校验集包括 utf8_general_ci、utf8_unicode_ci、utf8_bin 等。

选择合适的数据库编码集和校验集对于数据库的设计和应用是非常重要的。通常情况下,推荐使用支持更广泛字符集的编码集,如 UTF-8,以确保数据库能够存储和处理各种语言的文本数据。在选择校验集时,需要根据实际需求考虑排序规则和比较行为,以保证数据库的数据操作的一致性和准确性。

🧋查看系统默认字符集以及校验规则

show variables like 'character_set_database';
show variables like 'collation_database';

🧋查看数据库支持的字符集

show charset;
show collation;

校验规则对数据库的影响

常见的数据库校验规则会影响到字符串的比较、排序、搜索等操作的结果。以下是一些常见的校验规则及其可能的影响:

  1. 排序规则:

    • 不同的校验规则可能会导致相同的字符串在排序时的顺序不同,这会影响到 ORDER BY 子句的结果。
  2. 大小写敏感性:

    • 不同的校验规则可能会导致字符串的大小写比较行为不同,有些规则是大小写不敏感的,而有些是敏感的。
    • 例如,utf8_general_ci 是大小写不敏感的,而 utf8_bin 是大小写敏感的
  3. 字符比较:

    • 在某些校验规则下,特定字符的比较方式可能会有所不同,例如在一些规则下,特定的重音字符可能会被视为与对应的无重音字符相等,而在另一些规则下则不会。
  4. 搜索和匹配行为:

    • 在执行搜索、模糊匹配或正则表达式匹配时,不同的校验规则可能会影响到匹配的结果。
    • 例如,在大小写敏感的校验规则下,搜索时需要考虑字符的大小写,而在大小写不敏感的规则下则不需要。
  5. 唯一约束和索引:

    • 在使用唯一约束或创建索引时,校验规则会影响到重复值的判断,不同的校验规则可能会导致不同的唯一约束和索引行为。
  6. 字符范围和支持:

    • 不同的校验规则支持的字符范围可能会有所不同,某些规则可能支持更广泛的字符集,而某些规则可能限制了可用的字符范围。

因此,在选择数据库校验规则时,需要根据具体的需求和数据特点来确定合适的规则,以确保数据操作的一致性和正确性。

👉🏻操作数据库

1.查看数据库

show databases;

2.查看创建语句

show create database 数据库名;

这将显示指定数据库的创建语句,包括编码集和校验规则等信息

在这里插入图片描述
3.修改数据库
语法:

ALTER DATABASE your_database_name
CHARACTER SET = utf8mb4//在 MySQL 中,CHARACTER SET = utf8mb4 和 CHARSET = utf8mb4 是等效的
COLLATE = utf8mb4_unicode_ci;

4.备份和恢复数据库
在 MySQL 中,你可以使用以下方法来备份和恢复数据库:

🍿 备份数据库:

  1. 使用 mysqldump 命令:

注意📢该操作不能进入mysql客户端进行

mysqldump -u 用户名 -p 数据库名 > 数据库备份存储的文件路径

例如,要备份名为 mydatabase 的数据库到文件 mydatabase_backup.sql,可以执行以下命令:

mysqldump -u root -p mydatabase > mydatabase_backup.sql

在这里插入图片描述
在这里插入图片描述

这将备份整个数据库到一个 SQL 文件中。

在使用 mysqldump 命令备份 MySQL 数据库时,通常不需要使用 -P-B 选项。

  • -P 选项用于指定连接到 MySQL 服务器时使用的端口号。如果没有指定该选项,默认情况下 mysqldump 将使用 MySQL 默认端口号(通常是 3306)进行连接。
  • -B 选项用于备份多个数据库。当你想备份多个数据库时,可以使用该选项指定需要备份的数据库名称列表。
    如果你只想备份单个数据库,那么不需要使用 -B 选项。而如果 MySQL 服务器在默认端口上运行,也不需要指定 -P 选项。

如果你只想备份数据库中的一张表而不是整个数据库,你可以在使用 mysqldump 命令时指定要备份的表名。以下是备份单个表的步骤:

mysqldump -u 用户名 -p 数据库名 表名 > 备份文件名.sql
  1. 使用 MySQL Workbench:

    MySQL Workbench 是一个图形化的 MySQL 数据库管理工具,它提供了备份和恢复数据库的功能。你可以通过导航到 Server > Data Export 来进行数据库备份。

🍿 恢复数据库:

  1. 使用 mysql 命令:

    mysql -u 用户名 -p 数据库名 < 备份文件名.sql
    

    例如,要将名为 mydatabase 的数据库从备份文件 mydatabase_backup.sql 中恢复,可以执行以下命令:

source 备份文件路径

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。

mysql -u root -p mydatabase < mydatabase_backup.sql

先创建好空数据库,然后执行该命令
在这里插入图片描述

这将从备份文件中恢复数据库。

  1. 使用 MySQL Workbench:

    在 MySQL Workbench 中,你可以通过导航到 Server > Data Import 来导入备份文件并恢复数据库。

无论哪种方法,都需要确保你有足够的权限来执行备份和恢复操作,并且备份文件是可访问的。此外,备份和恢复操作都可能需要一定的时间,具体时间取决于数据库的大小和性能。

5.查看连接情况
语法:

show processlist;

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

其它命令

1.select database();
在 MySQL 中,可以使用 SELECT DATABASE() 查询当前正在使用的数据库名称。这个查询将返回当前选中的数据库名称。

SELECT DATABASE();

如果你已经连接到了数据库服务器并且选中了一个特定的数据库,这个查询将返回选中的数据库的名称。如果没有选中任何数据库,它将返回 NULL

2.comment注释
在 SQL 中,可以在创建或修改表的时候为表中的属性(列)添加注释(comment)。注释可以提供有关属性的额外描述或说明,帮助开发人员和数据库管理员更好地理解表结构和每个属性的含义。

在创建表时,可以使用 COMMENT 关键字为每个属性添加注释。例如:

CREATE TABLE 表名 (列名 数据类型 COMMENT '注释内容',...
);

在修改表结构时,可以使用 ALTER TABLE 语句来添加或修改属性的注释。例如:

ALTER TABLE 表名 MODIFY 列名 数据类型 COMMENT '新的注释内容';

注释可以是任何描述性的文本,通常用于记录属性的用途、取值范围、数据来源等信息,以便于后续开发和维护工作。注释对于团队合作和数据库文档的编写非常有用,能够提高数据库结构的可读性和可维护性。

👉🏻表的操作

创建表

语法:

CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准

不同的存储引擎,创建表的文件不一样

不同的存储引擎在创建表时可能会使用不同的文件格式和存储结构。常见的数据库管理系统(例如MySQL)支持多种存储引擎,每种存储引擎都有其特定的特性、优缺点以及适用场景。

以下是一些常见的存储引擎以及它们可能使用的文件格式或存储结构:

  1. InnoDB: InnoDB 是 MySQL 默认的存储引擎,它支持事务处理、外键约束等特性。在 InnoDB 中,表数据和索引通常存储在以 .ibd 为后缀的文件中。

  2. MyISAM: MyISAM 是 MySQL 的另一种存储引擎,它不支持事务处理和外键约束,但具有较高的性能。在 MyISAM 中,表数据存储在以 .MYD 为后缀的文件中,索引存储在以 .MYI 为后缀的文件中。

  3. MEMORY: MEMORY 存储引擎将表数据存储在内存中,适用于对速度要求较高、但数据不需要长期存储的情况。在 MEMORY 存储引擎中,数据存储在内存中,而不是磁盘文件中。

  4. CSV: CSV 存储引擎将表数据以 CSV 格式存储在文件中,适用于需要与其他应用程序交换数据的情况。

  5. Archive: Archive 存储引擎将表数据以压缩格式存储在文件中,适用于数据归档或备份。

除了以上列举的存储引擎外,还有其他一些存储引擎,每种存储引擎都有其自己的特点和适用场景。在选择存储引擎时,需要考虑到应用程序的需求、性能要求、数据完整性要求等因素。

查看表结构

语法:

show tables;//查看当前数据库的全部表
desc 表名;

在这里插入图片描述

show create table 表名;

将会返回一个结果集,包括所有的列定义、约束、索引等信息。这个语句通常用于查看数据库中表的详细结构,以便于了解表的设计和定义。

修改表

在关系型数据库中,可以使用 SQL 语言来执行各种操作,包括修改表结构的操作。以下是一些常见的修改表结构的操作:

  1. 添加列(ADD)(INSERT INTO): 可以向现有表中添加新的列。使用 ALTER TABLE 语句,后跟 ADD 关键字和要添加的列的定义。

    ALTER TABLE 表名 ADD 列名 数据类型;
    

    ADD和MODIFY都要添加/修改新的属性

INSERT INTO 表名 (1,2,3, ...) VALUES (1,2,3, ...);
  1. 删除列(DROP): 可以从现有表中删除列。使用 ALTER TABLE 语句,后跟 DROP 关键字和要删除的列名。

    ALTER TABLE 表名 DROP 列名;
    
  2. 修改列(ALTER): 可以修改现有列的定义,如修改数据类型、修改列名等。使用 ALTER TABLE 语句,后跟 ALTER COLUMN 关键字和要修改的列名及其新的定义。

    ALTER TABLE 表名 ALTER COLUMN 列名 新数据类型;//新字段需要完整定义:列名+属性
    
    ALTER TABLE 表名 change 列名 新数据类型;
    
  3. 修改表名(RENAME): 可以修改现有表的名称。使用 ALTER TABLE 语句,后跟 RENAME TO 关键字和新的表名。

    ALTER TABLE 表名 RENAME TO 新表名;
    
  4. 修改约束(CONSTRAINT): 可以修改表中的约束,如主键、外键等。使用 ALTER TABLE 语句,后跟 ADD, DROPALTER 关键字来添加、删除或修改约束。

    ALTER TABLE 表名 ADD CONSTRAINT ...;
    ALTER TABLE 表名 DROP CONSTRAINT ...;
    ALTER TABLE 表名 ALTER CONSTRAINT ...;
    
  5. 修改表的存储引擎(ENGINE): 可以修改表的存储引擎,如从 MyISAM 切换到 InnoDB。使用 ALTER TABLE 语句,后跟 ENGINE 关键字和新的存储引擎名称。

    ALTER TABLE 表名 ENGINE = 新存储引擎;
    

7.更新数据(UPDATE): 用于修改表中已有行的数据。语法如下:

UPDATE 表名 SET1 =1,2 =2, ... WHERE 条件;

8.删除数据(DELETE): 用于删除表中符合条件的行。语法如下:

DELETE FROM 表名 WHERE 条件;

这将根据指定的条件更新表中符合条件的行的数据。
9.查询数据(SELECT): 用于从表中检索数据。虽然不是直接的表操作语句,但是在操作数据库时,查询数据是非常常见和重要的操作。语法如下:

SELECT1,2, ... FROM 表名 WHERE 条件;

10.修改列属性(ALTER TABLE MODIFY)

ALTER TABLE 表名 MODIFY 列名 新数据类型 [其他修改];

举例来说,假设有一个名为 students 的表,其中有一个名为 age 的列,现在需要将该列的数据类型修改为 INT,可以使用以下语句:

ALTER TABLE students MODIFY age INT;

ALTER TABLE主要是对表的结构、列的属性进行修改


如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

泰迪智能科技大数据开发实训平台功能介绍

大数据开发实训平台是面向实训课和课后训练的编程实训平台&#xff0c;平台底层基于Docker技术&#xff0c;采用容器云部署方案&#xff0c;预装大数据相关课程教学所需的实训环境&#xff0c;拥有1主2从的Hadoop集群&#xff0c;还能够自主定制环境&#xff0c;并能够与实训管…

SSM【Spring SpringMVC Mybatis】—— Spring(一)

目录 1、初识Spring 1.1 Spring简介 1.2 搭建Spring框架步骤 1.3 Spring特性 1.5 bean标签详解 2、SpringIOC底层实现 2.1 BeanFactory与ApplicationContexet 2.2 图解IOC类的结构 3、Spring依赖注入数值问题【重点】 3.1 字面量数值 3.2 CDATA区 3.3 外部已声明be…

JeeSite V5.7.0 发布,Java快速开发平台,Vite5、多项重构重磅升级

JeeSite V5.7.0 发布&#xff0c;Java快速开发平台&#xff0c;Vite5、多项重构重磅升级 升级内容 新增 参数配置 IP 地址黑白名单过滤器动态参数 新增 侧边栏是否展开第一个菜单的开关 first-open 新增 AesTypeHandler 处理字段数据加密解密或脱敏 新增 JsonTypeHandler …

PCIE协议-2-事务层规范-Message Request Rules

2.2.8 消息请求规则 本文档定义了以下几组消息&#xff1a; INTx 中断信号电源管理错误信号锁定事务支持插槽电源限制支持厂商定义消息延迟容忍度报告&#xff08;LTR&#xff09;消息优化缓冲区冲洗/填充&#xff08;OBFF&#xff09;消息设备就绪状态&#xff08;DRS&#…

机器人系统ros2-开发实践06-将静态坐标系广播到 tf2(Python)-定义机器人底座与其传感器或非移动部件之间的关系

发布静态变换对于定义机器人底座与其传感器或非移动部件之间的关系非常有用。例如&#xff0c;最容易推断激光扫描仪中心框架中的激光扫描测量结果。 1. 创建包 首先&#xff0c;我们将创建一个用于本教程和后续教程的包。调用的包learning_tf2_py将依赖于geometry_msgs、pyth…

EasyRecovery(易恢复) 使用测试及详细使用方法

你有没有因为数据丢失懊悔不已&#xff0c;EasyRecovery&#xff08;易恢复&#xff09;&#xff0c;来自美国拥有38年数据恢复的软件&#xff0c;只有收费版&#xff0c;重要事情说三遍&#xff0c;EasyRecovery 没有免费版&#xff0c;可以成功找回删除的部分文件&#xff0c…

璩静霸道言论引发百度风波随笔

从5月9日晚开始有关“百度副总裁璩静已从公司离职”的消息&#xff0c;仅两天时间就几乎布满互联网所有知名自媒体平台&#xff0c;可谓兹事体大&#xff0c;无异于互联网发生了一场八级地震&#xff0c;波及面之广&#xff0c;匪夷所思&#xff01; 百度截图 尽管笔者一直密切…

A Dexterous Hand-Arm Teleoperation System

A Dexterous Hand-Arm Teleoperation System Based on Hand Pose Estimation and Active Vision解读 摘要1. 简介2.相关工作2.1 机器人遥操作2.2 主动视觉&#xff08;Active Vision&#xff09; 3. 硬件设置4. 基于视觉的机器人手部姿态估计4.1 Transteleop4.2 Dataset 5. 主动…

【图解计算机网络】TCP 重传、滑动窗口、流量控制、拥塞控制

TCP 重传、滑动窗口、流量控制、拥塞控制 TCP 重传超时重传快速重传 滑动窗口流量控制拥塞控制慢启动拥塞避免拥塞发生快速恢复 TCP 重传 TCP重传是当发送的报文发生丢失的时候&#xff0c;重新发送丢失报文的一种机制&#xff0c;它是保证TCP协议可靠性的一种机制。 TCP重传…

AJ65SBT2B-64DA 三菱CC-Link D/A转换模块

AJ65SBT2B-64DA 是将数字值(16位有符号BIN数据)转换为模拟值(电压或电流)的模块。 AJ65SBT2B-64DA参数说明&#xff1a;4通道&#xff1b;输入分辨率0~12000&#xff0c;-12000~12000&#xff0c;-16000~16000&#xff1b;输出DC-10~10V&#xff0c;DC0~20mA&#xff1b;转换速…

掌握未来搜索的钥匙:深入解析 Milvus 向量搜索引擎的终极指南!

在大数据时代&#xff0c;向量搜索技术愈发重要。作为一个开源的向量相似性搜索引擎&#xff0c;Milvus 提供了基于向量的相似性搜索功能&#xff0c;广泛应用于机器学习、人工智能等领域。本文将深入介绍 Milvus 的基本概念&#xff0c;包括其介绍、主要作用、使用方法及注意事…

pair对组创建

创建方式1: pair<type,type> p(value1,value2); pair<string, int> p("Tom", 20); cout << "name:" << p.first << "age:" << p.second << endl; 创建方式2: pair<type,type> pmake_pair(v…