zoukankan      html  css  js  c++  java
  • 简单的TSQL基础编程格式,存储过程,视图

    这里简单整理一下数据库简单的编程,变量定义,赋值,分支语句和循环(这里以Sqlserver),以及存储过程格式

    首先是变量定义,赋值,分支语句

    --======TSQL数据库基础编程,定义变量,赋值,分支语句============
    
    declare @a int;-----定义一个int类型变量,declare关键词,变量前要用@符号
    declare @b int;
    
    select @a=5;--------给变量赋值,此处用的select赋值
    set @b=2;-----------也可用set赋值
    
    if @a>@b------------if语句条件判断
    begin---------------begin开始和end结束,里面写执行的程序,可以理解为代码编程中的花括号{}
    select '@a大于@b';---此处select也有将结果打印出来的用法,将显示在下方结果列表
    end
    else
    select '@a小于@b';

    打印方式有两种,select是映射在结果集里面,还有个print是映射在消息框里面,如print 'hello word'

    根据以上程序执行打印结果为:@a大于@b

    然后是循环:

    --======TSQL数据库基础编程,循环============
    
    declare @sa int;----定义几个初始变量
    
    select @sa=1;-------给变量赋值
    while @sa<=10-------while循环及循环条件
    begin
    select @sa;---------每次进循环打印显示,根据下面赋值,每次显示不同结果
    select @sa=@sa+1;---每次进循环给变量重新赋值
    end

    打印结果为:

    存储过程:相当于函数(关键词:create proc--创建,as--写函数体,exec调用存储过程)

    四要素:输入,输出,函数名,函数体

    创建:

    create proc 存储过程名

    参数 @a int,

    @b int

    as

    函数体

    return 值

    调用:

    exec 存储过程名

    在有返回值的情况下

    首先定义变量:(根据返回值类型,定义相对类型的变量,这里以int类型举例)

    declare @aaa int;

    exec @aaa=存储过程名

    --创建存储过程
    create proc selectAll
    @a int,
    @b int
    as
    return @a+@b;
    
    --调用存储过程
    declare @sum int;
    exec @sum=selectAll 10,5;
    select @sum;

    结果:

    如果想查询多个表的数据,可以直接在存储过程编写,直接调用编写好的存储过程,减少程序中多次手写sql语句

    --创建存储过程
    create proc selectAll
    as
    select * from User_List
    select * from Student
    --调用存储过程
    exec selectAll

    显示结果:

    视图:

    视图其实就是一个虚拟的表格,一般我们在工作中,会遇到多个表格复杂关联查询,

    既给每次操作增加重复工作量,又给团队开发带来不统一性,可能团队中多人需要进行这

    几个表的操作,在安排工作需求时还需要告诉他们需要哪些表的数据,如果可以直接将这几个

    表关联查询保存,供大家统一调用,就会减少很多不便,视图的作用就出现了,视图就是将几个

    需要关联的表关联查询后的虚拟表格,建好视图,就可以直接查询这个视图,得到相应的数据展示,

    视图只能查询,不能进行其他操作。

    视图的创建很简单,只需写好视图创建语句,并将需要查询的SQL语句执行在创建程序里,就可以成为视图

    关键字:view

    如下有两张表:Student,Class(关联字段code=cod)

    select * from Student
    select * from class

    我们可以将这两张表关联查询并创建视图(此处取部分字段):

    create view StudentInformation
    as
    select t.code,t.name,t1.classtype,t.chengji,t.birth from Student t join class t1 on t.code=t1.cod 

    然后直接查询这个视图,就能得到想要的关联效果:

    select * from StudentInformation

  • 相关阅读:
    SQL游标操作每隔5分钟时间段数据统计信息
    win64位操作系统下安装pl/sql developer 并登录连接到oracle12c
    分科目统计每科前三名的学生
    merge源表数据移植到目标表新表数据中
    sqlserver表分区
    用SqlBulkCopy批量插入数据到SqlServer数据库表中
    SQL server插入数据后,如何获取自增长字段的值?
    Java创建线程的三种方式
    Java用户线程和守护线程
    Java虚拟机详解
  • 原文地址:https://www.cnblogs.com/zyg316/p/9098173.html
Copyright © 2011-2022 走看看