《MySQL 数据库备份与视图创建全流程:从数据迁移到高效查询实战》

题目1

将mydb9_stusys数据库下的student、sc 和course表,备份到本地主机保存为st_msg_bak.sql文件,然后将数据表恢复到自建的db_test数据库中;

备份库和表语法

mysqldump -u用户名 -p密码   数据库名 [表1 表2] > 绝对路径\备份文件.sql
mysqldump -u [用户名] -p --databases/-B [数据库名1] [数据库名2] ... > [备份文件路径]
[root@Light ~]# mysql -uroot -pMysql@123 mydb9_stusys student sc course > /root/st_msg_bak.sql  #这里使用的是绝对路径

在这里插入图片描述

恢复数据

#先删除现有的数据库
mysql> drop database mydb9_stusys;
Query OK, 4 rows affected (0.04 sec)
#创建新的库表db_test
mysql> create database db_test;
Query OK, 1 row affected (0.00 sec)
#查看一下
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| db_test            |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
19 rows in set (0.00 sec)

开始备份

[root@Light ~]# mysql -uroot -pMysql@123 db_test < st_msg_bak.sql 
#进入数据库
mysql> use db_test
mysql> show tables;
+-------------------+
| Tables_in_db_test |
+-------------------+
| course            |
| sc                |
| student           |
+-------------------+
3 rows in set (0.00 sec)

题目2

在db_test数据库创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

mysql> create view v1_stu as select sname,ssex,cname,score from sc join course c on sc.cno=c.cno right join student s on sc.sno=s.sno;

Query OK, 0 rows affected (0.01 sec)
#查看视图
mysql> select * from v1_stu;
+-----------+------+-------+-------+
| sname     | ssex | cname | score |
+-----------+------+-------+-------+
| 张玲丽    | 女   | SSH   |    60 |
| 张玲丽    | 女   | JAVA  | 77.45 |
| 张玲丽    | 女   | LINUX | 85.65 |
| 吴鹏      | 男   | JAVA  | 72.35 |
| 李锐      | 男   | JAVA  | 85.05 |
| 李锐      | 男   | LINUX | 74.12 |
| 赵丁雯    | 女   | LINUX |  45.5 |
| 陈晓晓    | 女   | LINUX |    99 |
| 孙德胜    | 男   | NULL  |  NULL |
| 刘琦玉    | 男   | NULL  |  NULL |
| 李波      | 男   | NULL  |  NULL |
| 李晨      | 男   | NULL  |  NULL |
| 王子涵    | 女   | NULL  |  NULL |
+-----------+------+-------+-------+
13 rows in set (0.00 sec)

查看db_test库下哪些是视图表;

mysql> select * from information_schema.views where TABLE_SCHEMA='db_test'\G
*************************** 1. row ***************************
       TABLE_CATALOG: def
        TABLE_SCHEMA: db_test
          TABLE_NAME: v1_stu
     VIEW_DEFINITION: select `s`.`sname` AS `sname`,`s`.`ssex` AS `ssex`,`c`.`cname` AS `cname`,`db_test`.`sc`.`score` AS `score` from (`db_test`.`student` `s` left join (`db_test`.`sc` join `db_test`.`course` `c` on((`db_test`.`sc`.`cno` = `c`.`cno`))) on((`db_test`.`sc`.`sno` = `s`.`sno`)))
        CHECK_OPTION: NONE
        IS_UPDATABLE: NO
             DEFINER: root@%
       SECURITY_TYPE: DEFINER
CHARACTER_SET_CLIENT: utf8mb4
COLLATION_CONNECTION: utf8mb4_0900_ai_ci
1 row in set (0.00 sec)

删除视图表

mysql> drop view v1_stu;
Query OK, 0 rows affected (0.00 sec)

mysql> show tables;
+-------------------+
| Tables_in_db_test |
+-------------------+
| course            |
| sc                |
| student           |
+-------------------+
3 rows in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值