MySQL实战(六):MySQL视图、索引

本文详细介绍了MySQL中的视图操作,包括创建考上知名大学的学生视图,更正错误成绩,以及查看和删除视图。同时,探讨了索引的创建,如在不同字段上创建唯一索引、普通索引、组合索引和全文索引,并演示了如何删除全文索引。
摘要由CSDN通过智能技术生成

目录

一、视图

素材

1、创建考上 Peking University 的学生的视图

2、创建考上 Tsinghua University 的学生的视图

3、XiaoTian 的成绩在录入的时候录入错误多录了50分,对其录入成绩进行更正

4、查看更新过后视图和表的情况

5、查看视图的创建信息

6、删除创建的视图

二、索引

1、在数据库里创建表 writers,存储引擎为MyISAM,创建表的同时在 w_id 字段上添加名称为UniqIdx 的唯一索引

2、使用 alter table 语句在 w_name 字段上建立 nameIdx 的普通索引

3、使用 CREATE INDEX 语句在 w_address 和 w_age 字段上面建立名称为 MultiIdx 的组合索引

4、使用 create index 语句在 w_note 字段上建立名称为 FTIdex 的全文索引

5、删除名为 FTIdx 的全文索引


一、视图

素材

建表语句

# 创建 stu 表
CREATE TABLE stu 
(
s_id INT PRIMARY KEY,
s_name VARCHAR(20),
addr VARCHAR(50),
tel VARCHAR(50)
); 
# 创建 sign 表
CREATE TABLE sign 
(
s_id INT PRIMARY KEY,
s_name VARCHAR(20),
s_sch VARCHAR(50),
s_sign_sch VARCHAR(50)
); 
# 创建 stu_mark 表
CREATE TABLE stu_mark (s_id INT PRIMARY KEY ,s_name VARCHAR(20) ,mark int ); 

插入数据

# 向 stu 表插入记录的INSERT语句如下:
INSERT INTO stu 
VALUES(1,'XiaoWang','Henan','0371-12345678'),
(2,'XiaoLi','Hebei','13889072345'),
(3,'XiaoTian','Henan','0371-12345670');
# 向 sign 表插入记录的INSERT语句如下:
INSERT INTO sign 
VALUES(1,'XiaoWang','Middle School1','Peking University'),
(2,'XiaoLi','Middle School2','Tsinghua University'),
(3,'XiaoTian','Middle School3','Tsinghua University');
# 向 stu_mark 表插入记录的INSERT语句如下:
INSERT INTO stu_mark VALUES(1,'XiaoWang',80),(2,'XiaoLi',71),(3,'XiaoTian',70);

1、创建考上 Peking University 的学生的视图

mysql> create view Peking_stu(学号,姓名,学校,成绩,大学) as
select a.s_id,a.s_name,a.s_sch,mark,s_sign_sch from sign a inner join stu_mark b
on a.s_id=b.s_id
where s_sign_sch='Peking University';

mysql> select * from Peking_stu;
+--------+----------+----------------+--------+-------------------+
| 学号   | 姓名     | 学校           | 成绩   | 大学              |
+--------+----------+----------------+--------+-------------------+
|      1 | XiaoWang | Middle School1 |     80 | Peking University |
+--------+----------+----------------+--------+-------------------+

2、创建考上 Tsinghua University 的学生的视图

mysql> create view Tsinghua_stu(学号,姓名,学校,成绩,大学) 
as select a.s_id,a.s_name,a.s_sch,mark,s_sign_sch 
from sign a inner join stu_mark b 
on a.s_id=b.s_id 
where s_sign_sch='Tsinghua University';

mysql> select * from Tsinghua_stu;
+--------+----------+----------------+--------+---------------------+
| 学号   | 姓名     | 学校           | 成绩   | 大学                |
+--------+----------+----------------+--------+---------------------+
|      2 | XiaoLi   | Middle School2 |     71 | Tsinghua University |
|      3 | XiaoTian | Middle School3 |     70 | Tsinghua University |
+--------+----------+----------------+--------+------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值