网络安全 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;"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Spring Boot AOP实现日志记录

目录 介绍 1.1 什么是AOP 1.2 AOP体系与概念 AOP简单实现 2.1 新建一个SpringBoot项目&#xff0c;无需选择依赖 2.2 设置好本地Maven配置后&#xff0c;在pom.xml文件里添加添加maven依赖 2.3 创建一个业务类接口 2.4 在实体类实现接口业务 2.5 在单元测试运行结果 …

压缩包工具类

压缩包工具类&#xff08;下载&#xff09; import com.enlistboot.common.core.FileResult; import org.springframework.http.HttpHeaders; import org.springframework.util.ObjectUtils;import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net…

IDEA Writing classes... 比较慢

IDEA配置修改如下&#xff1a; 1、File -> Settings… 2、Build&#xff0c;Execution&#xff0c;Deployment -> Compiler Build process heap size 配置为 20483、Build&#xff0c;Execution&#xff0c;Deployment -> Compiler -> ActionScript & Flex C…

vue基础-diff算法

vue基础-diff算法 1、根元素改变2、根元素不变 1、根元素改变 同级比较-根元素的变化-整个dom树删除重建 2、根元素不变 同级比较&#xff0c;根元素不变-属性改变更新属性

SpringBoot自动装配介绍

SpringBoot是对Spring的一种扩展&#xff0c;其中比较重要的扩展功能就是自动装配&#xff1a;通过注解对常用的配置做默认配置&#xff0c;简化xml配置内容。本文会对Spring的自动配置的原理和部分源码进行解析&#xff0c;本文主要参考了Spring的官方文档。 自动装配的组件 …

[每日习题]进制转换 参数解析——牛客习题

hello,大家好&#xff0c;这里是bang___bang_&#xff0c;本篇记录2道牛客习题&#xff0c;进制转换&#xff08;简单&#xff09;&#xff0c;参数解析&#xff08;中等&#xff09;&#xff0c;如有需要&#xff0c;希望能有所帮助&#xff01; 目录 1️⃣进制转换 2️⃣参…

python 自动化数据提取之正则表达式

>>>> 前 言 我们在做接口自动化的时候&#xff0c;处理接口依赖的相关数据时&#xff0c;通常会使用正则表达式来进行提取相关的数据&#xff0c;今天在这边和大家聊聊如何在python中使用正则表达式。 正则表达式&#xff0c;又称正规表示式、正规表示法、正规…

gitee使用参考

Git代码托管服务 2.1 常用的Git代码托管服务 gitHub&#xff08; 地址&#xff1a;https://github.com/ &#xff09;是一个面向开源及私有软件项目的托管平台&#xff0c;因为只支持Git 作为唯一的版本库格式进行托管&#xff0c;故名gitHub码云&#xff08;地址&#xff1a;…

《cuda c编程权威指南》03 - cuda小功能汇总

1. 计时 1.1 linux #include <sys/time.h>double cpuSecond() {struct timeval tp;gettimeofday(&tp, NULL);return ((double)tp.tv_sec (double)tp.tv_usec*1e-6); }// 调用 double start cpuSecond(); kernel_name << <grid, block >> > (ar…

Java反射机制的详细讲解

目录 1.反射机制是什么&#xff1f; 2.反射机制能干什么&#xff1f; 3.反射相关的类 ​编辑 4.Class类(反射机制的起源 ) 5.反射机制相关的API 1.(重要)常用获得类相关的方法 2.常用获得类中属性相关的方法(以下方法返回值为Field相关 3.(了解)获得类中注解相关的方法…

统计神经网络参数量、MAC、FLOPs等信息

0、基础提示 1、FLOPS是用来衡量硬件算力的指标&#xff0c;FLOPs用来衡量模型复杂度。 2、MAC 一般为 FLOPs的2倍 3、并非FLOPs越小在硬件上就一定运行更快&#xff0c;还与模型占用的内存&#xff0c;带宽&#xff0c;等有关 1、FLOPs计算 神经网络参数量。用于衡量模型大…

【Django+Vue】英文成绩管理平台--20230727

能够满足大部分核心需求&#xff08;标绿&#xff09;&#xff1a;报表部分应该比较难。 项目地址 前端编译 https://gitlab.com/m7840/toeic_vue_dist Vue源码 https://gitlab.com/m7840/toeic_vue Django源码 https://gitlab.com/m7840/toeic_python 项目架构 流程 …

C# 循环等知识点

《1》程序&#xff1a;事先写好的指令&#xff08;代码&#xff09; using 准备工具 namespace 模块名称 { class 子模块{ static void main()//具体事项 { 代码 } } } 《2》变量&#xff1a;内存里的一块空间&#xff0c;用来存储数据常用的有小数&#xff0c;整数&#xff0c…

LeetCode使用最小花费爬楼梯(动态规划)

使用最小花费爬楼梯&#xff08;动态规划&#xff09; 题目描述算法流程(方法一)编程代码优化代码算法流程&#xff08;方法二&#xff09;编程代码代码优化 链接: 使用最小花费爬楼梯 题目描述 算法流程(方法一) 编程代码 class Solution { public:int minCostClimbingStair…

支持多种通信方式和协议方便接入第三方服务器或云平台

2路RS485串口是一种常用的通信接口&#xff0c;可以支持Modbus Slave协议&#xff0c;并可接入SCADA、HMI、DSC、PLC等上位机。它还支持Modbus RTU Master协议&#xff0c;可用于扩展多达48个Modbus Slave设备&#xff0c;如Modbus RTU远程数据采集模块、电表、水表、柴油发电机…

Linux 随usb设备插拔 自动挂载和卸载

vi /etc/mdev.conf 文件中添加一行 sd[a,b][1-9] 0:0 777 * if [ $ACTION "add" ]; then mount /dev/$MDEV /mnt; else umount /mnt; fi 参考&#xff1a; 《Linux驱动&#xff1a;设备节点文件的创建过程》 - 知乎 https://www.cnblogs.com/lifexy/p/7891883.ht…

Android开发EditText禁止输入监听及InputFilter字符过滤

目录 ??监听事件??InputFilter ??监听事件 setOnEditorActionListener&#xff1a;软键盘回车监听事件 ? 1 2 3 4 5 6 7 testEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { Override public boolean onEditorAction(TextVi…

Qt 中操作xml文件和JSON字符串

文章目录 1、概述1.1、xml介绍1.2、json介绍 2、xml文件增删改查2.1、写xml文件内容2.2、读xml文件内容2.3、删除xml文件内容2.4、修改xml文件内容 3、构建JSON字符串3.1、JSON字符串排版4、剪切板操作 1、概述 1.1、xml介绍 XML 指可扩展标记语言&#xff08;EXtensible Mark…

Sentinel针对IP限流

改造限流策略的针对来源选项 import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class Senti…

JAVA面试总结-Redis篇章(五)——持久化

Java面试总结-Redis篇章&#xff08;五&#xff09;——持久化 1.RDBRDB全称Redis Database Backup file (Redis数据备份文件)&#xff0c;也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后&#xff0c;从磁盘读取快照文件&#x…