SQL编程介绍
一:sql也是一门编程语言,可以用其编程二:基本常规的编程要素
变量,运算符,表达式,流程控制,函数
变量:
典型的,字段名就是变量名,字段就是变量!
特殊的变量,例如系统内置变量(character_set_xxx , autocommit)
变量的典型操作:赋值,取得值!
用户自定义变量:
用户自定义变量需要使用 @ 作为变量名的前缀,用于区分是否是系统内置变量
set 语句;可以完成对变量的设置
set 变量名=变量值
怎么取得?
采用select语句即可!
编程的实现:
一共有三种编程方式:触发器,存储函数(自定义函数),存储过程
函数:
对于mysql来讲,有内置函数
rand(),生成随机数的函数,得到0-1之间的随机数
需要配合取整使用
floor() ,向下取整
substring(字符串,位置,长度) , 截取字符串函数
注意:从1开始的下标,而且以字符数为单位:
char_length() 字符数量
length() 字节长度
convert(字符串 using 字符集) 字符转换到相应的目标字符集上
select id,convert(stu_name using gbk),height,money into outfile 'e:/VIP/student.csv'
fields terminated by ','
lines terminated by '\r\n'
from select_student;
自定义函数:
函数的要素:函数名,函数体(返回值),函数参数
函数的基本使用:声明,调用
声明:
create function functoin_name () returns int
begin
函数体
end
创建自定义函数:
delimiter $$
create function hello_world() returns varchar(20)
begin
return 'hello world';
end
$$
delimiter ;
调用自定义函数:
类似于系统函数即可!
注意:函数是存储在某个数据库内的,因此与库是相关的
自定义函数参数:
delimiter $$
create function sayHello(name varchar(10)) returns varchar(20)
begin
return concat('hello ',name);
end
$$
delimiter ;
注意:参数也是需要有类型,而且不用使用 @ ,原因是函数内的变量不用区分!参数是一个局部变量!
函数局部变量与函数外全局变量的作用域问题:
作用域是重叠的!在函数内,可以访问到函数外所定义的全局变量!
局部变量:
此时在函数内,使用关键字 declare 来声明局部变量 (相当于JS中声明变量时用的var)!
delimiter $$
create function f2() returns varchar(20)
begin
declare v1 char(3) default 'php';
return v1;
end
$$
delimiter ;
流程控制:
分支:
if 条件 then 语句
else if 条件 then 语句
else 语句
end if;
循环:
while 条件 do
循环体
end while;
示例1:求1-N之和
delimiter $$
create function sumN(n int) returns int
begin
declare i int default 1;
declare sum int default 0;
while i
页:
[1]