【MySQL】基本操作

news2024/12/23 9:07:10

在这里插入图片描述

欢迎来到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.coloradmin.cn/o/1666100.html

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

相关文章

如何在matlab时间序列中X轴标注月-日

一般我们使用的时间序列都是以年为单位&#xff0c;比如下图&#xff1a; 而如果要绘制月尺度的时间变化图&#xff0c;则需要调整X轴的标注。下面代码展示了如何绘制小时尺度的降水数据。 [sname2,lon2,lat2] kml2xy(GZ_.kml); nc_bound2 [lon2,lat2]; area_ind2inpolygon(e…

Remix Client/Server 架构

Remix 框架是服务端渲染架构&#xff0c;当路由请求时生成 HTML 并返回浏览器。这种 SSR 是如何实现的呢&#xff1f;如果不使用 Remix 这种框架&#xff0c;可以在服务器段启动一个无头浏览器进行页面渲染并返回&#xff0c;代价就是要在服务器上启动一个 Chrome 服务&#xf…

AI语音模型PaddleSpeech踩坑(安装)指南

PaddleSpeech简介 PaddleSpeech 是基于飞桨 PaddlePaddle 的语音方向的开源模型库&#xff0c;用于语音和音频中的各种关键任务的开发&#xff0c;包含大量基于深度学习前沿和有影响力的模型。 PaddleSpeech安装步骤 提示&#xff1a;要找到一个合适的PaddleSpeech版本与pad…

乡村旅游指标-最美乡村数、旅游示范县数、旅行社数、景区数、农家乐数(2007-2021年)

01、数据介绍 乡村旅游也是促进乡村经济发展的有效途径。通过发展乡村旅游&#xff0c;可以带动乡村相关产业的发展&#xff0c;提高乡村居民的收入&#xff0c;促进乡村的经济发展和社会进步。此外&#xff0c;乡村旅游还能促进城乡交流&#xff0c;推动城乡统筹发展。 数据…

简易留言板

目录 前端实现 数据库的使用 创建数据表 创建项目 连接数据库 后端实现 接口定义 持久层 业务逻辑层 控制层 前端代码完善 留言板是一个常见的功能&#xff0c;在本篇文章中&#xff0c;将实现一个简易的留言板&#xff1a; 页面中能够显示所有留言内容&#xff0c…

刷代码随想录有感(63):将有序数组转换为二叉搜索树(其实时二叉平衡搜索树)

题干&#xff1a; 代码&#xff1a; class Solution { public:TreeNode* traversal(vector<int>& nums, int left, int right){if(left > right)return NULL;int mid left (right - left)/2;TreeNode* NewRoot new TreeNode(nums[mid]);NewRoot->left tra…

maven mirrorOf的作用

在工作中遇到了一个问题导致依赖下载不了&#xff0c;最后发现是mirror的问题&#xff0c;决定好好去看一下mirror的配置&#xff0c;以及mirrorOf的作用&#xff0c;以前都是直接复制过来使用&#xff0c;看了之后才明白什么意思。 过程 如果你设置了镜像&#xff0c;镜像会匹…

HIVE调优MapJoin

HIVE调优MapJoin 目录 HIVE调优MapJoin 1.mapjoin &#xff08;1.2以后自动默认启动mapjoin&#xff09; 2.创建表格 3.查询建表 4.通过 explain 展示执行计划 5.Map JOIN 相关设置&#xff1a; 1.mapjoin &#xff08;1.2以后自动默认启动mapjoin&#xff09;…

SpringBoot内置插件的使用(jackson和lombok)

文章目录 引言I lombok(自动为属性生成构造器)II jacksonsee also引言 idea2021.2.2 已经捆绑安装jackson和lombok插件 I lombok(自动为属性生成构造器) Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。 https://p…

【SpringBoot】Redis Lua脚本实战指南:简单高效的构建分布式多命令原子操作、分布式锁

文章目录 一.Lua脚本1.Lua特性2.Lua优势 二.Lua语法1.注释2.变量3.数据类型&#xff1a;3.1.基本类型3.2.对象类型&#xff1a;表&#xff08;table&#xff09; 4.控制结构&#xff1a;4.1.条件语句: 使用if、else和elseif来实现条件分支。4.2.循环结构&#xff1a;Lua支持for…

大模型面试常考知识点2

文章目录 1. LLM推理attention优化技术KV CachePageAttention显存优化MHA\GQA\MQA优化技术FlashAttention优化技术稀疏Attention1. Atrous Self Attention2. Local Self Attention3. Sparse Self Attention 2. LLM数据处理关键去重多样性保证构造扩充数据充分利用数据 参考文献…

前端小程序调用 getLocation 实现地图位置功能,通过 纬度:latitude 经度: longitude 获取当前位置

1、首先登录一下 腾讯的位置服务 有账号就登录没账号就注册&#xff0c; 点击右上角的控制台点击左侧的应用管理 ---> 我的应用 ---->> 创建应用 1、创建应用 2、列表就会显示我们刚刚创建好的 key 3、点击添加 key 4、按照要求填写信息 我们用的是小程序 所以选择…

[python:django]:web框架搭建项目

文章目录 pip查看安装列表安装制定Django版本初始化django项目执行 python manage.py startapp projectName 生成app应用执行 python manage.py runserver 运行web项目配置django项目页面访问地址注意&#xff1a;再次访问地址&#xff0c;返回制定页面 pip查看安装列表 C:\Us…

通过 Java 操作 redis -- set 集合基本命令

目录 使用命令 sadd &#xff0c;smembers 使用命令 sismember 使用命令 scard 使用命令 spop 使用命令 sinter&#xff0c;sinterstore&#xff0c;sunion&#xff0c;sunionstore&#xff0c;sdiff&#xff0c;sdiffstore 关于 redis set 集合类型的相关命令推荐看Redis …

Vue3的CRUD模版(附Demo)

目录 前言模版 前言 用惯Vue2之后&#xff0c;在碰Vue3后&#xff0c;整体还是有所区别 此文主要做一个回顾总结 假设界面如下&#xff1a; 可CRUD&#xff0c;对应的新增 添加一些必选项&#xff1a; 其中数据库的设计如下&#xff1a; 模版 对应需要注意参数位置、初始…

基于遗传优化的双BP神经网络金融序列预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于遗传优化的双BP神经网络金融序列预测算法matlab仿真&#xff0c;采用的双BP神经网络结构如下&#xff1a; 2.测试软件版本以及运行结果展示 MATLAB2022A版本…

[蓝桥杯]真题讲解:合并数列(双指针+贪心)

[蓝桥杯]真题讲解&#xff1a;班级活动&#xff08;贪心&#xff09; 一、视频讲解二、正解代码1、C2、python33、Java 一、视频讲解 [蓝桥杯]真题讲解&#xff1a;合并数列&#xff08;双指针贪心&#xff09; 二、正解代码 1、C #include<bits/stdc.h> #define in…

一个优秀 Maven 项目,各 Model 间最佳继承设计方案

1.单一职责原则 (Single Responsibility Principle): 每个模块应该专注于执行一个清晰且明确定义的功能&#xff0c;遵循单一职责原则&#xff0c;以降低模块的复杂性。 2.高内聚性 (High Cohesion): 模块内的组件和类应该紧密相关&#xff0c;共同实现模块的目标。高内聚性…

5 个遥遥领先的大模型 RAG 工具

想象一下拥有一种超能力&#xff0c;让你能够对任何问题或提示生成类似人类的回答&#xff0c;同时还能够利用庞大的外部知识库确保准确性和相关性。这不是科幻小说&#xff0c;这就是检索增强生成&#xff08;RAG&#xff09;的力量。 在本文中&#xff0c;我们将介绍五大遥遥…

macOS上将ffmpeg.c编译成Framework

1 前言 本文介绍下在macOS上将ffmpeg的fftools目录下的ffmpeg.c程序&#xff0c;也就是ffmpeg的命令行程序&#xff0c;编译成framework的方法。编译成.a或.dylib的方法类似。 编译环境如下&#xff1a; xcode15.3&#xff1b;ffmpeg release/6.1; 2 编译ffmpeg 首先clone我们…