代码改变世界

PostgreSQL 表的创建、删除、更新

2022-04-05 15:32  jym蒟蒻  阅读(301)  评论(0编辑  收藏  举报

psql工具

psql工具,可通过命令行执行SQL语句。

D:\program files\PostgreSQL\14\bin>psql -U postgres
用户 postgres 的口令:
psql (14.2)
输入 "help" 来获取帮助信息.

postgres=#

创建数据库

创建表之前,先创建存储表的数据库。

CREATE DATABASE <数据库名称>;

CREATE DATABASE shop;

创建表

一个数据库中,表的名字不能重复。

一个表中,列的名字也不能重复。

格式如下。

CREATE TABLE <表名>
(<列名1> <数据类型> <该列的约束>,
<列名2> <数据类型> <该列的约束>,
...
<该表的约束1>,<该表的约束2>,...)

数据类型

所有的列,都必须指定数据类型,如数字型、字符型、日期型。

INTEGER型,存储整数类型,不能存小数。

CHAR型,存储字符串类型。表中存储的字符串,区分大小写。字符串以定长字符串形式存储,CHAR(5)输入‘abc’,以‘abc ’(补两个空格)形式保存;输入‘abcdef’,保存的是‘abcde’。

VARCHAR型,存储字符串类型。字符串以可变长字符串形式存储。如果字符数没达到最大长度,不会补空格。

DATA型,存储日期。

约束

NOT NULL约束,该列必须输入数据。

主键约束:

主键primary key,可以唯一确定一行数据的列。

下面这句话,把product_id列设为主键,如果向product_id列中,输入重复数据,就无法取出唯一的数据。所以,主键约束下,这一列的数据不能重复。

PRIMARY KEY (product_id));
CREATE TABLE Product
(product_id      CHAR(4)      NOT NULL,
 product_name    VARCHAR(100) NOT NULL,
 product_type    VARCHAR(32)  NOT NULL,
 sale_price      INTEGER ,
 purchase_price  INTEGER ,
 regist_date     DATE ,
 PRIMARY KEY (product_id));

删除表

DROP TABLE <表名>;
DROP TABLE Product;

更新表

添加列:

ALTER TABLE <表名> ADD COLUMN <列的定义>;

ALTER TABLE Product ADD COLUMN product_name_pinyin VARCHAR(100);

删除列:

ALTER TABLE <表名> DROP COLUMN <列名>;

ALTER TABLE Product DROP COLUMN product_name_pinyin;

向表中插入数据

BEGIN TRANSACTION;开始插入行。

COMMIT;确定插入行。

BEGIN TRANSACTION;
INSERT INTO Product VALUES ('0001', 'T恤' ,'衣服', 1000, 500, '2222-02-22');
INSERT INTO Product VALUES ('0002', '钢笔', '办公用品', 500, 320, '2222-02-22');
INSERT INTO Product VALUES ('0003', '裤子', '衣服', 4000, 2800, NULL);
INSERT INTO Product VALUES ('0004', '筷子', '厨房用具', 3000, 2800, '2222-02-22');
INSERT INTO Product VALUES ('0005', '锅', '厨房用具', 6800, 5000, '2222-06-22');
INSERT INTO Product VALUES ('0006', '勺子', '厨房用具', 500, NULL, '2222-06-22');
INSERT INTO Product VALUES ('0007', '盆', '厨房用具', 880, 790, '2222-02-22');
INSERT INTO Product VALUES ('0008', '水笔', '办公用品', 100, NULL, '2222-06-22');
COMMIT;

在这里插入图片描述