设为首页 收藏本站
查看: 1968|回复: 0

[经验分享] SQL编程介绍

[复制链接]

尚未签到

发表于 2018-10-22 08:54:07 | 显示全部楼层 |阅读模式
  一:sql也是一门编程语言,可以用其编程
  二:基本常规的编程要素
  变量,运算符,表达式,流程控制,函数
  变量:
  典型的,字段名就是变量名,字段就是变量!
  特殊的变量,例如系统内置变量(character_set_xxx , autocommit)
  变量的典型操作:赋值,取得值!
  用户自定义变量:
  用户自定义变量需要使用 @ 作为变量名的前缀,用于区分是否是系统内置变量
  set 语句;可以完成对变量的设置
  set 变量名=变量值
DSC0000.jpg

  怎么取得?
  采用select语句即可!
DSC0001.jpg

  编程的实现:
  一共有三种编程方式:触发器,存储函数(自定义函数),存储过程
  函数:
  对于mysql来讲,有内置函数
DSC0002.jpg

  rand(),生成随机数的函数,得到0-1之间的随机数
  需要配合取整使用
  floor() ,向下取整
  substring(字符串,位置,长度) , 截取字符串函数
DSC0003.jpg

  注意:从1开始的下标,而且以字符数为单位:
DSC0004.jpg

  char_length() 字符数量
  length() 字节长度
DSC0005.jpg

  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 ;
DSC0006.jpg

  调用自定义函数:
  类似于系统函数即可!
DSC0007.jpg

  注意:函数是存储在某个数据库内的,因此与库是相关的
  自定义函数参数:
delimiter $$  
create function sayHello(name varchar(10)) returns varchar(20)
  
begin
  return concat('hello ',name);
  
end
  
$$
  
delimiter ;
DSC0008.jpg

  注意:参数也是需要有类型,而且不用使用 @ ,原因是函数内的变量不用区分!参数是一个局部变量!
  函数局部变量与函数外全局变量的作用域问题:
  作用域是重叠的!在函数内,可以访问到函数外所定义的全局变量!
DSC0009.jpg

DSC00010.jpg

  局部变量:
  此时在函数内,使用关键字 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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-624757-1-1.html 上篇帖子: 性能调优之SQL优化 下篇帖子: SQL分类及常用语句
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表