复习加初涉存储过程

复习:
一、数学函数
1.、abs()
        abs()函数返回一个数的绝对值。如:abs(-3);
2、 max()
         max(x, y) 返回参数中数值最大的值。
        如果仅有一个参数且为数组,max() 返回该数组中最大的值。如果第一个参数是整数、字符串或浮点数,则至少需要两个参数而 max() 会返回这些值中最大的一个。可以比较无限多个值。
        PHP 会将非数值的字符串当成 0,但如果这个正是最大的数值则仍然会返回一个字符串。如果多个参数都求值为 0 且是最大值,max() 会返回其中数值的 0,如果参数中没有数值的 0,则返回按字母表顺序最大的字符串。
3、 min()
       min(x, y) 返回参数中数值最小的。
        如果仅有一个参数且为数组,min() 返回该数组中最小的值。如果第一个参数是整数、字符串或浮点数,则至少需要两个参数而 min() 会返回这些值中最小的一个。可以比较无限多个值。
        PHP 会将非数值的 string 当成 0,但如果这个正是最小的数值则仍然会返回一个字符串。如果多个参数都求值为 0 且是最小值,min() 会返回按字母表顺序最小的字符串,如果其中没有字符串的话,则返回数值的 0。
4、round -- 对浮点数进行四舍五入


二、聚合函数
count() 所有记录数
count(*)所有非null记录数
avg()   某一列平均值
min() 某一列最小值
max() 某一列最大值
sum() 某一列总和


三、字符串函数
字符串参数都可以替换成字段名
AscII():返回char类型数据中第一个对应的整型;
Char():输入0-255之间的整数,返回char类型;
Left(字符,长度):可以对字段内容进行截取
Right(字符,长度)
Trim
Ltrim
Rtrim
Rpad(’别填充对象’,最终的长度,填充内容):
Lpad :截取、填充
Replace(“被作用的对象”,被替换的内容,替换后的内容);
Concat:连接字符串,逗号作为分隔符
Substring(“被作用的对象”,开始截取位置,截取的长度);
       开始截取的位置从1开始,>=1
       ……………………是负数,表示从后向前截取
Strcmp(字符1,字符2);按照字节比较
       相等  0,大于 1,小于 -1


四、日期和时间函数
Now();
Curtime()
Curdate()
Year()     year(now()-出生日期)
练习:其他函数


五、加密函数


六、控制流函数
Ifnull()
Nullif()
If()


七、格式化函数
Format:针对浮点
Date_format:日期格式化
Time_format:时间格式化
注:字符和时间日期需要单引号


八、类型转换
Cast(要转换的对象  as  类型);


九、系统信息函数


十、语言结构
DDL:create  alter  drop
DML:insert  delete  update  select(查询语言)
DCL:grant revoke等


十一、常量
   ‘a’  12  3.14
   变量:保存运行过程中的临时结果
1)用户变量(和会话---连接服务器到退出服务器的一段时间)
@变量名
   一定要初始化
   Set @a=2;
   Select @a;
Select 返回结果分几类:表,列,行,值(标量)


2)系统变量
  @@VERSION
  Select






新知识:
1、存储过程:在mysql中定义一段程序放在数据库中,这样的程序为存储过程,存储过程是数据库对象之一。
2、存储过程实质:存储过程实质上就是一段代码,可以由声明式的sql语句和过程式sql语句组成,还可以由程序触发器或者另一个存储过程来调用它从而激活它,实现代码中的sql语句。
3、要求:
Proc表
具有Create routine(例程)的权限
返回标量值
隐含调用use 库名,删除数据库,存储过程也被删除
4、语法格式
Create  procdure  存储过程名(参数)
特征描述
SQL语句体


注意:
begin。。。end相当于{}的作用
如果SQL语句体只有一句可以省略begin。。end
名称不区分大小写,尽量避免与内建函数同名,假如同名则在名称和()之间加空格;
名称长度限制64字符;
()可以为空,不能省略
通常select不会出现在存储过程体内
大部分的DDL、DML都是合法语句




非法语句:
Create procedure  db.p()  drop  database  db;
含有use  库名等


1)调用存储过程
Call  存储过程名(…);


2)带有描述信息的存储过程


Create  procedure  p3()
Language sql ----声明用什么语言来实现存储过程
              目前只支持sql语句,将来可能会使用php
              来代替sql
Not  deterministic---返回的结果不确定
Sql  security  definer----创建者
Comment  ‘ a  procedure’---给存储过程加注释
Select  *  。。。------SQL 语句体;


3)当语句体内容两条以上,结束符号
Sql;


Create procedure p4()
Begin
   Select * from tb1;--会给出错误提示,直接结束存储过程的声明
   Select * from tb2;
End;


Delemiter---声明结束符
Delemiter //
Select * from tb1//




参数 :  [in|out|inout]  参变量  数据类型


Declare  :声明存储过程的局部变量
   1)第一种方法:分两步实现 
 Declare  变量名  数据类型;声明
    定义的变量不进行初始化,默认为null,该值进行的所有操作
       结果都为空;
    Set   变量=值 (也可以是表达式); 赋值


  2)第二种方法:
    也可用同一条语句完成变量的声明和初始化

    Declare  变量名  数据类型   default  值;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值