数据库的操作

前言

在之前的文章中,我们已经了解了什么是数据库,以及为什么有数据库,和数据库有什么作用,有了这些宏观概念之后,本章为大家进一步详细介绍对于数据库在Linux上如何具体操作。

1.创建数据库

1.1创建数据库语法

语法:

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: 指定数据库字符集的校验规则

注:上面是创建数据库时使用的SQL语句,因为SQL语句不区分大小写,所以为了更加的直观,一般在实际书写的时候采用小写的方式。

1.2创建数据库案例

1.创建一个名为db1的数据库

create database db1;

说明:当我们创建数据库的时候,没有指定字符集和校验规则的时候,系统使用默认字符集:utf8

校验规则是:utf8_general_ci

2.创建一个使用utf8字符集的db2数据库

create database db2 charset=utf8;

3.创建一个使用utf8字符集并带校验规则的db3数据库

create database db3 charset=utf8 collate utf8_general_ci;

上面为大家介绍如何创建数据库的语法,并且同时引入了字符集和校验规则,可能会有小伙伴疑问这是什么东西,它们什么用和有什么区别。下面就为大家介绍一下字符集和校验规则

2.字符集和校验规则

2.1如何理解字符集和校验规则

字符集是指未来存储数据的时候采用的编码集,校验集是指数据库在字段比较的时候采用的编码。

2.2查看系统默认字符集以及校验规则

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

2.3查看数据支持的编码集

show charset;

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

show collation;

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

对于字符集来说比较容易理解,是存储数据的时候以统一的形式进行规范存储,但是为什么还存在校验规则呢?校验规则的存在又对数据库又什么影响呢?

 下面通过以两种校验规则进行举例说明:

第一种校验规则:utf8_ general_ ci

第二种校验规则:utf8_ bin

使用第一种校验规则:

create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('B');
insert into person values('A');
insert into person values('B');

使用第二种校验规则:

create database test1 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('B');
insert into person values('A');
insert into person values('B');

第一种校验规则查询结果:

mysql> use test1;
mysql> select * from person where name='a';
+------+
| name |
+------+
| a  |
| A  |
+------+
2 rows in set (0.01 sec)

第二种校验规则查询结果:

mysql> use test2;
mysql> select * from person where name='a';
+------+
| name |
+------+
| a  |
+------+
2 rows in set (0.01 sec)

通过对比可以发现,同样相同的查询方式,但是结果显示是不同的,说明不同的校验规则,在当用户查询的时候,服务器判别的规则是不同的,进而返回不同的结果。

了解了数据库创建之后,下面我们继续来看看创建完成的数据库是如何管理的,所谓的管理就是指对数据库的增删查改操作!

3.操作数据库

3.1查看数据库

show databases;

3.2显示创建语句

show create database 数据库名称;

3.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;

3.4数据库的删除

drop database 数据库名称;

执行删除之后的结果:
        数据库内部看不到对应的数据库
        对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

4.备份和恢复

因为数据库的删除是级联删除,,一旦删除,里面的数据全部被删,所以为了以防万一,如果以后想要恢复的时候,为了保证能够恢复,一般删除之前可以进行备份。

4.1备份

语法:

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

实例:将mytest库备份到文件中:

# mysqldump -P3306 -u root -p123456 -B mytest > D:/mytest.sql

4.2还原

mysql> source D:/mysql-5.7.22/mytest.sql;

4.3注意事项

如果备份的不是整个数据库,而是其中的一张表,怎么做:

mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql

同时备份多个数据库:

# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

5.查看连接情况

语法:

show processlist;

通过查看连接情况,可以显示出有哪些用户连接了我们的MySQL,如果查出某个用户不是正常登录的时候,可能是自己的数据库被入侵了,如果发现自己的数据库比较慢的时候,可以用这个指令查看连接情况!

总结

本篇文章为大家介绍了数据库的相关操作,掌握这些基础,为接下来给大家介绍数据库表的操作奠定了基础。感谢大家的支持!

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

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

相关文章

第十二章 EfficientNetv2网络详解

系列文章目录 第一章 AlexNet网络详解 第二章 VGG网络详解 第三章 GoogLeNet网络详解 第四章 ResNet网络详解 第五章 ResNeXt网络详解 第六章 MobileNetv1网络详解 第七章 MobileNetv2网络详解 第八章 MobileNetv3网络详解 第九章 ShuffleNetv1网络详解 第十章…

【线程池】史上最全的ThreadPoolExecutor源码详解

目录 一、线程池框架 1.1 第一层结构 1.2 接口简介 1.3 核心实现类 1.4 辅助类 1.5 完成服务 二、ThreadPoolExecutor的成员属性和内部类 2.1 主要成员属性以及工具方法 2.2 五种内部类 2.2.1 拒绝策略内部类(Policy) 2.2.2 工作线程内部类&a…

HHU云计算期末复习(下)Hadoop、虚拟化技术、openstack

文章目录 第五章 Hadoop分布式文件系统HDFS分离元数据和数据:NameNode和DataNode流水线复制 第七章 虚拟化技术7.1 虚拟化技术简介7.2 虚拟机迁移7.3 网络虚拟化 第八章 openstack8.1 计算服务NovaRabbitMQ 8.2 Swift 第九章 云计算数据中心9.1 云数据中心特征9.2 网…

【MySQL数据库】MySQL 高级SQL 语句一

[TOC](MySQL 高级SQL 语句 一、MySQL 高级SQL 语句1.1select -显示表格中一个或数个字段的所有数据记录1.2distinct不显示重复的数据记录1.3where有条件查询1.4and、or且 或1.5in 显示已知的值的数据记录1.6between 显示两个值范围内的数据记录1.7通配符,通常通配符…

一文了解云计算

目录 🍎云服务 🍎云计算类型 🍒公有云 🍒私有云 🍒混合云 🍎云计算服务模式 🍒IaaS基础设施即服务 🍒PaaS平台即服务 🍒SaaS软件即服务 🍒三者之间区别 &…

回波数据adc_data.bin解析(附MATLAB程序)

毫米波雷达系统性能参数分析 1、xWR1642—DCA1000 TI目前有两款采集卡TSW1400和DCA1000,可以为xWR1243/1443和1642毫米波雷达进行回波数据采集。本文将主要介绍几款雷达分别用2款采集卡数据采集的回波数据格式以及MATLAB数据解析程序。 1、xWR1642—DCA1000 &…

打造专属个人模型-私有独立离线模型部署-阿里云GPU服务器配置

阿里云有免费的机器学习 GPU 服务器,免费试用活动页https://free.aliyun.com只要没有申请过 PAI-DSW 资源的新老用户皆可申请 5000CU 的免费额度,3个月内使用。 选择第一个进行立即试用 可以看到试用的界面 如果遇到下面的错误,当前账号没有权…

蓝桥杯专题-试题版-【数字游戏】【城市建设】【最大子阵】【蚂蚁感冒】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

基于SpringBoot+vue的职称评审管理系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

基于SpringBoot的家庭理财记账系统的设计与开发

1.引言 随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…

CaffeineCache+Redis 接入系统做二层缓存思路实现(借鉴 mybatis 二级缓存、自动装配源码)

本文目录 前言本文术语本文项目地址设计思路开发思路DoubleCacheAble 双缓存注解(如何设计?)动态条件表达式?例如:#a.id?(如何解析?)缓存切面(如何设计?&…

二十三种设计模式第十二篇--组合模式

组合模式是一种结构型设计模式,它允许将对象组合成树形结构来表示整体-部分的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 在组合模式中,有两种类型的对象:叶子对象和组合对象。叶子对象表示树结构中的叶子节点&…

Matplotlib---雷达图

1. 雷达图 fig plt.figure(figsize(6, 6))x np. linspace(0, 2*np.pi, 6, endpointFalse) y [83, 61, 95, 67, 76, 88]# 保证首位相连 x np.concatenate((x, [x[0]])) y np.concatenate((y, [y[0]]))# 雷达图 axes plt.subplot(111, polarTrue) axes.plot(x, y, o-, l…

第十六届CISCN复现MISC——国粹

国粹 不是我说,我当时比赛的时候,在那里叭叭叭的数的老用心了结果他是一道非常不常规的图片密码题,又是一种我没见过的题型 看了一些大佬的解题,知道他是一个坐标类型的图片拼凑 发现很多都提到了opencv,又是一个知识…

考研算法32天:桶排 【桶排序】

算法介绍 桶排 举个例子,一个数组中的数是:4 1 2 3 5, 然后桶排的顺序是:将每个数应该在的下标算出来,咋算呢?这我们就得考虑两种情况:假设我们设现在这个需要找到自己在数组里位置的数是x。…

【计算机网络】IP 地址处理函数

目录 1.struct sockaddr_in的结构 2.一般我们写的结构 3.常见的“点分十进制” 到 ” uint32_t 的转化接口 3.1. inet_aton 和 inet_ntoa (ipv4) 3.2. inet_pton 和 inet_ntop (ipv4 和 ipv6) 3.3. inet_addr 和 inet_network 3…

哈工大计算机网络课程传输层协议之:拥塞控制原理剖析

哈工大计算机网络课程传输层协议之:拥塞控制原理剖析 哈工大计算机网络课程传输层协议详解之:可靠数据传输的基本原理 哈工大计算机网络课程传输层协议详解之:流水线机制与滑动窗口协议 哈工大计算机网络课程传输层协议详解之:T…

【裸机开发】EPIT 定时器 —— 按键消抖

实际工程中,不能直接通过延时来消抖 ! 这里我们采用定时器来消抖,这也是内核处理消抖的一种方式。 目录 一、基本原理 1、延时消抖的弊端 2、定时器消抖原理 二、按键消抖实现 1、按键中断 2、定时器中断 三、附加:按键 / 定时器中断初…

Qgis加载在线XYZ瓦片影像服务的实践操作

目录 背景 一、XYZ瓦片相关知识 1、xyz瓦片金字塔 2、 瓦片编号 3、瓦片访问 二、在Qgis中加载在线地图 1、Qgis版本 2、瓦片加载 3、地图属性预览 总结 背景 在做电子地图应用的时候,很常见的会提到瓦片(tile)的概念,瓦片…

【MySQL】MVCC是如何解决快照读下的幻读问题的

文章目录 LBCC当前读 MVCC隐藏列undo logRead View 总结 我们从上文中了解到InnoDB默认的事务隔离级别是repeatable read(后文中用简称RR),它为了解决该隔离级别下的幻读的并发问题,提出了LBCC和MVCC两种方案。其中LBCC解决的是当…