数据库declare 运算符和流程控制(if,while,break,continue)

use new

go

 

--定义变量,@开头

declare @hello  as varchar(20)

--赋值

set @hello ='销售部'

--可以将变量作为选择条件的参数值来用

--select *from bumen where name =@hello

--当放到select 和from 中间,作为赋值语句,select不执行查询功能

--select @hello=name from bumen  where code=1

print @hello –打印出‘销售部’

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

--全局变量,系统变量

--返回sqlserver 自上次启动以来的连接次数,包括成功和失败。

print @@connections

--返回执行上一个sql语句时的错误,返回0代表没错

-select from bumen (例)

print @@error

--返回系统当前使用的语言

 print  @@language

 --返回值表示列表中受上一条语句影响的行数

print @@rowcount

--返回安装的SQL的版本

print @@version

update bumen set phone ='22342432'

select '这一语句影响'+CAST (@@ROWCOUNT as varchar(20))+'行'

--转变数据类型为字符串型。

 

declare @text varchar(20)

set @text ='123''123'

print @text    --显示:123'123              --两个   ‘’  打印出一个!

 

---运算符:   +-*/%,  

 

declare @jia   int -–创建int型变量@jia

set @jia =1+1 -–赋值

set @jia=10%3

print @jia  --打印,输出!  --declare ,set ,print 都要执行,这是完整流程

 

---比较运算符  >,<,<=,>=,!=,!>,!<,<>(表示不等于)

select *from bumen where code <>3         --code 不是 3的

 

--逻辑运算符   and,or,all,any ,between ,in ,like ,not,some ,exists

--表示满足子查询所有列元素数据,配合比较运算符使用

select *from xuesheng where name = any (select name from xuesheng where code<=3)

--any  表示满足任意条件就可以,some 和any 一样!

select *from xuesheng where name > any (select name from xuesheng where code<=3)

--exists表示存在某个条件.

--下面语句表示:在分数表中有分数的人在学生表里的信息.not exists 就表示不存在的信息

insert  into xuesheng values (23,'sd','sd','e',2,3,2)

select *from xuesheng where not exists (select *from fenshu where xuesheng .code =fenshu .code )

--not 可以结合in ,like,exists 使用,

--查询二班数学分大于所有一班数学分的信息

 

select *from fenshu where shufen> all(

select shufen from fenshu where code in

(select code from xuesheng where banji='1班')

)    --第一种法

 

select *from fenshu where shufen >(

select MAX (shufen )from fenshu ,xuesheng

 where fenshu .code =xuesheng .code and banji='1班'

group by banji )    ----第二种法

 

 

select banji, MAX(shufen) from fenshu

join xuesheng on xuesheng.code=fenshu.code

group by banji   ---  --显示按照班级分组,每班的最高分

 

select xuesheng.code ,banji ,fenshu.shufen from xuesheng

join fenshu on xuesheng.code =fenshu.code

 order by banji --学生学号,班级,数学分数 按班级排序

 

 

 

 

 

 

 

------------一元运算符

正号+,负号-(负号使用,一般加括号)

--------优先级

  1.*%/

  2.正负号,加减号

  3.>,<,>=,<>,!=,!<,!>

  4.not

  5.and or between

  6.all any  some   in  like exists

  7. =

 

begin --开始(开始到结束是代表一个整体,方便(区分),就是大括号的概念)

select *from xuesheng

end --结束

 

declare @bianliang  int -- 定义一个int 型变量

set @bianliang =7    --赋值变量要用set

if @bianliang >5

  begin 

     print '你好'

     print '谢谢'

  end   --begin……end 好像是C#中,if后面的{}

else

     print '好你'

 

--数学最高分学生的信息

--第一

select *from xuesheng where code=(select top 1 code from fenshu order by shufen desc )

 

--第二,通过临时变量临时存储,正向思维解决问题

declare @math  decimal(18,2)

select @math =MAX(shufen )from fenshu

declare @sd  int

select @sd =code from fenshu where shufen =@math

select *from xuesheng where code=@sd --要进行下面的执行语句,要先注释这句

declare @sex varchar(20)

select @sex=sex from xuesheng where code=@sd 

if @sex ='男'

  print '帅哥'

else

  print '美女'

 

 

 

----while 循环

declare @math int

set @math=80

while @math <95

begin

 print '很优秀'  +cast(@math as varchar(10))  --把int型转化成字符串型

 set @math=@math+1

-- break  --while结束语句!

  if @math =93

  break

  if @math >=85 and @math <=90--if语句后面如果不是begin…end。默认执行一句!

  --  print '恭喜发财'

    begin

    print '福如东海长流水'

    continue--这时候continue 执行的作用是返回while 判断条件!

    --如果不注释‘恭喜发财’,begin……end中的continue是跳出if进行while循环,不进行继续打印‘hhh’

    end

  print 'hhh'

end   

 

转载于:https://www.cnblogs.com/huaze/p/4080246.html

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
程序员的必经之路! 【限时优惠】 现在下单,还享四重好礼: 1、教学课件免费下载 2、课程案例代码免费下载 3、专属VIP学员群免费答疑 4、下单还送800元编程大礼包 【超实用课程内容】  根据《2019-2020年中国开发者调查报告》显示,超83%的开发者都在使用MySQL数据库。使用量大同时,掌握MySQL早已是运维、DBA的必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入的了解和掌握。 学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺的技能!   套餐中一共包含2门MySQL数据库必学的核心课程(共98课时)   课程1:《MySQL数据库从入门到实战应用》   课程2:《高性能MySQL实战课》   【哪些人适合学习这门课程?】  1)平时只接触了语言基础,并未学习任何数据库知识的人;  2)对MySQL掌握程度薄弱的人,课程可以让你更好发挥MySQL最佳性能; 3)想修炼更好的MySQL内功,工作中遇到高并发场景可以游刃有余; 4)被面试官打破沙锅问到底的问题问到怀疑人生的应聘者。 【课程主要讲哪些内容?】 课程一:《MySQL数据库从入门到实战应用》 主要从基础篇,SQL语言篇、MySQL进阶篇三个角度展开讲解,帮助大家更加高效的管理MySQL数据库。 课程二:《高性能MySQL实战课》主要从高可用篇、MySQL8.0新特性篇,性能优化篇,面试篇四个角度展开讲解,帮助大家发挥MySQL的最佳性能的优化方法,掌握如何处理海量业务数据和高并发请求 【你能收获到什么?】  1.基础再提高,针对MySQL核心知识点学透,用对; 2.能力再提高,日常工作中的代码换新貌,不怕问题; 3.面试再加分,巴不得面试官打破沙锅问到底,竞争力MAX。 【课程如何观看?】  1、登录CSDN学院 APP 在我的课程中进行学习; 2、移动端:CSDN 学院APP(注意不是CSDN APP哦)  本课程为录播课,课程永久有效观看时长 【资料开放】 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化。  下载方式:电脑登录课程观看页面,点击右侧课件,可进行课程资料的打包下载。
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页