
数据库基础
terryzero
这个作者很懒,什么都没留下…
展开
-
SQL精简---select
简单查询:eg. select id as i , name as n from student as s where class=6 group by sexy having score>=60 order by score desc。联合查询:查询1 UNION 查询2 UNION 查询3 注:确保个个查询语句的行数相同连接查询:WHERE子句中使用的连接语句,在数据库语言中原创 2008-12-09 21:32:00 · 689 阅读 · 0 评论 -
ORACLE中的物化视图
物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。 物化视图可以查询表,视图和其它的物化视图。 通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。 对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副转载 2009-10-10 19:47:00 · 695 阅读 · 0 评论 -
Hibernate延时加载
首先说明Hibernate3延迟加载只对load,get,find一些内值方法有用,对hql等写sql的无效。 延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。下面我们就分别介绍这些种类的延迟加载的细节转载 2009-10-07 18:38:00 · 736 阅读 · 0 评论 -
PostgreSQL使用注意事项
1.log日志配置PostgreSQL的系统日志和报错日志等,默认是直接输出了,没有写入到文件,如果你希望能查看这些日志,需要修改postgresql.conf,如下:log_destination = ’stderr’logging_collector = onlog_directory = ‘pg_log’log_min_duration_statement = 5000上面这些参数的转载 2009-10-04 23:17:00 · 5091 阅读 · 0 评论 -
数据库优化之MySQL
1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样原创 2009-07-11 20:02:00 · 682 阅读 · 0 评论 -
Hibernate锁机制--悲观锁和乐观锁
hibernate锁机制,今天写个总结。Hibernate锁机制包括悲观锁和乐观锁。 1.悲观锁它指的是对数据被外界修改持保守态度。假定任何时刻存取数据时,都可能有另一个客户也正在存取同一笔数据,为了保持数据被操作的一致性,于是对数据采取了数据库层次的锁定状态,依靠数据库提供的锁机制来实现。基于jdbc实现的数据库加锁如下:select * from accoun转载 2009-09-07 22:32:00 · 992 阅读 · 0 评论 -
HQL中In的问题详解
最近比较忙,还要复习考研的内容。但突然发现blog的订阅数猛减,于是百忙之中抽空写了一篇关于前几天使用Hibernate时遇到到的问题,希望大家能对我继续的支持。 不要把HQL看的太神,第一眼看到HQL的in语句发现很强大。想当年直接写SQL时,每次都为in后面的参数感到麻烦。后来在网上看了很多文章后发现in的效率很低下,就渐渐避免用in来写SQL,后面参数少的就用=,来代替。网上很多原创 2009-09-02 15:59:00 · 13107 阅读 · 0 评论 -
Access转Sql Server问题
今天帮同学改一个老的系统作为毕业设计,这系统技术绝对落后asp+access。为了应付老师的验收,然后这同学编程又不是很好,而其到了最后时刻才想到开始做毕设,于是找到了我。我看了他不知从哪里搞来的代码,跑了下,还行能跑,过两天就要验收程序了,把asp改成 asp.net是没时间了,于是我提议改下数据库算了,于是决定把access转成sql server。看似一个公司的产品,转起来问题到一大堆。原创 2009-06-14 16:31:00 · 789 阅读 · 0 评论 -
JTA(XA)原理解析
昨天讲了java事务,由于Transaction(事务) 分两种Local Transaction 和 Global Transaction 涉及到一个Connection的Commit,称为Local Transaction 涉及到多个Connection的Commit,称为Global TransactionLocal Transaction用JDBC事务实现是没有问题,然而Globa原创 2009-08-20 21:08:00 · 11836 阅读 · 1 评论 -
数据仓库术语
数据仓库:数据仓库是一个支持管理决策的数据集合。数据是面向主题的、集成的、不易丢失的并且是时间变量。数据仓库是所有操作环境和外部数据源的快照集合。它并不需要非常精确,因为它必须在特定的时间基础上从操作环境中提取出来。数据集市:数据仓库只限于单个主题的区域,例如顾客、部门、地点等。数据集市在从数据仓库获取数据时可以依赖于数据仓库,或者当它们从操作系统中获取数据时就不依赖于数据仓库。事实:事实原创 2010-02-07 21:52:00 · 1298 阅读 · 0 评论 -
SQL in和exists 比较
今天数据库的课上老师问了个问题说in和exists哪个效率高。这我倒真没研究过只知道in加子查询效率低,但平时还不时在用。所以我就总结下他们之间的区别 SQL中in可以分为三类: 1、形如select * from t1 where f1 in (a,b),应该和以下两种比较效率 select * from t1 where f1=a or f1=b 或者 sel原创 2010-03-28 23:41:00 · 1304 阅读 · 0 评论 -
MySQL大小写问题
<br /><br />最近在将一个windows的mysql数据库转到linux上时,碰到表找不到问题,具体分析了下后发现原来是大小写问题。<br /> <br />在 MySQL 中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。<br /> <br />奇怪的是列名与列的别名在所有的情况下均是忽略大小写的,而表的别名又是区分大小写的。<br /转载 2011-05-03 23:36:00 · 2647 阅读 · 0 评论 -
数据库迁移
<br />最近在做oracle到mysql数据库迁移的工作,找了很多工具都不是很给力,因为原数据库设计的不好,字段命名也不规范遇到了很多问题,最后拿出最终兵器kettle来解决。虽然使用麻烦了,但它使人工干预迁移工作成为了可能。然后还需记住一些数据库特性上的区别,转载如下<br /> <br /><br />1、数据库迁移需要做的工作<br />1.1 建表脚本修改<br />1.2 数据导入(编码、数据类型设置)<br />1.3 项目中的SQL修改<br />1.4 数据库连接(驱动)<br />1.原创 2011-04-26 23:57:00 · 2923 阅读 · 0 评论 -
四大类NoSQL数据库
<br />1.key-value存储ExamplesTokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB典型应用场景内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。数据模型Key 指向 Value 的键值对,通常用hash table来实现强项查找速度快弱项数据无结构化,通常只被当作字符串或者二进制数据2.列式数据库ExamplesCassandra, HBase, Riak典型应用场景分布式的文件系统数据模型以列簇式存储,将同一列数据存原创 2011-05-27 14:50:00 · 2525 阅读 · 0 评论 -
数据库升级脚本制作
最近由于公司走了一个负责数据库方面的人,一些有关数据库的任务没人做了,leader就找到了我。这次的任务是负责新版本的数据库升级脚本,难点是我对数据表结构不是很熟悉,而且新版本的功能也不是有我来负责的,还有就是数据表结构变化比较大,要保证用户原本数据不能丢失。200多张表里面还是有数据的,如果人工做的话不死人才怪。于是查找工具,先从自己熟悉的powerdesigner开始,先用反向工程分别生成新老两个数据库的模型,然后点击 菜单中database->modify database,再按照步骤做,没啥难度。完原创 2010-09-09 23:08:00 · 7442 阅读 · 0 评论 -
Redis入门教程
最近互联网公司中很流行key-value数据库,但这是大学数据库课上学不到的东西,所以我讲通俗的翻译篇这方面的教程简短总结下Redis NOSQL世界的充满冒险的旅程我们旅途的行程就像其他的旅途一样, 我们的旅途也是有很多行程组成, 在开始之前我先将他们写下来:Redis? 这是什么? 可用的数据类型 表在哪里? 一个简单例子 回顾 行程1: Redis? 这是什么?为了长话短说, Redis是一种加速的key-value数据库. 为什么加速? 简单说他非常快(所有的数据都加载在内存中和磁盘中) 和丰富的翻译 2010-07-08 00:43:00 · 12430 阅读 · 3 评论 -
实时内存数据库的数据管理
实 时 数 据 安 置 ----1 . 实 时 应 用 对 数 据 安 置 的 要 求 ---- 在 实 时 应 用 中, 事 务 在 运 行 前 的 操 作 逻 辑( 操 作 类 型、 顺 序 等)、 数 据 集 及 其 结 构、 行 为 以 及 时 间 的 相 关 性 等 都 是 可 预 分 析 的。 然 而, 对 磁 盘 数 据 库 而 言, 数 据 的I/O 是 造转载 2010-04-15 00:08:00 · 2048 阅读 · 0 评论 -
数据库设计指南(五)数据库小技巧
各种小技巧1. 文档、文档、文档对所有的快捷方式、命名规范、限制和函数都要编制文档。— nickypendragon采用给表、列、触发器等加注释的数据库工具。是的,这有点费事,但从长远来看,这样做对开发、支持和跟踪修改非常有用。— chardove取决于你使用的数据库系统,可能有一些软件会给你一些供你很快上手的文档。你可能希望先开始在说,然后获得越来越多的细节。或者你可能希望周期性的预排,在输入新原创 2009-06-12 10:55:00 · 590 阅读 · 0 评论 -
Hibernate HQL 语法大全(上)
Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。1.大小写敏感性问题除了Java类与属性的名称外,查询语句对大小写并不敏感。 所以 SeLeCT 与 sELEct 以及 SELECT 是相同的,但是 org.hib原创 2009-08-17 22:16:00 · 2098 阅读 · 1 评论 -
顺利开发数据仓库的七种思路
对于大多数IT顾问来说,实现一个数据仓库的难度比以前做过的任何项目难度都要大。考虑到不同的数据结构、用途以及应用程序开发方法,以前所积累的经验和技巧大部分都无用武之地了。但是只要在你的前进道路上稍加修正,你就会发现实现一个数据仓库并不是难事,就算你是第一次实现数据仓库也没问题。 下面列出了数据仓库实施过程需要考虑的步骤,有一些你可能从来没有意识到,而另一些可能已经在实施过程中使用到了,但是重新思考转载 2009-04-16 22:45:00 · 600 阅读 · 0 评论 -
数据仓库开发过程中的七个禁忌
过去我们一直使用的OLTP技术也许隐藏着许多严重的缺陷。数据仓库的实现并不是一个简单的任务,你会发现以前积累下来的丰富经验,并不适合处理每个数据仓库的独特需求。 下面列出的条款是你在实现数据仓库过程中一定会面对的问题,其中一些看起来并没有想象中那么严重,但是你还是应该尽量避免出现类似问题。数据仓库并不是一个事务处理系统,它没有一定的标准也不会实现某个特定的应用,但它本质上是非常有组织性的。总之,每转载 2009-04-15 22:54:00 · 756 阅读 · 0 评论 -
高效实现数据仓库的七个步骤
数据仓库和我们常见的RDBMS系统有些亲缘关系,但它又有所不同。如果你没有实施过数据仓库,那么从设定目标到给出设计,从创建数据结构到编写数据分析程序,再到面对挑剔的用户的评估,整个过程都会带给你一种与以往的项目完全不同的体验。一句话,如果你试图以旧有的方式创建数据仓库,那你所面对的不是预算超支就是所建立的数据仓库无法良好运作。 在处理一个数据仓库项目时需要注意的问题很多,但同时也有很多有建设性的参转载 2009-04-14 23:41:00 · 674 阅读 · 0 评论 -
Hibernate复合主键
哎~~~前一个礼拜csdn博客当掉了,使我都懒得写博客了~~等这博客稳定了再写吧,先转载下一些好文章。基于业务需求,您会需要使用两个字段来作复合主键,例如在User数据表中,您也许会使用"name"与"phone"两个字段来定义复合主键。假设您这么建立User表格:Code highlighting produced by Actipro CodeHighlighter (freewa转载 2009-04-11 16:34:00 · 992 阅读 · 1 评论 -
存储过程入门教程
什么是存储过程呢?定义: 将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。讲到这里,可能有人要问:这么说存储过程就是一堆SQL语句而已啊? Microsoft公司为什么原创 2009-03-24 23:11:00 · 2137 阅读 · 6 评论 -
OLTP和OLAP区别
60年代,关系数据库之父E.F.Codd提出了关系模型,促进了联机事务处理(OLTP)的发展(数据以表格的形式而非文件方式存储)。1993年,E.F.Codd提出了OLAP概念,认为OLTP已不能满足终端用户对数据库查询分析的需要,SQL对大型数据库进行的简单查询也不能满足终端用户分析的要求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此,E.原创 2009-03-11 21:58:00 · 2250 阅读 · 0 评论 -
JAVA处理Clob大对象
BLOB就是使用二进制保存数据。 如:保存位图。 CLOB使用CHAR来保存数据。 如:保存XML文档。 1、创建Clob对象下面的代码段说明了如何创建一个Clob对象,其中rs是一个ResultSet对象:Clob clob = rs.getClob(1);变量clob现在可以被用于在CLOB值上执行操作,而假设这CLOB值保存在结果集rs的第一列中。或FileInputStre原创 2009-02-27 12:26:00 · 6615 阅读 · 0 评论 -
JAVA处理Blob大对象
Blob对象是SQL Blob的Java语言映射。SQL Blob是一个内置类型,它可以将一个二进制大对象保存在数据库中。接口ResultSet、CallableStatement和PreparedStatement中的方法允许程序员使用与访问SQL 92内置类型同样的方式来访问SQL 99类型BLOB。 在标准实现中,JDBC驱动程序在后台使用SQL类型LOCATOR(BLOB)来实现Blob原创 2009-02-26 12:44:00 · 23423 阅读 · 0 评论 -
MySQL中文参考手册
转至:http://www.zhaophp.com/mysql/manual_toc.html0 译者序 1 MySQL的一般的信息 1.1 什么是MySQL? 1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5 MySQL稳定性? 1.6 顺应2000年 1.7 SQL一般信转载 2009-04-18 23:05:00 · 749 阅读 · 0 评论 -
SQL Server 2005常用函数汇总
最近公司接了个报表的项目,报表的要求非常高,算法非常变态,取的字段又多。搞得其中的sql都像文章似的。平时,我写一般都用标准的sql,这次用户需求那么复杂,时间又紧,而其用户只用sql server 2005,所以开始用起了数据库特性。下面是收集的一些函数(其中一些别的数据库也通用的) 聚合函数若要汇总一定范围的数值,请使用以下函数: SUM 返回表达式中所有值的总和。原创 2009-04-25 17:31:00 · 6194 阅读 · 0 评论 -
深入Java事务的原理与应用
一、什么是JAVA事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应原创 2009-08-19 20:17:00 · 5333 阅读 · 3 评论 -
数据库设计指南(四)保证数据的完整性
保证数据的完整性1. 用约束而非商务规则强制数据完整性如果你按照商务规则来处理需求,那么你应当检查商务层次/用户界面:如果商务规则以后发生变化,那么只需要进行更新即可。假如需求源于维护数据完整性的需要,那么在数据库层面上需要施加限制条件。如果你在数据层确实采用了约束,你要保证有办法把更新不能通过约束检查的原因采用用户理解的语言通知用户界面。除非你的字段命名很冗长,否则字段名本身还不够。— Lamo原创 2009-06-11 20:24:00 · 1082 阅读 · 0 评论 -
Hibernate HQL 语法大全(下)
11.子查询对于支持子查询的数据库,Hibernate支持在查询中使用子查询。一个子查询必须被圆括号包围起来(经常是SQL聚集函数的圆括号)。甚至相互关联的子查询(引用到外部查询中的别名的子查询)也是允许的。from Cat as fatcat where fatcat.weight > ( select avg(cat.weight) from Domesti原创 2009-08-18 00:11:00 · 1448 阅读 · 0 评论 -
数据库设计指南(二)设计表和字段
设计表和字段1. 检查各种变化我在设计数据库的时候会考虑到哪些数据字段将来可能会发生变更。比方说,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓等)。所以,在建立系统存储客户信息时,我倾向于在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。— Shropshire Lad2. 采用有意义的字段名有一回我参加开发过一个项目,其中有从其他程序员原创 2009-06-09 20:15:00 · 1095 阅读 · 0 评论 -
数据库设计指南(三)选择键和索引
选择键和索引1. 数据采掘要预先计划我所在的市场部门一度要处理8 万多份联系方式,同时填写每个客户的必要数据(这绝对不是小活)。我从中还要确定出一组客户作为市场目标。当我从最开始设计表和字段的时候,我试图不在主索引里增加太多的字段以便加快数据库的运行速度。然后我意识到特定的组查询和信息采掘既不准确速度也不快。结果只好在主索引中重建而且合并了数据字段。我发现有一个指示计划相当关键——当我想创建系统类原创 2009-06-10 00:36:00 · 1119 阅读 · 0 评论 -
数据库设计指南(一)设计之前
设计数据库之前1. 考察现有环境在设计一个新数据库时,你不但应该仔细研究业务需求而且还要考察现有的系统。大多数数据库项目都不是从头开始建立的;通常,机构内总会存在用来满足特定需求的现有系统(可能没有实现自动计算)。显然,现有系统并不完美,否则你就不必再建立新系统了。但是对旧系统的研究可以让你发现一些可能会忽略的细微问题。一般来说,考察现有系统对你绝对有好处。— Lamont Adams我曾经接手过原创 2009-06-08 22:16:00 · 717 阅读 · 0 评论 -
数据库优化之SQL Server
设计1个应用系统似乎并不难,但是要想使系统达到最优化的性能并不是一件容易的事。在开发工具、数据库设计、应用程序的结构、查询设计、接口选择等方面有多种选择,这取决于特定的应用需求以及开发队伍的技能。本文以SQL Server为例,从后台数据库的角度讨论应用程序性能优化技巧,并且给出了一些有益的建议。 1 数据库设计 要在良好的SQL Server方案中实现最优的性能,最关键的是要有1个很原创 2009-07-13 23:23:00 · 666 阅读 · 0 评论 -
一句集大成的SQL
今天PM提了个变态的需求,算法很繁琐大致如下l Budget LightSystem parameter: Budget Red – 20%; Budget Yellow - 10%Grey: No value assigned to BudgetGreen: Efforts Yellow: 1- Budget YellowRed: Effort >= B原创 2009-04-28 16:31:00 · 1194 阅读 · 0 评论 -
SQL group by的困惑
今天为写一条SQL困扰了很久首先先贴两条sql,大家看看有啥区别select * from all_txt A where id=(SELECT id from all_txt where A.key_value = key_value ORDER BY release_time DESC limit 1);select * from (select *,max(release_time) as原创 2012-01-07 22:20:40 · 2320 阅读 · 3 评论