16.4 视图、事务、索引、函数

1 视图【view】

1、 视图是一张虚拟表,它表示一张表的部分或多张表的综合的结构。

2、 视图仅仅是表结构,没有表数据。视图的结构和数据建立在表的基础上。

1.1 创建视图

语法

create [or replace] view 视图的名称
as
    select语句;

例题:

mysql> create view vw_stu
    -> as
    -> select stuname,stusex,writtenexam,labexam from stuinfo inner join stumarks using(stuno);
Query OK, 0 rows affected (0.00 sec)
多学一招:因为视图是一个表结构,所以创建视图后,会在数据库文件夹中多一个与视图名同名的.frm文件

1.2 使用视图

视图是一张虚拟表,视图的用法和表的用法一样的

1.3 查看视图的结构

语法:

例题

1.4 查看创建视图的语法

语法:

例题

1537067071676

1.5 显示所有视图

1.6 更改视图

语法:

例题:

1.7 删除视图

语法:

例题

1.8 视图的作用

  1. 筛选数据,防止未经许可访问敏感数据

  2. 隐藏表结构

  3. 降低SQL语句的复杂度

1.9 视图的算法

场景:找出语文成绩最高的男生和女生

我们可以将子查询封装到视图中

可以将上面的子查询更改成视图,但是,结果和上面不一样

原因:这是因为视图的算法造成的

解决:在创建视图的时候指定视图的算法

指定算法创建视图

2 事务【transaction】

  1. 事务是一个不可分割的执行单元

  2. 事务作为一个整体要么一起执行,要么一起回滚

插入测试数据

2.1 事务操作

例题:

2.2 设置事务的回滚点

语法:

例题:

2.3 事务的特性(ACID)

  1. 原子性(Atomicity):事务是一个整体,不可以再分,要么一起执行,要么一起不执行。

  2. 一致性(Consistency):事务完成时,数据必须处于一致的状态。

  3. 隔离性(Isolation):每个事务都是相互隔离的

  4. 永久性(Durability):事务完成后,对数据的修改是永久性的。

3 索引【index】

索引的优点:查询速度快

索引的缺点:

  1. 增、删、改(数据操作语句)效率低了

  2. 索引占用空间

3.1 索引的类型

  1. 普通索引

  2. 唯一索引(唯一键)

  3. 主键索引:只要主键就自动创建主键索引,不需要手动创建。

  4. 全文索引,搜索引擎使用,MySQL不支持中文的全文索引,我们通过sphinx去解决中文的全文索引。

3.2 创建普通索引【create index】

语法:

例题:

3.3 创建唯一索引

例题

3.4 删除索引

语法

例题

3.5 创建索引的指导原则

  1. 该列用于频繁搜索

  2. 改列用于排序

  3. 公共字段要创建索引

  4. 如果表中的数据很少,不需要创建索引。MySQL搜索索引的时间比逐条搜索数据的时间要长。

  5. 如果一个字段上的数据只有几个不同的值,改字段不适合做索引,比如性别。

4 函数

4.1 数字类

4.2 字符串类

4.3 时间类

4.4 加密函数

4.5 判断函数

语法

例题:

5 预处理

预编译一次,可以多次执行。用来解决一条SQL语句频繁执行的问题。

例题一:

例题二:传递参数

例题三:传递多个参数

6 存储过程【procedure】

6.1 存储过程的优点

  1. 存储过程可以减少网络流量

  2. 允许模块化设计

  3. 支持事务

6.2 创建存储过程

语法:

例题

6.3 调用存储过程

语法:

例题:

6.4 删除存储过程

语法

例题:

6.5 查看存储过程的信息

例题

6.6 显示所有的存储过程

6.7 存储过程的参数

存储过程的参数分为:输入参数(in)【默认】,输出参数(out),输入输出参数(inout)

存储过程不能使用return返回值,要返回值只能通过“输出参数”来向外传递值。

例题一:传递学号,获取对应的信息

例题二:查找同桌

强调

例题三:输出参数

例题四:输入输出参数

7 GO连接MySQL

  1. 因为Go语言没有提供任何官方数据库驱动,所以需要安装第三方函数库。

  2. 由于在github上安装,所以需要安装git软件,安装过程一直点击下一步即可。安装完成后需要配置环境变量

7.1 安装git

git软件

1537011074242

安装完毕后,配置git的环境变量,这样可以使用get的指令

1537094210154

7.2 安装数据库驱动

设置GOPATH的环境变量,这样驱动才会下载到项目根目录中。

1537094342573**

在cmd命令窗口中输入如下命令安装驱动

安装完毕后,会在GOPATH下看到下载的驱动

1537011722807

7.3 连接数据库

1、在src目录下创建demo.go文件,导入数据库驱动

2、通过sql.open()连接数据库

3、执行SQL语句

​ 创建测试表

操作数据

8 例题

1、 显示地区及每个地区参加考试的人数,并按人数降序排列。

2、 显示有学生参加考试的地区

方法一:过滤

方法二:链接查询

3、 显示男生和女生的人数

方法一:

方法二:

4、 显示每个地区的男生和女生和总人数

Last updated

Was this helpful?