MySQL:库操作

目录

一.数据库操作

1.查找数据库

1.1语法

1.2查找

2.新建数据库

1.1语法

1.2修改数据库服务全局默认的字符集和规则

1.3新建

3.修改数据库

1.1.语法

1.2修改

4.删除数据库

1.1语法

1.2删除


我们的数据库都是在数据库服务器中创建的。

一.数据库操作

数据库有查找创建修改删除操作。

1.查找数据库

1.1语法

show databases;

需要注意的是 databases 是复数!

1.2查找

数据库名是不能重复的,因此程序员不单在 单纯需要查找数据库时使用show databases;(英文分号要写上) 查找,在新建数据库时也要先看一下要创建的数据库名是否已经存在。

2.新建数据库

1.1语法

在很多编程语言官方文档中都会出现**{} [] |**。

**{}**指{}中的语法不能省略,是必写的。

**[]**指[]中的语法可写,可不写。

**|**表示选择,如A|B表示可选择A或者B。

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS ] db_name [ create_option ];
create_option : [ DEFAULT ] {
CHARACTER SET [=] charset_name
| COLLATE [=] collation_name
| ENCRYPTION [=] { 'Y' | 'N' }
}

不手动规定字符集和排序规则,就使用数据库服务默认的字符集和规则。(默认规则在下面)

排序规则:是控制字符比较的核心机制。规则可指定字符是否忽略大小写 ,是否忽略重音。

**重音:**如果忽略重音,则视é、è、ê与e相同,将 ñ 视为与 n 相同。

|---------|-------------------------------------|
| ai | 不区分重音 |
| ci | 不区分大小写 |
| as | 区分重音 |
| cs | 区分大小写 |
| general | 意味着这个排序规则是通用的、标准的,适用于大多数场景(不需要过多了解) |

在MySQL5.7中默认字符集是latin1。(使用latin1字符不能出现中文)

在MySQL8.0中默认字符集是utf8mb4。(utf8mb4支持中文字符)

在MySQL8.0中默认排序规则是utf8mb4_0900_ai_ci。(基于 Unicode 9.0.0 版本的不区分重音和不区分大小写的排序规则)

在MySQL5.7中默认排序规则是utf8mb4_general_ci。(通用的不区分大小写的规则)

梳理一下知识点:

  • UTF-8是一种字符编码方式,它的作用是将Unicode字符转化为字节序列(也就是转化为二进制数据),它专门为编码Unicode中的字符而生;
  • utf8mb4是一个字符集,它包含了Unicode中大小为1~4字节的字符(也就是支持完整的Unicode字符集)。
  • utf8mb3是一个字符集,它包含了Unicode中大小为1~3字节的字符(支持部分Unicode字符)。
  • Unicode是世界统一的字符集标准,为世界上几乎所有语言的每个字符分配了一个数字编码(码点),Unicode相当于是做一个"标准",具体的实施分配给其他字符集,如utf8mb4、ASCII等。

**你可能看到过别人或者AI说,MySQL中utf8mb4拓展了UTF-8的支持范围,这种说法是很容易造成误解的。**UTF-8本来就支持编码Unicode的全部字符,utf8mb4也只是包含Unicode没有增加新字符,这也就谈不上utf8mb4拓展了UTF-8编码支持范围。其实UTF-8原本支持范围没有被utf8mb4影响,只是MySQL 5.5.3之前采用的字符集是utf8mb3,导致UTF-8在MySQL中不能编码Unicode中四个字节的字符,但后面引入了utf8mb4,UTF-8也就能在MySQL内编码全部Unicode字符了,这就在MySQL中拓展了UTF-8的支持范围。


1.2修改数据库服务全局默认的字符集和规则

查看当前数据库服务(MySQL 8.0+)全局默认的字符集:

show variables like '%character%';

Windows在C:\ProgramData\MySQL\MySQL Server 8.0 路径下找到my.ini文件,打开它,修改后记得保存。

Linux路径为**/etc/my.cnf/etc/mysql/my.cnf,**修改这个my.cnf文件,具体怎么修改不知道...)

1.3新建

数据库一般不需要加密。推荐下面这样创建数据库的语法。

下面这种创建数据库的写法是极其不推荐的:

create database mmm;

不推荐的原因 :**1.**在图形化客户端工具的查询全局运行时如果database_name已经存在,create database mmm; 就会报错(没有写if not exists),报了一个错就导致整个查询就运行不了了。 **2.**手动设置这个创建的数据库的字符集和排序规则是保险的,可读性好的。

3.修改数据库

1.1.语法

ALTER {DATABASE | SCHEMA} [ db_name ] alter_option ...;
alter_option: {

DEFAULT \] CHARACTER SET \[=\] *charset_name* \| \[ DEFAULT \] COLLATE \[=\] *collation_name* \| \[ DEFAULT \] ENCRYPTION \[=\] { 'Y' \| 'N' } \| READ ONLY \[=\] { DEFAULT \| 0 \| 1 } }

注意:解析图中,数据库名被[]括起来,但不是说,不指定数据库名就可修改数据库配置,而是之前已经用**use database_name;**选定数据库了,在选定数据库的前提下可以省略数据库名,直接修改当前已选定的数据库配置。下面有易理解的修改实战。

1.2修改

在选择数据库后,也照能使用包含数据库名的修改数据库操作。

4.删除数据库

1.1语法

删除语法:

DROP {DATABASE | SCHEMA} [IF EXISTS ] db_name;

1.2删除

大家注意!以后在公司开发时不要随意删除数据库!!

相关推荐
等....2 小时前
Minio使用
数据库
win x3 小时前
Redis 使用~如何在Java中连接使用redis
java·数据库·redis
迷枫7124 小时前
DM8 数据库安装实战:从零搭建达梦数据库环境(附全套工具链接)
数据库
XDHCOM4 小时前
PostgreSQL 25001: active_sql_transaction 报错原因分析,故障修复步骤详解,远程处理解决方案
数据库·sql·postgresql
卤炖阑尾炎5 小时前
PostgreSQL 日常运维全指南:从基础操作到备份恢复
运维·数据库·postgresql
daad7776 小时前
wifi_note
运维·服务器·数据库
计算机毕设vx_bysj68696 小时前
【免费领源码】77196基于java的手机银行app管理系统的设计与实现 计算机毕业设计项目推荐上万套实战教程JAVA,node.js,C++、python、大屏数据可视化
java·mysql·智能手机·课程设计
吴声子夜歌6 小时前
ES6——正则的扩展详解
前端·mysql·es6
xixingzhe26 小时前
Mysql统计空间增量
数据库·mysql
程序员萌萌6 小时前
Java之mysql实战讲解(三):聚簇索引与非聚簇索引
java·mysql·聚簇索引