在创建语法">

首页 >数据库 >mysql教程 >JAVA实训笔记(九)之mysql

JAVA实训笔记(九)之mysql

WBOY
WBOY原创
2016-06-07 15:13:211174浏览

在经过前面几天的折磨,大家已经很疲惫了,为了我们的java程序员之路,这个仅仅刚刚开始,为了心中的梦想,大家继续加油,我们今天学习mysql里面的一些高级知识。 首先进入视图的学习,视图的概念:视图是虚拟的表,是数据的显示方式,数据还是存储在原来的

在经过前面几天的折磨,大家已经很疲惫了,为了我们的java程序员之路,这个仅仅刚刚开始,为了心中的梦想,大家继续加油,我们今天学习mysql里面的一些高级知识。

首先进入视图的学习,视图的概念:视图是虚拟的表,是数据的显示方式,数据还是存储在原来的基表中。

创建视图的语法:

JAVA实训笔记(九)之mysql

在创建语法 or replace的含义:当有同名视图时,会覆盖原来的视图。Algorithm定义了处理视图的方式,默认的是undefined,才采用merge的方式,如果是temptable方式,是把视图的结果放在临时表中,同时这种方式不能对视图进行修改。

示例1

JAVA实训笔记(九)之mysql

示例2

JAVA实训笔记(九)之mysql

在mysql中要实现数据库的某一个功能,可以通过存储过程和函数来实现。

           

 

 

存储过程

 

函数

 

概念

 

预编译sql语句的集合

 

Sql语句的集合

 

参数

 

输入参数、输出参数

 

参数,返回值

 

返回值

 

通过使用输出参数,可以有多个

 

通过return返回,只有一个

 

调用

 

Call (输入参数,保存输出参数的变量)

 

Call 函数名(参数)

 

 

存储过程的语法:

 

JAVA实训笔记(九)之mysql

JAVA实训笔记(九)之mysql

函数的定义语法:

JAVA实训笔记(九)之mysql

JAVA实训笔记(九)之mysql

示例1:

 

JAVA实训笔记(九)之mysql

示例2,带输入参数的存储过程

 

JAVA实训笔记(九)之mysql

示例3,带输入参数和输出参数的存储过程

 

JAVA实训笔记(九)之mysql

示例4:用存储过程实现的分页,在这里需要执行动态sql,采用prepare和execute来执行,这里的代码没有不全,大家自己可以自行不全。

在下面的例子首先给大家介绍如何执行带参数的sql,这里问号代表参数,prepare的意思表示预处理,程序会预先编译放在高速缓存中,存储过程就是预编译的。

JAVA实训笔记(九)之mysql

JAVA实训笔记(九)之mysql

 

 

游标:用来处理单行数据,在mysql中游标只能用在存储过程或者函数中。

使用游标遵循四个步骤,分别是:

1.        声明游标 declare 游标名 cursor for select语句

2.        打开      open 游标名

3.        提取游标   fetch 游标名 into 变量

4.        关闭游标   close 游标名

JAVA实训笔记(九)之mysql

 

触发器:当实现表与表之间的约束时,可以使用触发器,触发器是一种自动运行的机制。

语法:

JAVA实训笔记(九)之mysql

Trigger_name触发器名称。

Trigger_time是触发时间,可以是before或after,表示触发前后。

Trigger_event是触发事件,可以为insert、update和delete。

问题:通过触发器实现发帖积分的增加?

解决问题的方法:在用户第一次发帖的时候,对积分表执行的insert操作,如果已经有发帖纪录,执行的是update。

示例:rank表积分表,topic帖子表

 

JAVA实训笔记(九)之mysqlJAVA实训笔记(九)之mysqlJAVA实训笔记(九)之mysql

在这里要使用新的值使用new操作符,如果使用原始的值是用old。

到这里mysql数据库的知识就全部讲完了,下面需要大家通过实际的例题来练习,巩固这些知识,最好找一些面试题来测试自己的数据库水平,也可以通过项目来提升自己。

 

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn