1、创建数据库

创建数据库mydb:
createdb mydb
删除数据库mydb:
dropdb mydb
登录数据库
psql mydb

2、创建表

CREATE TABLE weather (
    city            varchar(80),
    temp_lo         int,           -- 最低温度
    temp_hi         int,           -- 最高温度
    prcp            real,          -- 湿度
    date            date
);

CREATE TABLE cities (
    name            varchar(80),
    location        point
);

varchar(80)指定了一个可以存储最长 80 个字符的任意字符串的数据类型。
int是普通的整数类型。
real是一种用于存储单精度浮点数的类型。
date类型是时间。
PostgreSQL支持标准的SQL类型。
point就是一种PostgreSQL特有数据类型的例子。

举例:

CREATE TABLE empsalary (
	depname		varchar(80),
	empno		int,
	salary		real
);

--DROP TABLE empsalary;
SELECT * FROM empsalary;

INSERT INTO empsalary (depname,empno,salary)
		 VALUES ('develop',11,5200);
INSERT INTO empsalary (depname,empno,salary)
		 VALUES ('develop',7,4200);		 
INSERT INTO empsalary (depname,empno,salary)
		 VALUES ('develop',9,4500);
INSERT INTO empsalary (depname,empno,salary)
		 VALUES ('develop',8,6000);		 
INSERT INTO empsalary (depname,empno,salary)
		 VALUES ('develop',10,5200);		 
INSERT INTO empsalary (depname,empno,salary)
		 VALUES ('personnel',5,3500);
INSERT INTO empsalary (depname,empno,salary)
		 VALUES ('personnel',2,3900);
INSERT INTO empsalary (depname,empno,salary)
		 VALUES ('sales',3,4800);
INSERT INTO empsalary (depname,empno,salary)
		 VALUES ('sales',1,5000);
INSERT INTO empsalary (depname,empno,salary)
		 VALUES ('sales',4,4800);

在这里插入图片描述

3、删除某张表

DROP TABLE tablename;

4、在表中添加行

INSERT INTO 表名 VALUES ('列1', 列2, 列3, 列4, '列5');

5、查询表

SELECT * FROM weather;
OR
SELECT  列1,列2,列3 FROM weather;

还可以使用表达式

SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;

AS子句是如何给输出列重新命名的

WHERE子句包含一个布尔(真值)表达式,只有那些使布尔表达式为真的行才会被返回

select * from weather where city='Hayward';

求返回的查询结果是排好序的

SELECT * FROM weather
    ORDER BY city;

在查询的结果中消除重复的行

SELECT DISTINCT city
    FROM weather;

6、更新表中的某一行

# UPDATE weather
# SET temp_lo = temp_lo -2,temp_hi = temp_hi-2
# WHERE date > '1994-11-28';
UPDATE 2

7、删除表中某一行数据

DELETE FROM weather WHERE city = 'Hayward';
如果没有一个限制,DELETE将从指定表中删除所有行,把它清空。做这些之前系统不会请求你确认!
DELETE FROM tablename;

更多推荐