PostgreSQL常用SQL

-- 查看已創建的數據庫
SELECT datname FROM pg_database;

-- 創建數據庫
CREATE DATABASE mydb;

-- 刪除數據庫
DROP DATABASE mydb;

-- 查看已創建的用戶
SELECT usename FROM pg_user;

-- 創建用戶並且指定密碼
CREATE USER yuwen WITH PASSWORD 'zdh1234';

-- 創建數據庫並且指定用戶
CREATE DATABASE yuwen WITH ENCODING='utf8' OWNER=yuwen;

-- 查看已創建的表
SELECT tablename FROM pg_tables;

-- 創建表
CREATE TABLE weather (
city varchar(80),
temp_lo int, -- 最低溫度
temp_hi int, -- 最高溫度
prcp real, -- 溼度
date date -- 時間
);

-- 刪除表
DROP TABLE weather;

-- 查詢表數據,返回所有的列
SELECT * FROM weather;
-- 查詢表數據,返回指定的列
SELECT city, date FROM weather;
-- 查詢表數據,添加WHERE查詢指定數據
SELECT * FROM weather WHERE city='San Francisco';

-- 刪除表數據,刪除所有數據
DELETE FROM weather;
-- 添加WHERE刪除指定數據
DELETE FROM weather WHERE city='San Francisco';

-- 方法1:插入一條數據,省略列名
INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '2019-02-02');

-- 方法2:插入一條數據,明確列出所有的列名
INSERT INTO weather (city, temp_lo, temp_hi, prcp, date) VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');
-- 方法2的好處在於,可以任意改變列名的順序,以及忽略某些不是必填的列
INSERT INTO weather (date, city, temp_hi, temp_lo) VALUES ('1994-11-29', 'Hayward', 54, 37);

-- 使用ORDER BY對數據排序,默認排序爲升序ASC
SELECT * FROM weather ORDER BY city;
-- 建議指明排序方式:ASC升序,DESC降序
SELECT * FROM weather ORDER BY city ASC;
SELECT * FROM weather ORDER BY city DESC;
-- 使用多個字段排序,越靠近ORDER BY的字段優先級越高
SELECT * FROM weather ORDER BY city ASC, date DESC;

-- LIMIT語法,限制返回的行數爲1行
SELECT * FROM weather LIMIT 1;
-- 使用offset跳過前1行,返回之後的指定2行
SELECT * FROM weather LIMIT 2 OFFSET 1;
-- 由於數據庫錶行的順序是不可預測的,
-- 因此LIMIT通常配合ORDER BY使用,來控制返回數據順序。
SELECT * FROM weather ORDER BY city LIMIT 1;

-- 使用DISTINCT去掉結果集中的重複行
-- 該distinct子句爲每組重複項保留一行
SELECT DISTINCT city FROM weather;
-- 兩個字段組合用於去掉重複項,查詢結果確保city+date唯一
SELECT DISTINCT city,date FROM weather;

-- 參考文章:
-- PostgreSQL快速入門
-- PostgreSQL教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章