【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主要是对表的结构、列的属性进行修改


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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GT2505HS-VTBD 三菱触摸屏手持式5.7寸型

GT2505HS-VTBD 三菱触摸屏手持式5.7寸型 GT2505HS-VTBD参数,GT2505HS-VTBD用户手册,GT2505HS-VTBD使用手册GT2505HS-VTBD参数说明&#xff1a;手持式5.7吋型&#xff0c;VGA 640*480&#xff0c;TFT彩色液晶屏,65536色,内存32MB&#xff0c;DC24V,内置以太网接口。 GT2505HS-VT…

【GlobalMapper精品教程】079:投影坐标系转地理坐标系(UTM转WGS1984/2000)

文章目录 一、矢量UTM转WGS1984/20001. UTM转WGS19842. UTM转CGCS2000二、栅格UTM转WGS1984/2000一、矢量UTM转WGS1984/2000 加载配套实验数据(data079.rar)中的矢量数据,如下所示: 查看源坐标系:双击图层的,图层投影选项卡,为UTM投影,Zone48N。 设置系统坐标系:点击…

jupyter_lab修改默认目录

1、新版本的jupyter如果按照网上说的只修改jupyter_notebook_config.py这个文件没啥用&#xff0c;我在实际修改过程中遇到了如下报错。 经过各种尝试&#xff0c;还需要修改jupyter_notebook_config.py这个配置文件 2、不废话&#xff0c;直接上步骤 在Jupyter Notebook或者c…

2024年10大AI动画工具

在当今快节奏的数字环境中&#xff0c;动画师和内容创作者不断寻求创新工具来提高他们的工作效率和创造力。随着人工智能的出现&#xff0c;动画发生了显着的转变&#xff0c;因此提供了大量的选项&#xff0c;使图像无缝地栩栩如生。 无论你是一位有抱负的动画师还是经验丰富…

#include《初见C语言之顺序表的增删查改》

目录 一、顺序表 二、顺序表的分类 三、顺序表的实现前期准备 第一步&#xff0c;确定需要的文件 第二步&#xff0c;开始分析 四、顺序表的实现 1.初始化 2.销毁 3.申请空间 4.打印 5.尾插 6.头插 7.尾删 8.头删 9.指定位置之前插入 10.指定位置之前删除 11.…

grid的常见使用场景

场景1&#xff1a;固定几列显示&#xff0c;显示不下会自动换行 <div id"container"><div class"item item-1">1</div><div class"item item-2">2</div><div class"item item-3">3</div>&l…

vscode go语言开发中在任意包运行和调试代码 Example使用方法

一般情况下我们在进行go语言开发的时候我们都需要创建一个main方法和main包才能运行go代码&#xff0c; 针对这个问题&#xff0c;go语言给我们内置了功能强大的testing测试框架&#xff0c; 其中一个很有意思的Example测试就非常的方便使用。 他不管你在什么包&#xff0c;也…

LNMP环境部署WordPress——使用源码包安装方式部署环境

目录 一.前提准备 二.源码安装Mysql 1.MySQL类型 2.MySQL 版本说明 3.MySQL 安装方式 3.1 yum 安装 3.2 编译安装 3.3 二进制安装 3.4 rpm 安装 4. 编译安装MySQL5.7 4.1 清理安装环境 4.2 创建mysql用户 4.3 从官网下载tar包 4.4 安装编译工具 4.5 解压 4.6 …

Vue3:路由

1. 路由简介 在Vue3中&#xff0c;路由是一个核心概念&#xff0c;特别是在构建单页面应用程序&#xff08;SPA&#xff09;时。以下是Vue3中路由的基本概念&#xff1a; 1. **路由&#xff08;Route&#xff09;**&#xff1a;在Vue3中&#xff0c;路由是指根据特定的规则将用…

i春秋-Backdoor

题目 考点 git源码泄露 Linux文件恢复 代码审计 http 解题 参考wp https://blog.csdn.net/cbhjerry/article/details/105791056https://www.pianshen.com/article/19461342501/扫描 题目给出提示&#xff1a;敏感文件泄漏 于是使用dirsearch扫一下 python dirsearch.py -…

如何到《新英格兰医学杂志》 NEJM查找下载文献

《新英格兰医学杂志》NEJM是世界上阅读、引用最广泛、影响力最大的综合性医学期刊之一。NEJM集团出版的期刊还包括NEJM Journal Watch、NEJM Catalyst及NEJM Evidence。NEJM是一份全科医学周刊&#xff0c;出版对生物医学科学与临床实践具有重要意义的一系列主题方面的医学研究…

废品回收微信小程序基于FastAdmin+ThinkPHP+UniApp(源码搭建/上线/运营/售后/更新)

一款基于FastAdminThinkPHPUniApp开发的废品回收系统&#xff0c;适用废品回收站、再生资源回收公司上门回收使用的小程序。 一、FastAdmin框架特色功能及优势 模块化开发&#xff1a;控制器、模型、视图、JS一一对应&#xff0c;使用RequireJS进行插件机制&#xff0c;支持插…

QX----mini51单片机学习---(7)矩阵键盘

目录 1矩阵键盘的识别 2相关c语言 3实践编程 1矩阵键盘的识别 假设按列扫描按下S6P30&#xff1a;0P34&#xff1a;1然后高流向低&#xff0c;P34&#xff1a;0&#xff0c;刚开始是0xf0&#xff1a;1111 0000 后面是0xe0&#xff1a;1110 0000 &#xff0c;当是0xe0能确…

如何通过AI技术实现员工培训的革命性变革

AI个性化培训&#xff1a;开启员工潜力的新篇章 在当今这个信息爆炸的时代&#xff0c;人工智能&#xff08;AI&#xff09;技术的影响力已经渗透到社会的各个层面&#xff0c;包括教育与培训行业。AI技术正在彻底改变我们获取知识与技能的方式&#xff0c;特别是在员工培训领域…

Offline: Overcoming Model Bias for Robust Offline Deep Reinforcement Learning

EAAI 2023 paper Intro model-free的离线强化学习由于价值函数估计问题存在训练的稳定性以及鲁棒性较低。本文提出基于模型的方法&#xff0c;同构构建稳定的动力学模型帮助策略的稳定训练。 method 本文基于模型的方法&#xff0c;所构造的转移模型输入状态动作&#xff0…

【python】python中的argparse模块,教你如何自定义命令行参数

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

C++容器——list

目录 list容器 list容器使用流程 加入头文件 定义 list容器的使用 添加元素&#xff1a; 删除元素&#xff1a; 访问元素&#xff1a; 容器大小&#xff1a; 迭代器操作&#xff1a; 其他操作&#xff1a; list容器 功能&#xff1a;将数据进行链式存储 链表(list…

数据结构--队列

一、认识队列 队列&#xff08;Queue&#xff09;是一种 受限的线性数据结构&#xff0c;具有 先进先出&#xff08;FIFO&#xff0c;First In First Out&#xff09;的特点。 受限之处&#xff1a; 只允许在表的前端&#xff08;front&#xff09;进行删除操作。只允许在表…

《Decoupled Optimisation for Long-Tailed Visual Recognition》阅读笔记

论文标题 《Decoupled Optimisation for Long-Tailed Visual Recognition》 长尾视觉识别的解耦优化 作者 Cong Cong、Shiyu Xuan、Sidong Liu、Shiliang Zhang、Maurice Pagnucco 和 Yang Song、 来自新南威尔士大学计算机科学与工程学院、北京大学计算机学院多媒体信息处…

乡村振兴与乡村振兴战略的深度融合:落实乡村振兴战略,推动乡村全面发展,打造富强民主文明和谐美丽的社会主义现代化新农村

一、引言 在全面建设社会主义现代化国家的新征程中&#xff0c;乡村振兴战略承载着推动乡村全面发展、实现农业农村现代化的重大使命。乡村振兴战略的实施&#xff0c;不仅关系到亿万农民的福祉&#xff0c;也关系到国家整体发展的质量和水平。因此&#xff0c;深化乡村振兴与…