(MySQL)库的操作

目录

创建数据库

语法

创建数据库实例

不使用可选项

使用可选项1

字符集和校验规则

 校验规则对数据库的影响

 不区分大小写

查看配置

添加可选项2

操纵数据库

使用数据库

查看数据库

查看所有数据库

查询当前正在使用的数据库名称

显示创建数据库语句

修改数据库

数据库删除

查看相关线程和数据库连接情况


我们来学习MySQL库的操作

创建数据库

语法

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]

create_specification:

[DEFAULT] CHARACTER SET charset_name

[DEFAULT] COLLATE collation_name

 大写的表示关键字,都可以使用小写,[] 是可选项,CHARACTER SET: 指定数据库采用的字符集,COLLATE: 指定数据库字符集的校验规则,然后[IF NOT EXISTS]是指明数据库不存在才创建

我们不指定MySQL对这个库的编码格式以及校验规则就会使用自己默认的。

创建数据库实例

不使用可选项

可以看到每个MySQL语句就结束都是要加;表示语句结束的。我们确实创建了两个数据库d1和d2。

MySQL这个文件我们安装在了/var/lib/mysql目录下,打开可以看到其子目录确实显示了我们创建的两个数据库,所以数据库可以看成MySQL这个软件的一个一个的子目录。

使用可选项1

使用可选项[IF NOT EXISTS]

可以看到,第一次增加[IF NOT EXISTS]字段确实成功创建了d3数据库,然后第二次创建同名数据库时就无法成功创建了,并且由于[IF NOT EXISTS]字段的添加而产生了一个警告。

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则 是:utf8_ general_ ci,那字符集和校验规则是什么呢?

字符集和校验规则

字符集定义了MySQL能够存储哪些字符以及如何编码这些字符,字符集叫做charset。

show charset;  //用于查看数据库支持的字符集

show variables like 'character_set_database';  //用于查看系统默认字符集

show variables like 'collation_database';   //查看系统默认校验规则 

在 MySQL 中,执行 SHOW VARIABLES LIKE 'collation_%'; 可以查看当前与排序规则(Collation)相关的系统变量设置。这个命令会返回所有以 collation_ 开头的系统变量,它们决定了字符串比较和排序的行为。

在 MySQL 的 SHOW VARIABLES LIKE 'collation_%'; 语句中,% 是一个 通配符(wildcard),表示匹配任意长度的任意字符(类似于正则表达式中的 .*)。这里的 % 表示匹配 'collation_' 之后的所有字符。也就是%前面一致的都会被匹配上。

show collation;  //用于查看数据库支持的字符集

 校验规则对数据库的影响

 不区分大小写

创建一个数据库,校验规则使用utf8_ general_ ci,这种格式是不区分大小写的,而如果采用校验规则为utf8_ bin就是区分大小写的。这种区别会使得查询/排序某个字段/信息时会有差别。我们在后面的表的插入部分会验证这个差别。

查看配置

在 MySQL 中,db.opt 是一个 数据库配置文件,用于存储该数据库的默认字符集(Character Set)和排序规则(Collation)设置。它位于数据库对应的目录下,通常位于 MySQL 的数据目录(如 /var/lib/mysql/数据库名/)。

添加可选项2

添加字符集(编码格式)以及校验规则时是不能随便乱加的,字符集(CHARACTER SET)和排序规则(COLLATE)必须兼容才能一起使用。如下:

cp1251_general_ci 这个排序规则(collation)是专门为 cp1251 字符集准备的,而你创建数据库时使用的是 utf32 字符集,两者 不兼容,所以报错了。

当默认格式可以满足我们的存储需求时,我们一般不进行主动设置。

自定义字符集还可以使用character set 相应的编码格式的形式进行添加。

可以看到charset进行设置时是可以直接尾随相应的编码格式的,不需要显示的添加等号。

操纵数据库

使用数据库

use 数据库库名  //表示使用规定库名的数据库

创建好了数据库,要让其发挥作用肯定首先要使用它。

在 MySQL 中,当你执行 USE d2; 并看到 Database changed 的提示时,它的意思是:“当前会话(连接)的默认数据库已成功切换为 d2,也就是说一个会话只能使用一个数据库。

查看数据库

查看所有数据库

show databases;   //查看当前MySQL内部的所有的数据库

我们刚刚创建了很多个数据库,现在可以看下。注意,由于MySQL内部的数据库有很多,所以查看时记得是databases

 

除了刚刚创建的很多d开头的数据库,其他的都是原MySQL内置的数据库。

查询当前正在使用的数据库名称

select database();  //查询当前正在使用的数据库名称

SELECT database() 是 MySQL 中的一个函数,用于查询当前正在使用的数据库名称。

SELECT —— 标准的 SQL 查询关键字,用于检索数据,就是查找的意思,真正的函数部分是database(),database() —— 一个无参数的函数,返回当前会话(连接)所使用的数据库名称。

所以整个语句连起来就是查询当前正在使用的数据库名称。

 如果没有事先选择要使用的数据库直接运行这个函数就会显示为空。

显示创建数据库语句

show create database 数据库名;  //用于显示常见数据库语句

 MySQL 建议我们关键字使用大写,但是不是必须的,数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字,/*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话。

修改数据库

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

ALTER DATABASE db_name [alter_spacification [,alter_spacification]...]

alter_spacification:

[DEFAULT] CHARACTER SET charset_name

[DEFAULT] COLLATE collation_name

使用alter database进行修改对应数据库的字符集以及校验规则,并重新赋值新的校验规则和字符集,也并非一次就连着两个都该,alter database语句允许只修改其一。

不建议随便修改数据库的字符集和校验规则。

数据库删除

drop database [IF EXISTS] db_ name;

就是根据数据库名,删除对应的数据库,如果待删除的数据库存在则执行完后数据库内部看不到对应的数据库,对应的数据库文件夹被删除,级联删除,里面的数据表全部被删,所以可以添加字段约束[IF EXISTS]表示判断是否存在。

 注意:不要随意删除数据库

当然数据库作为mysql之下的一个目录,我们还可以使用Linux的rm -rf删除语句进行删除,但是我们极其不推荐这种使用Linux语句直接删除的做法。

rm -rf   //删除数据库

 

查看相关线程和数据库连接情况

show processlist;//查看线程连接数据库情况   

show processlist;是 MySQL 中的一个非常实用的命令,用于查看当前连接到数据库服务器的线程(也叫“连接”)的状态。执行后会显示一个类似表格的结果,每一行代表一个线程。 

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你 的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78582.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10.ArkUI Grid的介绍和使用

ArkUI Grid 组件详解与使用指南 Grid 是 ArkUI 中用于实现网格布局的容器组件,能够以行和列的形式排列子组件。以下是 Grid 组件的详细介绍和使用方法。 基本介绍 Grid 组件特点: 支持固定列数和自适应布局提供灵活的间距和排列控制支持滚动显示大量…

目标检测原理简介

目标检测是一类计算机视觉任务,简单来说,目标检测可被定义为在计算机中输入一张图像,计算机需要找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,如图一所示。目标检测是计算机视觉领域的核心问题之一,相较于最原始的将整张图片分类为某一类别,目标检测不光可…

ZYNQ笔记(十四):基于 BRAM 的 PS、PL 数据交互

版本:Vivado2020.2(Vitis) 实验任务: PS 将字符串数据写入BRAM,再将数据读取出来;PL 从 BRAM 中读取数据,bing。通过 ILA 来观察读出的数据,与前面串口打印的数据进行对照&#xff0…

Python-Django系列—部件

部件是 Django 对 HTML 输入元素的表示。部件处理 HTML 的渲染&#xff0c;以及从对应于部件的 GET&#xff0f;POST 字典中提取数据。 内置部件生成的 HTML 使用 HTML5 语法&#xff0c;目标是 <!DOCTYPE html>。例如&#xff0c;它使用布尔属性&#xff0c;如 checked…

【Leetcode 每日一题】2799. 统计完全子数组的数目

问题背景 给你一个由 正 整数组成的数组 n u m s nums nums。 如果数组中的某个子数组满足下述条件&#xff0c;则称之为 完全子数组 &#xff1a; 子数组中 不同 元素的数目等于整个数组不同元素的数目。 返回数组中 完全子数组 的数目。 子数组 是数组中的一个连续非空序…

卷积神经网络(二)

1 卷积运算的两个问题&#xff1a; 1.1 图像边缘信息使用少 边缘的像素点可能只会被用一次或者2次&#xff0c;中间的会用的更多。 1.2 图像被压缩 5*5的图像&#xff0c;如果经过3*3的卷积核后&#xff0c;大小变成3*3的。 N*N的图像&#xff0c;果经过F*F的卷积核后&#x…

组网技术-DHCP服务器,RIP协议,OSPF协议

1.DHCP Server提供三种IP地址分配策略&#xff1a; 手工分配地址 自动分配地址 n 动态分配地址 2.DHCP报文类型 DHCP DISCOVER(广播)&#xff1a;用于寻址DHCP Server DHCP OFFER&#xff08;单播&#xff09;&#xff1a;携带分配给客户端的IP地址 DHCP REQUEST&#xff08;…

反爬策略应对指南:淘宝 API 商品数据采集的 IP 代理与请求伪装技术

一、引言​ 在电商数据驱动决策的时代&#xff0c;淘宝平台海量的商品数据极具价值。然而&#xff0c;淘宝为保障平台安全和用户体验&#xff0c;构建了严密的反爬体系。当采集淘宝 API 商品数据时&#xff0c;若不采取有效措施&#xff0c;频繁的请求极易触发反爬机制&#x…

学习笔记(算法学习+Maven)

单调队列优化多重背包 #include <bits/stdc.h> using namespace std; const int M 2010; const int N 20010; int q[N]; int hh 0, tt -1; int f[N]; int g[N]; int v[M], w[M], s[M]; int n, m; int main() { cin >> n >> m; for (int i 1; …

WPF之项目创建

文章目录 引言先决条件创建 WPF 项目步骤理解项目结构XAML 与 C# 代码隐藏第一个 "Hello, WPF!" 示例构建和运行应用程序总结相关学习资源 引言 Windows Presentation Foundation (WPF) 是 Microsoft 用于构建具有丰富用户界面的 Windows 桌面应用程序的现代框架。它…

JAVAEE初阶01

个人主页 JavaSE专栏 JAVAEE初阶01 操作系统 1.对下&#xff08;硬件&#xff09;管理各种计算机设备 2.对上&#xff08;软件&#xff09;为各种软件提供一个稳定的运行环境 线程 运行的程序在操作系统中以进程的形式存在 进程是系统分配资源的最小单位 进程与线程的关…

HTML快速入门-4:HTML <meta> 标签属性详解

<meta> 标签是 HTML 文档头部&#xff08;<head> 部分&#xff09;的重要元素&#xff0c;用于提供关于文档的元数据&#xff08;metadata&#xff09;。这些数据不会直接显示在页面上&#xff0c;但对浏览器、搜索引擎和其他服务非常重要。 常用属性 1. name 和 …

前端基础之《Vue(12)—插件封装》

一、插件封装 1、在Vue生态中&#xff0c;除了Vue本身&#xff0c;其它所有的与Vue相关的第三方包&#xff0c;都是插件 例子&#xff1a; import VueRouter form vue-router Vue.use(VueRouter) // 注册插件 2、如何封装Vue插件 &#xff08;1&#xff09;第一种写法 const…

TCP基础题:音乐播放列表管理系统

需求描述 服务器端 创建一个 TCP 服务器&#xff0c;监听本地的 9999 端口&#xff0c;支持多个客户端连接。维护一个音乐播放列表&#xff0c;每个音乐条目包含歌曲名称、歌手、时长等信息。能够处理客户端的以下请求&#xff1a; 添加音乐到播放列表&#xff1a;接收客户端发…

Verilog 语法 (二)

在掌握了 Verilog 的基础语法和常用程序框架之后&#xff0c;本节将带大家深入学习一些 高级设计知识点。这些内容包括&#xff1a; 阻塞赋值&#xff08;&#xff09;与非阻塞赋值&#xff08;<&#xff09;的区别及使用场景&#xff1b; assign 和 always 语句的差异&am…

OpenCV 图形API(61)图像特征检测------检测图像边缘的函数Canny()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 使用Canny算法在图像中查找边缘。 该函数在输入图像中查找边缘&#xff0c;并使用Canny算法在输出映射&#xff08;edges&#xff09;中标记它们…

ubantu中下载编译安装qt5.15.3

操作步骤如下&#xff1a; 克隆 Qt 仓库&#xff1a; git clone https://code.qt.io/qt/qt5.git cd qt5 切换到 Qt 5.15.3 标签&#xff1a; git checkout v5.15.3-lts-lgpl 初始化子模块&#xff1a; perl init-repository 配置和编译 Qt&#xff1a; ./configure -prefix $H…

毕业论文设计基本内容和要求:

毕业设计基本内容和要求&#xff1a; 研究内容 调查了解LAMP架构和PHP开发&#xff1b; 学习百度旅游调用的其他产品线服务并熟悉请求接口&#xff1b; 学习社区业务层规范&#xff1b; 设计并实现旅游主要模块&#xff1b; 技术指标 熟悉企业中流程运转的方式&#xff0c;…

【大语言模型】大语言模型(LLMs)在工业缺陷检测领域的应用

大语言模型&#xff08;LLMs&#xff09;在工业缺陷检测领域的应用场景正在快速扩展&#xff0c;结合其多模态理解、文本生成和逻辑推理能力&#xff0c;为传统检测方法提供了新的技术路径。以下是该领域的主要应用场景及相关技术进展&#xff1a; 1. 多模态缺陷检测与解释 视…

【AI插件开发】Notepad++ AI插件开发1.0发布和使用说明

一、产品简介 AiCoder是一款为Notepad设计的轻量级AI辅助插件&#xff0c;提供以下核心功能&#xff1a; 嵌入式提问&#xff1a;对选中的文本内容进行AI分析&#xff0c;通过侧边栏聊天界面与AI交互&#xff0c;实现多轮对话、问题解答或代码生成。对话式提问&#xff1a;独…