当前位置: 首页 > 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方法创建数组…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

Ubuntu Cursor升级成v1.0

0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开&#xff0c;快捷键也不好用&#xff0c;当看到 Cursor 升级后&#xff0c;还是蛮高兴的 1. 下载 Cursor 下载地址&#xff1a;https://www.cursor.com/cn/downloads 点击下载 Linux (x64) &#xff0c;…...

软件工程 期末复习

瀑布模型&#xff1a;计划 螺旋模型&#xff1a;风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合&#xff1a;模块内部功能紧密 模块之间依赖程度小 高内聚&#xff1a;指的是一个模块内部的功能应该紧密相关。换句话说&#xff0c;一个模块应当只实现单一的功能…...