SQL数据库之二
l INNER JOIN
内连接是最常见的一种连接,它页被称为普通连接,而E.FCodd最早称之为自然连接。
下面是ANSI SQL-92标准
select * from t_institution i
inner join t_teller t
on i.inst_no = t.inst_no //说两个表之间的关系用ON
where i.inst_no = "5801"
其中inner可以省略。等价于早期的连接语法
select * from t_institution i, t_teller t
where i.inst_no = t.inst_no
and i.inst_no = "5801"
SELECT *
from 明日工资表 AS a INNER JOIN 部门表 AS b
ON a.部门名称=b.部门名称
WHERE 工资月份='3'
l LEFT OUTER JOIN---1
select * from t_institution i //表在from中的定义别名不需要AS
left outer join t_teller t
on i.inst_no = t.inst_no
其中outer可以省略。
SELECT a.部门编号,a.部门名称,a.负责人,
b.人员编号,b.人员姓名,b.部门名称,
b.学历,b.技术职称
from 明日部门表 a LEFT OUTER JOIN 明日人员表 b
ON a.部门名称=b.部门名称
l LEFT OUTER JOIN---2
USE pubs //定义要使用的数据库
SELECT a.au_fname, a.au_lname, p.pub_name
from authors a LEFT OUTER JOIN publishers p
ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
l RIGHT OUTER JOIN
select * from t_institution i
right outer join t_teller t
on i.inst_no = t.inst_no
SELECT *
from 部门表 a RIGHT OUTER JOIN 明日工资表 b
ON a.部门名称=b.部门名称
WHERE b.工资月份='10'
l FULL OUTER
全外连接返回参与连接的两个数据集合中的全部数据,无论它们是否具有与之相匹配的行。在功能上,它等价于对这两个数据集
相关文档:
方法一、尽量使用复杂的SQL来代替简单的一堆 SQL.
同样的事务,一个复杂的SQL完成的效率高于一堆简单SQL完成的效率。有多个查询时,要善于使用JOIN。
oRs=oConn.Execute("SELECT * from Books")
while not oRs.Eof
strSQL = "SELECT * from Authors WHERE AuthorID="&oRs("AuthorID") oRs2=oConn.Execute(strSQ ......
低效: (索引失效)
SELECT … from DEPARTMENT WHERE DEPT_CODE IS NOT NULL;
高效: (索引有效)
SELECT … from DEPARTMENT WHERE DEPT_CODE >=0;
(27)总是使用索引的第一个列:
如果索引是建立在多 ......
在T-SQL中监视进程
DBA更愿意使用T-SQL的原因是可以比“活动监视器”更加灵活地获得信息。
1. sp_who和sp_who2
存储过程sp_who也返回当前连接数据库实例,与“活动监视器”非常类似。然而,用户可能发现自己更愿意使用未公开说明的sp_who2存储过程,因为它提供 ......
做开发过程中,经常会用到将Excel中数据导出到SQL Server中的情况,你可以利用SQL SERVER 中自带的导入数据的方式,但这种方式,有时会发现数据导入后,可能为空,可能开头少个零,此种情况多出现于数值型的列,今天在CSDN上闲逛,偶尔发现了一个帖子,介绍的以下这种方法,本人恰七因最近公司准备上市,审计局在做审计,技 ......