现在的位置: 首页 > 综合 > 正文

SQL基础

2013年07月08日 ⁄ 综合 ⁄ 共 3386字 ⁄ 字号 评论关闭
 

SQL基础
一、SQL语言特点
1功能的一体化
2 两种使用方式,统一的语法结构
 
即联机交互使用方式、嵌入到某种高级程序设语言中(宿主语言)。
3 高度非过程化
 SQL
是一种描述性的语言(即结构化查询语言)。
4 基于集合的操作方式
5 语言简洁易学
 
二、SQL语言中的动词
SQL语言按功能分类
主要动词
数据库定义语言DDL
create drop alter
数据库查询语言QL
select
数据库操纵语言DML
insert update delete
数据库控制语言DCL
grant revoke
 
三、SQL Servler集合函数
Sum()
 
Min()
 
Max()
 
Avg()
 
Count()
返回非空表达式的个数
Count(*)
返回找到的行数
Distinct count()
不重复的输入值的数目
 
四、SQL Servler通配符
1 %:包含0个或更多个字符的任意字符串
%ab%:表示所有包含两个ab相连的任何字符串,如aabb,babb等。

2  _(下划线):任何单个字符。以_开头的任何字符串。
   _ean
:匹配以_ean结尾的所有4个字母的字符串,如dean,sean等。
3  [ ]:指定范围[a-f]或集合[abcdef]中的任何单个字符。
4  [^]:不属于指定范围[a-f]或集合[abcdef]中的任何单个字符。
   de[^1]%
:将匹配以de开头且其后的字母不为1的所有字符串。
 
 
五、使用变量
T-SQL中的变量分为局部变量和全局变量。全局变量由系统定义和维护,我们直接使用即可,一般不自定义全局变量。
1 局部变量:它的名称必须以标记@作为前缘。
  声明语法: declear @变量名称数据类型

 
如:
     declare @name varchar(8)
     declare @seat int
 赋值语法:
 set @变量名=
 select @
变量名=
如:
/**查找张三的信息**/
declear 
@name varchar(8)
set @name="张三"
select * from stuInfo where=@name

/**查找张三的左右同桌**/
declare @seat int;
select @seat=stuSeat form stuInfo where stuName=@name
select * from stuInfo where (stuSeat=@seat+1or (stuSeat=@seat-1)
go

  

从上可以可出,局部变量可用于在上下语句中传递数据。
   set
赋值语句一般用于赋给变量指定的数据常量。
   select
赋值语句一般用于从表中查询数据,然后再赋给变量。
 
     2 全局变量
 SQL Servler中的所有全局变量都使用2@标志合作为前缀。常用的全局变量。
 
 
@@ERROR
最后个T-SQL错误的错误号(整型值)
@@IDENTITY
最后一次插入的标识值
@@LANGUAGE
当前使用的语言的名称
@@MAX_CONNECTIONS
可以创建的同时连接的最大数目
@@ROWCOUNT
受上一个语句影响的行数
@@SERVERNAME
本地服务器的名称
@@SERVICENAME
该计算机上SQL服务的名称
@@TIMETICKS
当前计算机上每刻度的微秒数
@@TRANSCOUNT
当前连接打开的事务数
@@VERSION
SQL Server的版本信息
@@PROCID
当前存储过程的标识值
@@CURSOR_ROWS
返回游标打开后,游标中的行数。
@@CONNECTIONS
返回SQL Servler启动后,所接受的连接或试图连接的次数
 
六、输出语句
常用的输出语句有两种:
1 print局部变量或字符串
2 select局部变量as自定义列名(查询语句的特殊应用)
 
print '服务器名称'+@@SERVICENAME –-以文本方式显示-
select @@SERVERNAME as '服务器名称' –以网格方式显示--
七、批处理语句
        批处理语句go:它是一条名多条SQL语句的集合。SQL Servet 将批处理语句编译成一个可执行单元,此单元称为执行计划。批处理的主要好外是简化数据库管理。
 
八、SQL中的流程控制语句
1 if..else..
if (条件)
    语句或语句块
else
    语句或语句块
 
2 begin..end..:标志SQL代码块的开始和结束.类似于C中的{}.
if (条件)
    begin
       语句
       语句
    end
else
...
 
3 return:无条件从当前过程退出.
 
4 case..when..else..end:类似于C中的多分支语句.
case
    when 条件then结果
    when 条件then结果
    [else 其他结果]
end
采用美国的ABCDE五级打分制来显示成绩

select * from stuInfo --原始成绩
print 'ABCDE五级显示成绩如下:'
select stuNo,成绩=case
                        
when scoure<60 then 'E'
                        
when scoure between 60 and 69 then 'D'
                        
when scoure between 70 and 79 then 'C'
                        
when scoure between 80 and 89 then 'C'
                        
else 'A'
                    
end
                
from stuInfo

 

5 goto:用于立即跳转到T-SQL代码中的某个特定位置(即标号).

declare @i int
set @i=0
while(@i<10)
    
begin
        
set @i=@i+1
        
if(@i=4)
            
set @i=@i+95
            
goto mark
            mark:
            
print 'i=5时的值是: '+cast(@i as varchar(8))            
    
end

 

 
6 while:
while (条件)
    语句或语句块
    [break | continue]
 
7 break:退出while循环
 
8 continue:用于在特定的情况下重新开始while循环.
 
9 waitfor:
:00执行存储过程usp_proc
waitfor time '23:00'
    begin
       execute usp_proc
    end
 
从现在开始分种内一直执行存储过程usp_proc
waitfor delay '000:05:00'/*::*/
    begin
       execute usp_proc
    end
 
九、其它T-SQL编程语句
1 注释语句
    /*这是注释*/--这是注释
 
2 execute:执行SQL系统存储过程或自定义存储过程.
 
3 raiserror:允许客户端程序处理错误(异常),并让SQL通知出现了错误.
语法:
raiserror({msg_id | msg_str},severity,state
           [,argument[,...n]])
           [with [log | nowait | seterror]]
其中:
1 msg_id:是存留在sysmessages系统表中中的消息数量.小于等于的地方保留给SQL,用户定义的消息编号大于.
2 msg_str:用户定义的特定信息,最到个字符.
3 severity:与特定信息相关联,表示用户定义的严重性级别.
用户可使用的级别是-18.
sysadmin角色成员的级别是-25,且要指定with log选项
致命错误级别-25
4 state:错误的状态.1-127之间的值.
5 with:3个参数:
log: 在错误和应用程序日志中记录错误
nowait: 立即向客户程序报告错误
seterror:无条件的将错误报告给
如下示例:
当用户调用存储过程时.传入的及格线不在-100之间时,将弹出错误警告.

抱歉!评论已关闭.