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 查看创建视图的语法
语法:
例题

1.5 显示所有视图
1.6 更改视图
语法:
例题:
1.7 删除视图
语法:
例题
1.8 视图的作用
筛选数据,防止未经许可访问敏感数据
隐藏表结构
降低SQL语句的复杂度
1.9 视图的算法
场景:找出语文成绩最高的男生和女生
我们可以将子查询封装到视图中
可以将上面的子查询更改成视图,但是,结果和上面不一样
原因:这是因为视图的算法造成的
解决:在创建视图的时候指定视图的算法
指定算法创建视图
2 事务【transaction】
事务是一个不可分割的执行单元
事务作为一个整体要么一起执行,要么一起回滚
插入测试数据
2.1 事务操作
例题:
2.2 设置事务的回滚点
语法:
例题:
2.3 事务的特性(ACID)
原子性(Atomicity):事务是一个整体,不可以再分,要么一起执行,要么一起不执行。
一致性(Consistency):事务完成时,数据必须处于一致的状态。
隔离性(Isolation):每个事务都是相互隔离的
永久性(Durability):事务完成后,对数据的修改是永久性的。
3 索引【index】
索引的优点:查询速度快
索引的缺点:
增、删、改(数据操作语句)效率低了
索引占用空间
3.1 索引的类型
普通索引
唯一索引(唯一键)
主键索引:只要主键就自动创建主键索引,不需要手动创建。
全文索引,搜索引擎使用,MySQL不支持中文的全文索引,我们通过sphinx去解决中文的全文索引。
3.2 创建普通索引【create index】
语法:
例题:
3.3 创建唯一索引
例题
3.4 删除索引
语法
例题
3.5 创建索引的指导原则
该列用于频繁搜索
改列用于排序
公共字段要创建索引
如果表中的数据很少,不需要创建索引。MySQL搜索索引的时间比逐条搜索数据的时间要长。
如果一个字段上的数据只有几个不同的值,改字段不适合做索引,比如性别。
4 函数
4.1 数字类
4.2 字符串类
4.3 时间类
4.4 加密函数
4.5 判断函数
语法
例题:
5 预处理
预编译一次,可以多次执行。用来解决一条SQL语句频繁执行的问题。
例题一:
例题二:传递参数
例题三:传递多个参数
6 存储过程【procedure】
6.1 存储过程的优点
存储过程可以减少网络流量
允许模块化设计
支持事务
6.2 创建存储过程
语法:
例题
6.3 调用存储过程
语法:
例题:
6.4 删除存储过程
语法
例题:
6.5 查看存储过程的信息
例题
6.6 显示所有的存储过程
6.7 存储过程的参数
存储过程的参数分为:输入参数(in)【默认】,输出参数(out),输入输出参数(inout)
存储过程不能使用return返回值,要返回值只能通过“输出参数”来向外传递值。
例题一:传递学号,获取对应的信息
例题二:查找同桌
强调
例题三:输出参数
例题四:输入输出参数
7 GO连接MySQL
因为Go语言没有提供任何官方数据库驱动,所以需要安装第三方函数库。
由于在github上安装,所以需要安装git软件,安装过程一直点击下一步即可。安装完成后需要配置环境变量
7.1 安装git
git软件

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

7.2 安装数据库驱动
设置GOPATH的环境变量,这样驱动才会下载到项目根目录中。
**
在cmd命令窗口中输入如下命令安装驱动
安装完毕后,会在GOPATH下看到下载的驱动

7.3 连接数据库
1、在src目录下创建demo.go文件,导入数据库驱动
2、通过sql.open()连接数据库
3、执行SQL语句
创建测试表
操作数据
8 例题
1、 显示地区及每个地区参加考试的人数,并按人数降序排列。
2、 显示有学生参加考试的地区
方法一:过滤
方法二:链接查询
3、 显示男生和女生的人数
方法一:
方法二:
4、 显示每个地区的男生和女生和总人数
Last updated
Was this helpful?