声明:本PostgreSQl实用指南系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载
SQL方式查看表结构(表名是student)
mydb=# SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a
.atttypmod AS lengthvar,a.attnotnull AS notnull
mydb-# FROM pg_class c,pg_attribute a,pg_type t
mydb-# WHERE c.relname = 'student' and a.attnum > 0 and a.attrelid = c.oid and a
.atttypid = t.oid
mydb-# ORDER BY a.attnum;
attnum | field | type | length | lengthvar | notnull
--------+-------+---------+--------+-----------+---------
1 | name | varchar | -1 | 24 | f
2 | age | int4 | 4 | -1 | f
3 | city | int4 | 4 | -1 | f
(3 rows)
命令方式
mydb=# \d student
Table "public.student"
Column | Type | Modifiers
--------+-----------------------+-----------
name | character varying(20) |
age | integer |
city | integer |
修改表结构
mydb=# alter table student add sex int;
ALTER TABLE
mydb=# \d student;
Table "public.student"
Column | Type | Modifiers
--------+-----------------------+-----------
name | character varying(20) |
age | integer |
city | integer |
sex | integer |
mydb=# alter table student alter sex type varchar(5);
ALTER TABLE
mydb=# select * from citys
mydb-# ;
name | id
------+----
长沙 | 1
湛江 | 2
上海 | 3
(3 rows)
mydb=# select * from student;
name | age | city | sex
------------+-----+------+-----
deepfuture | 20 | 1 |
未来 | 20 | 2 |
张三 | 21 | 1 |
(3 rows)
增加主键
mydb=# alter table citys add primary key (id);
NOTICE: ALTER TABLE / ADD PRIMARY KEY will create implicit index "citys_pkey" f
or table "citys"
ALTER TABLE
增加外键
mydb=# alter table student add constraint cityfk foreign key (city) references c
itys(id);
ALTER TABLE
增加和修改表记录
mydb=# insert into student values ('王国',18,2);
INSERT 0 1
mydb=# insert into student values ('王国',18,3);
INSERT 0 1
mydb=# update student set name='干哈' where name='王国';
UPDATE
mydb=# update student set name='艾丝凡' where name='干哈' and city=3;
UPDATE 1
mydb=# select * from student;
name | age | city | sex
------------+-----+------+-----
deepfuture | 20 | 1 |
未来 | 20 | 2 |
张三 | 21 | 1 |
干哈 | 18 | 2 |
艾丝凡 | 18 | 3 |
(5 rows)
mydb=# select * from citys;
name | id
------+----
长沙 | 1
湛江 | 2
上海 | 3
(3 rows)
违反外键增加表记录
mydb=# insert into student values('萨芬',19,5);
ERROR: insert or update on table "student" violates foreign key constraint "cit
yfk"
DETAIL: Key (city)=(5) is not present in table "citys".
STATEMENT: insert into student values('萨芬',19,5);
ERROR: insert or update on table "student" violates foreign key constraint "cit
yfk"
DETAIL: Key (city)=(5) is not present in table "citys".
在外键允许下增加表记录
mydb=# insert into student values('萨芬',19,3);
INSERT 0 1
mydb=#
分享到:
相关推荐
在PostgreSQL中,可以定义各种表结构,包括主键、外键、唯一性约束等。它支持丰富的数据类型,如整数、浮点数、字符串、日期时间、数组、JSON等。PostgreSQL还允许自定义数据类型,提供强大的灵活性。 **5. SQL ...
- **创建新表**:“CreatingaNewTable”部分解释了如何使用`CREATE TABLE`语句来定义一个新的表结构。 - **插入数据**:“PopulatingaTableWithRows”部分详细说明了如何使用`INSERT`语句向表中添加记录。 - **...
- **许可协议**:用户可以在没有任何费用的情况下自由地使用、复制、修改和分发 PostgreSQL 软件及其文档,前提是必须在所有副本中保留上述版权声明以及以下两段免责声明。 #### 二、历史沿革 - **Berkeley ...
PostgreSQL 9.2还介绍了SQL语言中的一些高级特性,例如视图(Views)、外键(Foreign Keys)、事务处理(Transactions)、窗口函数(Window Functions)和继承(Inheritance)。视图是数据库中一种特殊的虚拟表,...
- 使用 `CREATE TABLE` 命令来定义新的表结构。 - 示例:`CREATE TABLE employees (id INT, name VARCHAR(50));`。 - **插入数据**: - 使用 `INSERT INTO` 命令向表中添加新记录。 - 示例:`INSERT INTO ...
- **表的创建(2.3 节)**:使用 `CREATE TABLE` 语句定义数据表结构。 - **数据插入(2.4 节)**:使用 `INSERT` 语句向表中添加数据。 - **数据查询(2.5 节)**:利用 `SELECT` 语句检索数据。 - **表间联接...
- **2.3 创建新表**:展示了如何通过 SQL 命令创建表。 - **2.4 向表添加行**:指导如何向已有的表中插入数据。 - **2.5 查询表**:讲解了查询表中的数据的方法。 - **2.6 表之间的连接**:介绍了如何使用 JOIN ...
- **前言**:介绍了 PostgreSQL 的背景信息和文档的结构。 - **目录**:包括前言、PostgreSQL 是什么、简短的历史介绍、约定、更多信息来源、错误报告指南等内容。 3. **教程** - **开始使用** - **安装**:...
### PostgreSQL 9.6.0 中文手册概览与核心知识...以上是 PostgreSQL 9.6.0 中文手册的部分核心知识点摘要,这些知识点覆盖了 PostgreSQL 的基础知识、SQL 语言的基本和高级用法,对于学习和掌握 PostgreSQL 至关重要。
- **创建新表**:通过具体的 SQL 命令演示如何定义表结构。 - **填充表数据**:讲解了如何插入数据到表中,包括单条记录和批量插入。 - **查询数据**:展示了如何编写 SQL 查询语句来检索表中的数据。 - **表间连接*...
PostgreSQL是一款流行的开源对象关系数据库系统(ORDBMS),它使用SQL作为查询语言,并且支持复杂查询、外键、触发器、视图和事务完整性等功能。PostgreSQL的文档手册是学习和参考该数据库系统的重要资源。以下内容...
- **创建表**: 使用CREATE TABLE语句定义表结构,并插入数据。 **详细解释**: 1. **SQL语言简介**: - SQL语言是关系型数据库的标准语言,用于查询、更新和管理数据。 - PostgreSQL支持标准的SQL语法,同时也包含...
- **表的创建**:指导用户如何创建一个新的表结构。 - **数据插入**:演示如何向表中添加数据记录。 - **数据查询**:教授如何编写 SELECT 语句来检索数据。 - **表间连接**:展示了如何使用 JOIN 语句来合并多...
- **数据更新与删除**:介绍如何修改和删除表中的数据。 - **高级特性**: - **视图**:解释视图的概念及其创建和使用方法。 - **外键**:介绍如何定义和使用外键约束来维护数据完整性。 - **事务处理**:讨论...
例如,命令和关键字通常用特定的字体表示,示例代码则会用另一种不同的格式展示等。 #### 四、获取更多信息 PostgreSQL 官方提供了多种途径来获取更多关于该数据库的信息,包括但不限于在线文档、邮件列表、社区...
整体来看,PostgreSQL官方文档为使用者提供了一个全面的入门和进阶指南,它不仅仅覆盖了数据库的安装和基础使用,还深入讲解了SQL语言和PostgreSQL的高级特性。对于那些希望学习和使用PostgreSQL的用户来说,这本...
- **创建PostgreSQL兼容的数据模型**:根据SQL Server的表结构,调整Entity Framework的数据模型,使其符合PostgreSQL的数据类型和约束要求。 - **转换SQL脚本**:可以使用自动化工具或手动编写脚本来转换DDL...
在IT行业中,数据库是存储和管理数据的核心工具,而数据库表结构则是数据组织的基础。有时候,我们可能需要对比两个数据库的表结构差异,比如在升级系统、迁移数据或进行数据库同步时。本篇将深入探讨如何自动对比两...
PostgreSQL是一款开源的关系数据库管理系统,它实现了SQL标准并提供了许多现代特性。PostgreSQL版本9.4是该数据库管理系统的一个...同时,文档也鼓励社区参与,通过报告bug和贡献代码的方式来推动PostgreSQL的发展。