数据库之SQL总结2 SQL编程、函数

概述

SQL 结构化查询语言,T-SQl 是SQL的增强版本,与多种ANSISQL标准兼容、

分类  基本类型:数据定义语言,数据操纵语言,数据控制语言。

常量与变量

Declare @name nvarchar(50)

Set @name='田泽凯'

Select @name

 运算符

%  取余 ,   &  位逻辑运算,    |  位逻辑运算,   ^ 位异或逻辑运算,

表达式

Declare @str nvarchar(50)

Select @str='姓名:'+姓名+'性别:' From 学生信息   where 学号='1613210102'

Select @str

 

注释

添加注释   俩横线  --     ;        /*   dfsdf sdf sfagasdg   */

Declare @name    --学生姓名

 

If…else  语句

If  波尔表达式

{SQL_statemeat|statement_block}                 --当为真时 执行

Else

{阿斯蒂芬斯蒂芬撒地方}                                   --为假时 执行

 

If…else 语句嵌套

Declare @num TNT

Select AVG(分数)

FROM 成绩信息

Where 课程编号='2' and 考试编号='0802',

If  @NUM>=60

Begin

       if @NUM<70

        print '成绩刚刚及格,还需要努力'

        else if @NUM<80

      print'成绩中等'

      else if @nuM<90

     print'成绩良好'

      else print'成绩优秀,希望把精要与大家分享分享!'

end

Else

Print'这个老师方法需要改进'

    -- 当成绩为89 时  输出  成绩良好

 

Case语句

Case   需要变量判断

WHEN 取值情况1    THEN 操作语句、

每一种情况都可以添加

ELSE 。。。

End

 

CASE 语句 示例

Select   员工姓名,所任职位,员工职称=

Case 所任职位

When '经理'  then '高级职称'

When '主管'  then '中级职称'

When '员工'  then '初级职称'

Else '其他职称'

End

From 员工信息

 

While语句    (控制循环)

Deckare @i  int,@num int

Set @i=1

SET @num =1

While @i<=10

Begin

      set   @num=@num *@i

      set   @ i=@i+1

end

Print @num               --输出的是10的阶乘

 

WAITFOR延迟语句

 WAUTFOR

{

DELAY time

|TIME time

}

 

 

GOTO 语句     (跳转语句)

 

 

TRY…CATCH错误处理语句

BEGIN TRY

DECLARE @num INT

SET @num=1/0

SELECT @num

END TRY

Begin catch

select error_LINE() as '错误行数',error_message( ) '错误消息'

End catch

 

数学函数

ABS  

返回数值表达式的绝对值

EXP  

返回指定表达式以e为底的指数

CEILING 

返回大于会等于数值表达式的最小整数

LN    

返回数值表达式的自然对数

SIGN

返回数值表达式的正号(+),负号(-) 或零

ROUND

返回舍入到指定长度或精度的数值表达式

SOUARE

返回数值表达式的平方

SQRT

返回数值表达式的平方根

 

字符串函数

ASCII

返回字符表达式中最左侧的字符的ASCII代码值

CHAR

ASCII代码转换函数,返回指定ASCII代码的字符

LEFT

左子串函数,返回字符串中从左边指定个数的字符

LEN

字符串函数,返回指定字符串表达式的字符数,不包含尾随空格

LOWER

小写字母字符串,将大写字符数据转换成小写字符,返回表达式

LTRIM

删除前导空格字符串,返回删除了前空格之后的字符表达式

REPLACE

替换函数,用第三个表达式替换第一次字符串表达式中出现的所有第二个指定字符串表达式的匹配项

REOLICATE

复制函数,已制定的次数重复字符表达式

UPPER

大写函数,返回小写字符数据转换为大写的字符表达式

CHARINDEX()

返回字符串中某个指定的子串出现的开始位置,可谓字符串也可为列名表达式。如果没有返现子串,则返回0值。

PATINEX()

返回字符串中某个指定的子串出现的开始位置,子串表达式前后必须有 %  ,否则返回值为0

 

字符串函数使用示例

 

 

 

聚合函数

AVG ;   COUNT  ;    MAX  ;     MIN  ;    SUM  .

 

日期和时间函数

 

DATEADD

返回给定日期加上一个时间间隔后的datetime值

DATEDIFF

返回两个指定日期的日期边界数和时间边界数

DATENAME

返回表示指定日期的指定日期部分的字符串

DATEPART

返回表示指定日期的指定日期部分的整数

day

返回一个整数,表示指定日期的天datepatr部分

GETDATE

以datetime值的SQL Server2008标准内部格式返回当前系统日期和时间

MONTH

返回表示指定日期的‘月’ 部分的整数

YEAR

返回指定日期的的年份的整数

 

 

标量值函数

CREATE FUNCTION   具体的名称

RETURNS   int类型,  或别的类型

 

表值函数

CREATE FUNCTION  function_name

REURNS TABLE

 

 

游标概述

           :是一个数据访问机制,允许用户访问单独的数据行,而不是对整个行集进行操作,

游标只要包括以下部分:

        (1)游标结果集   由定义游标的SELECT语句返回的行的集合。

        (2)游标位置      指向这个结果集中的某一行指针。

特点:

       游标返回一个完整的结果集,运行程序设计语言之调用集合中的一行。

       允许定位在结果记得特定行。

       从结果集的当前位置检索一行或多行。

       支持对结果集中的当前位置的行进行数据修改,

 

游标的声明

DECLARE 变量名    可选两个参数【INSENSITIVE】【SCROLL】

 

 

  

 操作游标

打开游标       OPEN

检索游标       FRTCH  。。。RELATIVE

关闭游标       CLOSE

释放游标       DEALLOCATE

 

判断游标提取状态

 

 取值: ·oFETCH语句成功。 -1FETCH语句失败或行不在结果集中。 -2提取的行不存在。

游标的应用示例

第一步骤   声明游标 ;创建临时表,

第二步骤   打开游标,声明变量,   while语句判断,  将查到数据 放入临时表中。

第三步骤   FETCH  获取下一个数据

第四步骤   关闭 ,释放游标,

 

事务

先创建一个事务,当 所有操作完成之后,再对事务进行处理。

 

:一个事务向系统提出请求,对被操作的数据加锁。其他事物必须等到此事务解锁之后才能访问该数据。

单位 :行、页、表、盘区和数据库。

类型:共享锁;独占锁;更新锁

 

系统与原数据函数

CONVERT()将一种数据类型转变为另一种数据类型

CURRENT USER 返回当前用户的名称。

ISDATE()判断他的输入是不是一个有效日期。

ISNULL()用一个指定替换值替换任何空值。

ISNUMRTIC()判断他的输入是不是一个数值。

 

事务模式

自动提交事务, 显示事务,隐式事务,批处理事务。

 

 XACT_ABORT选项

选项用于指定当SQL语句出现运行时错误时,SQl Server是否自动回滚到当前事务,

 

 死锁     两个以上进程执行过程中,争夺资源造成相互等待的现象

条件 互斥条件,请求与保持条件,不剥夺条件,循环等待条件

解除和预防: 按同一顺序访问对象,避免事务中的用户交互,保持事务简短并在一个批处理,使用度隔离级别,使用绑定连接。

 

嵌套事务

事务里面嵌套事务 和 if 嵌套类似。

 

 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tzk_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值