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删除

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

相关推荐
短剑重铸之日1 小时前
《ShardingSphere解读》12 解析引擎:SQL 解析流程应该包括哪些核心阶段?(下)
数据库·后端·sql·架构·shardingsphere·分库分表
2401_884563241 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
2401_891482171 小时前
使用Plotly创建交互式图表
jvm·数据库·python
dapeng28701 小时前
开发一个简单的Python计算器
jvm·数据库·python
轩情吖2 小时前
MySQL Connect(2)
android·mysql·adb·workbench·mysql连接池·图形化mysql
弹简特2 小时前
【JavaEE20-后端部分】 MyBatis 入门第四篇:多表查询、#{}与${}详解、数据库连接池
数据库·mybatis
2501_945423544 小时前
用Matplotlib绘制专业图表:从基础到高级
jvm·数据库·python
2301_793804694 小时前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
哆啦A梦158810 小时前
Springboot整合MyBatis实现数据库操作
数据库·spring boot·mybatis