Chen Jian

《SQL Server 2005从入门到精通(应用技术基础)》目录

【本书目录】 第Ⅰ部分  如何建立SQL Server数据库来保存应用程序的数据 第1章  数据库中选择存储哪些 应用程序数据    3 1.1  在哪里存储应用程序设置    3 1.2  在哪里存储用户设置    4 1.3  在哪里存储XML文档    6 1.3.1  使用XML数据类型    6 1.3.2  在文件系统中存储 XML数据    10 1.4  在哪里存储外部应用程序文件    10 小结        11 第1章快速参考    12 第2章  数据库安全基本原则    13 2.1  保护数据库系统的网络安全设计    13 2.1.1  授权远程访问    13 2.1.2  保护外部访问    14 2.2  管理对SQL Server实例的访问    15 2.2.1  选择身份验证模式    15 2.2.2  连接到SQL Server实例    16 2.2.3  …

《SQL Server 2005从入门到精通(应用技术基础)》目录 Read More »

DBMS不区分字符串的大小写

如果在一个unqiue的字段上先后插入 "pig" 和 "PIG",会报错 如果一个非unique字段col上有两个值分别为“pig”和"PIG",那么select * from animal where col = ‘pig’会把这两个值都返回

查询sql server中所有的外键信息

从左到右分别是: 外键约束名,子表名,外键列名,父表名 select fk.name fkname , ftable.name ftablename, cn.name fkcol, rtable.name ftablename from sysforeignkeys   join sysobjects fk     on sysforeignkeys.constid = fk.id   join sysobjects ftable     on sysforeignkeys.fkeyid = ftable.id   join sysobjects rtable     on sysforeignkeys.rkeyid = rtable.id   join syscolumns cn     on sysforeignkeys.fkeyid = cn.id and sysforeignkeys.fkey = cn.colid

树型表结构的查询优化

    一个对象在业务逻辑上是一棵树,那它在数据库里就是由若干个表通过外键关联组成的树。 如何从数据库中取出这棵树?     比较优雅的做法是采用先序遍历的办法:先从树根表读出树根,在JAVA世界变成树根Bean,然后用同样的办法读出它的子树,再把子树BEAN设置为树根的属性。   这种做法优雅是优雅,但是速度慢,因为查一次,就要跟数据库服务器连一次,就要增加一次数据库IO。这是不行的。即使用了数据库连接池,开销还是很大    为了减少网络开销,应该先将数据从数据库中一次性取出,然后拿到JAVA世界中进行拆解。这样速度可以明显改善,代价是编程麻烦。 在数据库端要写一个存储过程,先读出树根记录到一个临时表,然后再将子树表逐个与该临时表连接,查出子树记录放入子树临时表,然后再将“孙”树表。。。,最后返回各个临时表的记录集。  在JAVA程序这边,还要用原始的JDBC语句一步一步地处理这种多重结果集,然后又一个一个地拆解