MySQL数据备份与恢复,索引,视图的简单练习

目录

一. 数据备份与恢复

(1)素材如下:

创建表格如下: 

(2)

1、使用mysqldump命令备份数据库中的所有表

 2、备份booksDB数据库中的books表

 3、使用mysqldump备份booksDB和test数据库(test数据库为之前所用素材,也可以用其他数据库代替)

 4、使用mysqldump备份服务器中的所有数据库

 5、使用mysql命令还原第二题导出的book表

 6、进入数据库使用source命令还原第二题导出的book表

二:索引

(1)

    1、建立一个utf8编码的数据库test1

​ 2、建立商品表goods和栏目表category

        2.1建立商品表goods;

        2.2 建立栏目表category

 3、删除 goods 表中的 goods_desc 字段及货号字段,并增加 click_count 字段 

 4、在 goods_name 列上加唯一性索引(用alter table方式)

 5、在 shop_price 列上加普通索引(用create index方式)

 6、在 click_count 上增加普通索引,然后再删除 (分别使用drop index和alter table删除)

 三:视图

(1)创建以下三个表

        表格如下:

 1、创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

 2、删除视图 stu_info。


一. 数据备份与恢复

(1)素材如下:

CREATE DATABASE booksDB;                                              #创建数据库booksDB

    CREATE TABLE books                                                       #在数据库booksDB创建book表
    (
      bk_id  INT NOT NULL PRIMARY KEY,
      bk_title VARCHAR(50) NOT NULL,
      copyright YEAR NOT NULL
    );
    INSERT INTO books                                        #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                                #在booksDB数据库中创建表authors
    (
      auth_id     INT NOT NULL PRIMARY KEY,
      auth_name  VARCHAR(20),
     auth_gender CHAR(1)
    );
    INSERT INTO authors                                  #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                        #在数据库booksDB中创建表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                                #authorbook中插入数据
    VALUES (1001, 11033), (1002, 11035), (1003, 11072), (1004, 11028),
    (1011, 11078), (1012, 11026), (1012, 11041), (1014, 11069);

创建表格如下: 

MySQL数据备份与恢复,索引,视图的简单练习_第1张图片

 MySQL数据备份与恢复,索引,视图的简单练习_第2张图片

 MySQL数据备份与恢复,索引,视图的简单练习_第3张图片

(2)

1、使用mysqldump命令备份数据库中的所有表

mysqldump -uroot -pRedHat@123 booksDB > /dump/booksdb_00001.sql;

MySQL数据备份与恢复,索引,视图的简单练习_第4张图片

 2、备份booksDB数据库中的books表

mysqldump -uroot -pRedHat@123 booksDB books > /dump/booksdb_00002.sql;

MySQL数据备份与恢复,索引,视图的简单练习_第5张图片

 3、使用mysqldump备份booksDB和test数据库(test数据库为之前所用素材,也可以用其他数据库代替)


mysqldump -uroot -pRedHat@123 --databases booksDB test  > /dump/booksdb_00003.sql;
MySQL数据备份与恢复,索引,视图的简单练习_第6张图片

MySQL数据备份与恢复,索引,视图的简单练习_第7张图片

 4、使用mysqldump备份服务器中的所有数据库

mysqldump -uroot -pRedHat@123 --all-databases > /dump/books.000004.sql
MySQL数据备份与恢复,索引,视图的简单练习_第8张图片

 5、使用mysql命令还原第二题导出的book表

mysql -u root -pRedHat@123  booksDB < /dump/booksdb_00002.sql 

这里由于本人失误忘了保存图片

 6、进入数据库使用source命令还原第二题导出的book表

mysql> source /dump/booksdb_00002.sql;

MySQL数据备份与恢复,索引,视图的简单练习_第9张图片

二:索引
 

       按如下表结构创建表:存储引擎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)
 

(1)

    1、建立一个utf8编码的数据库test1

create database test1 character set utf8mb4 collate utf8mb4_unicode_ci;

MySQL数据备份与恢复,索引,视图的简单练习_第10张图片
    2、建立商品表goods和栏目表category

        2.1建立商品表goods;
mysql>  create table goods(
    ->  goods_id int(11) primary key  auto_increment not null,
    -> goods_name varchar(20)  not null,
    -> cat_id int(11) default '0' not null,
    -> brand_id int default '0' not null,
    -> goods_sn char(12) not null,
    ->  shop_price float(6,2) default '0.00' not null,
    -> goods_desc text 
    ->  ) engine=MyISAM charset= utf8;

MySQL数据备份与恢复,索引,视图的简单练习_第11张图片

        2.2 建立栏目表category
mysql> create table category (
    -> cat_id int(11) primary key auto_increment not null,
    -> cate_name varchar(20) not null,
    -> parent_id int(11) default '0' not null
    ->  )engine=MyISAM charset= utf8;

MySQL数据备份与恢复,索引,视图的简单练习_第12张图片

 3、删除 goods 表中的 goods_desc 字段及货号字段,并增加 click_count 字段 

mysql> alter table goods drop goods_desc;#删除goods_desc字段

mysql> alter table goods add click_count int;#增加click_count字段

MySQL数据备份与恢复,索引,视图的简单练习_第13张图片

 4、在 goods_name 列上加唯一性索引(用alter table方式)

mysql> alter table goods add unique index index_name(goods_name);

MySQL数据备份与恢复,索引,视图的简单练习_第14张图片

 5、在 shop_price 列上加普通索引(用create index方式)

mysql> create index index_price on goods (shop_price);

MySQL数据备份与恢复,索引,视图的简单练习_第15张图片
 6、在 click_count 上增加普通索引,然后再删除 (分别使用drop index和alter table删除)

mysql> create index index_count on goods (click_count);#create index方法
mysql> drop index index_count on goods;

mysql> create index index_count on goods (click_count);#alter table 方法
mysql> alter table goods drop index index_count;

MySQL数据备份与恢复,索引,视图的简单练习_第16张图片

MySQL数据备份与恢复,索引,视图的简单练习_第17张图片

 三:视图

(1)创建以下三个表

    学生表:Student (Sno, Sname, Ssex , Sage, Sdept)
    学号,姓名,性别,年龄,所在系 Sno为主键
    课程表:Course (Cno, Cname,)
    课程号,课程名 Cno为主键
    学生选课表:SC (Sno, Cno, Score)
    学号,课程号,成绩 Sno,Cno为主键

表格如下:

#创建student表
mysql>  create table student (
    -> Sno int(20) primary key,
    -> Sname varchar(20),
    -> Ssex varchar(10),
    ->  Sage int,
    -> Sdept varchar(20)
    ->   );

#创建course表
mysql> create table course(
    -> Cno int primary key,
    -> Cname varchar(20)
    ->  );

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


MySQL数据备份与恢复,索引,视图的简单练习_第18张图片

 MySQL数据备份与恢复,索引,视图的简单练习_第19张图片

 MySQL数据备份与恢复,索引,视图的简单练习_第20张图片

 1、创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。

我这里使用的多表连接,其他方法也是可行的,例如多表查询

mysql> create view stu_info as 
    -> select Sname,Ssex,Cname,Score from student,course,SC
    -> where student.Sno = SC.Sno and SC.Cno = course.Cno;

MySQL数据备份与恢复,索引,视图的简单练习_第21张图片
 2、删除视图 stu_info。

mysql> drop view stu_info;

你可能感兴趣的:(mysql,数据库)