------------------------- 带 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;