PostgreSQL数据表的基本操作

创建数据表

CREATE TABLE 表名 (
	字段名1 数据类型 [列级别约束条件] [默认值],
	字段名1 数据类型 [列级别约束条件] [默认值],
	......
	[表级别约束条件];
一.使用主键约束

主键是表中一列或多列的组合。
主键约束要求主键列的数据唯一,并且不允许为空。主键能够唯一标识表中的一条记录,可以结合外键来表示不同数据表之间的关系,并且可以加快数据库查询的速度。

1.单字段主键
在定义列时指定主键:
字段名 数据类型 PRIMARY KEY

在定义完所有列后指定主键:
[CONSTRAINT 约束名] PRIMARY KEY (字段名)
2.多字段联合主键
在定义完所有列后指定:
PRIMARY KEY (字段1,字段2...,字段n)
3.使用外键约束

外键用来在两个表之间建立链接,可以是一列或多列。一个表可以有一个或多个外键。外键对应的是参照完整性,可以为空值,若不为空值时,则每一个外键必须等于对应表中主键的某个值。关联字段的数据类型要相同。
外键的主要作用是保证数据引用的完整性。

字段名 数据类型 references 主表名(主键列);

在定义完字段后:
 [CONSTRAINT 约束名] FOREIGN KEY (字段1,...) REFERENCES 主表名(主键列1,...)
4.使用非空约束

非空约束指字段的值不能为空。

字段名 数据类型 not null,
5.使用唯一性约束

唯一性约束指字段的值唯一。允许为空,但只能出现一个空值。

字段名 数据类型 unique

或者在定义完所有列后指定:
[constraint 约束名] unique(字段名1,...)
6.使用默认值约束

如果插入一条新的记录时没有为这个字段赋值,那么系统就会自动为这个字段赋值。

字段名 数据类型 DEFAULT 默认值
二.修改数据表
1.修改表名
alter table 旧表名 rename to 新表名;
2.修改字段的数据类型
alter table 表名 alter column 字段名 type 数据类型
3.修改字段名
alter table 表名 rename 旧字段名 to 新字段名;
4.添加字段
alter table 表名 add column 新字段名 数据类型 [约束];
5.删除字段
alter table 表名 drop 字段名;
6.删除表的外键约束

这对除了非空约束之外所有的约束类型都一样有效。

删除约束必须知道约束名称,已经知道名称来删除约束很简单,如果不知道名称,则需要找到系统生成的名称,使用 \d 表名 可以找到这些信息。

alter table 表名 drop constraint 外键约束名;

移除非空约束,由于非空约束没有名称,因此不能使用上面的方法。
alter table table_name alter column ID drop not null;

三.删除数据表
1.删除没有被关联的表
drop table [if exists]1,...;
2.删除被其他表关联的主表

要先删除两表之间的外键关联约束,再执行删除操作。

四.新特性:新增带默认值的字段不再重写数据表
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。 PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。 事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。 本课程作为PostgreSQL数据库管理二,主要讲解以下内容:1.     PostgreSQL中的子查询2.     PostgreSQL公共表表达式3.     PostgreSQL数据的修改4.     PostgreSQL中的事务5.     PostgreSQL数据导入和导出6.     PostgreSQL数据库的管理7.     PostgreSQL表的管理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值