sql编程 && 存储过程
数据类型
函数
数值函数
Abs(X),绝对值abs(-10.9) = 10
Format(X,D),格式化千分位数值 format(1234567.456, 2) = 1,234,567.46
Ceil(X),向上取整ceil(10.1) = 11
Floor(X),向下取整floor (10.1) = 10
Round(X),四舍五入去整
Mod(M,N) M%N M MOD N求余10%3=1
Pi(),获得圆周率
Pow(M,N) M^N
Sqrt(X),算术平方根
Rand(),随机数 select floor(rand() *5 +5);
TRUNCATE(X,D) 截取D位小数
时间日期函数
Now(),current_timestamp(); 当前日期时间
Current_date();当前日期
current_time();当前时间
Date(‘yyyy-mm-dd HH;ii:ss’);获取日期部分
Time(‘yyyy-mm-dd HH;ii:ss’);获取时间部分
Date_format(‘yyyy-mm-dd HH;ii:ss’,’ %D %y %a %d %m %b %j');
Unix_timestamp();获得unix时间戳
From_unixtime();//从时间戳获得时间
字符串函数
LENGTH (string ) //string长度,字节
CHAR_LENGTH(string) //string的字符个数
SUBSTRING (str, position [,length ]) //从str的position开始,取length个字符
REPLACE (str,search_str ,replace_str ) //在str中用replace_str替换search_str
INSTR (string ,substring ) //返回substring首次在string中出现的位置
CONCAT (string [,... ]) //连接字串
CHARSET(str) //返回字串字符集
LCASE (string ) //转换成小写
LEFT (string ,length ) //从string2中的左边起取length个字符
LOAD_FILE (file_name) //从文件读取内容
LOCATE (substring , string [,start_position] ) //同INSTR,但可指定开始位置
LPAD (string ,length ,pad ) //重复用pad加在string开头,直到字串长度为length lpad(1,3,0) 在1前面补3个0
LTRIM (string ) //去除前端空格
REPEAT (string ,count ) //重复count次
RPAD (string ,length ,pad) //在str后用pad补充,直到长度为length
RTRIM (string ) //去除后端空格
STRCMP (string1 ,string2 ) //逐字符比较两字串大小
流程函数:
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 多分支
IF(expr1,expr2,expr3) 双分支。
聚合函数
Count()
Sum();
Max();
Min();
Avg();
Group_concat()
其他常用函数
Md5();
Default();
用户自定义函数
语法:
新建:
Create function function_name (参数列表) returns 返回值类型
函数体
函数名,应该合法的标识符,并且不应该与已有的关键字冲突。
一个函数应该属于某个数据库,可以使用db_name.funciton_name的形式执行当前函数所属数据库,否则为当前数据库。
参数部分,由参数名和参数类型组成。
返回值类类型
函数体由多条可用的mysql语句,流程控制,变量声明等语句构成。
多条语句应该使用 begin end语句块包含。
注意,一定要有return 返回值语句。
函数参数
参数 同样需要确定类型
可以有多个参数
函数内部定义局部变量
declare i int default 0;
删除:
Drop function if exists function_name;
查看:
Show function status like ‘partten’
Show create function function_name;
修改:
Alter function function_name 函数选项。
注意 不是根据 leave 和 iterate 的位置来跳出的 而是根据循环标签来跳出的
给循环起个名字 :
标签 : while
end while 标签
存储过程
存储过程 类似于一个函数 就是把一段sql 语句 封装成一个整体 当要使用的时候 可以调用这个存储过程来实现
在封装的语句体里面 可以用 if else case while 等控制结构
列也可以当成变量来看 所以 存储过程 可以当成一个程序来看 可以进行 sql编程
查看现有的存储过程
Show procedure status;
删除存储过程
Drop procedure 存储过程名称;
写一个存储过程
Create procedure p1()
Begin
Select * from g;
End$
调用存储过程
Call p1();
存储过程和函数的区别 一个名字不同 一个 没有return 其他都一样
sql编程 && 存储过程的更多相关文章
- PL/SQL编程—存储过程
SQL> create or replace procedure sp_pro3(name_in varchar2,id_in varchar2) is begin update mytest ...
- SQl编程存储过程
过程化存储 存储过程,一组为完成特定功能.经过编译后存储在数据库中的SQL语序集 灵活性:存储过程中可以进行流程控制和循环操作来完成复杂的判断和运算 一致性:通过存储过程可以使一些关联的操作一起发生, ...
- 基于oracle 的PL/SQL编程 - 存储过程
接上篇,游标使用的语句,相当于一段匿名的函数,窗口关闭了就不存在了.如果想要窗口关闭了,还能继续执行那段代码,就需要存储过程了: PLSQL是指一个个PLSQL的业务处理过程存储起来进行复用,这些被存 ...
- sqL编程篇(三) 游标与存储过程
sql编程2 游标与存储过程 sql编程中的游标的使用:提供的一种对查询的结果集进行逐行处理的一种方式不用游标的处理解决方式:逐行修改工资update salar set 工资=‘新工资’ where ...
- Oracle学习2 视图 索引 sql编程 游标 存储过程 存储函数 触发器
---视图 ---视图的概念:视图就是提供一个查询的窗口,来操作数据库中的数据,不存储数据,数据在表中. ---一个由查询语句定义的虚拟表. ---查询语句创建表 create table emp a ...
- SQL Server 存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
- [转]SQL Server 存储过程 一些常用用法(事物、异常捕捉、循环)
最新更新请访问: http://denghejun.github.io Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中 ...
- java 调用 sql server存储过程
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
- sql编程小结
对照mysql5.1手册,对这几天学的sql编程进行小结,主要涉及触发器.存储过程.权限管理.主从分离等,权当抛砖引玉,高手请略过. 一.触发器 通俗的说就是在指定的数据表增删改的前或后触发执行特定的 ...
随机推荐
- jrtplib的使用
JRTPLIB库的使用 文档: http://research.edm.uhasselt.be/jori/jrtplib/documentation/index.html 一些介绍: http://d ...
- 模板专业化和模板偏特样片(template specialization and partial template specialization)
测试环境: win7 64 g++ 4.8.1 /*************************************************************************** ...
- Java 实现迭代器(Iterator)模式
类图 /** * 自己定义集合接口, 相似java.util.Collection * 用于数据存储 * @author stone * */ public interface ICollection ...
- 让IE6支持position:fixed的方法,CSS expression与JavaScript eval讲解
做吸顶效果或是固定效果时,使用position:fixed无非是最方便的,可是万恶的IE6是没有fixed这个属性值的,而我们要使IE6能够像fixed一样固定在浏览器中的某个位置,使用onscrol ...
- JSON解析之Json-lib
1.Json-lib介绍 Json-lib是一个java类库,它用于把beans, maps, collections, java arrays and XML 传递给一个Json,或者返回来把Jso ...
- python进程池剖析(一)
python中两个常用来处理进程的模块分别是subprocess和multiprocessing,其中subprocess通常用于执行外部程序,比如一些第三方应用程序,而不是Python程序.如果需要 ...
- Oracle 11g+FluentNHibernate AutoMapping组合尝试
一次Oracle 11g+FluentNHibernate AutoMapping组合尝试 本文的上下文环境 操作系统:Win7 x64 Ultimate开发工具:Visual Studio 2013 ...
- Attribute Routing
Attribute Routing 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 题外话:由于这个技术点是新学的,并不属于原系列,但借助了原系列 ...
- OrchardNoCMS
基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)--BootStrap 按照几个月之前的计划,也应该写一个使用Bootstrap作为OrchardNoCMS的UI库.之前这 ...
- 旅游[SPFA或是最小生成树][简单算法的灵活题]
旅行 [问题描述] Z 小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z 小镇附近共有N 个景点(编号为1,2,3,…,N),这些景点被M 条道路连接着,所有道路都是双向的,两个景点之间 ...