Mysql Day Ten

数据备份和还原

    数据存储引擎:

            innodb:只有表结构,数据全部存储在一个文件中

            myisam:表、数据、和索引全部单独分开存储

-- 创建 innodb 表:
create table m_innodb(
id int
)charset utf8 engine=innodb;

-- 创建 myisam表:
create table m_myisam(
id int
)charset utf8 engine=myisam;

              

 数据表备份:不通过sql语句来备份,直接复制数据库文件复制对应的表结构以及数据文件 适用于myisam

                 1.新建database :  create database m_engine;

                 2.将数据文件拷贝到 m_engine 文件夹下

单表数据备份:只能备份数据不能备份表结构

                select * into outfile 本机文件夹  from 数据源

                字段处理方式:fields: enclosed by 字段使用什么内容包裹,默认是空字符串

                                                       terminated by 字段以什么结束 默认是‘\r’

                                                       escaped by 特殊字符用什么方式处理 默认是“\\”

                 行处理方式 lines:

                                                       starting by 每行以什么开始,默认是空字符串

                                                       terminaled by每行以什么结束默认是’\r\n‘

select * into outfile 'E:/mysql-8.0.13/Data/backup/m_copy1.txt' 
FIELDS 
TERMINATED BY '|' -- 用|间隔字段
ENCLOSED BY '"'   -- 用“包裹字段
LINES 
STARTING BY 'START:'  -- 每行以START: 开头
from m_copy;

数据恢复

-- 删除数据
delete from m_copy;
-- 查询表中数据为空
select * from m_copy ;
Empty set (0.00 sec)

-- 数据还原
--load data 文件路径 into table 表名(字段列表)  fields 字段处理方式  lines 行处理方式
load data infile 'E:/mysql-8.0.13/Data/backup/m_copy1.txt' into table m_copy 
FIELDS TERMINATED BY '|' ENCLOSED BY '"'
LINES STARTING BY 'START:';

-- 还原后结果
select * from m_copy;
+------+-------+-------+-------+
| id   | name  | sex   | class |
+------+-------+-------+-------+
|    1 | name1 | women |     4 |
|    2 | name2 | man   |     4 |
|    3 | name3 | women |     2 |
|    4 | name4 | man   |     2 |
|    5 | name5 | women |     1 |
|    6 | name6 | women |     1 |
|    7 | name7 | women |     3 |
|    8 | name8 | women |     3 |
|    9 | name1 | man   |     4 |
|   10 | name2 | man   |     4 |
|   11 | name3 | women |     2 |
|   12 | name4 | man   |     2 |
|   13 | name5 | man   |     1 |
|   14 | name6 | man   |     1 |
|   15 | name7 | man   |     3 |
|   16 | name8 | women |     3 |
+------+-------+-------+-------+

SQL备份

备份的是sql语句:系统会对表结构以及数据进行处理,变成对应的sql语句,然后进行备份;(主要针对表结构)

-- mysqldump 连接服务器
mysqldump -hlocalhost -P3306 -uroot -p

-- 备份数据
-- mysqldump -hlocalhost -P3306 -uroot -p 数据库名字 [数据库表名字1] [数据表名字2] > 外部文件
 mysqldump -hlocalhost -P3306 -uroot -p  test m_copy > E:/mysql-8.0.13/Data/backup/m_copy1.sql
-- 备份后的m_copy.sql文件

-- MySQL dump 10.13  Distrib 8.0.13, for Win64 (x86_64)
--
-- Host: localhost    Database: test
-- ------------------------------------------------------
-- Server version	8.0.13

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
 SET NAMES utf8mb4 ;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `m_copy`
--

DROP TABLE IF EXISTS `m_copy`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
 SET character_set_client = utf8mb4 ;
CREATE TABLE `m_copy` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(10) NOT NULL,
  `sex` enum('man','women') DEFAULT NULL,
  `class` int(11) DEFAULT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `m_copy`
--

LOCK TABLES `m_copy` WRITE;
/*!40000 ALTER TABLE `m_copy` DISABLE KEYS */;
INSERT INTO `m_copy` VALUES (1,'name1','women',4),(2,'name2','man',4),(3,'name3','women',2),(4,'name4','man',2),(5,'name5','women',1),(6,'name6','women',1),(7,'name7','women',3),(8,'name8','women',3),(9,'name1','man',4),(10,'name2','man',4),(11,'name3','women',2),(12,'name4','man',2),(13,'name5','man',1),(14,'name6','man',1),(15,'name7','man',3),(16,'name8','women',3);
/*!40000 ALTER TABLE `m_copy` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2019-06-07  0:38:49

整库备份

 mysqldump -hlocalhost -P3306 -uroot -p  test > E:/mysql-8.0.13/Data/backup/test.sql

还原数据

-- 还原数据
-- 方式1:mysql -hPup 数据表 < 本地路径
mysql -uroot -p test  < E:/mysql-8.0.13/Data/backup/database_test.sql

-- 方式2 :切换到数据库 然后 source  本地路径
source E:/mysql-8.0.13/Data/backup/database_test.sql

 

### 回答1: mysql interval 1 day 表示MySQL中的时间间隔函数,表示间隔1天。在MySQL中,可以使用interval函数来进行时间间隔的计算,例如interval 1 day表示间隔1天,interval 1 hour表示间隔1小时,interval 1 minute表示间隔1分钟,interval 1 second表示间隔1秒钟。这个函数可以用于日期时间的加减运算,例如可以计算出某个日期加上1天后的日期。 ### 回答2: mysql interval 1 dayMySQL数据库中的一个时间函数,表示在日期或时间中添加1天的时间间隔。它可以在查询中用来计算日期或者时间的差异,或在WHERE子句中过滤出指定时间段内的数据。 mysql interval 1 day函数可以用于日期或时间类型的字段,比如DATETIME、DATE、TIMESTAMP等。它的语法如下: SELECT * FROM table_name WHERE date_field >= DATE_ADD(NOW(), INTERVAL 1 DAY) 以上语法意思是,查询table_name表中日期字段date_field大于等于当前时间(NOW())加上1天(INTERVAL 1 DAY)的所有记录。 除此之外,mysql interval函数还支持其他的时间单位,例如:YEAR、MONTH、HOUR、MINUTE、SECOND等。它们可以用来计算时间差值,例如: SELECT DATEDIFF('2022-12-31', '2022-11-01') 以上语句用于计算2022年12月31日和2022年11月01日之间相差的天数(即两个日期之间的时间间隔)。 总的来说,mysql interval 1 day函数非常方便实用,可用于各种应用场景中,如日常的数据处理、数据统计、时间计算等等。 ### 回答3: MySQL中的interval指定时间间隔的语法是interval [value] [unit],其中value表示时间间隔的数值,unit表示时间间隔的单位,比如day表示天,hour表示小时,minute表示分钟,以此类推。 当使用interval 1 day时,表示时间间隔为1天。在MySQL中,可以将interval应用于一些查询中,例如SELECT语句,用于计算日期或时间的增量或减量。具体来说,使用interval 1 day可以在日期上加上1天,也可以在日期上减去1天。比如: SELECT NOW() + INTERVAL 1 DAY; // 现在时间加1天 SELECT CURDATE() - INTERVAL 1 DAY; // 今天日期减1天 此外,在MySQL中还有其他常用的interval用法,例如: - interval 1 minute :表示时间间隔为1分钟 - interval 1 week :表示时间间隔为1周 - interval -1 month :表示时间间隔为-1个月(即往前推1个月) - interval 2 hour 30 minute :表示时间间隔为2小时30分钟 总之,interval在MySQL中是常用的一个时间间隔单位,通过合理运用interval,可以更加灵活地处理时间和日期相关的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值