SQL Sever 数据库视频 (四)

内连接:

      是将两个表中符合条件的共同的行相连接起来;消除与另外一个表的任何不匹配的行,而外连接会返回FROM自居中提到的至少一个表或视图的所行。

SELECT select list       (查找目标列)

FROM table1 INNER JOIN  table2 [ON join_conditions]          (ON后跟连接条件)

[WHERE search_conditions]

[ORDER BY ORDER_expression]

 

左外连接:

      外连接参与连接的表中有主从之分,以主表的每行数据去匹配从表中的数据化,如果符合连接条件,则直接返回到查询结果中去;  加入主表的的行在从表中没有找到所匹配的行,主表的行依然保留,并返回到查询结果中,相应的从表的行中被天上空值后也返回到查询结果中去。

LEFT OUTER join          (关键语句)

 

右外连接:

RIGHT OUTER join     (关键语句)

 

全连接:

FULL OUTER jion   (关键语句)

 

交叉连接:

SELESCT  select_list

FROM table1 CROSS JOIN table2             -- CROSS JION  关键字

[WHERE search_conditions]

[OPDER BY order_expression]

 

自连接:

在同一个表上进行多表连接

 

联合查询:

就是将多个查询结果合并到一个结果集中。

  语法格式:

SELECT selece_list 

FROM table_source

[WHERE search_conditions]

{UNION [ALL]                           -- 关键字两查询并和到一起    如果使用ALL就会把重复的部分给保存

SELECT select_source

[WHERE search_conditions]}
[ORDER BY order_expression]

使用UNION查询时,连接的两个结果集必须在目标列表中有相同数目的表达式,且数据内容尽量保持一致。

 

Transact - SQL 概述

  是SQL 的语言增强版本,与许多ANSISLQ标准兼容,而且在标准基础上还进行了许多扩展。 Transact - SQL 代码已成为SQL Server的核心。 Transact - SQL 在关系数据库关系系统中是i先数据的检索,操纵和添加功能。

  可以用来创建,维护,保护数据库对象,并且可以操作对象的数据,所以Transact - SQL语言是一种完整的语言。

    分类:  (1) 数据定义语言

                 (2) 数据操纵语言

                 (3) 数据控制语言

    其他:  (1)事务管理语言

                 (2) 流程控制语言

                 (3) 附加的语言元素

 

运算符:

 

字符串函数:

声明变量:

declare @str narchar(50)

set @str = 'hello word !'

print ascii (str)            (来获取第一个母:h)

 

declare @str narchar(50)

set @str = 'hello word !'

print left (@str,5)             -- 使用left函数返回结果就是 “hello”

 

declare @str narchar(50)

set @str = 'hello word !'

print substring (@str,7,11)           -- substring  -- 截取中间值 需要三个参数1.变量 2.起始位置 3.结束位置 

 

字符串函数使用示例:

1.CHARINDEX ()              -- 返回字符串中某个指定的字符串出现的开始位置。

     CHARINDEX (<'substring_expression'>, <expression>)

 其中'substring_expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现字符串,则返回O值。

2. PATINDEX ()       -- 返回字符串中某个指定的字符串出现的开始位置。

PATINDEX (<'%osubstring_expression%>,   <column_name>) 其中字符串表达式前后必须有 % 否则返回值为0.

 

标量值函数:

CREATE FUNCTION function_name           -- 创建用户自定义函数

([{@parameter_name scalar_parameter_data_type [ = default ]}[,...n]])                        -- 参数列表

RETURNS scalar_reture_data_type         -- 具体返回值的类型

[WITH ENCRYPTION]             -- 是否要采取加密的形式

[AS]

BEGIN                具体函数体:

function body

RETURN scalar_expression

END

 

表值函数

CREATE FUNCTION function_name           -- 创建用户自定义函数

([{@parameter_name scalar_parameter_data_type [ = default ]}[,...n]])                        -- 参数列表

RETURNS TABLE         -- 具体返回值的类型

[WITH ENCRYPTION]             -- 是否要采取加密的形式

[AS]

                           具体函数体:

RETURN (select_statement)

 

游标:

      概述:是一种数据访问机制,允许用户访问单独的数据行,而不是对整个行级进行操作。用户可以通过单独处理每一行逐条收集信息并对数据逐行进行操作,这样可以降低系统开销和潜在的阻隔情况。

主要有两部分  (1) 游标结果集,定义游标SELECT语句返回的行集合

                        (2) 有表位置 只想这个结果集中的某一行的指针

      特点:* 允许返回一个完整的结果集,但允许程序设计语言只调用集合中的一行。

                 * 允许定位在结果集的特定行

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

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

                 * 提供脚本,存储过程和触发器中使用的访问结果集中数据的 T - SQL 语句

 

游标声明:

* DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSOR

* FOR select_statement

* [FOR{REAN ONLY | UPDATE [OF column_name [,...n]]}]   -- 语句设置游标的属性 UP...是可修改的游标,后边跟列名可以修改

      

操作游标:

打开:

OPEN{{[GLOBAL] CURSOR_name} | curcor_variable_name}

关闭:CLOSE { { [GLOBAL] corsor_name} | cursor_variable_name}

释放:DEALLOCATE { { [ GLOBAL] cursor_name} | @cursor_variable_name

 

系统与元数据函数:

(1) CONVERT()      将一个数据类型的数据转变为另一种数据类型的数据。

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

(3) INSATE()      判断它的输入是不是一个有效日期。

(4) INULL()      用一个指定替换任何控制

(5) ISNUMERIC () 判断它是不是一个空值

展开阅读全文

没有更多推荐了,返回首页