题目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)