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
全外连接返回参与连接的两个数据集合中的全部数据,无论它们是否具有与之相匹配的行。在功能上,它等价于对这两个数据集
相关文档:
http://www.umgr.com/blog/PostView.aspx?bpId=36294
1. 执行sql语句
int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callbacksql 语法
, void *, char **errmsg );
这就是执行一条 sql 语句的函数。
第1个参数不再说了,是前面open函数得到的指针。说了是关键数据结构。
第2个参数const char ......
1、文件和文件组的含义与关系
每个数据库有一个主数据文件.和若干个从文件。文件是数据库的物理体现。 文件组可以包括分布在多个逻辑分区的文件,实现负载平衡。文件组允许对文件进行分组,以便于管理和数据的分配/放置。例如,可以分别在三个硬盘驱动器上创建三个文件(Data1.ndf、Data2.ndf&nb ......
在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等。我们通常的做法是:select count(*) as c from tableA 。然而对于记录数巨大的表,上述做法将会非常耗时。在DELL 4400 服务器上做试验,MS Sqlserver 2000 数据库对于100万记录的简单数据表执行上述语句,时 ......
低效: (索引失效)
SELECT … from DEPARTMENT WHERE DEPT_CODE IS NOT NULL;
高效: (索引有效)
SELECT … from DEPARTMENT WHERE DEPT_CODE >=0;
(27)总是使用索引的第一个列:
如果索引是建立在多 ......