mysql 库的操作

请添加图片描述

文章目录

  • mysql 库的操作
      • 1. 创建数据库
        • 创建数据库案例
      • 2. 字符集和校验规则
        • 查看系统默认的字符集合校验规则
        • 查看数据库支持的字符集
        • 查看数据库支持的字符集较验规则
        • 校验规则对数据库的影响
      • 3. 操作数据库
        • 查看数据库
        • 显示创建语句
        • 修改数据库
        • 删除数据库
        • 查看数据库连接情况

mysql 库的操作

1. 创建数据库

创建数据库的指令:

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

说明

  • 大写的表示关键字

  • [] 是可选项

  • CHARACTER SET: 指定数据库采用的字符集

  • COLLATE: 指定数据库字符集的校验规则

创建数据库案例

创建一个名为hellomysql的数据库

create database hellomysql; 

注: sql语句后面都需要带

可以看到我们数据hellomysql已经创建成功了,而实际上在mysql中创建一个数据库,实际上是在创建一个目录,而这些数据库文件都是放在我们自己所配置的路径下的;配置文件通常就是 ./etc/my.cnf下

下面是我的配置文件,可以看到我是将数据库文件默认存放在

/www/server/data

下的,我们切换到该路径下查看一下

可以看到在data目录下确实创建了我们的hellomysql目录,而实际上我们在数据库中创建一个表结构就是在当前数据库目录下创建一个文件

2. 字符集和校验规则

查看系统默认的字符集合校验规则

show variables like 'character_set_database';
show variables like 'collation_database';

说明:

  • **character_set_database : ** 字符集合
  • collation_database: 校验规则

从上面可以看出来:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ ci

查看数据库支持的字符集

指令

show charset;

注: 字符集主要是控制用什么语言。比如utf8就可以使用中文

查看数据库支持的字符集较验规则

sql语句:

show collation;

可以看到数据库支持的字符集校验规则还是十分多的

校验规则对数据库的影响

字符集编码格式和字符集校验规则的区别

  • 字符集编码格式指的是在存储数据时各个字符的底层编码,用于指定数据的存储格式。
  • 字符集校验规则是在字符集内用于比较字符的一套规则,作用就是对数据进行比对。

例如:我们存储数据时使用的格式是utf8,那么在对数据进行做对比时就也得按照utf8的格式进行对比,因为“存数据”和“取数据”的方式必须要保持一致

mysql中字符集和校验规则的对应关系

  • 每个校验规则唯一对应一种字符集,但一个字符集可以对应多种校验规则,其中有一个是默认(Default Collation);

  • 确定比较规则后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系;

校验规则对数据库的影响

命名惯例:以对应的字符集名称开头;以 _ci(表示大小写不敏感)_cs(表示大小写敏感)_bin(表示按编码值比较)结尾

例子:

我们创建一个数据库,校验规则适用utf8_general_ci

而后适用use切换到当前数据库下(可以理解为cd 到test1 目录下),创建一个表结构,而后插入数据,如下:

查看表里面的数据

筛选名字为curry的数据

select * from person where name = 'curry' ;

我们发现查询结果是不区分大小的

而我们再创建一个数据库test2 校验规则为collate utf8_bin

create database test2 collate utf8_bin;

如下:

我们再像上面一样,先切换到数据库test2(要想在对应的数据库下创建表结构,都得先切换到该数据库下),再插入同样的数据;如下:

我们查看插入的数据和筛选出名字为“curry"的人,查看是否区分大小写;如下:

我们会发现在校验规则为utf8_bin下,是区分大小写的

3. 操作数据库

查看数据库

show databases;

如下:

显示创建语句

show create database 数据库名;

例:

说明:

  • MySQL 建议我们关键字使用大写,但是不是必须的。

  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字

  • /*!40100 default… */ 这个不是注释,而是表示当前mysql版本大于4.01版本,就执行这句话

修改数据库

语法:

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

说明:

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

例子:

将数据库test1 的数据库字符集改成gdk ;如下:

删除数据库

就是我们平时俗称的”删库跑路“

语法:

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

  • 数据库内部看不到对应的数据库

  • 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

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

下面演示将刚才创建出来的test1 删除;

查看数据库连接情况

语法:

show processlist

例:

  • 说明:

  • Id列:一个标识,可以在MySQL中通过kill id杀死指定id的线程。

  • User列:显示当前用户,如果不是root,这个命令就只显示你权限范围内

    SQL语句。

  • Host列:显示这个语句是从哪个IP的哪个端口上发出的,可用来追踪出问题语句的用户。

  • db列:当前执行的命令是在哪一个数据库上,如果没有指定数据库,则该值为NULL。

  • Command列:显示当前连接执行的命令,一般就是休眠(Sleep)、查询(Query)和连接(Connect)。

  • Time列:表示该线程处于当前状态的时间,单位是秒。

  • State列:显示使用当前连接的SQL语句的状态。

  • Info列:一般记录的是线程执行的语句,默认只显示前100个字符,如果要看全部信息,需要使用show full processlist。

当前执行的命令是在哪一个数据库上,如果没有指定数据库,则该值为NULL。

  • Command列:显示当前连接执行的命令,一般就是休眠(Sleep)、查询(Query)和连接(Connect)。

  • Time列:表示该线程处于当前状态的时间,单位是秒。

  • State列:显示使用当前连接的SQL语句的状态。

  • Info列:一般记录的是线程执行的语句,默认只显示前100个字符,如果要看全部信息,需要使用show full processlist。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp内使用 mescroll

前言 在使用uniapp开发项目的过程中,在很多场景里都需要下拉刷新和上拉加载,而 mescroll.js 则是一个非常精致的下拉刷新和上拉加载 js 框架。 官网地址:mescroll 介绍 mescroll.js 是在 H5端 运行的下拉刷新和上拉加载插件,时…

Leetcode 1679. K 和数对的最大数目 双指针法

https://leetcode.cn/problems/max-number-of-k-sum-pairs/ 给你一个整数数组 nums 和一个整数 k 。 每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。 返回你可以对数组执行的最大操作数。 示例 1: 输入&#xff1…

【云计算与虚拟化】第五章—— vCenter Server 5.5 的高级功能(三)

第五章—— vCenter Server 5.5 的高级功能(三) 1.使用vsphere client 登陆vcenter服务器,创建一个群集,名称为自己的学号,(截图) 2.针对该群集打开HA功能(截图) 3.接入控制策略选择…

使用Python复制某文件夹下子文件夹名为数据文件夹下的所有以DD开头的文件夹到桌面...

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 楼阁玲珑五云起,其中绰约多仙子。 大家好,我是皮皮。 一、前言 前几天在Python最强王者群【魏哥】问了一个Python自动化办公处理…

单模光纤二维模场分布的MATLAB仿真

在上一篇文章中,我们介绍了单模光纤的一维模场分布,能看出沿着径向的光场分布情况,并分析能量的分布 这一篇中,我们绘制光纤横截面上的二维光场分布:代码如下: clear close all V 2.4000; U 1.6453; W …

Netty和Tomcat的区别、性能对比

文章目录 一、Netty和Tomcat有什么区别?二、为什么Netty受欢迎?三、Netty为什么并发高 ? 一、Netty和Tomcat有什么区别? Netty和Tomcat最大的区别就在于通信协议,Tomcat是基于Http协议的,他的实质是一个基…

代码随想录算法训练营day52 | 300.最长递增子序列,674. 最长连续递增序列,718. 最长重复子数组

代码随想录算法训练营day52 | 300.最长递增子序列,674. 最长连续递增序列,718. 最长重复子数组 300.最长递增子序列解法一:动态规划 674. 最长连续递增序列解法一:动态规划解法二:双指针法 718. 最长重复子数组解法一&…

SQL案例-高校信息管理系统实现要求

SQL案例-高校信息管理系统实现要求 (1) 建表 stuInfo(学生信息表) 字段名称数据类型说明stuName字符学生姓名,该列必填,要考虑姓氏可能是两个字的,如欧阳俊雄stuNo字符学号,该列必填,学号不能重复,且必须…

算法|1.二分及其扩展

算法|1.二分及其扩展 1、有序数组中找到num 题意:给定有序数组,在有序数组中找到指定数字,找到返回true,找不到返回false. 解题思路: 数组有序查找指定元素使用二分法L指针初始值设为0,R指针初始值设为…

IOC初始化 IOC启动阶段 (Spring容器的启动流程)

[toc](IOC初始化 IOC启动阶段 (Spring容器的启动流程)) IOC初始化 IOC启动阶段 (Spring容器的启动流程) Resource定位过程:这个过程是指定位BeanDefinition的资源,也就是配置文件(如xml)的位置,并将其封装成Resource对…

拥抱新时代的Java

原文链接 拥抱新时代的Java Java作为面向对象编程的王牌语言,曾经风靡一时,在Web领域是绝对的老大。随着时间的推移,一些新的编程范式不断的涌现,如函数式编程,响应式编程,以及对函数的全力支持&#xff0…

node.js+vue房屋租赁管理系统z0g8w

本系统主要包括以下功能模块:租户、出租人、房源信息、预约看房、合同信息等模块。 其中设计的主要功能如下: (1)用户的注册和登录本系统,登录到系统的首页。 (2)用户可以发布自己的房源信息…

强化学习:值迭代和策略迭代

值迭代 通过上一章的学习,我们知道了贝尔曼最优方程的求解实际上分两部分,一是给定一个初始值 v k v_k vk​ 找到最优策略 π k 1 π_{k1} πk1​ ,二是更新 v k 1 v_{k1} vk1​   下面,我们将详细剖析这个算法&#xff0…

RabbitMQ

处理问题 服务异步调用 两个服务调用时,我们可以通过传统的HTTP方式,让服务A直接去调用服务B的接口,但是这种方式是同步的方式,虽然可以采用SpringBoot提供的Async注解实现异步调用,但是这种方式无法确保请求一定回访…

从Redisson的RedissonSemaphore引发的信号量实际含义的思考

Semaphore到底该如何使用 事情的起因是最近在看redisson的源码&#xff0c;刚好看到了RedissonSemaphore的acquire/release实现。 public RFuture<Void> releaseAsync(int permits) {if (permits < 0) {throw new IllegalArgumentException("Permits amount ca…

ThingsBoard教程(五十):规则节点解析 创建关系节点Create Relation Node,删除关系节点 Delete Relation Node

创建关系节点 Create Relation Node Since TB Version 2.2.1 根据类型和方向,从所选实体创建到消息发起方的关系。 以下消息发起方类型被允许:资产、设备、实体视图、客户、租、仪表板。 通过元数据键模式查找目标实体,然后在源实体和目标实体之间创建关系。 如果选择的…

ASP.NET Core 使用Filter和Redis实现接口防重

背景 日常开发中&#xff0c;经常需要对一些响应不是很快的关键业务接口增加防重功能&#xff0c;即短时间内收到的多个相同的请求&#xff0c;只处理一个&#xff0c;其余不处理&#xff0c;避免产生脏数据。 这和幂等性&#xff08;idempotency&#xff09;稍微有点区别&am…

每日一练 | 网络工程师软考真题 Day12

阅读以下说明&#xff0c;答复以下【问题1】至【问题3】 【说明】 某单位有1个总部和6个分部&#xff0c;各个部门都有自己的局域网。该单位申请了6个C类IP地址202.115.10.0/24~202.115.15.0/24&#xff0c;其中总部与分部4共用一个C类地址。现方案将这些部门用路由器互联&…

Mit6.006-problemSet03

3-1 哈希练习&#xff08;Hash Practice&#xff09; (a) 按顺序插入整数keys A[47, 61, 36, 52, 56, 33, 92]到尺寸为7的哈希表中&#xff0c;使用哈希函数 h ( k ) ( 10 k 4 ) m o d 7 h(k)(10k4)mod7 h(k)(10k4)mod7。哈希表的每个插槽&#xff0c;存储一个key&#xff…

字节真的是宇宙尽头吗?

身边在字节的朋友很多人抱怨很卷&#xff0c;但卷到何种程度?很多人没有直观感受。某乎上一个问题(在字节跳动工作是怎样的?)点赞排名第一的回答生动的解释了字节的卷。 租房的舍友在字节工作。 舍友主卧&#xff0c;我次卧。 合租两个月了&#xff0c;我没见过舍友长什么样。…
最新文章