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

【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系统)上没有回收站,删了就删了,删除本身这个事,并不是说删了就找不到了,删除的过程只是在原来的数据位置做了覆盖操作。

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

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

相关文章:

【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 查…...

linux桌面软件(wps)内嵌到主窗口后的关闭问题

程序测试环境是:slackware系统,属于linux系统,有桌面(Xface Session)。系统镜像是:slackware64-15.0-install-dvd.iso。qt、c代码实现。 问题描述:延续上一篇文章,将wps软件窗口内嵌…...

WindowsTerminal 美化-壁纸随机更换

目录 一. 相关网址二. 壁纸随机更换思路三. 指定 WindowsTermina 壁纸路径四. 编写脚本,随机替换壁纸4.1 powershell脚本4.2 .bat批处理脚本 四. 配置定时任务,添加触发器五. 效果 一. 相关网址 官方下载 Windows Terminal 官方Github微软商店 美化 Oh …...

iOS 多次获取图片主题色不一样

一个需求中,要求获取图片的主题色 代码如下 -(void)kk_getImage:(UIImage *)image fetchthemeColor:(void(^)(UIColor *color))callBack {dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{// 第一步 先把图片缩小 加快计算速度.…...

UE5 武器IK瞄准系统

创建空项目 创建基础蓝图类My_GameMode,My_HUD,My_PlayChar,My_PlayController 项目设置地图模式 近裁平面 0.1 My_PlayChar蓝图中添加摄像机,角色骨骼网格体,武器骨骼网格体 编辑角色骨骼,预览控制器使用特定动画,动画选择ANM_ark-47-Idle hand_r 添加插槽WeaponMes…...

①EtherCAT转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关https://item.taobao.com/item.htm?ftt&id822721028899 协议转换通信网关 EtherCAT 转 ModbusTCP GW系列型号 MS-GW15 简介 MS-GW15 是 EtherCAT 和 Modbus TCP 协议转换网关,为用户提供一种 …...

在macOS上进行开发环境配置与应用开发详细的配置指南

在macOS上进行开发环境配置与应用开发,需要遵循一系列步骤来确保你的开发环境既高效又稳定。以下是一个详细的配置指南,涵盖了从安装基本工具到创建应用的整个过程。 1. 安装和更新macOS 首先,确保你的macOS是最新版本。更新系统可以提供更…...

JavaScript 事件处理基础

在网页中添加事件监听器,可以通过JavaScript代码来实现。 要处理用户的交互事件,需要先选择要添加事件监听器的元素,可以使用document.querySelector()或document.getElementById()等方法来获取元素。 然后,使用addEventListene…...

WordPress响应式Git主题响应式CMS主题模板

兼容 IE9、谷歌 Chrome 、火狐 Firefox 等主流浏览器 扁平化的设计加响应式布局,兼容电脑、和各个尺寸手机的完美响应 主题设置面板新增多种AD位,PC端和移动设备各不相同 在主题设置选项中就可以进行基本的SEO设置:首页、分类、文章等页面…...

Solidity 设计模式:实现灵活与可扩展的智能合约架构

Solidity 作为以太坊智能合约的主要编程语言,拥有许多独特的设计模式,这些模式帮助开发者实现更加灵活、可扩展和安全的合约架构。设计模式不仅能够简化开发过程,还能减少常见的编程错误,并提高智能合约的可维护性和可升级性。本文…...

房屋水电费:重新布局,重构JS代码

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>房租水电费</title><script type"…...

Jmeter生成JWT token

JWT简介 JWT官网&#xff1a;https://jwt.io/ JSON Web令牌&#xff08;JWT&#xff09;是一个开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑而自包含的方式&#xff0c;用于在各方之间以JSON对象的形式安全地传输信息。此信息可以验证和信任&#x…...

STM32的ADC技术详解

ADC&#xff08;Analog-to-Digital Converter&#xff0c;模数转换器&#xff09; 是将连续的模拟信号转换为离散的数字信号的关键组件。在STM32系列微控制器中&#xff0c;ADC广泛应用于传感器数据采集、信号处理和控制系统等领域。本文将详细介绍STM32的ADC技术&#xff0c;包…...

PySpark把一列数据上下移动,时序数据

在Pandas中&#xff0c;我们用.shift()把数据框上下移动。 在 PySpark 中&#xff0c;确实存在一个类似于 Pandas 中 shift 函数的功能&#xff0c;它被称为 shiftleft 函数。这个函数用于将给定的值向左移动指定的位数。不过&#xff0c;这与 Pandas 中的 shift 函数有所不同…...

网络基础 【HTTPS】

&#x1f493;博主CSDN主页:麻辣韭菜&#x1f493;   ⏩专栏分类&#xff1a;Linux初窥门径⏪   &#x1f69a;代码仓库:Linux代码练习&#x1f69a; &#x1f4bb;操作环境&#xff1a; CentOS 7.6 华为云远程服务器 &#x1f339;关注我&#x1faf5;带你学习更多Linux知识…...

51单片机的红外感应洗手器【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机红外感应传感器继电器LED等模块构成。适用于智能红外感应自动洗手器等相似项目。 可实现功能: 1、红外感应传感器实时检测是否有人体接近&#xff08;距离小于20cm&#xff09; 2、如果有人靠近&#xff0c;继电器自动闭合&#…...

【11】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-模块化语法与自定义组件

序言&#xff1a; 本文详细讲解了关于鸿蒙系统学习中的模块化语法与自定义组件&#xff0c;在模块化语法中我们学习到了多种导入导出方式&#xff0c;实现了在一个项目中&#xff0c;通过引用不同的组件&#xff0c;让我们整体代码的可读性更强&#xff0c;相当于我们把一个手…...

Angular 客户端渲染时,从 ng-state 里读取 SSR 状态的具体逻辑

Angular 在客户端启动时&#xff0c;如何检测页面中的 ng-state 标签并从中读取 JSON 对象&#xff0c;进而还原应用的状态&#xff0c;是服务器端渲染&#xff08;SSR&#xff09;与客户端渲染&#xff08;CSR&#xff09;无缝衔接的核心环节之一。为了理解这个过程&#xff0…...

C++的联合体union

联合体有点像class类型或者struct类型&#xff0c;只不过它一次只占用一个成员的内存。 通常我们有一个结构体&#xff0c;声明了4个浮点数&#xff0c;那么结构体中就有4*416字节。当我们不断向类或者结构体中添加成员时&#xff0c;其大小也会不断增大。 union只有一个成员…...

JavaScript 中的变量作用域

JavaScript 中的变量作用域 在 JavaScript 中&#xff0c;理解变量作用域是非常重要的&#xff0c;它决定了变量的可见性和生命周期。本文将深入探讨 JavaScript 中的变量作用域&#xff0c;帮助你更好地掌握这一关键概念。 一、什么是变量作用域&#xff1f; 变量作用域指的…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中&#xff0c;压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言&#xff0c;提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...