内置函数与存储过程
来源:互联网 发布:阿里云 流量充值 api 编辑:程序博客网 时间:2024/06/07 18:53
一、内置函数
Rpad(‘被填充对象’,最终长度,填充内容)
Lpad:截取、填充
Replace(“被作用的对象”,被替换的内容,替换后的内容);
Concat:连接字符串,逗号作为分隔符
Substring(‘被作用的对象’,‘开始截取的位置,截取的长度);
开始截取的位置从1开始,>=1
-------------------------------是负数,表示从后向前截取
Strcmp:(字符1,字符2):按照字节比较
相等:0,大于:1 小于:-1
时间日期函数
MYSQL Page115-129
Now():
Curtime():当前时间
Curdate():当前日期
Year(): year(now()-出生日期)获取年龄
练习其他函数
1、加密函数
2、控制流函数
Ifnull()
Nullif();
If()
3、格式化函数
Format 小数格式化
Date_format: 日期格式化
Time_format: 时间格式化
字符和时间日期需要单引号
4、类型转换
Cast(要转换的对象 as 类型)
5、系统信息函数
二语言结构
DDL:数据定义语言create alter drop
DML: 数据操纵语言insert delete update select(查询语言)
DCL:数据控制语言 grant revoke 等
三、常量(值一直不变的量)
‘a’ 12 3 3.14
变量:保存运行过程中的临时结果
1)用户变量(和会话----连接服务器到退出服务器的一段时间)
@变量名
一定要初始化
定义用户变量:set @a=2,@;
获取该变量信息:select @a
Select 返回结果分几类:表,列,行,值(标量)
2)系统变量
@@VERSION
Select @@VERSION;
存储过程
类似函数:批量处理
1、 为什么使用
Mysql服务器在缓存机制做了改进,使用了类似预处理的那种方式,由于没有编译器,因此mysql存储过程不会像外部语言(c)编写的程序运行的那么快,提升速度最主要的方法有两种:降低网络的信息流量,减少用户与服务器之间的交互;
因为存储过程是在服务器端执行,所以使用存储过程就会减少客户与服务器的信息量。
改变主机语言也可以,存储过程只是数据库逻辑而不是应用程序,可移植性好,和操作系统、主机型号等无关;
2、 要求
² Proc表
² 具有Create routine(例程)的权限
² 返回标量值
² 隐含调用use库名,删除数据库,存储过程也被删除
3、 语法格式
Create procedure 存储过程名(参数)
特征描述
SQL语句体
4、 例如
1) use 库名;
2) create procedure p1()
begin
/* this is my first procedure */
End;
注意:
u begin……end 相当于{}的作用
u 如果SQL语句体只有一句可以省略begin……end
u 存储过程名称不区分大小写,尽量避免与内建函数同名,假如同名则在名称和()之间加空格
u 名称长度限制为64字符
u ()可以为空不能省略
u 通常情况下select不会出现在存储过程体内
u 大部分DDL、DML都是合法语句
非法语句
Create procedure db.p() drop database db;
含有use 库名等
3) 调用存储过程
Call 存储过程名(。。。)
4)带有描述信息存储过程
Create procedure p3()
Language sql----声明用什么语言来实现存储过程
目前只支持SQL语句,将来可能会使用PHP来代替SQL语句
Not deterministic---返回的结果不确定,
Sql security definer----创建者
Comment ‘a procedure’-----给存储过程加注释
Select * .....sql语句体
5)当语句体内容两条以上,结束符
Sql:
Create procedure p4()
Begin
Select * from kc;---会给出错误提示,直接结束存储过程的声明
Select * from xs;
End;
Delimiter----声明结束符
Delemiter//
参数: [in|out|inout] 参变量 数据类型
Declare:声明存储过程的局部变量
1)第一种方法:分两步实现
Declare 变量名 数据类型;声明
定义的变量不进行初始化,默认为NULL,该值进行的所有操作,结果都为空
Set 变量=值(也可以是表达式); 赋值
2)第二种方法
也可用同一条语句完成变量的声明和初始化
Declare 变量名 数据类型 default 值;
存储过程是我们今天新学的,有好多的函数需要我们记住,所以我们一定要先把这些函数练习一遍,然后把存储过程了解了,今天老师说了考试有淘汰制,我是相当的紧张啊,希望我不是淘汰的那个!加油!加油!加油!
- 内置函数与存储过程
- 内置函数与存储过程
- 内置函数和存储过程
- 函数与存储过程
- 存储过程与函数
- 存储过程与函数
- 函数与存储过程
- 函数与存储过程
- 函数与存储过程
- 存储过程与函数
- 存储过程与函数
- 存储过程与函数
- 存储过程与存储函数
- mysql存储过程与函数------创建存储过程与函数
- 存储过程与函数比较
- 存储过程与函数比较
- Oracle存储过程与函数
- oracle 存储过程与函数
- HDOJ1003
- Hello
- c讲义
- Test
- LINQ常用技巧之二
- 内置函数与存储过程
- 正则表达式 替换:将叠词替换成&
- c语言指针定义
- STL Map 的简单操作
- mysql中内建函数的应用
- 单链表及其基本方法的实现
- 字符设备驱动之LED
- Java SE 6 新特性: 对脚本语言的支持
- 正则表达式 替换:将叠词替换成单个字母