简明现代魔法 -> 数据库技术

SQL对重复数据记录的处理

总结处理重复记录的方法

数据库产生重复数据记录是经常发生的事情,现在NowaMagic总结下各种重复的情况,每一种情况该如何写SQL语句处理。查找所有重复标题的记录,查找全部重复记录,过滤重复记录(只显示一条),删除全部重复记录(慎用),保留一条(这个应该是大多数人所需要的 ^_^)等等。

发布于 2010-08-14 分类:database

生成日期列表的存储过程

笛卡尔积连接的使用

写一个存储过程,输入为startDate和endDate,输出为一个日期列表。其中对两个sys.objects进行笛卡尔积连接,是为了生成足够多的行,可以换做sys.columns等大表。如果要生成的日期跨度非常大,可以考虑对3个表进行笛卡尔积。

发布于 2010-08-04 分类:database

图解数据库的内联接与外联接

通过实例让你更清楚内外连接

通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。

发布于 2010-07-13 分类:database

用SQL语句去掉重复的记录

巧用SQL提高执行效率

海量数据(百万以上),其中有些全部字段都相同,有些部分字段相同,怎样高效去除重复?其中下面这条会稍快些。上面这条数据对于100万以内的数据效率还可以,重复数1/5的情况下几分钟到几十分钟不等,但是如果数据量达到300万以上,效率骤降,如果重复数据再多点的话,常常会几十小时跑不完,有时候会锁表跑一夜都跑不完。

发布于 2010-07-10 分类:database

数据库与数据仓库的区别

数据仓库主要是面向查询操作

一般的数据库是一个操作型的数据存储工具,比如一个学校的选课系统的数据库,学生选课系统由教务处建设和管理,主要用于课程的排课和学生的选课,教务处人员可以在选课系统中增加、修改、删除和查询排课信息,学生也可以在选课系统中对选课信息进行操作。由于该数据库面向的是选课,所以记录的是与课程安排与选课的信息。

发布于 2010-07-09 分类:database

PHP MySQL中字符集问题分析

为什么WordPress直接察看数据库也不乱码呢?

Character set顾名思义,就是字符、以及字符对应的编码的集合。例如简体中文字符集gb2312就包括简体中文中的所有规定汉字,以及每个汉字对应的代码。Collation,是指比较字符的规则的集合。有了比较规则,才能够将一组数据排序——例如按照英文字母顺序排序、汉字按照拼音顺序排序等等。

发布于 2010-05-22 分类:database

数据库查询优化原则

让你的网站数据响应更加迅速

可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。

发布于 2010-05-17 分类:database

in和exists的区别与SQL执行效率分析

选择in或exist看筛选条件是在主查询上还是在子查询上

测试结果(总体来讲exists比in的效率高):效率:条件因素的索引是非常关键的。sql优化中,使用in和exist? 主要是看你的筛选条件是在主查询上还是在子查询上。

发布于 2010-05-12 分类:database

SQL 中 exists 的用法

把最外层的查询里的数据一行一行的做里层的子查询

EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False。EXISTS 指定一个子查询,检测行的存在。语法:EXISTS subquery。参数 subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。结果类型为 Boolean,如果子查询包含行,则返回 TRUE。

发布于 2010-05-11 分类:database

数据库设计心得

让你的数据库更优秀

原始单据与实体之间的关系,可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。

发布于 2010-05-10 分类:database

数据库索引 index 介绍

索引可以使数据库检索更加快速

对数据库索引的关注从未淡出我的们的讨论,那么数据库索引是什么样的?聚集索引与非聚集索引有什么不同?希望本文对各位同仁有一定的帮助。有不少存疑的地方,诚心希望各位不吝赐教指正,共同进步。

发布于 2010-05-04 分类:database

关于对象关系数据库映射 ORM

ORM提供了概念性的、易于理解的模型化数据的方法

对象关系映射(ORM)提供了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则:简单:以最基本的形式建模数据。传达性:数据库结构被任何人都能理解的语言文档化。精确性:基于数据模型创建正确标准化了的结构。

发布于 2010-04-13 分类:database

SQL 性能优化的一些经验

让你的SQL执行得更有效率

查询的模糊匹配,尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用。其实只需要对该脚本略做改进,查询速度便会提高近百倍。改进方法如下:……

发布于 2010-04-12 分类:database

数据库范式理解

满足范式要求的数据库设计是结构清晰的

在做数据库设计的时候,满足范式要求的数据库设计是结构清晰的,同时可避免数据冗余和操作异常。一般情况下满足第二和第三范式就OK(第一范式是默认满足的),这并意味着不符合范式要求的设计一定是错误的,这种较特殊的情况下,不符合范式要求反而是合理的。

发布于 2010-04-03 分类:database

数据库中的空值

null,空白,0是一样的吗?

往往很多人都认为空值与空白或0值是一样的,至少我在今天以前是这么认为的,其实空值并不与空白和0值是一回事。Null值表示数值未知。没有两个相等的空值,比较两个空值或空值和任意一个数比较返回的均是未知。

发布于 2010-03-19 分类:database
 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们