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

『MySQL快速上手』-③-库的操作

文章目录

  • 1.创建数据库
  • 2.创建数据库案例
  • 3.字符集和校验规则
    • 3.2 校验规则对数据库的影响
      • 3.2.1 进行查询
      • 3.2.2 进行排序
  • 4.字符集和检验规则的作用
  • 5.操纵数据库
    • 5.1 查看数据库
    • 5.2 显示创建语句
    • 5.3 修改数据库
    • 5.4 数据库删除
  • 6.备份与恢复
    • 6.1 备份
    • 6.2 还原
    • 6.3 注意事项
  • 7.查看数据库连接情况

在这里插入图片描述

1.创建数据库

语法格式如下:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,
create_specification] ...]create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

说明:

  • 大写的表示关键字(SQL指令是大小写忽略的,小写也没问题);

  • [] 是可选项;

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

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

2.创建数据库案例

  • 创建数据库,命名为db1
create database db1

说明:

当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集utf8,校验规则是:utf8_ general_ ci。这由MySQL的配置文件决定。

  • 查看MySQL配置文件
cat /etc/my.cnf

在这里插入图片描述

  • 创建一个使用utf8字符集db2 数据库;
create database db2 charset=utf8;
  • 创建一个使用utf8字符集,并带校对规则的 db3 数据库;
create database db3 charset=utf8 collate utf8_general_ci;

3.字符集和校验规则

  • 查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database';

在这里插入图片描述

  • 查看数据库支持的字符集
show charset;
  • 查看数据库支持的字符集校验规则
show collation;

3.2 校验规则对数据库的影响

我们可以从下面这个示例中看出校验规则对数据库的影响。

  1. 创建一个数据库,校验规则使用utf8_ general_ ci(不区分大小写);
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
  1. 创建一个数据库,校验规则使用utf8_ bin(区分大小写);
create database test2 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');

3.2.1 进行查询

  • 不区分大小写的查询以及结果
use test1;
select * from person where name='a';

在这里插入图片描述

  • 区分大小写的查询以及结果;
use test2;
select * from person where name='a';

在这里插入图片描述

3.2.2 进行排序

  • 不区分大小写排序以及结果:
use test1;
select * from person order by name;

在这里插入图片描述

  • 区分大小写排序以及结果:

在这里插入图片描述

4.字符集和检验规则的作用

数据库中的字符集(Character Set)和字符集校验规则(Collation)是用于定义和管理数据库中文本数据存储和比较的重要设置。它们的作用如下:

  1. 字符集(Character Set):

    • 定义了数据库中可以存储的字符集合,包括字母、数字、符号等。
    • 确定了数据库如何存储和表示不同字符和符号。
    • 不同的字符集支持不同的字符编码方式,如UTF-8、UTF-16、ISO-8859-1等。
    • 可以影响文本数据的存储空间和性能。
  2. 字符集校验规则(Collation):

    • 确定了文本数据的比较和排序方式,即如何对文本数据进行比较、搜索和排序。
    • 根据字符集校验规则,相同的字符可能在排序时被视为不同。
    • 支持不同语言和文化的排序规则,以确保文本数据的正确比较和排序。
    • 不同的字符集校验规则可能会影响查询结果的顺序和比较操作的行为。

这些设置对数据库的正确性、性能和多语言支持非常重要。以下是一些具体作用:

  • 数据完整性:字符集和字符集校验规则有助于确保数据存储的一致性和正确性。它们防止了不同字符之间的混淆,确保数据正确存储和检索。

  • 多语言支持:不同语言使用不同的字符集和校验规则,因此数据库必须支持多种字符集和校验规则,以适应不同语言的数据。

  • 搜索和排序:字符集校验规则决定了文本数据的搜索和排序方式。它们确保文本数据按照正确的规则进行比较和排序,以获得正确的查询结果。

  • 存储空间效率:不同字符集和编码方式可以影响数据存储的空间效率。例如,某些字符集需要更多的存储空间来表示特定字符。

  • 数据交互:当与其他系统或应用程序进行数据交互时,字符集和字符集校验规则的一致性非常重要,以确保数据正确传输和解释。

总之,字符集和字符集校验规则是数据库中用于管理文本数据的关键设置,它们影响了数据的正确性、性能和多语言支持,因此在创建和维护数据库时需要特别注意。

5.操纵数据库

5.1 查看数据库

show databases;

在这里插入图片描述

5.2 显示创建语句

show create database 数据库名;

在这里插入图片描述
说明:

  • 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
  • /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话;

5.3 修改数据库

语法格式如下:

ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
  • 对数据库的修改主要指的是修改数据库的字符集,校验规则

案例——将test1数据库字符集改成gbk

alter database test1 charset=gbk;

在这里插入图片描述

5.4 数据库删除

语法格式如下:

DROP DATABASE [IF EXISTS] db_ name;

执行删除之后的结果:

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

6.备份与恢复

6.1 备份

语法格式如下:

$ mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

案例——将test1库备份到文件

  • 首先退出mysql;

  • test1备份到 ./test1.sql

$ mysqldump -P3306 -u root -p -B test1 > ./test1.sql
  • 查看备份文件test1.sql;
  • test1.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中;
$ cat ./test1.sql

在这里插入图片描述

6.2 还原

  • 登入MySQL,删除test1
drop database test1;
show databases;

在这里插入图片描述

  • 还原;
source ./test1.sql;
show databases;

在这里插入图片描述

6.3 注意事项

  • 如果备份的不是整个数据库,而是其中的一张表,怎么做?
$ mysqldump -u root -p 数据库名 表名1 表名2 > 备份文件路径
  • 同时备份多个数据库
$ mysqldump -u root -p -B 数据库名1 数据库名2 ... > 备份文件路径
  • 如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原;

7.查看数据库连接情况

语法:

show processlist

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

在这里插入图片描述

相关文章:

  • 一、Hadoop初始化配置(final+ubuntu保姆级教程)
  • 钉钉内嵌H5遇到的一些问题
  • html中使用JQ自定义锚点偏移量
  • 价钱统计
  • 数字摄影测量
  • 换服还是掀桌?哪条才是程序员的出路?
  • C++ [继承]
  • 【delphi】中 TNetHTTPClient 注意事项
  • springboot(ssm 高校教师电子名片系统 Java(codeLW)
  • 【ARM Trace32(劳特巴赫) 使用介绍 2 - Veloce 环境中使用trace32 连接 Cortex-M33】
  • C++ http协议POST body raw 字段向服务器发送请求
  • Linux Vim批量注释和自定义注释
  • flink的CoProcessFunction使用示例
  • 临界资源,临界区,通信的干扰问题(互斥),信号量(本质,上下文切换问题,原子性,自身的安全性,操作)
  • AI搞钱——工具篇之视频、音频转文字
  • Android组件 - 收藏集 - 掘金
  • gcc介绍及安装
  • gitlab-ci配置详解(一)
  • JavaScript 一些 DOM 的知识点
  • Mocha测试初探
  • PHP那些事儿
  • python_bomb----数据类型总结
  • SQLServer插入数据
  • 读懂package.json -- 依赖管理
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 仓管云——企业云erp功能有哪些?
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ###STL(标准模板库)
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (12)Linux 常见的三种进程状态
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (区间dp) (经典例题) 石子合并
  • (三)Honghu Cloud云架构一定时调度平台
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转) Face-Resources
  • (转)Linq学习笔记
  • ../depcomp: line 571: exec: g++: not found
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET值类型变量“活”在哪?
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [Android Pro] Notification的使用
  • [c#基础]DataTable的Select方法