快速业务通道

SQL大全[1]

作者 佚名技术 来源 数据库编程 浏览 发布时间 2012-03-22
表的定义.
ADD COLUMN形式使用与 CREATE TABLE一样的语法向表中增加一个新列/字段。
ALTER COLUMN SET/DROP DEFAULT形式允许你从列/字段中设置或者删除缺省(值)。 注意缺省(值)只适用于随后的 INSERT 命令。 它们不会改变已经存在于表中的行.
ALTER COLUMN SET STATISTICS形式允许你为 随后的 ANALYZE 操作 设置收集统计信息的对象.
RENAME 子句可以在不影响任何相关数据的情况下更改 一个表,字段,索引或者序列名称。因此, 在此命令执行后数据仍将是相同尺寸和类型。
ADD table constraint definition子句使用与 CREATE TABLE一样的语法向表中增加一个新的约束。
DROP CONSTRAINT constraint子句删除所有表上匹配 constraint 的 CHECK 约束(以及其子表)
OWNER 把该表的所有者改为用户 new user.
如果要改变表的纲要,你必须是表的所有者.
注意
COLUMN 关键字是多余的,可以省略.
在目前的 ADD COLUMN实现里还不支持 新列/字段的缺省(值)和 NOT NULL 子句。不过你可以随后用 ALTER TABLE 的 SET DEFAULT 形式设置缺省(值)。(你可能还想用 UPDATE 把已存在行更新为缺省值。)
目前只有 CHECK 约束可以从表中删除.RESTRICT 关键字是必须的,尽管 并不检查依赖性.还不支持 CASCADE 选项.要删除一个 PRIMARY 或者 UNIQUE 约束,用 DROP INDEX 命令删除相关的索引. 要删除 FOREIGN KEY 约束,你需要重新创建并重新装载该表, 创建的时候使用 CREATE TABLE命令的其它参数.
比如,要删除在表 distributors 上的所有约束∶
CREATE TABLE temp AS SELECT * FROM distributors;
DROP TABLE distributors;
CREATE TABLE distributors AS SELECT * FROM temp;
DROP TABLE temp;
    
要修改表的结构,你必须是表的所有人。不允许更改系统表结构的任何部分。 PostgreSQL 用户手册里有关于继承的更多信息.
请参考CREATE TABLE 部分获取更多有效参数的描述.
用法
向表中增加一个 varchar 列:
ALTER TABLE distributors ADD COLUMN address VARCHAR(30);   
对现存列改名:
ALTER TABLE distributors RENAME COLUMN address TO city;   
更改现存表的名字∶
ALTER TABLE distributors RENAME TO suppliers;   
给一个表增加一个检查约束∶
ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5);   
删除一个表和它的所有子表的监查约束∶
ALTER TABLE distributors DROP CONSTRAINT zipchk;   
向表中增加一个外键约束:
ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address) REFERENCES addresses(address) MATCH FULL;   
给表增加一个(多字段)唯一约束∶
ALTER TABLE distributors ADD CONSTRAINT dist_id_zipcode_key UNIQUE (dist_id, zipcode);   
兼容性 SQL92  
ADD COLUMN 形式是兼容的,除了上面说的缺省(值)和 NOT NULL 约束外。 ALTER COLUMN 形式是完全兼容的。
对 ALTER TABLE 声明了一些附加的 PostgreSQL 目前还不直接支持的功能:
ALTER TABLE table DROP [ COLUMN ] column { RESTRICT | CASCADE }
      
从一个表中删除一个列. 目前,要删除一个现存的列,表必须重新创建和重新装载:
CREATE TABLE temp AS SELECT did, city FROM distributors;    
DROP TABLE distributors;
CREATE TABLE distributors (
    did      DECIMAL(3) DEFAULT 1,
  &nb

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号