SQL 语言
注意大小写PGSQL帮助
\h
退出
\q
1.数据的创建和删除
新建一个数据表test,使用者为test,设置UTF8
CREATE DATABASE test WITH OWNER test ENCODING = 'UTF8';
删除一个数据库test
DROP DATABASE test;
2.创建数据表和数据
创建一个数据表weather,-- 符号为注释
Postgres SQL 支持标准的 SQL 类型:int, smallint, real, double precision, char(N), varchar(N), date, time, timestamp, interval ;
real 是一种用于存储单精度浮点数的类型;
CREATE TABLE weather (
city varchar(80),
temp_lo int, -- 最低气温
temp_hi int, -- 最高气温
prcp real, -- 降水量
date date
);
CREATE TABLE cities ( --保存城市和它们相关的地理位置
name varchar(80),
location point
);
point 类型就是一种 PostgreSQL 特有的数据类型的例子。
3.向表中添加行
INSERT 语句用于向表中添加行:
INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');
point 类型要求一个座标对作为输入,如下:
INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)');
到目前为止使用的语法要求你记住字段的顺序。一个可选的语法允许你明确地列出字段:
INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');
4.查询一个表
查表: SELECT * FROM weather;
运算: SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;
WHERE:SELECT * FROM weatherWHERE city = 'San Francisco' AND prcp > 0.0;
排序: SELECT * FROM weather ORDER BY city;
除重复: SELECT DISTINCT cityFROM weather;
5.在表之间连接
SELECT city, temp_lo, temp_hi, prcp, date, locationFROM weather, citiesWHERE city = name;
SELECT weather.city, weather.temp_lo, weather.temp_hi, weather.prcp, weather.date, cities.location FROM weather, cities WHERE cities.name = weather.city;
左连接:SELECT * FROM weather LEFT OUTER JOIN cities ON (weather.city = cities.name);
自连接:SELECT W1.city, W1.temp_lo AS low, W1.temp_hi AS high,
W2.city, W2.temp_lo AS low, W2.temp_hi AS high
FROM weather W1, weather W2
WHERE W1.temp_lo < W2.temp_lo
AND W1.temp_hi > W2.temp_hi;
6.聚集函数
MAX: SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);
GROUP BY :SELECT city, max(temp_lo)FROM weatherGROUP BY city;
HAVING : SELECT city, max(temp_lo)FROM weather GROUP BY cityHAVING max(temp_lo) < 40;
7.更新,删除
UPDATE weather
SET temp_hi = temp_hi - 2,temp_lo = temp_lo - 2
WHERE date > '1994-11-28';
DELETE FROM weather WHERE city = 'Hayward';
页:
[1]