MySQL库的操作

发布于:2024-10-13 ⋅ 阅读:(12) ⋅ 点赞:(0)

>>上文介绍了MySQL的一些基本知识,今天我们来学习MySQL数据库的基本操作

1. 查看数据库

1.1 语法

show databases;
  • databases是复数形式
  • ⼤⼩写不敏感

在这里插入图片描述

2. 创建数据库

2.1 语法

CREATE { DATABASE | SCHEMA } [ IF NOT EXISTS ] db_name  [ create_option ] ...
 create_option: [DEFAULT] {
 CHARACTER SET [=] charset_name
 | COLLATE [=] collation_name
 | ENCRYPTION [=] {'Y' | 'N'}
 }
  • ⼤写部分表⽰关键字
  • db_name:表⽰⾃定义的数据库名
  • {}⼤插号表⽰必须选
  • |表⽰任选其中⼀个
  • []中括号表⽰是可选项
  • CHARACTERSET:指定数据库采⽤的字符集编码
  • COLLATE:指定数据库字符集的校验规则
  • ENCRYPTION:数据库是否加密,MySQL8.0.16中引⼊的新选项

2.2 创建一个studymysql数据库

在这里插入图片描述

在这里插入图片描述

3. 字符集编码和校验(排序)规则

3.1 查看数据库⽀持的字符集编码

show charset;

MySQL8.0默认的字符集编码是utf8mb4
MySQL5.7默认的字符集是latin1

在这里插入图片描述

3.2 查看数据库⽀持的排序规则

show collation;

MySQL8.0默认的排序规则是utf8mb4_general_ci MySQL5.7默认排序规则是utf8mb4_0900_ai_ci

在这里插入图片描述

3.3 不同的字串集与排序规则对数据库的影响

  • utf8mb4_0900_ai_ci 是MySQL8.0引⼊的新规则,在⽼版本中不能识别;
  • utf8mb4 编码是对Unicode 字符集的⼀种实现,⽤1到4个字节表⽰⼀个字符,可以表⽰世界上⼏乎所有的字符,⽽且更节少空间
  • 0900是基于UCA9.0.0算法,UCA是UnicodeCollationAlgorithm的缩写
  • ai是Accent-insensitive的缩写,表⽰⼝声不敏感
  • ci是Case-insensitive的缩写表⽰⼤⼩写不敏感
  • as是Accent-sensitive的缩写,表⽰⼝声敏感
  • cs是Case-sensitive的缩写,表⽰⼤⼩写敏感
  • bin表⽰⼆进制

3.4 查看系统默认字符集和排序规则

默认字符集

show variables like '%character%';

默认排序规则

show variables like '%collation%';

3.5 创建数据库时指定字符集和检验规则

创建⼀个库名为studymysql,字符编码集为utf8mb4库,排序规则为utf8mb4_0900_ai_ci的数据库, 数据库不存在时则创建

 create database if not exists studymysql character set utf8mb4 collate utf8mb4_0900_ai_ci;

在这里插入图片描述

4. 查看创建语句

show create database db_name;

在这里插入图片描述

5. 修改数据库

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}
 }

对数据库的修改主要是修改数据库的字符集,校验规则

例如:把studymysql数据库中的数据库字符集改成gbk

在这里插入图片描述

6. 删除数据库

6.1 语法

DROP { DATABASE | SCHEMA } [ IF EXISTS ] db_name

在这里插入图片描述

6.2 注意事项

  • 删除数据库是⼀个危险操作,不要随意删除数据库
  • 删除数据库之后,数据库对应的⽬录及⽬录中的所有⽂件也会被删除
  • 删除数据库之后,使⽤showdatabases;语句查看不到对应的数据库