数据库设计总结

分三大块,数据库基础概念,SQL语言实用技巧,数据库设计技巧和实例。

--------------------------------------------------------------------------------

数据库基础概念:

数据库,表,列,主键,外键, 数据类型。

事务。http://www.cnblogs.com/samwu/archive/2011/09/07/2169851.html 
锁机制。http://www.cnblogs.com/samwu/archive/2011/09/19/2181506.html其中,事务的隔离机制 会影响 增删查改的锁机制。

完整性约束,包括主键约束,外键约束,唯一约束,数据类型约束,不为空约束,自定义约束。

范式。http://www.cnblogs.com/samwu/archive/2011/09/07/2169629.html

E-R图。http://www.cnblogs.com/samwu/archive/2011/09/07/2169842.html

数据库生命周期。http://www.cnblogs.com/samwu/archive/2011/09/07/2169829.html

数据流程图,数据字典(可不了解)。

14个数据库设计中技巧(转)。http://www.cnblogs.com/samwu/archive/2011/09/07/2169631.html

书籍推荐:《数据库原理及设计》

--------------------------------------------------------------------------------

SQL语言实用技巧:

分页存储过程。

触发器使用。

数据库自定义函数使用。

游标使用。

连续日期查询。http://www.cnblogs.com/samwu/archive/2011/09/15/2177176.html

生成连续日期。http://www.cnblogs.com/samwu/archive/2011/09/27/2192953.html

综合SQL查询,一道员工与部门查询的SQL笔试题。http://www.cnblogs.com/samwu/archive/2011/09/27/2192934.html

SQL养成一个好习惯是一笔财富。http://kb.cnblogs.com/page/103705/

 

插入,更新,删除,

查询:

SQL聚合函数,MAX(最大值)、MIN(最小值)、AVG(平均值)、SUM (和)、COUNT(数量)。

数据排序,ORDER BY子句位于SELECT语句的末尾,它允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(从小到大排列,ASC)还是降序(从大到小排列,DESC)。

通配符过滤 ,单字符匹配的通配符为半角下划线“_”,多字符匹配的通配符为半角百分号“%”,它匹配任意次数(零或多个)出现的任意字符。

空值处理,数据库中,一个列如果没有指定值,那么值就为null,这个null和C#中的null,数据库中的null表示“不知道”,而不是表示没有。SQL中使用is null、is not null来进行空值判断。

多值匹配,SELECT FAge,FNumber,FName FROM T_Employee WHERE FAge IN (23,25,28)。

数据分组,GROUP BY子句必须放到WHERE语句的之后,没有出现在GROUP BY子句中的列是不能放到SELECT语句后的列名列表中的 (聚合函数中除外)。

Having语句,在Where中不能使用聚合函数,必须使用Having,Having要位于Group By之后,注意Having中不能使用未参与分组的列,Having不能替代where。作用不一样,Having是对组进行过滤。

限制结果集行数,也就是top关键字,SQLServer2005后增加了Row_Number函数简化实现,通常用于分页。

去掉数据重复,DISTINCT是对整个结果集进行数据重复处理的,而不是针对每一个列。(忘了)

联合结果集,union关键字,基本的原则:每个结果集必须有相同的列数;每个结果集的列必须类型相容。union关键字合并两个查询结果集,并且将其中完全重复的数据行合并为一条。union关键字因为要进行重复值扫描,所以效率低,因此如果不是确定要合并重复行,那么就用union all关键字。

各种查询函数:

数字函数,

ABS() ,求绝对值。CEILING(),舍入到最大整数 。3.33将被舍入为4、2.89将被舍入为3、-3.61将被舍入为-3。

FLOOR():舍入到最小整数。3.33将被舍入为3、2.89将被舍入为2、-3.61将被舍入为-4。

ROUND():四舍五入。 例如,select round(3.14666,2)结果是3.15000,select round(3.14666,3)结果是3.14700。

字符串函数,日期函数,类型转换函数,空值处理函数,caes函数。

索引,

全表扫描:对数据进行检索(select)效率最差的是全表扫描,就是一条条的找。使用索引能提高查询效率,但是索引也是占据空间的,而且添加、更新、删除数据的时候也需要同步更新索引,因此会降低Insert、Update、Delete的速度。只在经常检索的字段上(Where)创建索引。即使创建了索引,仍然有可能全表描,比如like、函数、类型转换等。http://www.cnblogs.com/xioxu/archive/2010/10/20/1857119.html

表连接,join是和哪个表连接,on后是连接的关系是什么。内连接inner join,左连接left join,右连接right join,

http://www.cnblogs.com/doucontorl/archive/2010/09/06/1819419.html
子查询:http://www.cnblogs.com/edisonfeng/archive/2011/07/02/2096403.html

 

书籍推荐:《SQL Cookbook》

--------------------------------------------------------------------------------
数据库设计实例:

分类菜单的表设计和添加额外商品属性的表设计:http://blog.csdn.net/luyysea/article/details/5068157



合乎自然而生生不息。。。
原文地址:https://www.cnblogs.com/samwu/p/2192878.html