T-SQL程序设计基础篇

来源:互联网 发布:c语言指针编程题 编辑:程序博客网 时间:2024/05/01 16:30

 

    T-SQL包括SQL Server数据类型、语言元素(批处理、注释、变量、函数、运算符、T-SQL控制流程)和游标,下面分说。

    1.数据类型

    分为系统和自定义两种数据类型,系统数据类型是Server支持内置的数据类型,有25种。而自定义的数据类型,是基于系统数据类型上建立的。

删除自定义数据类型:sp_droptype

    2.变量→全局变量、局部变量

    变量是一种语言不可缺少的组成部分。

    全局变量

    全局变量是SQL Server系统内部使用的变量,其作用范围并不局限于某一程序,而是任何程序均可随时调用全局变量通常存储一些SQL Server的配置设定值和效能统计数据。用户可在程序中用全局变量来测试系统的设定值或Transact-SQL命令执行后的状态值。

    注意:全局变量不是由用户的程序定义的,它们是在服务器级定应义的。只能使用预先说明及定义的变局变量。引用全局变量时,必须以“@@”开头。局部变量的名称不能与全局变量的名称相同、否则会在应用中出错。

    局部变量

    局部变量是用户可自定义的变量,它的作用范围仅在程序内部。在程序中通常用来储存从表中查询到的数据,或当作程序执行过程中暂存变量使用。局部变量必须以“@”开头,而且必须先用DECLARE命令说明后才可使用。其说明形式如下:

DECLARE @变量名 变量类型 [@变量名 变量类型…]

在Transact-SQL中不能像在一般的程序语言中一样使用“变量=变量值”来给变量赋值。必须使用SELECT或SET命令来设定变量的值,其语法如下:

    SELECT@局部变量=变量值

    SET @局部变量=变量值

    例1:声明一个长度为10 个字符的变量“id”并赋值

    declare@id char(10)

    select@id=‘10010001’

    3.批处理

    包含一条或多条T-SQL语句的语句组,并一次性的执行。如果中间出错,则无法执行。使用时以GO为一个阶段

    例子:

     use pubs

     Go

     Select * from 员工数据表

     Go

     Create view pm_view as

     Select * from 员工数据库

     Where 所属部门=‘项目部’

     Go

     Select * from pm_view

     Go

   4.注释

   SQL Server中两种注释:单行注释“--”,可换行注释“/*    */”。

     例子:

     --九期所有同学

     /*九期所有

     同学*/

    5.运算符

     一些符号,加在各种语句、表达式中

    6.函数

    支持一些特殊的运算以支持SQL Server的标准命令,分为三种函数:行集函数、聚合函数、标量函数

 

行集函数

T-SQL语句中当做表引用

聚合函数

用于对一组值执行计算

返回一个值

标量函数

对一个或多个参数值处理

 

    此外用户还可以自定义函数(标量型函数、内嵌表值函数、多语句表值型函数)。可以用T-SQL语句创建函数也可以用企业管理器创建函数。

    7.流程控制语句

    在SQL Server2000 中主要是来控制SQL语句、语句块、或者存储过程的执行流程。

Begin..end   、if…else、if….exists、while、case、return、waitfor、goto、print

    8.游标(声明、打开、读取游标数据、修删游标数据、释放游标数据)

    指定检索数据位置并有修改表的能力(一般我们都是通过游标对数据库数据进行操作,而不是直接进入数据库修改数据)

    声明游标:DECLARE 游标名称 cursor

    打开游标:open 游标名称

    读取游标:fetch 游标名称

    修删游标数据:

         Update table_name

         Delete table_name

例子:

首先声明游标

Declare authors_curscroll cursor

For

Select * from authors.for update of

Au_lname,au_fname

更新authors表中的au_name 和 au_lname列

Update authors

Set au_lname=‘china’,au_fname=‘asia’

Where current of authors_cur

删除authors表中的一行数据

Delete from authors

Where current of authors_cur

 

游标用完之后,我们需要关闭游标来释放修改过的数据(close、deallocate)

值得提醒的是如果使用close关系游标,下次还能使用open重新打开此游标,如果deallocate释放的游标,则删除了此游标,如果还想使用,得重新声明。

 

 

原创粉丝点击