欢迎来到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;
校验规则对数据库的影响
常见的数据库校验规则会影响到字符串的比较、排序、搜索等操作的结果。以下是一些常见的校验规则及其可能的影响:
-
排序规则:
- 不同的校验规则可能会导致相同的字符串在排序时的顺序不同,这会影响到 ORDER BY 子句的结果。
-
大小写敏感性:
- 不同的校验规则可能会导致字符串的大小写比较行为不同,有些规则是大小写不敏感的,而有些是敏感的。
- 例如,utf8_general_ci 是大小写不敏感的,而 utf8_bin 是大小写敏感的。
-
字符比较:
- 在某些校验规则下,特定字符的比较方式可能会有所不同,例如在一些规则下,特定的重音字符可能会被视为与对应的无重音字符相等,而在另一些规则下则不会。
-
搜索和匹配行为:
- 在执行搜索、模糊匹配或正则表达式匹配时,不同的校验规则可能会影响到匹配的结果。
- 例如,在大小写敏感的校验规则下,搜索时需要考虑字符的大小写,而在大小写不敏感的规则下则不需要。
-
唯一约束和索引:
- 在使用唯一约束或创建索引时,校验规则会影响到重复值的判断,不同的校验规则可能会导致不同的唯一约束和索引行为。
-
字符范围和支持:
- 不同的校验规则支持的字符范围可能会有所不同,某些规则可能支持更广泛的字符集,而某些规则可能限制了可用的字符范围。
因此,在选择数据库校验规则时,需要根据具体的需求和数据特点来确定合适的规则,以确保数据操作的一致性和正确性。
👉🏻操作数据库
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 中,你可以使用以下方法来备份和恢复数据库:
🍿 备份数据库:
- 使用
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
-
使用 MySQL Workbench:
MySQL Workbench 是一个图形化的 MySQL 数据库管理工具,它提供了备份和恢复数据库的功能。你可以通过导航到
Server
>Data Export
来进行数据库备份。
🍿 恢复数据库:
-
使用
mysql
命令:mysql -u 用户名 -p 数据库名 < 备份文件名.sql
例如,要将名为
mydatabase
的数据库从备份文件mydatabase_backup.sql
中恢复,可以执行以下命令:
source 备份文件路径
如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。
mysql -u root -p mydatabase < mydatabase_backup.sql
先创建好空数据库,然后执行该命令
这将从备份文件中恢复数据库。
-
使用 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)支持多种存储引擎,每种存储引擎都有其特定的特性、优缺点以及适用场景。
以下是一些常见的存储引擎以及它们可能使用的文件格式或存储结构:
-
InnoDB: InnoDB 是 MySQL 默认的存储引擎,它支持事务处理、外键约束等特性。在 InnoDB 中,表数据和索引通常存储在以
.ibd
为后缀的文件中。 -
MyISAM: MyISAM 是 MySQL 的另一种存储引擎,它不支持事务处理和外键约束,但具有较高的性能。在 MyISAM 中,表数据存储在以
.MYD
为后缀的文件中,索引存储在以.MYI
为后缀的文件中。 -
MEMORY: MEMORY 存储引擎将表数据存储在内存中,适用于对速度要求较高、但数据不需要长期存储的情况。在 MEMORY 存储引擎中,数据存储在内存中,而不是磁盘文件中。
-
CSV: CSV 存储引擎将表数据以 CSV 格式存储在文件中,适用于需要与其他应用程序交换数据的情况。
-
Archive: Archive 存储引擎将表数据以压缩格式存储在文件中,适用于数据归档或备份。
除了以上列举的存储引擎外,还有其他一些存储引擎,每种存储引擎都有其自己的特点和适用场景。在选择存储引擎时,需要考虑到应用程序的需求、性能要求、数据完整性要求等因素。
查看表结构
语法:
show tables;//查看当前数据库的全部表
desc 表名;
show create table 表名;
将会返回一个结果集,包括所有的列定义、约束、索引等信息。这个语句通常用于查看数据库中表的详细结构,以便于了解表的设计和定义。
修改表
在关系型数据库中,可以使用 SQL 语言来执行各种操作,包括修改表结构的操作。以下是一些常见的修改表结构的操作:
-
添加列(ADD)(INSERT INTO): 可以向现有表中添加新的列。使用
ALTER TABLE
语句,后跟ADD
关键字和要添加的列的定义。ALTER TABLE 表名 ADD 列名 数据类型;
ADD和MODIFY都要添加/修改新的属性
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
-
删除列(DROP): 可以从现有表中删除列。使用
ALTER TABLE
语句,后跟DROP
关键字和要删除的列名。ALTER TABLE 表名 DROP 列名;
-
修改列(ALTER): 可以修改现有列的定义,如修改数据类型、修改列名等。使用
ALTER TABLE
语句,后跟ALTER COLUMN
关键字和要修改的列名及其新的定义。ALTER TABLE 表名 ALTER COLUMN 列名 新数据类型;//新字段需要完整定义:列名+属性
ALTER TABLE 表名 change 列名 新数据类型;
-
修改表名(RENAME): 可以修改现有表的名称。使用
ALTER TABLE
语句,后跟RENAME TO
关键字和新的表名。ALTER TABLE 表名 RENAME TO 新表名;
-
修改约束(CONSTRAINT): 可以修改表中的约束,如主键、外键等。使用
ALTER TABLE
语句,后跟ADD
,DROP
或ALTER
关键字来添加、删除或修改约束。ALTER TABLE 表名 ADD CONSTRAINT ...; ALTER TABLE 表名 DROP CONSTRAINT ...; ALTER TABLE 表名 ALTER CONSTRAINT ...;
-
修改表的存储引擎(ENGINE): 可以修改表的存储引擎,如从 MyISAM 切换到 InnoDB。使用
ALTER TABLE
语句,后跟ENGINE
关键字和新的存储引擎名称。ALTER TABLE 表名 ENGINE = 新存储引擎;
7.更新数据(UPDATE): 用于修改表中已有行的数据。语法如下:
UPDATE 表名 SET 列1 = 值1, 列2 = 值2, ... WHERE 条件;
8.删除数据(DELETE): 用于删除表中符合条件的行。语法如下:
DELETE FROM 表名 WHERE 条件;
这将根据指定的条件更新表中符合条件的行的数据。
9.查询数据(SELECT): 用于从表中检索数据。虽然不是直接的表操作语句,但是在操作数据库时,查询数据是非常常见和重要的操作。语法如下:
SELECT 列1, 列2, ... FROM 表名 WHERE 条件;
10.修改列属性(ALTER TABLE MODIFY)
ALTER TABLE 表名 MODIFY 列名 新数据类型 [其他修改];
举例来说,假设有一个名为 students 的表,其中有一个名为 age 的列,现在需要将该列的数据类型修改为 INT,可以使用以下语句:
ALTER TABLE students MODIFY age INT;
ALTER TABLE
主要是对表的结构、列的属性进行修改
如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长