【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.mzph.cn/diannao/10719.shtml

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

相关文章

【1 bit 翻转+无任何保护】MidnightsunQuals 2021 BroHammer

前言 又是一道非常有意思的题目&#xff0c;其实笔者很喜欢这种跟页表、特权级等相关的题目&#xff08;&#xff1a;虽然大多都无法独立做出来&#xff0c;但是通过这些题目可以学到很多的东西 题目分析 内核版本&#xff1a;v4.17.0smap/smep/kpti/kaslr 全关 题目给了源…

laravel8 导入 excel常见问题

上传xls 或 xlsx 文件后&#xff0c;文件解析为 zip 格式&#xff0c;输入正常情况&#xff0c;不影响解析 里面的内容 遇到解析内容&#xff0c;解析为空的情况&#xff0c;可能是 因为excel 存在多个 Sheet1 造成&#xff0c;服务器不能解析一个 Sheet1 的情况&#xff0…

智慧停车场管理系统主要组成

智慧泊车场办理体系&#xff0c;完成了泊车办理过程中的车辆类型分类、出场时的车牌辨认、行进路线的引导、空余车位诱导&#xff0c;以及准备离场前的反向寻车和方便缴费等全部环节。这六个流程中&#xff0c;泊车场对车辆的办理&#xff0c;进步了泊车场的运行效率&#xff0…

数据分享—中国土壤有机质数据

土壤有机质数据是进行区域土地资源评价&#xff0c;开展自然地理研究常使用的数据&#xff0c;本期推文主要分享全国土壤有机质数据集。梧桐君会不定期分享地理信息数据&#xff0c;欢迎大家长期订阅。 数据来源 “万物土中生”&#xff0c;小编今天要分享的中国土壤有机质数…

牛客NC404 最接近的K个元素【中等 二分查找+双指针 Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/b4d7edc45759453e9bc8ab71f0888e0f 知识点 二分查找&#xff1b;找到第一个大于等于x的数的位置idx;然后从idx开始往两边扩展Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、…

可观测性监控

1 目的 常见的监控&#xff0c;主要是以收集数据以识别异常系统效应为主&#xff0c;多是单个服务&#xff0c;相互独立的状态。 可观测性&#xff0c;希望调查异常系统效应的根本原因&#xff0c;能够把多个服务、中间件、容器等串联起来&#xff0c;同时柔和metrics、log、…

vue3.0(六) toRef,toValue,toRefs和toRow,markRaw

文章目录 toReftoValuetoRefstoRowmarkRawtoRef和toRefs的区别toRaw 和markRaw的用处 toRef toRef 函数可以将一个响应式对象的属性转换为一个独立的 ref 对象。返回的是一个指向源对象属性的 ref 引用&#xff0c;任何对该引用的修改都会同步到源对象属性上。使用 toRef 时需…

2024年最新趋势跨境电商平台开发需了解的新技术

随着数字化技术的不断演进和全球市场的日益融合&#xff0c;跨境电商平台开发将面临前所未有的挑战和机遇。为了更好地适应并引领这一发展&#xff0c;开发者需要密切关注2024年最新的技术趋势&#xff0c;以确保他们的平台能够在竞争激烈的市场中脱颖而出。本文将对跨境电商平…

HTML/CSS2

1.前置说明 HTML/CSS1 2.img元素 格式&#xff1a; <img src"图片地址" alt"占位文字" width"图片宽度" height"图片高度">其中alt是当图片加载失败时显示的文字 而且不同内核的浏览器显示出来的占位文字的效果也是不尽相同…

网安面经之文件上传漏洞

一、文件上传漏洞 1、文件上传漏洞的原理&#xff1f;危害&#xff1f;修复&#xff1f; 原理&#xff1a;⽂件上传漏洞是发⽣在有上传功能的应⽤中&#xff0c;如果应⽤程序对⽤户上传的⽂件没有控制或者存在缺陷&#xff0c;攻击者可以利⽤应⽤上传功能存在的缺陷&#xff…

从文本日志到图形日志 图形化编程桌面产品的突破

在一个宽敞明亮的会议室里&#xff0c;阳光透过落地窗洒在会议桌上。卧龙和凤雏相对而坐&#xff0c;他们的面前摆放着一些关于图形化编程桌面产品的资料和测试报告。会议室里的气氛紧张而热烈&#xff0c;团队成员们围坐在一起&#xff0c;专注地倾听着卧龙和凤雏的讨论。 卧龙…

单位学校FM调频电台直放站系统

随着教育技术的不断发展&#xff0c;校园广播系统的建设已成为现代学校必不可少的一部分。作为传统有线广播的有效补充&#xff0c;基于无线电信号传输的 FM 调频电台在学校的使用日益广泛&#xff0c;尤其是在紧急通知、日常信息传播及教学辅助等方面发挥着重要作用。为了增强…

韩顺平0基础学Java——第9天

p169-201 数组&#xff08;第六章&#xff09; 数组扩容 此时原来的数组arr被销毁。 牛蛙&#xff1a; 最后再加一句 SYstem。out。println&#xff08;“是否添加&#xff1f;”&#xff09;&#xff1b; char key myscanner。netx&#xff08;&#xff09;。charAT&…

【Python超详细的学习笔记】Python超详细的学习笔记,涉及多个领域,是个很不错的笔记

获取笔记链接 Python超详细的学习笔记 一&#xff0c;逆向加密模块 1&#xff0c;Python中运行JS代码 1.1 解决中文乱码或者报错问题 import subprocess from functools import partial subprocess.Popen partial(subprocess.Popen, encodingutf-8) import execjs1.2 常用…

WordPress插件Plus WebP,可将jpg、png、bmp、gif图片转为WebP

现在很多浏览器和CDN都支持WebP格式的图片了&#xff0c;不过我们以前的WordPress网站使用的图片都是jpg、png、bmp、gif&#xff0c;那么应该如何将它们转换为WebP格式的图片呢&#xff1f;推荐安装这款Plus WebP插件&#xff0c;可以将上传到媒体库的图片转为WebP格式图片&am…

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;…

[机器学习-05] Scikit-Learn机器学习工具包进阶指南:协方差估计和交叉分解功能实战【2024最新】

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

设计模式-结构型-桥接模式-Bridge

桥接模式可以减少类的创建 矩阵类 public class Matrix {private String fileName;public Matrix(String fileName) {this.fileName fileName;}public String getFileName() {return fileName;} } 图片抽象类 public abstract class Image {protected ImageImp imp;public …

常见算法策略

前言 算法策略是指在解决问题或完成任务时所采用的方法、技巧或步骤的总称。 在设计算法时&#xff0c;通常会考虑多种策略&#xff0c;并选择最适合特定问题的策略来实现算法的设计和优化。 算法策略比较 动态规划 动态规划介绍入口

动手学深度学习16 Pytorch神经网络基础

动手学深度学习16 Pytorch神经网络基础 1. 模型构造2. 参数管理1. state_dict()2. normal_() zeros_()3. xavier初始化共享参数的好处 3. 自定义层4. 读写文件net.eval() 评估模式 QA 1. 模型构造 定义隐藏层–模型结构定义前向函数–模型结构的调用 import torch from torch…