数据库存储while循环与数据库备份还原

本文介绍了如何在数据库中使用while循环插入数据,详细展示了创建存储过程的步骤,并讲解了MySQL数据库的备份与还原命令,包括部分表备份、整个数据库备份以及还原操作的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------------------------- 带 while 循环的过程 ------------------------------------

一定一定要定义循环控制变量:让循环正常能够结束

例如: aa=0

WHILE aa<10 DO
   语句块;    # 循环体
   
END WHILE;

例如:给用户信息表一次性插入多条数据

SELECT * FROM user_tab;

INSERT INTO user_tab(user_id,user_name,email) VALUES(10001,'lily','lily@126.com');  -- user_id 主键

# 创建存储过程,使用 while 循环来给 user_tab 插入数据

思路: INSERT INTO user_tab(user_id,user_name,email) VALUES(10001,'lily','lily@126.com');

-- user_id 是主键,不能重复,最好名字也不一样,邮箱也不一样,更符合实际数据

# 存过实现

DELIMITER //
CREATE PROCEDURE test005()
BEGIN
  DECLARE var1 INT(8);
  DECLARE var2 VARCHAR(30);
  SET var1 =100;
  SET var2 = 'lucy';  
  WHILE var1<=110 DO
    INSERT INTO user_tab(user_id,user_name,email) VALUES(var1,CONCAT(var2,var1),CONCAT(var2,var1,'@126.com'));
    SET var1=var1+1;
  END WHILE;
END;

CALL test005();

SELECT * FROM user_tab;

# mysql 数据库的备份和还原

备份:用sql 命令将数据库或者表表备份成一个文本文件

mysqldump 命令

mysqldump -u 用户名 -p 密码 dbname table1,table2,...... > filename.sql  # 备份部分表

mysqldump -u 用户名 -p 密码 dbname  > filename.sql   # 备份的是整个数据库

备注:

    # dbname  数据库的名称
    # table1,table2 : 表示需要备份的表的名字,语法中不跟表名,就备份的是整个数据库
    # filename.sql :表示将数据库备份成一个 后缀名.sql的文件,文件名之前可以加一个绝对路径。
 
 ** 注意:一定要在管理员身份下运行命令窗口,在命令窗口操作备份,不要登录数据库
 
 例如: 用 root 用户备份 company 数据库下 user_tab表;
 
 C:\Windows\system32>mysqldump -u root -p Dsfz123456@ company user_tab > D:\beif.
SQL
Enter PASSWORD: ***********
mysqldump: Got error: 1049: UNKNOWN DATABASE 'dsfz123456@' WHEN selecting the da
tabase
# 把密码当做数据库,实际操作的时候,密码不要写,为了安全起见,根据提示输入,密码不回显
C:\Windows\system32>mysqldump -u root -p  company user_tab > D:\beif.sql
Enter PASSWORD: ***********

C:\Windows\system32>

SELECT * FROM user_tab;

DROP TABLE user_tab;

-------------------------------------------------
还原:将备份好的数据库文件还原

mysql -u 用户名 -p 密码 dbname < 需要复原的文件名称(包含路径)

# 实际操作中,密码不要写,根据提示输入

C:\Windows\system32>mysql -u root -p company <  D:\beif.sql
Enter PASSWORD: ***********

C:\Windows\system32>   # 还原完成

验证:

SELECT * FROM user_tab;

# 针对整个数据库进行备份和还原情况一样,但是还原数据库的时候需要注意

例如:备份整个company数据库
C:\Windows\system32>mysqldump -u root -p  company  > D:\BEF0329.sql
Enter PASSWORD: ***********

C:\Windows\system32>

DROP DATABASE company;

C:\Windows\system32>mysql -u root -p company <   D:\BEF0329.sql
Enter PASSWORD: ***********
ERROR 1049 (42000): UNKNOWN DATABASE 'company'

C:\Windows\system32>
    
# 复原数据库时,先创建一个数据库,是不是同名没有关系,没有影响,必须是存在的空数据库

CREATE DATABASE company22;

C:\Windows\system32>mysql -u root -p company22 <   D:\BEF0329.sql
Enter PASSWORD: ***********

C:\Windows\system32>

验证:
SELECT * FROM user_tab;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值