MySQL--库的操作

查看数据库

复制代码
--查看服务器上所有的数据库
show databases;

输出示例

注意:前四个是 MySQL 系统数据库,不要随意修改。

查看当前使用的数据库

复制代码
select databases();

创建数据库

语法
复制代码
create databases [if not exists] db_name [create_specification [,create_specification] ...]
create_specification]...]

create_specification:
    [default] character set charset_name
    [default] collate collation_name

**主语句:**CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]

CREATE DATABASE​: 这是 SQL 关键字,表示"创建数据库"的操作。
[IF NOT EXISTS]​: 方括号 []表示可选参数。
IF NOT EXISTS 的作用是:如果数据库 db_name已经存在,则不执行创建操作(避免报错);如果不存在,则正常创建。如果不加这个参数,当数据库已存在时,MySQL 会抛出错误(如 Error: Database 'db_name' already exists)。
db_name​: 你要创建的数据库名称(需符合 MySQL 的命名规则,如不能包含特殊字符、不能以数字开头等)。
**[create_specification [, create_specification] ...]​:**表示可以追加多个"创建规格"(用逗号分隔),用于指定数据库的额外属性(如字符集、校对规则)。这部分是可选的,但实际应用中常用来定义字符集和排序规则。

create_specification的定义

这部分定义了数据库可以配置的附加属性,格式如下:

复制代码
create_specification:
  [DEFAULT] CHARACTER SET charset_name
  [DEFAULT] COLLATE collation_name
(1) [DEFAULT] CHARACTER SET charset_name

作用:指定数据库的默认字符集(Character Set)。

字符集决定了数据库中存储数据时使用的编码方式(如 utf8mb4、latin1、gbk等)。

例如:CHARACTER SET utf8mb4表示数据库使用 UTF-8 编码(支持 emoji 等特殊字符)。

DEFAULT\]​ 可选关键字,表示"默认值"。 如果不加 DEFAULT,MySQL 仍会将其视为默认字符集设置(实际使用中 DEFAULT可省略,但写上更清晰)。 ##### (2) \[DEFAULT\] COLLATE collation_name 作用:指定数据库的默认校对规则(Collation)。 校对规则决定了字符串比较时的排序和大小写敏感规则(如 utf8mb4_general_ci是不区分大小写的,utf8mb4_bin是二进制严格匹配)。 例如:COLLATE utf8mb4_general_ci表示数据库在排序、比较时不区分大小写。 \[DEFAULT\]​ 同样可选,表示"默认值"。 ### 使用案例 #### 创建一个db1的数据库 create databases db1; 说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则 是:utf8_ general_ ci #### 创建一个utf8字符集的db2的数据库 create databases db2 charset=utf8; #### 创建一个使用utf字符集,并带校对规则的 db3 数据库 create databases db3 charset=utf8 collate utf8_general_ci; ### 字符集和校验规则 #### 查看系统默认字符集以及校验规则 show variables like 'character_set_database'; show variables like 'collation_database'; #### 查看数据库支持的字符集 show charset; 字符集主要是控制用什么语言。比如utf8就可以使用中文。 #### 查看数据库支持的字符集校验规则 show collation; #### 校验规则对数据库的影响 ##### 不区分大小写 创建一个数据库,校验规则使用utf8_ general_ ci\[不区分大小写

复制代码
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20);
insert into person values('a');
insert into person values('A');

查询结果

复制代码
select * from person where name='a';
排序结果
复制代码
select * from person order by name;
区分大小写

创建一个数据库,校验规则使用utf8_ bin[区分大小写]

复制代码
create database test2 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
查询结果
复制代码
select *from person where name='a';
排序结果
复制代码
select * from person order by name;

修改数据库

语法:

复制代码
ALTER DATABASES db_name
[alter_spacification[,alter_spacification]...]

alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
主语句:ALTER DATABASE db_name [alter_specification [, alter_specification] ...]

ALTER DATABASE:SQL 关键字,表示"修改数据库"的操作。

db_name:要修改的目标数据库名称(必须是已存在的数据库)。

alter_specification \[, alter_specification\] ...\]: 方括号 \[\]表示可选参数。 可以追加多个"修改规格"(用逗号分隔),用于指定数据库要修改的属性(如字符集、校对规则)。 ##### 使用示例 将数据库 mydb的字符集改为 utf8mb4,校对规则改为 utf8mb4_unicode_ci ALTER DATABASES mydb DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci; ### 数据库删除 ##### 语法 DROP DATABASES [IF EXISTS] db_name; 执行删除后:数据库内部看不到对应的数据库,对应的数据库文件夹被删除,级联删除,里面的数据表全部被删 ### 备份与恢复 #### 备份数据库 ##### 语法 # 导出数据库结构和数据 mysqldump -u username -p database_name > backup.sql # 只导出结构(不包含数据) mysqldump -u username -p --no-data database_name > structure.sql # 只导出数据 mysqldump -u username -p --no-create-info database_name > data.sql #### 还原数据库 # 从备份文件恢复 mysql -u username -p database_name < backup.sql #执行备份文件 SOURCE C:\backup\school_backup.sql;

相关推荐
IronMurphy4 分钟前
Redis拷打第一讲
数据库·redis·缓存
盖世英雄酱581365 分钟前
6000条数据执行时间9s(二)
数据库·后端
_376271535 分钟前
MySQL主从复制如何实现读写分离_利用ProxySQL进行流量分发
jvm·数据库·python
2401_833033626 分钟前
SQL如何提高分组统计查询的响应速度_索引与缓存策略
jvm·数据库·python
是梦终空14 分钟前
计算机源码273—基于SpringBoot+Vue3停车场管理系统带支沙箱支付(源代码+数据库)
数据库·spring boot·vue·mybatis·停车场管理系统·沙箱支付·毕设设计
Irene199114 分钟前
SQL示例:分别使用 MySQL 和 Oracle 创建表,MySQL 插入数据建索引(自增主键、指定主键的区别,VARCHAR,VARCHAR2)
mysql·oracle
dinglu1030DL19 分钟前
C#怎么实现发布订阅模式 C#如何用事件总线EventBus实现模块间的松耦合消息通信【架构】
jvm·数据库·python
神明93120 分钟前
PHP函数怎样利用硬件内存压缩功能_PHP启用zswap硬件加速【指南】
jvm·数据库·python
曹牧25 分钟前
PL/SQL:视图(View)比较
数据库·sql
2301_7815714225 分钟前
如何配置用户的资源使用上限_MAX_QUERIES_PER_HOUR查询频率限制
jvm·数据库·python