当前位置: 首页 > article >正文

【MySQL】-- 库的操作

文章目录

  • 1. 查看数据库
    • 1.1 语法
  • 2. 创建数据库
    • 2.1 语法
    • 2.2 示例
      • 2.2.1 创建一个名为java114的数据库
      • 2.2.2 创建数据库java114,如果数据库不存在则创建
      • 2.2.3 查看警告信息
  • 3. 字符集编码和校验(排序)规则
    • 3.1 查看数据库支持的字符集编码
    • 3.2 查看数据库支持的排序规则
    • 3.3 不同的字符集与排序规则对数据库的影响
    • 3.4 查看系统默认字符集和排序规则
  • 4. 查看创建语句
    • 4.1 语法
    • 4.2 示例
  • 5. 修改数据库
    • 5.1 语法
    • 5.2 示例
  • 6. 删除数据库
    • 6.1 语法
    • 6.2 示例
    • 6.3 注意事项

1. 查看数据库


1.1 语法

显示所有的数据库:

show databases;
  • databases是负数形式。
  • 大小写不敏感。在这里插入代码片
  • 分号是每天SQL语句的结尾。

在这里插入图片描述
一旦删除,可能MySQL就启动不起来了,因为MySQL启动之后会有一些数据在MySQL数据库里面,比如设置的用户密码。

其中上图中的6 rows in set 表示六行结果集的意思,其中set就是表示结果集的意思;(0.00 sec) 表示的是当前SQL语句的执行时间,0.00表示的是10ms(毫秒)之内。

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:表示自定义的数据库名
• {}⼤插号表⽰必须选
• | 表示任选其中⼀个
• []中括号表示是可选项
• CHARACTER SET:指定数据库采⽤的字符集编码
• COLLATE:指定数据库字符集的校验规则
• ENCRYPTION:数据库是否加密,MySQL 8.0.16中引⼊的新选项

2.2 示例


2.2.1 创建一个名为java114的数据库

mysql> create database java114;
Query OK, 1 row affected (0.01 sec)

2.2.2 创建数据库java114,如果数据库不存在则创建

mysql> create database if not exists java114;
Query OK, 1 row affected, 1 warning (0.00 sec)

2.2.3 查看警告信息

mysql> show warnings;
+-------+------+--------------------------------------------------+
| Level | Code | Message                                          |
+-------+------+--------------------------------------------------+
| Note  | 1007 | Can't create database 'java114'; database exists |
+-------+------+--------------------------------------------------+
1 row in set (0.00 sec)

提示:名为java114的数据库已存在。

不加if not exists,如果数据库存在,程序就会报错,程序就会停下来。建议将这条语句加上,防止整个SQL文件中的语句的运行。
在这里插入图片描述


在这里插入图片描述

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

字符集编码是为数据进行编码,然后保存。

校验规则也叫排序规则,指的是如何对数据进行排序。

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

1 show charset;

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

英文和数字使用一个字节保存;
在这里插入图片描述

中文和标点使用 不确定个字节保存。
在这里插入图片描述

在这里插入图片描述

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

show collation;

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


一条完整规范的建库语句:create database if not exists java114 character set utf8mb4 collate utf8mb4_0900_ai_ci;

强烈建议在创建数据库的时候按照完整规范创建,来确保当前数据库不管在哪一台服务器上,它都是按照我规定的字符集和排序规则去创建一个新的数据库,而不去依赖对方服务器的配置。

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

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

在学习完排序之后,可以通过⽰例观察不同排序规则对于⼤⼩写的影响

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

# 查看默认字符集
mysql> show variables like '%character%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value
                         |
+--------------------------+---------------------------------------------------------+
| character_set_client     | gbk
                         |
| character_set_connection | gbk
                         |
| character_set_database   | utf8mb4
                         |
| character_set_filesystem | binary
                         |
| character_set_results    | gbk                                                     |
| character_set_server     | utf8mb4
                         |
| character_set_system     | utf8mb3
                         |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.00 sec)
# 查看系统默认排序规则
mysql> show variables like '%collation%';
+-------------------------------+--------------------+
| Variable_name | Value |
+-------------------------------+--------------------+
| collation_connection | utf8mb4_0900_ai_ci |
| collation_database | utf8mb4_0900_ai_ci |
| collation_server | utf8mb4_0900_ai_ci |
| default_collation_for_utf8mb4 | utf8mb4_0900_ai_ci |
+-------------------------------+--------------------+
4 rows in set, 1 warning (0.00 sec)

在这里插入图片描述
在这里插入图片描述

4. 查看创建语句


4.1 语法

查看创建数据库的SQL语句:

1 show create database db_name;

4.2 示例

mysql> show create database java114;
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
| Database | Create Database

                       |
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
| java114  | CREATE DATABASE `java114` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci */ /*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-----------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

• /!40100 default… / 和/!80016 DEFAULT…/ 这个不是注释,表⽰当前mysql版本⼤于4.01和8.0.16时,分别执⾏对应的语句

5. 修改数据库


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

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


小技巧:选中要粘贴的内容–>鼠标右键–> 鼠标放到需要粘贴到的地方–> 鼠标右键

5.2 示例

• 将test+班级名的数据库字符集改成gbk

mysql> alter database test001 character set gbk;
Query OK, 1 row affected (0.01 sec)
mysql> show create database test001;
+----------+-------------------------------------------------------------------
-------------
| Database | Create Database 
 
+----------+-------------------------------------------------------------------
-------------
| java01 | CREATE DATABASE `test001` /*!40100 DEFAULT CHARACTER SET gbk */
/*!80016 DEFAULT ENCRYPTION='N' */ |
+----------+-------------------------------------------------------------------
-------------
1 row in set (0.00 sec)

6. 删除数据库


6.1 语法

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

6.2 示例

mysql> drop database testdb;
Query OK, 0 rows affected (0.04 sec)

6.3 注意事项

• 删除数据库之后,数据库对应的⽬录及⽬录中的所有⽂件也会被删除。
• 删除数据库之后,使⽤show databases; 语句查看不到对应的数据库。
• 删除一个不存在的数据库,会报错误,后面的SQL语句会中断执行,推荐加上if exists条件。
• 删除数据库是⼀个非常非常非常危险操作,在公司中做项目千万不要删除数据库!!!
如果公司中有需要让我们执行drop操作,我们应该怎么做?
把领导拉过来一起做这个事,如果领导不来,最起码要找一个同事。

在服务器(一般是Linux系统)上没有回收站,删了就删了,删除本身这个事,并不是说删了就找不到了,删除的过程只是在原来的数据位置做了覆盖操作。

如果说要恢复数据,必须要用到专业的磁盘恢复工具,如果恢复工具也 没有办法恢复,那么就需要寄回厂商进行恢复。

数据库本身在运维的过程中,也会定期的做一些备份操作。
全量备份+增量备份=所有数据


http://www.kler.cn/news/335648.html

相关文章:

  • 数据结构--集合框架
  • 【React】事件机制
  • 复习HTML(基础)
  • whisper 实现语音识别 ASR - python 实现
  • js 如何平拆嵌套数组
  • 【EXCEL数据处理】000013 案例 EXCEL筛选与高级筛选。
  • 消息称苹果iPhone系列将完全放弃LCD屏幕
  • redis-数据类型
  • STM32+ADC+扫描模式
  • Electron Vue框架环境搭建 Vue3环境搭建
  • 在Python中实现多目标优化问题(7)模拟退火算法的调用
  • Django学习笔记十二:程序优化
  • GOM引擎 GEEM2被攻击后触发无敌模式的BUFF脚本范例
  • 使用Mybatis框架的主要优势
  • 【最新华为OD机试E卷-支持在线评测】简单的自动曝光(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • 新闻推荐系统开发:Spring Boot实践指南
  • Aegisub字幕自动化及函数篇(图文教程附有gif动图展示)(二)
  • k8s实战-3
  • 分布式数据库
  • [Linux]:线程(三)