• 数据库设计总结


    分三大块,数据库基础概念,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



    合乎自然而生生不息。。。
  • 相关阅读:
    Mybaits 的优点
    mybatis中#{}和${}的区别
    springmvc工作流程
    request对象的主要方法有哪些
    如何决定选用HashMap还是TreeMap?
    队列和栈是什么,列出它们的区别?
    fail-fast与fail-safe有什么区别?
    Collections类是什么?
    哪些集合类提供对元素的随机访问?
    可以作为GC Roots的对象包括哪些
  • 原文地址:https://www.cnblogs.com/samwu/p/2192878.html
Copyright © 2020-2023  润新知