• 邵阳艺峰网络
  • 邵阳网络营销

您现在的位置: 主页 > 网站建设 >

SQL Server 查询数据 (Transact-SQL)

单表查询
SELECT [distinct] [TOP n] [*|字段名]
FROM 表名
WHERE 条件
ORDER BY 排序
GROUP BY 分组
HAVING 分组条件筛选
 
多表查询
1、普通多表查询
SELECT 表1.字段,1表1.字段2,表2.字段1,表2.字段2,……
FROM 表1,表2
WHERE 条件
ORDER BY 排序
 
2、内连接
形式1:
SELECT 表1.字段,1表1.字段2,表2.字段1,表2.字段2,……
FROM 表1 INNER JOIN 表2
ON 表1.关联字段=表2.关联字段
WHERE 条件
ORDER BY 排序
形式2:
SELECT 表1.字段,1表1.字段2,表2.字段1,表2.字段2,……
FROM 表1 INNER JOIN [表2 INNER JOIN [表3 INNER JOIN 表4 
     ON 表3.关联字段=表4.关联字段]
  ON 表2.关联字段=表3.关联字段]
ON 表1.关联字段=表2.关联字段
WHERE 条件
ORDER BY 排序
--查询两个表中满足条件的行
 
3、左外连接
SELECT 表1.字段,1表1.字段2,表2.字段1,表2.字段2,……
FROM 表1 LEFT OUT JOIN 表2
ON 表1.关联字段=表2.关联字段
WHERE 条件
ORDER BY 排序
--查询两个表中满足条件的行,同时也能查询到左表所有不匹配条件的行,这种情况适用于左表(表1)记录多于右表(表2)记录,表2没有的值会用null填充。
 
4、右外连接
SELECT 表1.字段,1表1.字段2,表2.字段1,表2.字段2,……
FROM 表1 RIGHT OUT JOIN 表2
ON 表1.关联字段=表2.关联字段
WHERE 条件
ORDER BY 排序
--查询两个表中满足条件的行,同时也能查询到右表所有不匹配条件的行,这种情况适用于右表(表2)记录多于左表(表1)记录,表1没有的值会用null填充。
 
5、完全连接
SELECT 表1.字段,1表1.字段2,表2.字段1,表2.字段2,……
FROM 表1 FULL OUT JOIN 表2
ON 表1.关联字段=表2.关联字段
WHERE 条件
ORDER BY 排序
--查询两个表中满足与不满足条件的行,这种情况适用于左右表记录不同步(左表与右表有相同的记录,各自也有不同的记录)左表有的右表没有的记录右表就用null凑成一行记录,右表有的而左表没有的记录左表就用null凑成一行记录。
 
6、联合查询
SELECT [distinct] [TOP n] [*|字段名]
FROM 表名
WHERE 条件
ORDER BY 排序
UNION
SELECT [distinct] [TOP n] [*|字段名]
FROM 表名
WHERE 条件
ORDER BY 排序
--注意在两表中要有相同数量的列,列名以上表为准则。
 
7、子查询
形式1:
SELECT [distinct] [TOP n] [*|字段名]
FROM 表1
WHERE 字段名 IN (SELECT 字段名 FROM 表2)
形式2:
SELECT [distinct] [TOP n] [*|字段名]
FROM 表1
WHERE EXISTS (SELECT 字段名 FROM 表2)
形式3:
SELECT [distinct] [TOP n] [*|字段名]
FROM 表1
WHERE 字段名>ANY (SELECT 字段名 FROM 表2)
点击次数:  更新时间:2013-07-14  来源:邵阳艺峰网络  【打印此页】  【关闭