想熟悉PostgreSQL?这篇就够了

PostgreSQL是自由的对象-关系型数据库服务器,在灵活的BSD风格许可证下发行。它在其他开放源代码数据库系统和专有系统之外,为用户又提供了一种选择。 我们还是建议您使用云数据库进行搭建,省去数据迁移等麻烦操作,数据库详见:https://cloud.tencent.com/product/cdb-overview

在本文中,我们将讨论如何在postgreSQL接口中创建和管理表。您将学习如何正确配置表并使用它们来存储您的信息。

如何在Ubuntu上安装并登录PostgreSQL

我们将在Ubuntu上安装PostgreSQL,但它应该可以在大多数其他发行版的默认存储库中使用。

输入以下要安装的命令:

sudo apt-get update sudo apt-get install postgresql postgresql-contrib

安装后,创建一个新用户来管理我们将要创建的数据库:

sudo adduser postgres_user

登录默认的PostgreSQL用户(称为“postgres”)来创建数据库并将其分配给新用户:

sudo su - postgres PSQL

您将被放入PostgreSQL命令提示符。

创建与您创建的系统用户匹配的新用户。然后创建该用户管理的数据库:

CREATE USER postgres_user密码为' 密码 '; CREATE DATABASE my_postgres_db OWNER postgres_user ;

使用以下命令退出界面:

\q

退出默认的“postgres”用户帐户并使用以下命令登录您创建的用户:

exit sudo su - postgres_user

使用以下命令登录您创建的数据库:

psql my_postgres_db

我们现在准备了解表管理。

PostgreSQL中的表创建语法

我们的数据库还没有任何表格。我们可以此命令为来验证这一点:

\d No relations found.

我们可以通过以下语法来创建新表:

CREATE TABLE new_table_name ( table_column_title TYPE_OF_DATA column_constraints, next_column_title TYPE_OF_DATA column_constraints, table_constraint table_constraint ) INHERITS existing_table_to_inherit_from;

除了先前定义中列出的列之外,还继承现有表中的所有列。括号内的部分分为两部分:列定义和表约束。

PostgreSQL列和表定义

列定义遵循以下语法模式:

column_name data_type (optional_data_length_restriction) column_constraints

列名应该是不言自明的。

PostgreSQL数据类型

数据类型可以是以下任何一种:

布尔型:使用“boolean”或“bool”声明true或false值。

字符值

char:拥有一个字符

char(#):保存#个字符数。将插入空间以填补任何额外的空间。

varchar(#):最多包含#个字符数。

整数值

smallint:-32768和32767之间的整数。

int:-214783648和214783647之间的整数。

serial:自动填充的整数。

浮点值

float(#):浮点数,至少有#个精度点。

real:8字节浮点数

numeric(#,after_dec):拥有#位数的实数,小数点后有after_dec位

日期和时间值

date:存储日期值

time:存储时间值

timestamp:存储日期和时间值

timestamptz:存储包含时区数据的时间戳

interval:存储两个时间戳值之间的差值

几何数据

point:存储一对定义点的坐标

line:存储一组映射出一条线的点

lseg:存储定义线段的数据

box:存储定义矩形的数据

polygon:存储定义任何封闭空间的数据

设备规格

inet:存储IP地址

macaddr:存储设备MAC地址

PostreSQL列和表约束

列定义还可以具有约束,这些约束为列中找到的数据类型提供规则。以下内容可用作数据类型后面的空格分隔值:

NOT NULL:列不能具有空值

UNIQUE:任何记录的列值都不能相同。Null始终被视为唯一值

PRIMARY KEY:上述两个约束的组合。每张表只能使用一次

CHECK:确保列中值的条件为真

REFERENCES:值必须存在于另一个表的列中

在定义列之后,可以声明表范围的约束。表范围的约束可以是UNIQUE,PRIMARY KEY,CHECK或REFERENCES。

如何在PostgreSQL中创建表

我们将创建一个名为“pg_equipment”的表,它定义了各种游乐场设备。输入以下表定义:

CREATE TABLE pg_equipment ( equip_id serial PRIMARY KEY, type varchar (50) NOT NULL, color varchar (25) NOT NULL, location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northeast', 'southeast', 'southwest', 'northwest')), install_date date ); NOTICE: CREATE TABLE will create implicit sequence "pg_equipment_equip_id_seq" for serial column "pg_equipment.equip_id" NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pg_equipment_pkey" for table "pg_equipment" CREATE TABLE

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspwwy.html