SQL编程篇 (二) 定义与流程控制
分类:
sql编程:标准的sql 编程 * 纯sql
在标准的编程中又分为 sqlserver-->T-sql oracle-->pl-sql(扩展)
变量:
在使用变量之前先定义 声明变量
sql 格式: declare 变量名 数据类型
变量的分类:
局部变量 全部变量
局部变量:由程序员定义在一个程序内部使用的
所有的局部变量名都必须以@符最为前缀
//例子
declare @num nvarchar(5)
一个 declare 可以定义多个变量 用,隔开
2.为变量赋值=变量值
a.set 变量名
这次赋值的方式一次只能给一个值赋值
+:如果运算的对象都是文本进行连接运算 如果有任何一
个为数值默认进行相加运算
例:
print '姓名'+@name
类型转换:
convert(目标类型,转换的数据)
例:
print '年龄'+convert(nvarchar,@age)
case(转换的数据 as 目标类型)
例:
print '年龄'+cast(@age as varchar)
//注意:print 只能一项项的输出 而select能输出多个值
注意//可以用中间值替换法来解决替换问题
例子:
declare @a int, @b int,@c int
set @a=4
set @b=3
set @c=6
select @a,@b,@c
set @a=@c
set @b=@a
select @a,@b
//可以将所有的set 替换成select 输出的结果依旧是和set一样
select赋的值经常来源于一个操作
必须保证查询的结果是单个值
例:
declare @sex varchar(2),@name varchar(3)
select @sex=sex,@name=name from students
where id=13
print '客户性别'+@sex
print '客户名称'+@name
嵌套子查询:
例:查出某个成绩的平均分
1.首先窗机一 avg 个as 平均成绩表
2.再查询分数 就首先要筛选出id出来 在信息的表的总表中查出id
3.找出id之前通过名字找到id 并且查出考试日期
4.查询最后一次的考试日子 查出他的最大值就是他最近的日期
5.并且查出id并且得到最近的日期
三:
if else 语句 条件可以加()也可以不加
sql中的代码语句块:
begin:
...
...
end 相当于c#{}
没有switch语句
case
when 条件一 then 结果一 //表达式 并非语句 表示:值
when 条件二 then 结果二
3、循环体 条件
begin
循环体
end
按照条件的依次顺序依次匹配,从多个值中选择一个值作为整个表达式的结果
//一般是和游标结合在一起使用
全局变量:能访问它的值但是不能修改 所有程序公用的变量
常用的全局变量:
所有的变量名都是以@@ 作为前缀
1.@@ERROR:存储最近一次T-SQL语句执行后的错误号
我们可以通过@@error 中的值判断刚刚执行的T-SQL 是否执行成功
如果执行成功呢则改变量的值是0 否则>0
2.@@IDENTITY:存储的最近一次insert语句执行的后产生的标识值
3.@@ROWCOUNT:存储最近一次T-sql执行后影响的行数
4.@@servername:获取数据库服务器名称
5.@@version:获取当前数据库的版本号
例:1
declare @name int
set @name=12
case
when @name>10 then ''
when @name>23 then
end
例:2
declare @id int
select @id=id from students where name='yuyu'
if(@id=10)
print '查询成功'
else
print '查询失败'
例: 1-100之和
declare @i int
declare @b int
set @b=1
set @i=0
while @i<=100
begin
set @b=@b+@i
set @i=@i+1
end
print @b
SQL编程篇 (二) 定义与流程控制的更多相关文章
- iOS开发Swift篇—(六)流程控制
iOS开发Swift篇—(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...
- 《高性能javascript》 领悟随笔之-------DOM编程篇(二)
<高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...
- Dream------scala--函数定义、流程控制、异常处理
Dream------scala--函数定义.流程控制.异常处理 一.函数的定义 1.新建工程
- Scala深入浅出实战经典-----002Scala函数定义、流程控制、异常处理入门实战
002-Scala函数定义.流程控制.异常处理入门实战 Scala函数定义 语句结束无分号 定义无参函数 def 函数名称(参数名称:参数类型)[:Unit=]{ 函数体 } 老师的代码 我的实际代码 ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- Java学习之旅基础知识篇:数据类型及流程控制
经过开篇对Java运行机制及相关环境搭建,本篇主要讨论Java程序开发的基础知识点,我简单的梳理一下.在讲解数据类型之前,我顺便提及一下Java注释:单行注释.多行注释以及文档注释,这里重点强调文档注 ...
- python入门篇之介绍和流程控制(一)
Python入门 一.第一句python代码 很多语言的第一句python代码都是以“你好,世界”开始的,那么我们的python也是如此. 在 /home/dev/ 目录下创建 hello.py 文件 ...
- 第10章 Shell编程(4)_流程控制
5. 流程控制 5.1 if语句 (1)格式: 格式1 格式2 多分支if if [ 条件判断式 ];then #程序 else #程序 fi if [ 条件判断式 ] then #程序 else # ...
- sqL编程篇(三) 游标与存储过程
sql编程2 游标与存储过程 sql编程中的游标的使用:提供的一种对查询的结果集进行逐行处理的一种方式不用游标的处理解决方式:逐行修改工资update salar set 工资=‘新工资’ where ...
随机推荐
- 数据结构之栈-JavaScript实现栈的功能
记录自己的学习 栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它 ...
- UML大战需求分析——阅读笔记05
最近看过几个程序员大学后一起创业,与大公司抢项目并成功逆袭的视频,感触颇深:第一.技术是关键:第二.有一群可靠并且技术超群的队友,在关键时刻不会掉链子:第三.善于部署谨慎周密的计划:第四.一流的口才+ ...
- 第六课 touch事件
1.移动端页面在PC上浏览时,限制宽度的方法: 2.移动端页面切换设备时自动刷新页面的方法: 3.touch事件 touchstart:当手指触摸屏幕时触发.通过addEventListener添加移 ...
- PHP开发笔记:二维数组根据某一项来进行排序
比如说我们现在有一个二维数组: $arr = array( ‘d' => array(‘id' => 5, ‘name' => 1, ‘age' => 7), ‘b' => ...
- ListView 的优化
listView 的宽高设为固定, 或match_parent,这样在加载布局是, 几面装下几个item 就首先加载几个 减少对象的创建 //减少对象的创建 if (convertView == nu ...
- z-stack协议uart分析(DMA)
1.从ZMain里面的main函数开始分析 2.进入int main( void ); HalDriverInit(); //硬件相关初始化,有DMA初始化和UART初始化 3.进入HalDriv ...
- 提高ASP.net性能的十种方法
提高ASP.net性能的十种方法 2014-10-24 空城66 摘自 博客园 阅 67 转 1 转藏到我的图书馆 微信分享: 今天无意中看了一篇关于提高ASP.NET性能的文章,个人 ...
- filefiter
1.写一个类继承与FileFilter package com.dream.musicplayer; import <a href="http://lib.csdn.net/base/ ...
- iOS APP可执行文件的组成
iOS APP编译后,除了一些资源文件,剩下的就是一个可执行文件,有时候项目大了,引入的库多了,可执行文件很大,想知道这个可执行文件的构成是怎样,里面的内容都是些什么,哪些库占用空间较高,可以用以下方 ...
- mybatis配置文件的bug
看看图片里的配置有什么问题么? url=jdbc--我擦,我怎么这么不小心,换来一整天的不得安宁,上网各种搜bug,把mysql驱动配置到classpath中,jar包放进jdkjre里面还是不行妈的 ...