操作PostgreSQL的表格

关于PostgreSQL表操作的简要说明。

这次我们会在hoge数据库中创建一个customer表,并插入顾客信息进去。

以下是3位顾客的信息。

IDnameage0001山田太郎290002中村花子-0003佐藤信之91

制作桌子的底座

首先,我们将在hogeDB中创建customer表。
为了使程序在分号之前执行,按照列进行行拆分是一条规则,使其易于阅读。

要将上述表格嵌入到表格中,可使用以下的代码。接下来,逐行解释这段代码。

hoge=# CREATE TABLE Customer
hoge-# (id   char(4)   NOT NULL,
hoge(# name  varchar   NOT NULL,
hoge(# age   INTEGER   ,
hoge(# PRIMARY KEY (id));
CREATE TABLE

创建表的声明(第一行)

首先,在<表名>中创建表的声明。

CREATE TABLE Customer

对于第2至第4行的列设置

因为本次的列是ID、姓名和年龄,所以接下来我会分别对每个列进行简洁明了的一行描述。

作为书写方式,可以使用<列> <类型> <约束>。每个列之间用逗号分隔。

[身份证列]

id被固定为4个字符长度的char型,并且作为主键,所以在约束部分包含了NOT NULL以防止空白。

id   char(4)   NOT NULL,

[姓名栏]

根据可变字符长度的varchar类型指定name,并且不能为空格,所以不能为NULL。

name  varchar  NOT NULL,

【年龄栏】

年龄设置为整数并且没有任何限制(允许为空插入)。

age   INTEGER   ,

设置主键(第5行)

由于关系型数据库的概念被破坏,所以要确保明确指定主键。写法是PRIMARY KEY (<主键>)。

PRIMARY KEY (id)

以上就是桌子底座设置完成了。

确认桌子的底座

可以使用psql的\d命令来确认是否已经创建了刚刚制作的customer表。

hoge=# \d
         List of relations
 Schema |   Name   | Type  |    Owner   
--------+----------+-------+-------------
 public | customer | table | sf213471118
(1 row)

在桌子上插入记录

插入唱片有两种方法。

如果要指定列名进行插入的话

如果有空白的部分或者需要改变顺序,这会更加方便。
年龄栏未填写的这条记录可以这样描述。

hoge=# INSERT INTO Customer(id, name)
VALUES('0002','中村花子');
INSERT 0 1

如果进行相应的处理,交换顺序也没问题。

hoge=# INSERT INTO Customer(name, id)
VALUES('加藤里子',`8888`);

如果省略列名插入的话

当想要插入所有的值时,这是很方便的。
虽然这样更轻松,但必须按顺序逐个进行赋值。

hoge=# INSERT INTO Customer VALUES('0003','佐藤信之',91);
INSERT 0 1

查看桌子里面的内容

由于已经插入了所有客户记录,因此可以使用SQL语句进行确认。
使用SELECT FROM

;就可以了。这次我们想要查看列表,所以将column设为*。hoge=# SELECT * FROM Customer;
id | name | age
------+----------+-----
0001 | 山田太郎 | 29
0002 | 中村花子 |
0003 | 佐藤信之 | 91
(3 rows)
更新表格记录以下是插入记录的示例:

如果想要进行此类更改

以以下方式描述。UPDATE <Table name> SET <column> = 'xxxxx' WHERE <Primary Key> ='vvvv';
首先,将中村花子更改为坂井花子。hoge=# UPDATE Staff SET name = '坂井花子' WHERE id ='0002';
UPDATE 1
有关此事已得到更新。同样,将age的值从NULL更改为49试一试。hoge=# UPDATE Staff SET age = 49 WHERE id ='0002';
UPDATE 1
在这一系列的过程中,我们先初步确认一下这张桌子。hoge=# SELECT * FROM Customer;
id | name | age
------+----------+-----
0001 | 山田太郎 | 29
0003 | 佐藤信之 | 91
0002 | 坂井花子 | 49
已完成以上任务。注意事项如果使用UPDATE时不指定WHERE = ‘vvvv’,则会导致列中的所有内容都被更改。试验案例:hoge=# UPDATE Staff SET age = 49;
实施结果:hoge=# SELECT * FROM Customer;
id | name | age
------+----------+-----
0001 | 山田太郎 | 49
0003 | 佐藤信之 | 49
0002 | 坂井花子 | 49
尽管将整个记录的列设置为相同的值似乎很方便,但似乎不会被使用。删除数据删除数据有两种方式,一种是删除指定的记录,另一种是删除全部行。使用DELETE命令可以进行数据删除操作。DELETE FROM <Table name> WHERE <Primary Key> = 'vvvv';
实际上删除以下记录

hoge=# DELETE FROM Customer WHERE id='0003';
DELETE 1
hoge=# SELECT * FROM Customer;
id | name | age
------+----------+-----
0001 | 山田太郎 | 29
0002 | 坂井花子 | 49
(2 rows)
我能确认它已经被彻底删除了。【注意事项】和UPDATE类似,当使用DELETE时,如果不使用WHERE = ‘vvvv’进行指定,将会删除所有记录(导致表变为空)。删除表格如果要删除表本身,请使用DROP TABLE命令。DROP TABLE <Table name>;
我們試著刪除這個Customer表。現在的表格內容如下:hoge=# \d
List of relations
Schema | Name | Type | Owner
--------+----------+-------+-------------
public | customer | table | sf213471118
(1 row)
在这个状态下删除表。hoge=# DROP TABLE Customer;
DROP TABLE
可以尝试确认是否已被\d删除。hoge=# \d
Did not find any relations.
能够确认已经彻底删除了。

ID name age
0002 中村花子
ID name age
0002 坂井花子 49
ID name age
0003 佐藤信之 91
广告
将在 10 秒后关闭
bannerAds