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

网络安全 Day23-mariadb数据库数据管理和备份

mariadb数据库数据管理和备份

  • 1. 管理数据库中的库
  • 2. 管理库中的表
  • 3. 管理表中的字段(列)
  • 4. 管理表中的数据(行)
  • 5. 数据库数据备份与恢复

1. 管理数据库中的库

  1. 进入指定数据库: use 数据库名字
  2. 库的增删改查
    1. 创建数据库: create database 数据库名字
    2. 指定字符及创建数据库: CREATE DATABASE oldgirl CHARACTER SET utf8;
    3. 删除数据库: drop database 库名
    4. 更改数据库的字符集: alter database oldgirl character set utf8mb4;
    5. 查看mysql的库: show databases

2. 管理库中的表

  1. 表的增删改查
    1. 创建表格语法
      create table <表名> (<字段名1> <类型1> ,<字段名n> <类型n>);
      
      1. 字段名说明: 内容可以是数字 字母 下划线 开头不能用数字
      2. 字段类型(也可以说是选项 约束)说明
        1. 数据类型(Type)
          1. 整型:数字-整数
            1. 微小整型 (tinyint) :1byte=8bit=2^8=256
            2. 大整型 (int) : 4byte=2^32=(40亿+)
            3. 超大整型 (bigint) : 8byte=2^64(40亿*40亿=1600亿亿)
          2. 字符:所有符号都是字符,含整数
            1. 变长字符类型(varchar ): 创建指定空间大小的字符串但是不为它分配初始空间, 只为它分配上限
            2. 定长字符类型(char): 创建指定空间大小, 并为它分配初始空间
        2. 是否为空(Null): YES or NO
        3. 此外还有很多约束这里就不一一列举了
    2. 删除表: drop table 表名
    3. 改表的名字: rename table 原名字 to 新名字
    4. 查看库中的表: show tables
    5. 查看建表语法: show create table stu1\G
    6. 查看表结构: desc 表名
      CREATE TABLE `stu1` (                    #<== CREATE TABLE是创建表的固定关键字,stu1为表名。`id` int(4) NOT NULL,                  #<==学号列,数字类型,长度为4,不为空值。`name` char(20) NOT NULL,              #<==名字列,定长字符类型,长度20,不为空值。`age` tinyint(2) NOT NULL DEFAULT '0', #<==年龄列,很小的数字类型,长度为2,不为空,默认为0值。`dept` varchar(16) DEFAULT NULL        #<==系别列,变长字符类型,长度16,默认为空。
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8	 #<==引擎和字符集,引擎默认为InnoDB,字符集,继承库utf8。
      
  2. 创建表例子
    1. 创建并进入库: create database oldboy; use oldboy;
    2. 建表
      create table stu1( id int(10) not null, name varchar(20) not null, age tinyint(2)  NOT NULL default '0', dept varchar(16)  default NULL 
      );
      
    3. 查看表: show tables;
    4. 查看表结构: desc stu1;
    5. 查看建表的语句: show create table stu1\G
    6. 修改表名: rename table
    7. 删除表: drop table <表名>

3. 管理表中的字段(列)

  1. 增加字段
    1. 最后一行增加: alter table stu1 add 字段名 varchar(类型大小) not null(是否为空) comment 'address'(注释);
    2. 指定位置增加: alter table stu1 add 字段名 varchar(类型大小) after 某个字段的名字;
    3. 在首行添加: alter table stu1 add number varchar(11) first;
    4. 前后对比
      +-------+-------------+------+-----+---------+-------+
      | Field | Type        | Null | Key | Default | Extra |
      +-------+-------------+------+-----+---------+-------+
      | id    | int(10)     | NO   |     | NULL    |       |
      | name  | varchar(20) | NO   |     | NULL    |       |
      | age   | tinyint(2)  | NO   |     | 0       |       |
      | dept  | varchar(16) | YES  |     | NULL    |       |
      +-------+-------------+------+-----+---------+-------+
      4 rows in set (0.01 sec)
      
      +--------+--------------+------+-----+---------+-------+
      | Field  | Type         | Null | Key | Default | Extra |
      +--------+--------------+------+-----+---------+-------+
      | number | varchar(11)  | YES  |     | NULL    |       |
      | id     | int(10)      | NO   |     | NULL    |       |
      | name   | varchar(20)  | NO   |     | NULL    |       |
      | qq     | varchar(25)  | YES  |     | NULL    |       |
      | age    | tinyint(2)   | NO   |     | 0       |       |
      | dept   | varchar(16)  | YES  |     | NULL    |       |
      | addr   | varchar(256) | NO   |     | NULL    |       |
      +--------+--------------+------+-----+---------+-------+
      7 rows in set (0.00 sec)
      
  2. 删除字段: alter table 表名 drop 字段名字;
  3. 改字段: alter table 表名 change name sname varchar(128);
  4. 查看表中的内容: select * for 表名

4. 管理表中的数据(行)

  1. 重新建一个表
    create table stu1(
    id int(10) PRIMARY KEY not null AUTO_INCREMENT,
    name varchar(20) not null,
    age tinyint(2)  NOT NULL default '0',
    dept varchar(16)  default NULL);
    
  2. 往表里加入数据
    1. 语法: insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )](方括号表示可选项)
    2. 查看表结构
      MariaDB [oldboy]> desc stu1;
      +-------+-------------+------+-----+---------+----------------+
      | Field | Type        | Null | Key | Default | Extra          |
      +-------+-------------+------+-----+---------+----------------+
      | id    | int(10)     | NO   | PRI | NULL    | auto_increment |
      | name  | varchar(20) | NO   |     | NULL    |                |
      | age   | tinyint(2)  | NO   |     | 0       |                |
      | dept  | varchar(16) | YES  |     | NULL    |                |
      +-------+-------------+------+-----+---------+----------------+
      
    3. 插入数据
      1. 方法一(指定列): insert into stu1(id,name,age,dept) values(1,'oldboy',35,'net sec');(说明:字符列要加引号引起来,数字列不加引号)
      2. 方法二(省略列): insert into stu1 values(2,'oldgirl',25,'linux');
      3. 方法三:(同时插入多行): insert into stu1 values(3,'littlegirl',5,'net sec'),(4,'littleboy',2,'Linux');
  3. 删除表中的数据
    1. 命令: delete from 表名 where 表达式
    2. 例子: delete from stu1 where id=6;
  4. 修改表中的数据
    1. 语法: update 表名 set 字段=新值 where 条件
    2. 例子: update stu1 set name='zhangsan' where id=6;
  5. 查询表中的数据
    1. 基础语法: select <字段1,字段2,...> from <表名> [WHERE 条件]
    2. 例子: SELECT * FROM city WHERE countrycode='CHN';

5. 数据库数据备份与恢复

  1. 备份原理: 以SQL语句的形式将数据导出
  2. 备份语法: mysqldump -uroot -poldboy123 -B oldboy >/opt/oldboy.sql
  3. 备份所有库
    1. mysqldump -uroot --poldboy123 -A -B >路径
      1. -A 所有
      2. -B库(没有B就是备份表)
  4. 备份多个库
    5. mysqldump -uroot --poldboy123 -B 库名 >路径
  5. 压缩备份
    1. mysqldump -uroot --poldboy123 -B 库名 |gzip>路径
  6. 检查备份的数据:grep -Ev "^$|^-|^/" /opt/oldboy.sql
  7. 还原恢复: source /opt/oldboy.sql;或者mysql -uroot -poldboy123 </opt/oldboy.sql
  8. 不登录查看内容(非交互式查看数据): mysql -uroot -poldboy123 -e "select * from oldboy.stu1;"

相关文章:

网络安全 Day23-mariadb数据库数据管理和备份

mariadb数据库数据管理和备份 1. 管理数据库中的库2. 管理库中的表3. 管理表中的字段(列)4. 管理表中的数据(行)5. 数据库数据备份与恢复 1. 管理数据库中的库 进入指定数据库: use 数据库名字库的增删改查 创建数据库: create database 数据库名字指定字符及创建数据库: CREA…...

Centos7 上安装 redis-dump 和redis-load 命令

一、安装rvm 1、安装GPG keys gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDBcurl -sSL http://rvm.io/mpapis.asc | gpg2 --import - curl -sSL http://rvm.io/pkuczynski.asc | g…...

【NLP PyTorch】字符级RNN循环网络模型姓氏对应国家分类(项目详解)

字符级RNN模型姓氏对应国家分类 1 序言1 数据来源与加载1.1 数据来源1.2 数据加载2 数据预处理2.1 单个字符数据处理标准2.2 单词的张量构造3 模型创建4 模型训练5 模型检验6 模型预测7 模型部署1 序言 本文的任务主要来源于PyTorch的官方教程,即给定各国人名的数据集,你需要…...

C++设计模式之责任链设计模式

C责任链设计模式 什么是责任链设计模式 责任链设计模式是一种行为型设计模式&#xff0c;它允许多个处理请求的对象串联起来&#xff0c;形成一个处理请求的链。每个对象都有机会处理请求&#xff0c;如果该对象不能处理请求&#xff0c;则将请求传递给链中的下一个对象。 该…...

《Java-SE-第二十三章》之单例模式

文章目录 单例模式概述饿汉模式懒汉模式单线程版懒汉单例多线程版枚举实现单例 单例模式概述 单例模式是设计模式中的一种,其作用能保证某个类在程序中只存在唯一一份实例,而不会创建多份实例。单例模式具体的实现方式, 分成 “饿汉” 和 “懒汉” 两种.。饿汉模式中的饿不并不…...

如何快速同步第三方平台数据?

全量的数据主要是针对多个系统的历史数据,大概有几千万数据,只需要初始化一次即可。 而增量的数据,是系统后续变更的数据。 这个需求其实不简单,至少有以下难点: 不能直接访问第三方数据库。 不能将历史数据导出到excel中,有泄露数据的风险。 如何快速同步历史数据? 增…...

反射(一)

动态 VS 静态语言 动态语言&#xff1a;运行时&#xff0c;可以改变其结构。 Object-C、C#、JS、PHP、Python JS 就是动态语言。 function f() {var x "var a3; var b5; alert(ab)";eval(x); }静态语言&#xff1a;运行时&#xff0c;结构不可变。 Java、C、C J…...

29.利用fminbnd 求解 最大容积问题(matlab程序)

1.简述 用于求某个给定函数的最小值点。 使用方法是&#xff1a; xfminbnd(func,x1,x2) func是函数句柄&#xff0c;然后x1和x2就是函数的区间&#xff0c;得到的结果就是使func取最小值的x值 当然也可以使用[x,fv]fminbnd(func,x1,x2)的方式&#xff0c;这个时候fv就是函数…...

express学习笔记7 - docker跟mysql篇

安装Docker和Navicat Docker 进官⽹https://docs.docker.com/get-docker/ 选择机型安装即可。 Navicat&#xff08;也可以在网上找个破解版本&#xff09; 进官⽹https://www.navicat.com/en/products/navicat-premium 安装完之后连接新建⼀个数据库连接 然后再⾥⾯新建⼀个数…...

Leetcode(一):数组、链表部分经典题目详解(JavaScript版)

数组、链表部分算法题 一、数组1. 二分查找2. 移除数组元素3. 有序数组的平方4. 长度最小的子数组5. 螺旋矩阵 二、链表1. 删除链表元素2. 设计链表3.反转链表4.两两交换链表中的节点5.删除链表倒数第n个节点6.环形链表 提前声明&#xff1a;本博客内容均为笔者为了方便个人理解…...

内网穿透的底层原理是什么

目录 内网穿透的功能 内网穿透的底层原理 内网穿透的功能 前段时间研究了一下内网穿透&#xff0c;果真是一个神奇的技术&#xff0c;就拿企业级内网穿透-神卓互联来说&#xff0c;在需要在本地安装一个神卓互联客户端&#xff0c;简单设置一下服务应用的端口号&#xff0c;就…...

Bash配置文件

当Bash以登录Shell启动的时候&#xff0c;会首先读取并执行文件“/etc/profile”中的命令。 接着&#xff0c;Bash会依次查找文件“~/.bash_profile”&#xff0c;“~/.bash_login”&#xff0c;“~/.profile”&#xff0c;读取并执行找到的第一个文件中的命令。也就是说&…...

写Acknowledgement的时候,latex日志出现警告

用latex写论文的时候&#xff0c;\section{Conclusion}下面添加 \backmatter \bmhead{Acknowledgments}时报错&#xff1a;错误log&#xff1a; \bmhead Package hyperref Warning: Difference (4) between bookmark levels is greater than one, level....错误原因&#xff…...

GCC生成map文件

要生成GCC的map文件&#xff0c;可以使用以下指令&#xff1a; gcc <source_files> -Wl,-Map<output_file>.map 其中&#xff0c; <source_files>是要编译的源文件列表&#xff0c;<output_file>是生成的map文件的名称-Wl选项告诉GCC将后面的参数传…...

IOS看书最终选择|源阅读转换|开源阅读|IOS自签

环境&#xff1a;IOS想使用 换源阅读 问题&#xff1a;换新手机&#xff0c;源阅读下架后&#xff0c;没有好的APP阅读小说 解决办法&#xff1a;自签APP 转换源仓库书源 最终预览 &#xff1a;https://rc.real9.cn/ 背景&#xff1a;自从我换了新iPhone手机&#xff0c;就无法…...

easyui实用点

easyui实用点 1.下拉框&#xff08;input框只能选不能手动输入编辑&#xff09; data-options"editable:false"//不可编辑2.日期框&#xff0c;下拉框&#xff0c;文本框等class class"easyui-datebox"//不带时分秒 class"easyui-datetimebox"…...

算法训练营第五十六天||● 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇

● 583. 两个字符串的删除操作 这道题涉及到两个字符串删除操作&#xff0c;注意递推公式&#xff0c;理解不到位&#xff0c;需要再次做 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][j]&#xff1a;以i-1为结尾的字符串word1&#xff0c;和以j-1位结尾…...

C语言每日一题:10.不使用+-*/实现加法+找到所有数组中消失的数。

题目一&#xff1a; 题目链接&#xff1a; 思路一&#xff1a; 1.两个数二进制之间进行异或如果不产生进位操作那么两个数的和就是就是两个数进行异或的结果。 举例&#xff1a;5&#xff08;0101&#xff09;2&#xff08;0010&#xff09;进行异或等于&#xff1a;7&#xf…...

LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

1、问题&#xff1a; https://github.com/CocoaPods/Specs.git/&#xff1a;LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443的解决办法 出现这个问题的原因基本都是代理的问题&#xff1a; 只需要加上代理就可以了&#xff1a; #http代理 git conf…...

JS数组的详解与使用

什么是数组&#xff1f; 数组是一种有序的集合&#xff0c;有长度和索引&#xff0c;以及身上有许多的API方法 面试题&#xff1a;数组和伪数组的区别&#xff1a;数组和伪数组都有长度和索引&#xff0c;区别是数组身上有许多的API方法 而伪数组身上不存在这些API方法创建数组…...

c++ / python / java / PHP / SQL / Ruby / Objective-C / JavaScript 发展史

c发展史 C是由丹尼斯里奇和肯汤普森在1970年代早期开发的C语言的扩展。C最初被称为“C with Classes”&#xff0c;是在1980年代初期由比雅尼斯特劳斯特鲁普开发的。 1983年&#xff0c;斯特劳斯特鲁普将C with Classes重新命名为C。在1985年&#xff0c;C编译器的第一个版本被…...

Linux第一个小程序-进度条(缓冲区概念)

1.\r和\n C语言中有很多字符 a.可显字符 b.控制字符 对于回车其实有两个动作&#xff0c;首先换行&#xff0c;在将光标指向最左侧 \r &#xff1a;回车 \n&#xff1a;换行 下面举个例子&#xff1a; 把\n去掉会怎样 什么都没输出。为什么&#xff1f; 2.缓冲区概念 观察下两个…...

CentOS7环境安装tomcat

环境准备 由于是在练习&#xff0c;为了方便&#xff0c;我们可以 1.关闭防火墙 systemctl disable firewalld.service systemctl stop firewalld.service 2.关闭selinux 在/etc/selinux/config中&#xff0c;设置&#xff1a; SELINUXdisabled 3.准备jdk---》jdk-8u333-li…...

C# 中使用ValueTask优化异步方法

概要 我们在开发过程中&#xff0c;经常使用async的异步方法&#xff0c;但是有些时候&#xff0c;异步的方法中&#xff0c;可能包含一些同步的处理。本文主要介绍通过ValueTask这个struct&#xff0c;优化异步处理的方法性能。 代码及实现 有些时候我们会缓存一些数据在内…...

KVM创建新的虚拟机(图形化)

1.启动kvm管理器 [rootlocalhost ~]# virt-manager2.点击创建虚拟机 3.选择所需os安装镜像 4.选择合适的内存大小和CPU 5.创建所需磁盘 6.命名创建的虚拟机...

正则表达式在格式校验中的应用以及包装类的重要性

文章目录 正则表达式&#xff1a;做格式校验包装类&#xff1a;在基本数据类型与引用数据类型间的桥梁总结 在现代IT技术岗位的面试中&#xff0c;掌握正则表达式的应用以及理解包装类的重要性是非常有益的。这篇博客将围绕这两个主题展开&#xff0c;帮助读者更好地面对面试挑…...

Docker使用之java项目工程的部署

同样本文的基础建立在已在目标服务器&#xff08;以linux为示例&#xff09;上安装了docker&#xff0c;安装教程请移步度娘 若容器存在请先停止&#xff0c;在删除&#xff0c;然后删除镜像重新编译 //停止容器 sudo docker stop datatransfer//删除容器 sudo docker rm dat…...

3ds Max如何进行合成的反射光泽通道渲染

推荐&#xff1a; NSDT场景编辑器 助你快速搭建可二次开发的3D应用场景 1. 准备场景 步骤 1 打开 3ds Max。smart_phone.max打开已 随教程提供。 打开 3ds Max 步骤 2 按 M 打开材质编辑器。选择空材料 槽。单击漫射通道。它将打开材质/贴图浏览器窗口。选择位图&#xff0…...

114、Spring AOP是如何实现的?它和AspectJ有什么区别?

Spring AOP是如何实现的?它和AspectJ有什么区别? 一、AOP的理解1、spring aop:动态代理实现2、spring aop 和 AspectJ的区别3、小图一、AOP的理解 其实,AOP只是一种编程思想,表示面向切面编程,如果想实现这种思想,可以使用动态代理啊,第三方的框架 AspectJ啊等等。 1…...

正则表达式速通

简介 正则表达式&#xff0c;我们可以看作通配符的增强版&#xff0c;可以帮我们匹配指定规则的字符串&#xff0c;在计算机中应用广泛&#xff0c;比如说爬虫、网站的登录表单等。 原视频&#xff1a;https://www.bilibili.com/video/BV1da4y1p7iZ 学习正则表达式的常用工具…...