岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> 数据库 >> POSTGRE >> 数据库正文
PostgreSQL 7.2 教程 (2)
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-12-18 18:29:55

  2.1. 介绍
  
  本章提供一个如何使用 SQL 执行简单操作的概述. 本教程的目地只是给你一个介绍,并非完整的 SQL 教程.都许多关于 SQL92 的书,包括 Understanding the New SQLMelton and Simon, 1993A complete guideJimMeltonAlan R.Simon1-55860-245-31993Morgan Kaufmann1993Morgan Kaufmann Publishers, Inc. 和 A Guide to the SQL StandardDate and Darwen, 1997A user's guide to the standard database language SQLFourth EditionC. J.DateHughDarwen0-201-96426-01997Addison-Wesley1997Addison-Wesley Longman, Inc..而且你还要知道有些 PostgreSQL语言特性是对标准的扩展.
  
  在随后的例子里,我们假设你已经创建了名为 mydb 的数据库,就象在前面的章里面介绍的一样,并且已经启动了 psql.
  
  本手册的例子也可以在PostgreSQL 源代码发布里的目录 src/tutorial/ 中找到. 请参考该目录中的 README 文件获取如何使用 它们的信息.要开始这个教程,按照下面说的进行∶
  
  $ cd ..../src/tutorial
  $ psql -s mydb
  ...
  
  mydb=> \i basics.sql
  \i 命令从指定的文件中读取命令. -s 选项把你置于单步模式,它在向服务器发送每个查询之前 暂停.在本节使用的命令都在文件 basics.sql 中.
  
  --------------------------------------------------------------------------------
  2.2. 概念
  
  PostgreSQL 是一种 关系型数据库管理系统 (RDBMS). 这意味着它是一种用于管理那些以关系形式存储的数据的系统.关系实际上是表的 数学称呼.今天,把数据存储在表里的概念已经快成了固有的常识了,但是还有其它的一些方法用于组织数据库.在类 Unix 操作系统上的 文件和目录就形成了一种层次数据库的例子.更现代的发展是面向对象的数据库.
  
  每个表都是一个命名的行的集合. 每一行由一组相同的命名 列组成. 而且每一列都有一特定的类型. 虽然每列在每行里的位置是固定的,但一定要记住 SQL 并未 对行在表中的顺序做任何保证(但你可以对它们进行明确的排序进行显示).
  
  表组成数据库,一个由一个 PostgreSQL 服务器管理的数据库集合组成一个数据库集群.
  
  2.3. 创建新表
  
  你可以通过声明表的名字和所有字段的名字及其类型来创建表∶
  
  CREATE TABLE weather (
  city varchar(80),
  temp_lo int, -- low temperature
  temp_hi int, -- high temperature
  prcp real, -- precipitation
  date date
  );
  你可以在 psql 里连换行符一起键入这些东西. psql 可以识别该命令直到分号才结束.
  
  你可以在 SQL 命令中自由使用空白(也就是空格,tab,和换行符). 这就意味着你可以用和上面不同的对齐方式键入命令. 两个划线("--") 引入注释. 任何跟在它后面的东西直到该行的结尾都被忽略. SQL 是对关键字和标识符大小写不敏感的语言,只有在标识符用双引号引起时才能保留它们的大小写属性(上面没有这么干).
  
  varchar(80) 声明一个可以存储最长 80 个字符的 任意字符串的数据类型.int 是普通的整数类型. real 是一种用于存储单精度浮点数的类型. date 类型应该可以自解释.(没错,类型为 date 的字段名字也是 date.这么做可能比较方便,也可能容易让人混淆 -- 你自己看啦.)
  
  PostgresSQL 支持通常的 SQL 类型 int,smallint, real,double precision, char(N), varchar(N),date, time,timestamp 和 interval,还支持其他的通用类型和丰富的几何类型. PostgreSQL 客户化 为定制任意的用户定义的数据类型.因而类型名并不是语法关键字, 除了 SQL92 标准要求支持的特例外.
  
  第二隔例子将保存城市和它们相关的地理位置∶
  
  CREATE TABLE cities (
  name varchar(80),
  location point
  );
  
  类型 point 就是一种 PostgreSQL 特有数据类型的例子.
  
  最后,我们还要提到如果你不再需要某个表,或者你想创建一个不同的 表,那么你可以用下面的命令删除它∶
  
  DROP TABLE tablename;
  
  2.4. 向表中添加行
  
  INSERT 用于向表中添加行∶
  
  INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
  
  请注意所有数据类型都使用了相当明了的输入格式. 那些不是简单数字值的常量必需用单引号(')包围, 就象在例子里一样. date 字段实际上对可接收的格式相当灵活, 不过在本教程里,我们应该坚持使用这里显示的格式.
  
  point 类型要求一个座标对作为输入,如下∶
  
  INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)');
  
  到目前为止使用的语法要求你记住字段的顺序.一个可选的 语法允许你明确地列出字段∶
  
  INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
  VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');
  
  如果你需要,你可以用另外一个顺序列出字段或者是忽略某些字段, 也就是说,以未知的顺序∶
  
  INSERT INTO weather (date, city, temp_hi, temp_lo)
  VALUES ('1994-11-29', 'Hayward', 54, 37);
  
  许多开发人员认为明确列出字段要比依赖隐含的顺序是更好的风格.
  
  请输入上面显示的所由命令,这样你在随后的各节中才有可用的数据.
  
  你还可以使用 COPY 从文本文件中装载大量 数据.这么干通常更快,因为 COPY 命令就是为 这类应用优化的,同时还有比 INSERT 少一些的 灵活性.比如∶
  
  COPY weather FROM '/home/user/weather.txt';
  
  这里源文件的文件名必须是后端服务器可访问的, 而不是客户端可访问的,因为后端服务器直接读取文件.你可以在 参考手册中读到更多有关 COPY 命令的信息.
  
  2.5. 查询一个

[1] [2] 下一页


  • 上一个数据库:
  • 下一个数据库:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    bet365 传世私服 传奇世界私服 bet365 传奇私服 bet365 热血江湖私服 天龙八部私服