zoukankan      html  css  js  c++  java
  • 第四章 T-SQL编程

    1、前言
    -》此T-SQL编程是基于sql server开发环境
    -》关键字:T-SQL编程;游标;视图和索引

    2、T-SQL编程基础
    -》标识符:常规标识符必须以汉字、字母、下划线_、@ 或 #开头,不能使用SqlServer关键字
    -》变量
    ·声明格式:declare @变量名 数据类型
    注:声明局部变量后,该变量被初始化为NULL
    例:declare @CurrentDateTime char(30)
    ·设置(set语句)格式: set|select @变量名 = 值
    注:赋予的值必须与声明的值相符
    例:select @CurrentDateTime = Getdate()
    ·输出格式:print|select @变量名
    ·全局变量: @@ 变量名
    注:系统提供且预先声明
    例: @@version ——数据库版本
    @@identify ——进行插入后调用,返回最近的标识符
    @@servername ——服务器名称
    @@erro ——返回上一个执行T-SQL的错误号
    @@rowcount ——返回上一执行语句的影响行数

    3、运算符
    -》算术运算符:+、-、*、/、%
    -》赋值运算符:=
    -》位运算符:
    ·按位与(&):均为1取1,否则取0;
    ·按位或(|):一个为1取1,否则取0;
    ·按位异或(^):不同取1,否则取0.
    -》比较运算符:用于判断,其结果位逻辑值:ture、false及unknown
    等于(=),大于(>),小于(<)
    不等于(<>或!=),不小于(!<),不大于(!>)
    大于等于(>=),小于等于(<=)
    -》逻辑运算符:all、and或&&、any或some、between、exists、in、like、not或!、or或||
    -》字符串连接运算符:@ 变量名 =' ' + ' ' + ··· + ' '
    -》一元运算符
    -》运算符的优先级

    4、流程控制语句
    -》begin···end语句:将多个语句组合成一个语句块,并将它们视为一个单元处理,相当于(···)
    ·格式:begin
    语句1
    ···
    end
    -》if···else语句:
    ·格式:if 条件表达式
    语句1
    else
    语句2
    -》case语句
    ·格式一:case 输入表达式
    when 表达式1 then 结果表达式 /*如果 输入表达式=表达式1 为ture,则 结果表达式 有效*/
    ···
    [else 表达式]
    end
    ·格式二:case
    when 布尔表达式 then 表达式
    ···
    [else 表达式]
    end

    -》while语句
    ·格式:while 条件表达式
    begin
    语句1 [break] /*跳出循环*/
    [语句2] [continue] /*跳过continue之后的语句*/
    [语句3]
    end
    -》goto语句:
    ·格式:标签名:
    语句1
    ···
    if 条件表达式
    goto 标签名
    -》异常处理语句
    ·格式:begin try
    ···
    end try
    begin catch
    ···
    end catch

    5、函数
    -》系统内置函数
    ·数学函数
    floor(数) 求小于实数的整数
    round(数,0) 四舍五入
    power(x,y) 求x的y次方
    ·日期时间函数
    getdate() 返回系统当前的日期和时间
    day(date_expression) 返回日期表达式中的日
    month(date_expression) 返回日期表达式中的月
    year(date_expression) 返回日期表达式中的年
    ·聚合函数
    在数据库查询章节
    ·字符串函数
    ascII(char_expression) 返回表达式中最左边一个字符的ascII码值
    char(integer_expression) 返回ascII码值对应的字符
    lower(char_expression) 大写转为小写字符 upper(char_expression) 小写转为大写
    -》用户自定义函数
    ·标量函数:返回一个确定类型的标量值
    --格式:create function 函数名(形参) /* 函数名及形参定义部分,形参格式: @变量名 数据类型 */
    returns 数据类型 /*返回参数的类型*/
    [as] begin
    函数体
    return 值
    end
    ·内嵌值表函数:返回值为表的形式
    --格式:create function 函数名(形参)
    returns table
    [as] return select语句
    ·多语句表值函数:可以看成上面两个函数的结合
    --格式:create function 函数名(形参) returns @返回变量名 table
    [as] begin
    函数体
    return
    end

    6、游标
    -》概念
    ·从包括多条数据记录的结果集中每次提取一条记录的机制
    ·对查询语句返回的结果集中每一行进行操作,而不是对整个结果集。
    -》三种类型:T-SQL游标、API游标、客户游标
    -》声明游标
    ·SQL-92语法格式:
    DECLARE 游标名 [ INSENSITIVE ] [ SCROLL ] CURSOR
    FOR sql-statement
    [for {read only | update [of 列名[,···n]]}]
    ·参数说明:insensitive表明游标定义所选取的记录存放在临时表中
    scroll 表明所有的读取操作(next | prior | first | last | absolute )都可用,不必关闭游再重开游标
    read only 表明不允许数据被更新
    ·例: Declare MyCursor Cursor
    FOR Select * FROM tbMyData
    -》打开游标
    ·语法格式: open [global] 游标名 /*global定义游标为全局游标*/
    ·例:open MyCursor
    go
    -》读取游标
    ·语法格式: fetch [next | prior | first | last | absolute{n | @nvar} | relative{n | @var}]
    from 游标名
    ·参数说明:next:返回结果集中当前行的下一行,并增加当前行数为返回行行数;
    ·例:fetch next from MyCursor
    -》关闭游标
    ·语法格式: open [global] 游标名
    go
    ·参数说明:
    ·例:close MyCursor
    go
    -》释放游标:游标不再需要时
    ·语法格式: deallocate [global] 游标名
    go
    ·参数说明:
    ·例:deallocate MyCursor
    go

    7、视图(也称虚拟表)
    -》创建视图
    ·语法格式:create view 视图名 [列名(,···n)]
    with 视图属性
    as sql语句块
    go
    -》修改视图
    ·语法格式:alter view 视图名 [列名(,···n)]
    with 视图属性
    as sql语句块
    go
    -》使用视图:
    ·查询:
    例: select * from 视图名
    ·修改:
    例: insert into 视图名 values('0110301','张三','男',20)
    -》删除视图: drop view 视图名

    8、索引
    -》目的:提高系统性能,加快数据的查询速度和减少系统的响应时间
    -》索引类型
    ·聚集索引:对表和视图进行物理排序(表和视图至多1个索引)
    ·非聚集索引:目录纯粹是目录,正文纯粹是正文的排序
    -》创建索引
    ·语法格式: create [unique][clustered | nonclustered] index 索引名
    on 表名或视图名 (列名[asc | desc][,···n])
    -》间接创建索引:创建表时,定义主键约束和唯一性约束
    -》创建索引视图
    ·例:创建一个“女学生”视图,并为该视图按“学号”升序创建一个具有唯一性的聚集索引
    --创建视图: use 教学库
    go
    create view 女学生
    with schemabinding
    as
    select 学号,姓名,性别,专业 from dbo.学生表
    where 性别='女'
    --创建索引:
    create unique clustered index 女生索引 on 女学生(学号)
    -》查看索引信息:
    exec sp_helpindex 表名
    或 exec sp_help 表名
    -》删除索引:
    drop index 表名.索引名

    不知跬步,无以至千里;不积小流,无以成江海。菜鸟的梦想是雄鹰。
  • 相关阅读:
    error: device not found
    xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Deve
    联想X系列服务器
    华为服务器
    linux db2升级
    aix6.1升级openssh&&openssl
    upgrading mysql: error: 1102: Incorrect database name
    linux7配置yum网络源
    How to install fixpack on DB2
    mysql 表空间管理
  • 原文地址:https://www.cnblogs.com/ysq2018China/p/9147714.html
Copyright © 2011-2022 走看看