在创建语法">

Heim  >  Artikel  >  Datenbank  >  JAVA实训笔记(九)之mysql

JAVA实训笔记(九)之mysql

WBOY
WBOYOriginal
2016-06-07 15:13:211104Durchsuche

在经过前面几天的折磨,大家已经很疲惫了,为了我们的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数据库的知识就全部讲完了,下面需要大家通过实际的例题来练习,巩固这些知识,最好找一些面试题来测试自己的数据库水平,也可以通过项目来提升自己。

 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn