目录
一. 数据备份与恢复
(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);
创建表格如下:
(2)
1、使用mysqldump命令备份数据库中的所有表
mysqldump -uroot -pRedHat@123 booksDB > /dump/booksdb_00001.sql;
2、备份booksDB数据库中的books表
mysqldump -uroot -pRedHat@123 booksDB books > /dump/booksdb_00002.sql;
3、使用mysqldump备份booksDB和test数据库(test数据库为之前所用素材,也可以用其他数据库代替)
mysqldump -uroot -pRedHat@123 --databases booksDB test > /dump/booksdb_00003.sql;
4、使用mysqldump备份服务器中的所有数据库
mysqldump -uroot -pRedHat@123 --all-databases > /dump/books.000004.sql
5、使用mysql命令还原第二题导出的book表
mysql -u root -pRedHat@123 booksDB < /dump/booksdb_00002.sql
这里由于本人失误忘了保存图片
6、进入数据库使用source命令还原第二题导出的book表
mysql> source /dump/booksdb_00002.sql;
二:索引
按如下表结构创建表:存储引擎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;
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;
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;
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字段
4、在 goods_name 列上加唯一性索引(用alter table方式)
mysql> alter table goods add unique index 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);#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;
三:视图
(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
-> );
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;
2、删除视图 stu_info。
mysql> drop view stu_info;