ddddddf 发表于 2018-10-22 08:54:07

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]
查看完整版本: SQL编程介绍