-correspondence
MySQL-
高级
1
标题
1
.
...........................
..................................................
..................
错误!未定义书签。
1.1
标题
2 ........................
..................................................
..................
错
误!未定义书签。
1.1.1
标题
3 ........................
..................................................
...............
错
误!未定义书签。
泰牛程序员
PHP
学院
1
概述
M
ySQL
中的
SQL
编程的话题
.
触发器
,
存储函数
,
存储过程
以上的是三个名词
,
在
SQL
编程中
,
地位是
:
程序的载体
,
程序的结果
.
编程所涉及的要素
:
变量
,
数据类型
,
流程控制
,
函数
,
运算符
,
表达式
.
2
/
40
泰牛程序员
PHP
学院
2
函数
2.1
内置函数
MySQL
自动提供的函数
!
例如
: database(), now(), md5()
2.2
自定义函数
–
存储函数
用户定义定义的
,
存储在
MySQL
中的函数
.
2.2.1
create function,
创建函数
适用语法
< br>:
来创建函数
3
/
40
泰牛程序员
PHP
学院
2.2.2
调用函数
2.2.3
drop function ,
删除函数
drop
function [if exists] function-name;
4
/
40
泰牛程序员
PHP
学院
5
/
40
泰牛程序员
PHP
学院
3
变量
–
编
程要素
程序处理数据
.
数据在程序中的容器
,
就是变量
.
强类型
3.1
全局变量
函数外定义的变量
变量不需要声明
,
直接去设置即可
!
PS,
内置的变量
: set
autocommit = off,
不以
@
开头
3.2
局部变量
函数内定义的变量
使用
declare
来声明
.
不需要使用
@,
表示是用户自定义变量
.
6
/
40
泰牛程序员
PHP
学院
强类型
,
定义的局部变量
,
必须定义为某种类型
,
类型的表述与字段的类型一致
!
3.3
重叠
(
嵌套
)
作用域
局部内
,
可访问到全局变量
PS:
与
JS
保持一致
1
7
/
40
泰牛程序员
PHP
学院
3.4
变量的赋值
3.4.1
set
变量
=
值
3.4.2
select into
变量
当需要为变量赋值的数据
,
来源于<
/p>
SQL
中
select
< br>语句的查询结果时
,
可以使用
select
into
完成变量的赋值
.
8
/
40
泰牛程序员
PHP
学院
一次性
,
赋值多个变量
:
函数内
,
也可以使用
9
/
40
泰牛程序员
PHP
学院
4
流程控制
–
编程要素
循环和分支
4.1
分支
- IF
测试
结果
10
/
40
泰牛程序员
PHP
学院
4.1.1
内置分支函数
: if()
不是分支
,
是典型的三元运算
,
的函数封装语法
MySQL
不支持三元运算符
? :.
4.2
分支
-CASE
11
/
40
泰牛程序员
PHP
学院
测试
结果
4.3
循环
–
while
条件满足
,
则循环继续
12
/
40
泰牛程序员
PHP
学院
其中标签
,
用于在循环终止时
,
一次性的终止多层循环
!
类似于
p>
JS
的语法
.
例如
:
13
/
40
泰牛程序员
PHP
学院
4.4
循环
–
终止
终止当前循环
:(continue), iterate
终止全部
:(break), leave
终止
,
都需要配合循环语句的标签使用
!
ierate:
leave:
14
/
40
泰牛程序员
PHP
学院
如果需要终止多层
:
需要在后边跟随不同的标签即可
15
/
40
泰牛程序员
PHP
学院
5
过程
–
存
储过程
–
procedure
与函数类似
,
都是一段功能代码的集
合
,
称之为过程
.
与函数不一样的是
,
函数由于完成某个特定的操作点
,
例如
, md5(),
获取
md5
摘要信息
,
不是
用来实现某中也无路基操作
, <
/p>
而是就是实现特定的操作
.
过程是
,
某个特定的业务逻辑
.
当我们需要使用
SQL
完成某件事时候
,
使用过程
,
而在过程的完成中
,
需要一些特殊的操作
,
就是函数
.
例如
:
需要插入
,
1000
条记录到某测试表中
,
此时就应该创建过程
.
而在插入的时候
,
需要随机的获取学生的姓名
,
就可以定义一个函数
,
完成获取随机的学生
姓名工作
.
映射到
PHP
程序
:
浏览器所请求的一个
URL,
对应的
PHP
代码
,
就是一段过程
.
(
例如
,
商品添加
,
用户注册
),
就是过程
.
而在完成这个过程中
,
需要将用户的
密码做
md5
处理
,
md5
就是函数
.
因此
,
函数在意的是处理结果
,
函数具有返回值
.
而过程是一段执行
,
不具有返回值
.
语法
16
/
40
泰牛程序员
PHP
学院
5.1
创建过程
:create
procedure
注意
:
没有返回值参数有输入方式之分
.
过程内的写法
,
与函数是一致的
.
5.2
调用过程
, call
过程
()
过程的调用不能出现在表达式中
,
需要使用独立的语法进行独立调用
.
//
表达式中
max(class_id) + 10;
需要用
call
17
/
40
泰牛程序员
PHP
学院
5.3
删除过程
, drop
procedure
5.4
参数的输入类型
, in, out, inout
in, out, inout,
表示
,
过程的参数的数据的传递方向
.
in:
由外向内传递
out:
由内向外传递
inout:
双向传递
,
即可内向外
,
也可外向内
内
,
外
,
指的是
,
过程外和过程内
.
创建过程外的三个变量
:
18
/
40
泰牛程序员
PHP
学院
以三个变量作为实参
,
调用过程
:
在获取过程外三个变量的值
:
inout
双向传递
,
类似于
PHP
中的引用传递
!
由于过程没有返回值
,
需要在过程处理后
,
得到过程的处理结果数据
,
就因该
,
使用带
有
out
类型的参数
.
一个数据时被多个过程连续处理
,
典型的需要
inout
类型的参数
.
19
/
40
泰牛程序员
PHP
学院
6
练习
一
个纯粹的
MySQL
管理员需要完成某些操作
< br>,
需要使用过程
,
MySQL
自带的编程方式
.
例如
,
需要创建大量的测试数据
,
可以过程完成
:
确定测试表的结构
确定需要插入的数据格式
要求
:
学号要从
1
开始递增
< br>.
班级
ID,
从
1-100
随机
姓名
,
随机得来
说明
:
任意
编程实现
:
20
/
40
-correspondence
-correspondence
-correspondence
-correspondence
-correspondence
-correspondence
-correspondence
-correspondence
-
上一篇:(完整版)外研版五年级英语下册第一模块测试题
下一篇:迪士尼电影大全