首页 > 代码库 > 今天学习啦所谓的高级语言啦

今天学习啦所谓的高级语言啦

                 今天又回到啦SQL Servel语言的学习啦,嘿嘿,感觉这些都是我迫不及待要学习的啦,在这学习的每一天感觉好多的知识都是我乐意去学习的啦,我来到这里就是因为知道自己有太多不会的东西啦,所以每当接受新的知识时间感觉自己可以很轻松的学习啦,不是逼迫的自己的感觉真好啦,我在我们上完课后练习啦一遍,然后感觉对着电脑时间太长啦,于是就出去飘啦一圈休息一下下啦。学习固然重要,但是疲劳的感觉好难受啦,我们还是要学会调节下自己的状态啦,当然,以后工作啦也会是这样的吧,当有项目工作啦,我们就忘记啦休息吧,或许那时间正在焦虑的思考怎么结局问题忘记啦休息,嘿嘿,一定要记得给自己片刻停留的气息,让自己心晴气爽啦。好啦,下面总结下我今天学习的数据库系统操作的高级语言啦。

           一.局部变量与全局变量的定义

           我们之前已经学习了C#的基础,那么在Sql中局部变量的定义和C#中是一样的啦,只是定义的格式区别很大啦,下面就写下Sql中局部变量的定义啦

--局部变量declare @str char(20)       --定义参数select @str =hello word   --用select给参数赋值set @str =hell            --或者用set给参数赋值print @str                  --输出@str的值--全局变量print @@version             --全局变量一般我们使用系统里面给我们写好的

                  

                    二.流程控制语句的使用

              1.条件判断语句(if...else...)

--条件判断语句(if...else...)--某地到青岛的邮政里程为1043,通过邮政局向青岛城区交 "特征专递"邮件, 24小时之内达到。计费每克0.12元--但超过100克,超过数量每克0.05元,算出邮费 declare @a real, @b int set @a=120  if @a <100 begin                   --begin end 相当于C#中的花括号的使用方法    set @b=@a*0.12 end else begin    set @b=0.12*100+(@a-100)*0.05 end print距离是++cast(@a as varchar(50)) print 邮费是+cast(@b as varchar(50))--定义一个用户名和密码,判断是否正确declare @user varchar(20),@pwd varchar(20)select @user =admin,@pwd =adminif @user=zhangsanbegin       if @pwd=123      print 用户名或者密码不正确,请重新输入      else      print 密码错误endelse if @user=lisibegin      if @pwd=123      print 用户名或者密码不正确,请重新输入      else      print 密码错误endelse if @user=adminbegin      if @pwd=admin      print 输入正确      else      print 密码错误endelsebegin       set @pwd=密码不正确 endprint @pwd 

                 

                      2.while表达式

--while 条件表达式  --begin  --命令行或程序  --end    --求1-100的和   declare @x int,@sum int   select @x=1,@sum=0   while @x>0 and @x<=100   begin       set @sum=@sum+@x       set @x=@x+1   end   print 1-100的和:+cast(@sum as varchar(20))

                  

                      3.关键字break的使用

 --break的用法   declare @i int,@sum0 int   select @i=1,@sum0=0   while @i>0 and @i<=100   begin       set @sum0=@sum0+@i       set @i=@i+1       if @i>50          --当i>50时间跳出当前循环       break   end   print 1-50的和:+cast(@sum0 as varchar(20))

                 

                      4.关键字continue的使用方法

 --continue的用法   declare @num int,@sum1 int   select @num=1,@sum1=0   while @num>0 and @num<=100   begin        set @num =@num+1        if @num%2=1         continue        else        set @sum1=@sum1+@num   end   print 1-100间的偶数的和:+cast(@sum1 as varchar(20))

           

                     5.case语句的使用

--case语句 --case [表达式] --   when  条件表达式1 then  结果1 --   when  条件表达式2  then  结果2 --  ........ --  else --    结果表达式n --  end  --输入学生的成绩 1-100之间,否则就会提示"您输入的成绩不对,成绩应该在0-100之间"--成绩        评语--90-100     优秀--80-90      优良--70-80      中等--60-70      及格--60分一下    不及格declare @score float,@str varchar(50)select @score=53,@str=case     when @score>100 or @score<0 then您输入的成绩格式不对    when @score>=60 and @score<70 then 及格    when @score>=70 and @score<80 then 中等    when @score>=80 and @score<90 then 优良    when @score>=90 and @score<100 then 优秀    else    不及格endprint 评语是:+@str--查询不同仓库的平均工资select *,不同仓库的平均工资=case     when 仓库号=wh1 then(select AVG(工资) from 职工 where 仓库号=wh1)   --在then后面是查询出平均工资     when 仓库号=wh2 then(select AVG(工资) from 职工 where 仓库号=wh2) --即在通过仓库号查询各个仓库号的平均工资     when 仓库号=wh3 then(select AVG(工资) from 职工 where 仓库号=wh3)     when 仓库号=wh4 then(select AVG(工资) from 职工 where 仓库号=wh4) endfrom 职工

 

                   三.视图的创建删除以及修改

create view v1asselect 仓库号,城市,面积 from 仓库create view v2asselect 姓名,工资 from 职工 where 工资>1800create view v3asselect 仓库.仓库号,仓库.城市,仓库.面积,仓库.创建时间,职工.姓名,职工.性别,职工.工资 from 仓库,职工 where 仓库.仓库号=职工.仓库号alter view v2                    --修改视图asselect 仓库.仓库号,城市,面积 from 仓库drop view v3   --删除视图  update test set 面积=面积+88 where 仓库号=wh1   --修改视图delete test where 仓库号=wh1   

 

                     四.存储过程的操作

--存贮过程--create procedure name  --创建存储过程--@parms....--as--begin --end---execute name 参数1  参数2   --执行存储过程--1.create procedure proc_sqlasbegindeclare @i intset @i=0;while(@i<10)    begin    print char(ascii(a)+@i)+的ascii码+cast(ascii(a)+@i as varchar(50))    set @i=@i+1    end endexcute proc_sql--2.--无参数的存贮过程执行create procedure proc2asbegin  select * from 职工 where 工资>2000 endexecute proc2--有参数的存贮过程--3.求三个数中的最大值create procedure proc4@x1 int,@x2 int,@x3 intasbegindeclare @max intif @x1>@x2    set @max=@x1else    set @max=@x2if  @x3>@max    set @max=@x3 print 3个数字中的最大值是+cast(@max as varchar(50))end execute proc4 15,18,39--3.create procedure sq7@mingz int,@maxgz intasselect * from 职工 where 工资 between @mingz and  @maxgzexecute sq7 1500,20004.create procedure  sq8@cangkuhao varchar(50),@maxgz int output,@avggz real outputasbeginselect * from 职工 where 仓库号=@cangkuhaoselect @maxgz=MAX(工资)from 职工 where 仓库号=@cangkuhaoselect @avggz=AVG(工资) from 职工 where 仓库号=@cangkuhaoenddeclare @x1 int,@x2 realexecute sq8 wh2,@x1 output,@x2 outputselect @x1 as wh2职工最大工资,@x2 as wh2职工平均工资execute sp_rename sq7,rocky    --重命名

 

                      五.触发器

--触发器是一种特殊的存贮过程,他就相当于c#中的事件触发器主要是通过事件触发而被执行的--create trigger 触发器名称 on 表 for insert[update,delete] as-- begin--程序块--endcreate trigger rockyR on 仓库 for update   --创建asbegin   insert into 仓库(仓库号,城市,面积,创建时间) values(wh01,郑州,1800,2014-12-12),(wh02,北京,1700,2014-12-13),(wh03,上海,1600,2014-12-15)endupdate 仓库 set 面积=面积-10 where 仓库号=wh2     --修改create trigger rk on 仓库 for insert,update,delete   asbegin   execute xp_sendmail 123456@qq.comend--alter trigger rockyR on 表名 for insert[update,delete]   --修改触发器drop trigger rk   --删除触发器

 

                     六.索引的操作

                     在sql中,讲SQL语句组成一个事务,其目的是保证这一组sql语句能够得到可靠地执行,如果系统中出现了错误阻碍sql的执行,并且只要其中任何一条语句出现错误,事务中所有的sql语句都不会被执行,即要么全部sql执行,要么全不执行,即创建索引的格式如下:

create unique index unique_index on 仓库(仓库号)

 

                      好啦今天就总结到这里啦,嘿嘿,今天的比较多吧,但是还是要好好练习的啦,嘿嘿。

今天学习啦所谓的高级语言啦