PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。
PostgreSQL(也称为Post-gress-Q-L
)由PostgreSQL全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。 它是开源的,其源代码是免费提供的。
PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,FreeBSD,OS X,Solaris和Microsoft Windows等。
有一些开放源码以及付费工具可用作PostgreSQL的前端工具。 这里列出几个被广泛使用的工具:
psql:
它是一个命令行工具,也是管理PostgreSQL的主要工具。 pgAdmin
是PostgreSQL的免费开源图形用户界面管理工具。
phpPgAdmin:
它是用PHP编写的PostgreSQL的基于Web的管理工具。 它基于phpMyAdmin工具管理MySQL功能来开发。它可以用作PostgreSQL的前端工具。
pgFouine:
它是一个日志分析器,可以从PostgreSQL日志文件创建报告。 专有工具有Lightning Admin for PostgreSQL, Borland Kylix, DBOne, DBTools Manager PgManager, Rekall, Data Architect, SyBase Power Designer, Microsoft Access, eRWin, DeZign for Databases, PGExplorer, Case Studio 2, pgEdit, RazorSQL, MicroOLAP Database Designer, Aqua Data Studio, Tuples, EMS Database Management Tools for PostgreSQL, Navicat, SQL Maestro Group products for PostgreSQL, Datanamic DataDiff for PostgreSQL, Datanamic SchemaDiff for PostgreSQL, DB MultiRun PostgreSQL Edition, SQLPro, SQL Image Viewer, SQL Data Sets 等等。
psql [-h 127.0.0.1] -U username -d dbname
,输入密码后进入psql环境\c dbname [username] [serverlP] [port]
\?
\l
或\list
\c dbname
\d
\d tablename
\d+ tablename
\q
createdb [-h 127.0.0.1] -U postgres -e examdb_my
dropdb my_exam_db -U postgres -h 127.0.0.1
CREATE DATABASE database_name;
\l
drop database database_name;
创建表实例
CREATE TABLE public.student
(
id integer NOT NULL,
name character(100),
subjects character(1),
CONSTRAINT student_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.student
OWNER TO postgres;
COMMENT ON TABLE public.student
IS '这是一个学生信息表';
删除表
drop table student;
CREATE SCHEMA
语句用于创建模式。 模式不能嵌套
CREATE SCHEMA myschema;
DROP SCHEMA myschema;
插入数据
格式
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
实例
INSERT INTO student(id, name, subjects)
VALUES
(1, 'Jack', 'S'),
(2, 'Sam', 'S'),
(3, 'Susan', 'S'),
(4, 'Lucy', 'S'),
(5, 'Tom', 'S');
查询数据
格式
SELECT "column1", "column2".."column" FROM "table_name";
实例
SELECT * FROM "table_name"; #查询所有表中内容
SELECT id,name FROM student;#查看id和name的内容
更新数据
格式
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
实例
UPDATE student
SET name='汪喆'
WHERE id=1;
删除数据
格式
DELETE FROM table_name
WHERE [condition];
实例
DELETE FROM student
WHERE id=3;
ORDER BY子句
格式
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
实例
SELECT *
FROM student
ORDER BY id DESC;
GROUP BY子句
格式
SELECT column-list
FROM table_name
WHERE [conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
实例
SELECT count(*)
FROM student
GROUP BY subjects;
Having子句
格式
SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
实例
SELECT count(*) FROM student
GROUP BY name
HAVING count(*)>2;
AND条件
格式
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition]
AND [search_condition];
实例
SELECT * FROM student
WHERE id=1
AND name='汪喆';
OR条件
格式
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition]
OR [search_condition];
实例
SELECT * FROM student
WHERE id=1
OR id=2;
AND&OR条件
格式
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] AND [search_condition]
OR [search_condition];
实例
SELECT * FROM student
WHERE id=1 AND name='汪喆'
OR id=2;
NOT条件
格式
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] NOT [condition];
实例
SELECT * FROM student
WHERE id NOT IN (1,2,3);
LIKE条件
格式
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] LIKE [condition];
实例
SELECT * FROM student
WHERE name LIKE '%m%';
IN条件
格式
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] IN [condition];
实例
SELECT *
FROM student
WHERE name in ('汪喆','Jack','Sam');
NOT IN条件
格式
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] NOT IN [condition];
实例
SELECT *
FROM student
WHERE name NOT IN ('汪喆','Jack','Sam');
BETWEEN条件
格式
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] BETWEEN [condition] AND [condition];
实例
SELECT *
FROM student
WHERE id BETWEEN 1 AND 8;