数据库系列之T-SQL(基础)

变量

1 变量分类

全局变量、局部变量。

2 局部变量

DECLARE  @变量名称  变量类型 [,@变量名称 变量类型 ...]

declare @Name varchar(50)
declare @upoint int,@birthday datetime

注意:在局部变量没有被赋值之前,它的值是NULL。 
2.1 局部变量赋值

SET  @局部变量 = 变量值

SELECT  @局部变量 = 变量值

SET仅支持对一个变量赋值

SELECT支持同时给多个变量赋值,并且经常在Select查询语句中使用。

2.2 变量赋值示例

--声明一个变量
declare @Name varchar(50)
--同时声明两个变量
declare @upoint int, @birthday datetime
/*可以这样赋值*/
set @Name = ‘小新‘
set @upoint = 200
select @birthday = ‘1990-5-8‘
/*也可以这样赋值*/
set @Name = ‘小新‘
select @upoint = 200,@birthday = ‘1990-5-8‘ from customers

2.3 实例

思路分析

首先得到喜来乐的积分,存放到变量@upoint中;

使用Select语句查询upoint>@upoint的记录。

/*第一步:得到喜来乐的积分*/
declare @upoint int
select @upoint = upoint from customers
where customername=‘喜来乐‘
/*第二步:执行带有条件的查询语句*/
select * from customers where upoint > @ upoint

注意:SELECT赋值语句不能和SELECT语句同时使用

3 全局变量

全局变量不需要用户声明,是服务器级定义的,作用范围是任何程序。

全局变量以@@开头,局部变量名称不能和全局变量相同。

3.1 常用的全局变量

变量    含义

@@ERROR    最后一个T-SQL错误的错误号

@@IDENTITY    最后一次插入的标识值

@@ROWCOUNT        受上一个SQL语句影响的行数

@@SERVERNAME    本地服务器的名称

3.2 输出语句有两种

SELECT查询语句

PRINT语句

PRINT 表达式

PRINT一般用于观察T-SQL程序运行时的中间结果。

3.3 示例

declare @name varchar(50)
declare @upoint int
use booksmanager
select @name=customername,@upoint =upoint
from customers
where customerid=‘10008‘
print  ‘姓名:‘[email protected]
print  ‘积分:‘+str(@upoint,5)

控制语句

T-SQL中的控制语句和其他编程语言类似,主要有:顺序、条件、循环

顺序语句

BEGIN

        <命令行或程序块>

END

--示例
if @myavg >70
   begin
     print ‘c#编程成绩优秀,前三名考试信息是:‘
     select top 3 * from score
     where courseno=@courseid
     order by score desc
   end
else
  begin
     print ‘c#编程成绩较差,后三名考试信息是:‘
     select top 3 * from score
     where courseno=@courseid
     order by score
 end

条件语句

if 语句

IF  <条件表达式>

        <命令行或程序块>

[ELSE [条件表达式]

        <命令行或程序块>]

use master
if exists (select * from sysdatabases where name=‘booksmanager‘)
   drop database booksmanager

分支语句

CASE <运算式>

    WHEN  <运算式>  THEN  <运算式>

    ……

   WHEN  <运算式>  THEN  <运算式>

   [ELSE  <运算式>]

END

………

select stuno,成绩=
case
    when score<60 then ‘E‘
    when score between 60 and 69 then ‘D‘
    when score between 70 and 79 then ‘C‘
    when score between 80 and 89 then ‘B‘
    else ‘A‘
end
from Score
where courseno=@courseid

循环语句

WHILE <条件表达式>

BEGIN

    <命令行或程序块>

    [BREAK]

    [CONTINUE]

    [命令行或程序块]

END

while @pass/@total <0.8
begin
     update Score set score = score+2 where courseno=@courseid
     select @pass = count(*) from Score where courseno=@courseid and score>=60
end

批处理

在SQL Sever中,可以一次执行多个T-SQL语句,这些多个T-SQL语句称为批处理语句。

“GO”就是批处理的标志。

use myschool
go --批处理标志
select * from course1  --并不存在course1
select * from student
go --批处理标志

注释

在T-SQL语言中可使用两种注释符:行注释和块注释。

注释不参与代码执行。

--行注释用于描述性文字较少的场合

/**
  块注释用于描述性文字较多的场合
  ........
  ........
**/
时间: 2024-10-14 06:29:50

数据库系列之T-SQL(基础)的相关文章

[SQL] SQL 基础知识梳理(一)- 数据库与 SQL

SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 序 目录 What's 数据库 数据库结构 SQL 概要 创建表 删除和更新表 1-1 What's 数据库 1.数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.如:大型-银行存储的信息,小型-电话簿. 2.数据库管理系统(Batabase Management Syste

SQL Server 2008空间数据应用系列一:空间信息基础

转自:http://www.cnblogs.com/beniao/archive/2011/01/18/1933412.html Microsoft SQL Server 2008 提供了全面性的空间支持,可让组织通过具空间功能的应用程序来无缝地取用.使用及扩展以位置为基础的数据,最后可协助用户做出更好的决策.空间分析是一项非常复杂的工作,包含一系列学术内容:地理.数学.天文.图形等.虽然在使用SQL Server 2008的空间特性中不必要深入研究关于地理.数学.天文以及图形等学科,但如果你想

数据库复习2——SQL基础

数据库复习 CH4 SQL SQL(Structured Query Language,结构化查询语言)是通用的关系数据库系统操作语言,下面从几个方面来复习SQL基础 4.1 DDL SQL语句可根据其操作性质分成三类: DDL(Data Definition Language) DCL(Data Constraint Language) DML(Data Manipulation Language) DCL完成完整性和安全性的约束,也可以看作从属于DDL,下面介绍DCL除外的DDL部分SQL语

[Oracle系列整理04] oracle pl/sql 基础

PL/SQL块中只能直接嵌入SELECT,DML(INSERT,UPDATE,DELETE)以及事务控制语句 (COMMIT,ROLLBACK,SAVEPOINT),而不能直接嵌入DDL语句(CREATE,ALTER,DROP)和DCL语句 (GRANT,REVOKE) 1.检索单行数据    1.1使用标量变量接受数据  v_ename emp.ename%type;  v_sal   emp.sal%type;  select ename,sal into v_ename,v_sal fro

Oracle数据库之SQL基础和分支循环

一.SQL基础语言 DECLARE --声明 a varchar2(10); --变量或对象 BEGIN a:='小明';-- := 表示给一个变量赋值 dbms_output.put_line(a); --输出用 dbms_output.put_line() END; 二.分支 DECLARE --声明 A NUMBER(10); B NUMBER(10); BEGIN A := 2; B := 3; IF A < B THEN DBMS_OUTPUT.PUT_LINE('a小于b'); EL

SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型

原文:SQL Server 2008空间数据应用系列三:SQL Server 2008空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. 2.具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验. 3.熟悉或了解Microsoft SQL Server 2008中的空间数据类型. 4.具备相应的GIS专业理论知识. 5.其他相关知识. SQL Serve

[SQL] SQL 基础知识梳理(七)- 集合运算

SQL 基础知识梳理(七)- 集合运算 目录 表的加减法 联结(以列为单位) 一.表的加减法 1.集合:记录的集合(表.视图和查询的执行结果). 2.UNION(并集):表的加法 -- DDL:创建表 CREATE TABLE Shohin2 (shohin_id CHAR(4) NOT NULL, shohin_mei VARCHAR(100) NOT NULL, shohin_bunrui VARCHAR(32) NOT NULL, hanbai_tanka INTEGER , shiire

[SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2.函数的种类: (1)算术函数 - 数值计算 (2)字符串函数 - 字符串操作 (3)日期函数 - 日期操作 (4)转换函数 - 转换数据类型 (5)聚合函数 - 数据聚合 3.算术函数(加.减.乘.除):+.-.*./ [备注]数据类型 NUMBERIC(全体位数,小数位数)可以指定数值的大小. C

新兵训练营系列课程——海量数据存储基础

新兵训练营系列课程--海量数据存储基础 2015年8月12日 09:24   阅读 16831 微博平台研发作为微博的底层数据及业务支撑部门,已经经历了5年的发展历程.伴随着从数据及业务暴发式增长,我们在海量数据存储方面遭遇了诸多挑战,与此同时也伴随着丰富经验的积累. 本次新兵训练营,受众在于应届毕业生,目的在于让新同学系统化并且有针对性的了解平台的核心技术及核心业务,以使新同学在新兵训练营结束后,能够对平台的底层架构与业务有一定的了解. 本文主要面向新同学介绍平台的核心技术之一--海量数据存储