易截截图软件、单文件、免安装、纯绿色、仅160KB

sql 表连接

TA:
1,WANG
2,ZHANG
4,LI
TB:
1,100
2,200
3,400
1.left join 左连接--以左表为基准,右表中没值的,在结果集中以null值代替。(select * from TA left join TB where TA.ID=TB.ID)
   1,WANG,100
   2,ZHANG,200
   4,NULL
2.right join 右连接--以右表为基准,左表中没值的,在结果集中以null值代替。(select * from TA right join TB where TA=TB)
   1,WANG,100
   2,ZHANG,200
   3,NULL,400
3.inner join 内连接--查询左右表中都有键值内容做为结果集。 (select * from TA inner join TB where TA=TB)
   1,WANG,100
   2,ZHANG,200
  备注: 内连接简写:select * from TA,TB WHERE TA.ID=TB.ID
【笛卡尔积】:
使用交叉联接
没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。下面是在sqlserver查询分析器中测试的结果:
select * from TA cross join TB 
--下面的是另一种写法
select * from TA ,TB 
   1,WANG,100
   2,ZHANG,100
   4,NULL,100
   1,WANG,200
   2,ZHANG,200
   4,NULL,200
   1,WANG,400
   2,ZHANG,400
   4,NULL,400
即:以左边的表为准,前边一张表的记录分别与后一张表的每条记录结合。
如果将两张表反过来写select * from TB , TA 或者select * from TB cross join  TA
   1,100,WANG
   2,200,WANG
   3,400,WANG
   1,100,ZHANG
   2,200,ZHANG
   3,400,ZHANG
   1,100,LI
   2,200,LI
   3,400,LI
笛卡尔积的结果可能会产生重复记录。
TA:
    1,WANG
    2,ZHANG
    3,NULL
   
 TB:
     1,100
     2,200
     3,NULL
     4,NULL
TA*TB
SELECT * from TA,TB B(或SELECT * from TA CROSS JOIN TB)
1,WANG,100
2,ZHANG,100
3,NULL,100
1,WANG,200
2,ZHANG,200
3,NULL,200
1,WANG,


相关文档:

Sql Sever 2005 视图的操作

很多人特别喜欢用视图,但有的人从来不用视图.这都是两种不良的习惯.     要明确视图可以完成的工作以及使用场合.
     1.阻止选择保密列
     2.降低用户读取数据库内数据的复杂性  
     3.在数据库中添加索引以加速 ......

sql 语句总结

mysql :  将一个表的数据插入到newT 中
(newT 表须存在,且结构与select 语句对应的结构同  ,最好不用* 而是具体字段)    
       insert into newT select * from t1 where ...
也可以create table newT select f1,f2 from t1; (select into 的替代方法,my ......

[SQL] patindex 详解

PATINDEX
返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
语法
PATINDEX ( '%pattern%' , e­xpression )
参数
pattern
一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数 ......

SQL中CONVERT转化函数的用法

摘自:http://www.cnblogs.com/dicky/archive/2007/01/12/618453.html
格式:
CONVERT(data_type,expression[,style])
说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.
例子:
SELECT CONVERT(varchar(30),getdate(),101) now
结果为 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号