随笔分类 - SQL开发
摘要:用过MySQL的应该都会注意到,默认情况下,Linux下安装的MySQL是大小写敏感的,也就是说Table1和table1可以同时存在。而Windows下的MySQL却是大小写不敏感的,所有表名和数据库名都会变成小写。 对于怎么启用或者停用MySQL数据库的大小写敏感,这个网上随便都能找到,就是改改
阅读全文
摘要:最近在读一本《数据库系统 设计、实现与管理》的书,其中的数据库设计部分写的挺好的,另外在本书中也讲到了数据库生命周期的概念,我觉得有所收益,特写下此博文!在软件开发中,我们经常会提到软件系统开发的生命周期,大致分为:计划、分析、设计、实现、运维几个阶段,整体流程和动作如下图所示:而针对数据库建模和数据库应用开发来说,也有其自己的“数据库生命周期”,database life cycle,简称DBL...
阅读全文
摘要:最近打算写写数据库建模的文章,所以打算分析微软官方提供的SQL Server示例数据库AdventureWorks,看看这个数据库中有哪些值得学习的地方。首先我们需要下载安装一个SQL Server数据库引擎,然后下载示例数据库,这里笔者用的是SQL2008R2,所以下载的是AdventureWorks2008R2,下载地址:http://msftdbprodsamples.codeplex.co...
阅读全文
摘要:今天在读一篇关于数据库索引介绍的文章时,该文章提到了前缀索引,对于我这个搞数据库应用开发那么多年的人来说,这个词还真是一个新词,没用过。于是打算研究一番。前缀索引似乎是MySQL中的一个概念,在SQL Server和Oracle中没提出这个概念。于是就安装了一个MySQL来做实验,搞清楚前缀索引。前...
阅读全文
摘要:我在4年多前,写了一篇Excel处理空白Cell的文章,http://www.cnblogs.com/studyzy/archive/2010/04/07/1706203.html,其实在数据库中也会遇到这种情况。对于普通的OLTP系统来说,应该不会出现,主要是在做OLAP,导入外部数据源时,可能导...
阅读全文
摘要:在SQL Server中经常会用到模糊匹配字符串的情况,最简单的办法就是使用like关键字(like语法http://msdn.microsoft.com/en-us/library/ms179859.aspx)。但是如果我们使用的前后都加%的方式,是没办法用到索引进行快速查询的,所以很多情况下我们...
阅读全文
摘要:SharePoint用来维护基础数据非常方便,只需要建立自定义列表,然后使用InfoPath自定义一下维护界面,就可以实现在线的增删改查,开发效率很高。如果维护的数据需要进行审批,还可以加入工作流功能。使用SharePoint Designer可以快速开发出简单的工作流,如果是很复杂的工作流,那么就需要使用VS进行开发了。现在数据已经维护进了SharePoint List,那么怎么从数据库中将维护...
阅读全文
摘要:之前做的项目涉及到中国大陆和纽伦新港的用户使用,也就需要做成一个多语言的系统,现在总结下其中一些经验和思考。 首先我们需要确认我们要做的系统,多语言到底是要做多少种语言,以后会不会要求增加更多的语言。比如我们做一个给中国大陆和纽伦新港使用的系统,可以确定的语言就是简体中文、繁体中文和英语,而且可以确定以后也不会增加语言。确定以后是否需要增加语言这一点很重要,决定了我们在数据库设计时,是否需要考虑...
阅读全文
摘要:SQL Server 2012已经发布一段时间了,最近在新的机器上安装了最新的SQL Server 2012 SP1,体检下感觉良好。官方给出了一大堆SQL2012相对于SQL2008R2的新特性,但是大多数对于普通开发人员来说都是浮云,根本用不到,下面就说说一些对于开发人员来说比较有用的新特性。
阅读全文
摘要:在做项目时,经常在项目中会遇到有些值是通过其他表经过计算得来的,然后将计算结果保存到数据库中。比如在一个休假系统中,一个员工每年已休天数就是一个计算值,通过SUM员工的所有有效休假申请单可获得。再比如交易系统中的余额字段,对一个账号的所有流水进行SUM,所有收入减去所有支出就是余额。再比订单系统中,订单的总金额字段,就是订单明细的金额的SUM值。对于这些字段,都有一个共性,那就是这个字段是可以通过其他表的字段计算出来的,可以认为这个字段是冗余的,如果没有这个字段,那么我们的系统仍然可以设计出来并且功能一个都不会少。这个字段主要为了提高查询的性能,出报表时也方便,效率高。既然是一个冗余字段,那么
阅读全文
摘要:前段时间做一个项目,其中涉及到报表部分编写了大量复杂的SQL,比如其中的一个存储过程就有700多行。项目上线过后,进入维护阶段,发现大量的SQL很难维护。于是总结点经验教训:设计一、数据库命名遵循一些通用规范。数据库命名规范是个基本的命名标准,每个团队都有自己的命名规范,我们做项目中以全大写下划线分割作为标准。表名或字段名要准确表达其业务含义。以DATE结尾的数据类型都是date类型,以TIME结尾的数据类型是datetime类型。以IS开头的都是bool类型。二、大数据对象列应该独立成表。比如员工照片是一个blob对象,按照范式来说,这个字段完全可以放在Employee表中,但是出于性能的考
阅读全文
摘要:一、迁移Database Schema。 首先使用Sybase Powerdesigner的逆向工程功能,逆向出SQL Server数据库的物理模型。具体操作是在Powerdesigner中选择“File”,“Reverse Engine”再选择Database,将DBMS选择为SQL Server,如图: 然后选择数据源,也就是要具体连接到的SQL Server数据库服务器,然后选择要逆向的数据...
阅读全文
摘要:SQL Server使用英文字符串的匹配的时候默认是忽略大小写的,这样用起来是比较方便的,如果想不忽略大小写也可以修改配置,但是Oracle好像不能忽略大小写,在进行字符串匹配的时候就比较麻烦了。那么该怎么解决大小写敏感的问题,把需要的数据都查询出来呢?最常见的办法就是把查询的参数和字段中的内容都转化成大写或者都转化成小写,这样就可匹配了。 比如如下的查询: select * from hr....
阅读全文
摘要:一般的数据库是一个操作型的数据存储工具,比如一个学校的选课系统的数据库,学生选课系统由教务处建设和管理,主要用于课程的排课和学生的选课,教务处人员可以在选课系统中增加、修改、删除和查询排课信息,学生也可以在选课系统中对选课信息进行操作。由于该数据库面向的是选课,所以记录的是与课程安排与选课的信息,其数据库模型简化如下图所示: 与一般操作型的数据库不同的是数据仓库主要是面向查询操作,而且查询的数据来...
阅读全文
摘要:问题 在做项目的时候经常会遇到这样的问题: 根据数据模型建立了数据库,但是数据库中却没有数据,在给客户做Demo的时候必须要一条一条的添加假数据,而且这些假数据还得像模像样的,不能乱输入,尽是看不出任何意义的“aaaaa”、“ttttttttttttt”、“123123”、“是打发斯蒂芬”这样的数据。...
阅读全文
摘要:SQL Server 2008 R2的主数据服务(Master Data Services,简称MDS)已经放出,目前是CTP版本,微软提供了下载地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=fe0c6a31-5ad6-4eea-a865-73bbe2608bd1在下载页面中提供了...
阅读全文
摘要:在概念模型中主要有以下几个操作和设置的对象:实体(Entity)、实体属性(Attribute)、实体标识(Identifiers)、关系(Relationship)、继承(Inheritance)、关联(Association)、关联连接(Association Link)。 实体 实体就是我们抽象出的对象,比如:一个选课系统中,学生、教师、班级、课程等等都是实体。实体属性就是一个实体中所包...
阅读全文
摘要:绪论 Sybase PowerDesigner(简称PD)是最强大的数据库建模工具,市场占有率第一,功能也确实十分强大,现在最新版本是15.1,已经支持最新的SQL Server 2008等数据库,另外在PD15中还增加了好几种模型,界面也得到了进一步的美化,做出来的图更漂亮了。下面是一个在PD15中新建模型的窗口: PD本身除了进行数据库建模以外,还可以建业务模型、UML模型等,当然这些建模其...
阅读全文
摘要:SQL Server在安装到服务器上后,由于出于服务器安全的需要,所以需要屏蔽掉所有不使用的端口,只开放必须使用的端口。下面就来介绍下SQL Server 2008中使用的端口有哪些: 首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果我们要远程连接数据库引擎,那么就需要打开该端口。这个端口是可以修改的,在“SQL Server配置管理器”中切换到R...
阅读全文
摘要:如果我们的SQL Server要保证高可用性,那么可以采用故障转移群集。最简单的故障转移群集是两台服务器,一台做活动的服务器,另一台做备用服务器,这就是AP模式的Cluster。另外一个模式就是AA模式,也就是两台服务器都是运行SQL Server实例。 SQL Server不像Oracle一样有RAC,所以不可能说两台服务器同时运行同一个实例,想要两台服务器都使用起来的话,那么只有各自运行一个...
阅读全文