データベースのバックアップと復元、ビューとインデックス

 1. データベースのバックアップと復元

1. 関連するデータベースとデータテーブルを作成する

/******************************サンプルテーブル**************** ***** ********/
    データベース bookDB を作成します。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、「C++ の学習」、2005)、
    (11069、「MySQL プロフェッショナル」、2009)、
    (11026、「MySQL 5.5 のガイド」、2008)、
    (11041、「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)
    );

    著者ブックの値に挿入
    (1001, 11033)、(1002, 11035)、(1003, 11072)、(1004, 11028)、(1011, 11078)、(1012, 11026)、(1012, 11041)、(1014, 11069
    ) );

    /******************************サンプルテーブル**************** ***** **********/

 2. 要件と回答

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

[root@localhost ~]# mysqldump -u root -p booksDB > /backup/booksdb_v1.sql;
   
2、备份booksDB数据库中的books表
  
[root@localhost ~]# mysqldump -u root -p'RedHat@123' booksDB books > /backup/booksdb_v2.sql;

3、使用mysqldump备份booksDB和test数据库

创建数据库text
mysql> create database test;
Query OK, 1 row affected (0.00 sec)

再进行备份
[root@localhost ~]# mysqldump -u root -p'RedHat@123' --databases booksDB test > /backup/booksb_v3.sql;

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

[root@localhost ~]# mysqldump -u root -p'RedHat@123' --all-databases > /backup/booksdb_v4.sql;

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

[root@localhost ~]# mysql -uroot -p'RedHat@123' booksDB < /backup/booksdb_v2.sql;

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

进入数据库

mysql> source /backup/booksdb_v2.sql;

2. 索引

1. utf8 でエンコードされたデータベース test1 を作成します。

 2. 製品テーブル Goods と列テーブル カテゴリを作成し、
    次のテーブル構造に従ってテーブルを作成します: ストレージ エンジン エンジン myisam 文字セット charset utf8

        mysql> デスクグッズ;
        +-----------+---------------+------+-----+--------- +----------------+
        | フィールド | タイプ | ヌル | キー | デフォルト | 番外編 |
        +-----------+---------------+------+-----+--------- +----------------+
        | 商品ID | int(11) | いいえ | プリ | NULL | 自動インクリメント |
        | 商品名 | varchar(20) | いいえ | | | |
        | 猫ID | int(11) | いいえ | | 0 | |
        | ブランドID | int(11) | いいえ | | 0 | |
        | グッズ_SN | 文字(12) | いいえ | | | |
        | ショップ価格 | float(6,2) | いいえ | | 0.00 | |
        | 商品説明 | テキスト | はい | | NULL | |
        +-----------+---------------+------+-----+--------- +----------------+
        7 行セット (0.00 秒)

        
        mysql> 説明カテゴリ;
        +-----------+---------------+------+-----+---------+ ----------------+
        | フィールド | タイプ | ヌル | キー | デフォルト | 番外編 |
        +-----------+---------------+------+-----+---------+ ----------------+
        | 猫ID | int(11) | いいえ | プリ | NULL | 自動インクリメント |
        | カテゴリー名 | varchar(20) | いいえ | | | |
        | 親ID | int(11) | いいえ | | 0 | |
        +-----------+---------------+------+-----+---------+ ---------------+
        3 行セット (0.00 秒)

3、删除 goods 表中的 goods_desc 字段及货号字段,并增加 click_count 字段 
mysql> alter table goods drop goods_desc;
mysql> alter table goods drop brand_id;
mysql> alter table goods add click_count int;

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

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> alter table goods add index index_count(click_count);
mysql> drop index index_count on goods;
mysql> alter table goods add index index_count(click_count);

スリービュー

Student テーブル: Student (Sno, Sname, Ssex, Sage, Sdept)
学生番号、氏名、性別、年齢、所属 Sno が主キー
コーステーブル: Course (Cno, Cname,)
コース番号、コース名 Cno がメインキー
学生コース選択表:SC(Sno、Cno、Score)

学生番号、コース番号、成績 Sno、Cno を主キーとして使用

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 D on C.cno = D.Cno) B on A.Sno = B.Sno;

2、删除视图 stu_info。
mysql> drop view stu_info;

おすすめ

転載: blog.csdn.net/shenql_/article/details/131679259
おすすめ