PostgreSQL学习笔记

PostgreSQL学习笔记

ID:33811210

大小:1.27 MB

页数:106页

时间:2019-03-01

PostgreSQL学习笔记_第1页
PostgreSQL学习笔记_第2页
PostgreSQL学习笔记_第3页
PostgreSQL学习笔记_第4页
PostgreSQL学习笔记_第5页
资源描述:

《PostgreSQL学习笔记》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、PostgreSQL学习笔记事实上之前有很长一段时间都在纠结是否有必要好好学习它,但是始终都没有一个很好的理由说服自己。甚至是直到这个项目最终决定选用PostgreSQL时,我都没有真正意识到学习它的价值,当时只是想反正和其它数据库差不多,能用就行了。然而有一天晚上,自己也不知道为什么,躺在床上开始回想整个项目的实施过程,想着想着就想到了数据库选型这一问题上了。事情是这样的,最初客户将他们的产品目标定位为主打中型规模,同时也要在一定程度上支持小型规模。鉴于此,我们为他们提供的方案是中型规模的数据库选用Oracle,小型规模的选定MySQL,在经

2、过多轮商谈之后这个方案通过了。然而随着项目的深入,客户突然有一天提出,由于成本和市场推广等问题,该产品的数据库部分需要进行一定的调整,调整的结果是中型规模可以同时支持Oracle和MySQL,而小型规模则要同时支持MySQL和PostgreSQL,原因非常简单,PostgreSQL是纯免费的数据库产品。听到这个消息之后,我当时就非常恼火,因为当初为了保证运行时效率(国标),我们的数据库访问层是完全基于数据库供应商提供的原始C接口开发的,甚至都没有考虑ODBC提供的原始C接口,以防在转换中失去效率,或是ODBC本身为了强调通用性而不得不牺牲某些数

3、据库的优化特征,如批量插入、批量读取等。最后的结果显而易见,客户就是上帝,上帝的意见就是真理,这样我们就不得不基于现有的访问层接口又重新开发了一套支持PostgreSQL原生C接口的驱动。然而随着对PostgreSQL的不断学习,对它的了解也在逐步加深,后来发现它的功能还是非常强大的,特别是对GIS空间数据的支持就更加的吸引我了。于是就在脑子里为MySQL和PostgreSQL做了一个简单的对比和分析,最后得出一个结论,相比MySQL,PostgreSQL并没有什么刚性的缺点,但是它的纯免费特征确实是MySQL无法比拟的。它完全可以成为软件产品

4、解决方案中非常重要的一环,特别是针对很多中低端用户,不仅在使用中不会感到任何差异,而且还能节省一部分额外的费用,这对于产品的市场推广是非常有帮助的。想到这里便决定起而行之,花上一段时间好好的学习和研究它,于是就有了这个系列的博客。好了,闲淡扯的差不多了,让我们还是言归正传吧!PostgreSQL学习手册(数据表)http://www.cnblogs.com/stephen-liu74/archive/2011/12/16/2290803.html一、表的定义:对于任何一种关系型数据库而言,表都是数据存储的最核心、最基础的对象单元。现在就让我们从

5、这里起步吧。1.创建表:CREATETABLEproducts(product_nointeger,nametext,pricenumeric);2.删除表:DROPTABLEproducts;3.创建带有缺省值的表:CREATETABLEproducts(product_nointeger,nametext,pricenumericDEFAULT9.99--DEFAULT是关键字,其后的数值9.99是字段price的默认值。);CREATETABLEproducts(product_noSERIAL,--SERIAL类型的字段表示该字段为自增

6、字段,完全等同于Oracle中的Sequence。nametext,pricenumericDEFAULT9.99);输出为:NOTICE:CREATETABLEwillcreateimplicitsequence"products_product_no_seq"forserialcolumn"products.product_no"4.约束:检查约束是表中最为常见的约束类型,它允许你声明在某个字段里的数值必须满足一个布尔表达式。不仅如此,我们也可以声明表级别的检查约束。CREATETABLEproducts(product_nointeger

7、,nametext,--price字段的值必须大于0,否则在插入或修改该字段值是,将引发违规错误。还需要说明的是,该检查约束--是匿名约束,即在表定义时没有显示命名该约束,这样PostgreSQL将会根据当前的表名、字段名和约束类型,--为该约束自动命名,如:products_price_check。pricenumericCHECK(price>0));CREATETABLEproducts(product_nointeger,nametext,--该字段的检查约束被显示命名为positive_price。这样做好处在于今后维护该约束时,可以

8、根据该名进行直接操作。pricenumericCONSTRAINTpositive_priceCHECK(price>0));下面的约束是非空约束,即

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。