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;