MySQL (备份恢复 索引 视图)练习

这篇具有很好参考价值的文章主要介绍了MySQL (备份恢复 索引 视图)练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、备份与还原

    /***************************样例表***************************/
    CREATE DATABASE booksDB;
    use booksDB;

    CREATE TABLE books
    (
      bk_id  INT NOT NULL PRIMARY KEY,
      bk_title VARCHAR(50) NOT NULL,
      copyright YEAR NOT NULL
    );
    INSERT INTO books
    VALUES (11078, 'Learning MySQL', 2010),
    (11033, 'Study Html', 2011),
    (11035, 'How to use php', 2003),
    (11072, 'Teach youself javascript', 2005),
    (11028, 'Learing C++', 2005),
    (11069, 'MySQL professional', 2009),
    (11026, 'Guide to MySQL 5.5', 2008),
    (11041, 'Inside VC++', 2011);

    CREATE TABLE authors
    (
      auth_id     INT NOT NULL PRIMARY KEY,
      auth_name  VARCHAR(20),
     auth_gender CHAR(1)
    );
    INSERT INTO authors  
    VALUES (1001, 'WriterX' ,'f'),
    (1002, 'WriterA' ,'f'),
    (1003, 'WriterB' ,'m'),
    (1004, 'WriterC' ,'f'),
    (1011, 'WriterD' ,'f'),
    (1012, 'WriterE' ,'m'),
    (1013, 'WriterF' ,'m'),
    (1014, 'WriterG' ,'f'),
    (1015, 'WriterH' ,'f');

    CREATE TABLE authorbook
    (
      auth_id  INT NOT NULL,
      bk_id   INT NOT NULL,
      PRIMARY KEY (auth_id, bk_id),
      FOREIGN KEY (auth_id) REFERENCES authors (auth_id),
      FOREIGN KEY (bk_id) REFERENCES books (bk_id)
    );

    INSERT INTO authorbook
    VALUES (1001, 11033), (1002, 11035), (1003, 11072), (1004, 11028),
    (1011, 11078), (1012, 11026), (1012, 11041), (1014, 11069);

    /***************************样例表***************************/
    
    1、使用mysqldump命令备份数据库中的所有表
    [root@localhost ~]# mysqldump -uroot -pRedHat@123 booksDB > /backup/booksDB_20230712.sql
    [root@localhost ~]# ll /backup
    total 4
    -rw-r--r--. 1 root root 3903 Jul 11 23:38 booksDB_20230712.sql

    2、备份booksDB数据库中的books表
    [root@localhost ~]# mysqldump -uroot -pRedHat@123 booksDB books > /backup/books_20230712.sql

    
    3、使用mysqldump备份booksDB和test数据库
    [root@localhost ~]# mysqldump -uroot -pRedHat@123 --databases booksDB test> /backup/booksDB_test_20230712.sql
    4、使用mysqldump备份服务器中的所有数据库
    [root@localhost ~]# mysqldump -uroot -pRedHat@123 --all-databases > /backup/all_20230712.sql
    5、使用mysql命令还原第二题导出的book表
    [root@localhost ~]# mysql -uroot -pRedHat@123 booksDB < /backup/books_20230712.sql
    
    6、进入数据库使用source命令还原第二题导出的book表
    mysql> source /backup/books_20230712.sql


二、索引
    1、建立一个utf8编码的数据库test1
    2、建立商品表goods和栏目表category
mysql> create table goods(
    -> goods_id int(11) primary key auto_increment,
    -> goods_name varchar(20) not null,
    -> cat_id int(11) not null default 0,
    -> brand_id int(11) not null default 0,
    -> goods_sn char(12) not null,
    -> shop_price float(6,2) not null default 0.00,
    -> goods_desc text default NULL
    -> )engine = myisam default charset = utf8;


mysql> create table category(
    -> cat_id int(11) primary key auto_increment,
    -> cate_name varchar(20) not null,
    -> parent_id int(11) not null default 0
    -> )engine = myisam default charset = utf8;


    按如下表结构创建表:存储引擎engine myisam 字符集charset utf8

        mysql> desc goods;
        +------------+-------------+------+-----+---------+----------------+
        | Field      | Type        | Null | Key | Default | Extra          |
        +------------+-------------+------+-----+---------+----------------+
        | goods_id   | int(11)     | NO   | PRI | NULL    | auto_increment |
        | goods_name | varchar(20) | NO   |     |         |                |
        | cat_id     | int(11)     | NO   |     | 0       |                |
        | brand_id   | int(11)     | NO   |     | 0       |                |
        | goods_sn   | char(12)    | NO   |     |         |                |
        | shop_price | float(6,2)  | NO   |     | 0.00    |                |
        | goods_desc | text        | YES  |     | NULL    |                |
        +------------+-------------+------+-----+---------+----------------+
        7 rows in set (0.00 sec)

        
        mysql> desc category;
        +-----------+-------------+------+-----+---------+----------------+
        | Field     | Type        | Null | Key | Default | Extra          |
        +-----------+-------------+------+-----+---------+----------------+
        | cat_id    | int(11)     | NO   | PRI | NULL    | auto_increment |
        | cate_name | varchar(20) | NO   |     |         |                |
        | parent_id | int(11)     | NO   |     | 0       |                |
        +-----------+-------------+------+-----+---------+----------------+
        3 rows in set (0.00 sec)

    3、删除 goods 表中的 goods_desc 字段及货号字段,并增加 click_count 字段 
        mysql> alter table goods drop goods_desc;    
        mysql> alter table goods drop goods_id;
        mysql> alter table goods add click_count int;
    4、在 goods_name 列上加唯一性索引(用alter table方式) 
        mysql> alter table goods add unique index_name(goods_name);
    5、在 shop_price 列上加普通索引(用create index方式)
        mysql> create index index_price on goods(shop_price);
    6、在 click_count 上增加普通索引,然后再删除 (分别使用drop index和alter table删除)
        mysql> create index index_count on goods(click_count);
        mysql> drop index index_count on goods;
        mysql> alter table goods drop index index_count;

三、视图
    学生表:Student (Sno, Sname, Ssex , Sage, Sdept)
    学号,姓名,性别,年龄,所在系 Sno为主键
    课程表:Course (Cno, Cname,)
    课程号,课程名 Cno为主键
    学生选课表:SC (Sno, Cno, Score)
    学号,课程号,成绩 Sno,Cno为主键
mysql> create table Student(
    -> Sno int primary key,
    -> Sname varchar(20),
    -> Ssex enum('m','w'),
    -> sage int(11),
    -> sdept varchar(20)
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> create table Course(
    -> Cno int primary key,
    -> Cname varchar(20)
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> create table SC(
    -> Sno int,
    -> Cno int primary key,
    -> Score int
    -> );

    
    1、创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。
mysql> create view stu_info (姓名,性别,课程名,成绩) as select a.Sname,a.Ssex,b.Cname,b.Score from Student a left join (select c.Cno,Cname,Sno,Score from Course c left join SC s on c.Cno = s.Cno) b on a.Sno = b.Sno;
Query OK, 0 rows affected (0.01 sec)

mysql> desc stu_info;
+-----------+---------------+------+-----+---------+-------+
| Field     | Type          | Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+-------+
| 姓名      | varchar(20)   | YES  |     | NULL    |       |
| 性别      | enum('m','w') | YES  |     | NULL    |       |
| 课程名    | varchar(20)   | YES  |     | NULL    |       |
| 成绩      | int(11)       | YES  |     | NULL    |       |
+-----------+---------------+------+-----+---------+-------+
4 rows in set (0.00 sec)


    2、删除视图 stu_info。
    mysql> drop view stu_info;
 文章来源地址https://www.toymoban.com/news/detail-556736.html

到了这里,关于MySQL (备份恢复 索引 视图)练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库备份与恢复

    在项目的开发过程中数据库的备份是非常重要的,为了防止数据库受到破坏,造成不可估量的损失,所以一定要进行数据库的备份,并且需要掌握数据库恢复方法,在发生数据库损坏的时候,能快速进行数据库恢复。 本文主要介绍MySQL数据表备份与恢复主要的三种方法,包括

    2024年02月12日
    浏览(169)
  • 如何备份与恢复MySQL数据库数据

    目录 一、MySQL备份 备份方式 完全备份 差异备份 增量备份 二、常见的备份方法 物理冷备 专用备份工具 mysqldump 或 mysqlhotcopy 启用二进制日志进行增量备份 第三方工具备份 三、MySQL完全备份 四、数据库完全备份分类 物理冷备份与恢复 mysqldump备份与恢复 五、物理冷备份与恢复

    2024年02月16日
    浏览(73)
  • 数据库(MySQL的备份和恢复)

    目录 1.1 MySQL 日志管理 1.1.1 MySQL日志类型 1.1.2 错误日志 错误日志中主要记录的几种日志 错误日志的定义 1.1.3 通用查询日志 1.1.4 慢查询日志 和慢查询相关的变量设置 1.1.5 二进制日志 二进制日志是记录执行的语句还是执行后的数据 日志滚动  1.2 MySQL备份 1.2.1 备份类型 1.2.2

    2024年01月25日
    浏览(64)
  • Mysql数据库增量备份与恢复

    使用 mysqldump 进行完全备份,备份的数据中有重复数据,备份时间与恢复时间长。 而增量备份就是备份自上一次备份之后增加或改变的文件或内容。 1、增量备份的特点: 没有重复数据,备份量不大,时间短 恢复麻烦:需要上次完全备份及完全备份之后所有的增量备份才能恢复

    2024年02月07日
    浏览(91)
  • MySQL数据库的备份与恢复

    备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。 造成数据丢失的原因: 程序错误 人为操作错误 运算错误 磁盘故障 灾难(如火灾、地震)和盗窃 1)物理备份 物理备份:对数据库操作系统的物理文件(如数据

    2024年02月04日
    浏览(242)
  • 【数据库四】MySQL备份与恢复

    数据库备份 物理备份 :直接对数据库的 数据文件或者日志文件 进行备份. 逻辑备份 :对 数据库的库或表对象 进行备份. 备份策略 完全备份 :每次备份 都备份完整的数据库 . 是对整个数据库、数据库结构和文件结构的备份。 保存的是 备份完成时刻的数据库 。 是 差异备份与增

    2024年02月11日
    浏览(63)
  • 数据库应用:MySQL备份与恢复

    目录 一、理论 1.数据备份 2.完全备份与恢复 3.完全备份与恢复应用 4.增量备份与恢复 5.增量备份与恢复应用 6.使用脚本备份 7.日志管理 二、实验 1.完全备份与恢复 2.增量备份与恢复 3.使用脚本备份 三、问题 1.mysqldump报错 四、总结 (1)重要性 ①  备份的主要目的是灾难恢复

    2024年02月16日
    浏览(72)
  • 9-MySQL数据库 数据的备份与恢复

    1.date文件的备份 2.mysqldump 备份 说明: mysqldump是MySQL数据库中的一个实用程序,它主要用于转储(备份)数据库。mysqldump通过生成一个SQL脚本文件,包含从头开始重新创建数据库所必需的(如 CREATE TABLE和INSERT等),来实现数据库的备份和转储。这样,你可以在任何时候通过运

    2024年02月08日
    浏览(71)
  • MySQL基础(三十八)数据库备份与恢复

    物理备份 :备份数据文件,转储数据库物理文件到某一目录。物理备份恢复速度比较快,但占用空间比较大,MySQL中可以用 xtrabackup 工具来进行物理备份。 逻辑备份 :对数据库对象利用工具进行导出工作,汇总入备份文件内。逻辑备份恢复速度慢,但占用空间小,更灵活。

    2024年02月06日
    浏览(66)
  • 【Linux】Mysql的数据库备份及恢复

            备份就是为了防止原数据丢失,保证数据的安全。当数据库因为某些原因造成部分或 者全部数据丢失后,备份文件可以帮我们找回丢失的数据。因此,数据备份是很重要 的工作。 常见数据库备份的应用场景如下: 数据丢失应用场景: 人为操作失误造成某些数据

    2023年04月10日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包