postgreSQL教程目录
-
-
-
-
-
- [postgreSQL 创建数据库的方式:](#postgreSQL 创建数据库的方式:)
- postgreSQL删除数据库的方式:
- [PostgreSQL 创建表格](#PostgreSQL 创建表格)
- postgre删除表格:
- [postgreSQL INSERT INTO 语句](#postgreSQL INSERT INTO 语句)
- [postgreSQL SELECT 语句:](#postgreSQL SELECT 语句:)
- postgresql索引:
- 什么情况下要避免使用索引?
-
-
-
-
postgreSQL 创建数据库的方式:
-
使用CREATE DATABASE 语句来创建:
CREATE DATABASE dbname;
-
使用createdb 命令来创建:
createdb是一个SQL命令 CREATE DATABASE的封装。
createdb命令语法格式为:
create [option...] [dbname [description]]
参数说明:
dbname:要创建的数据库名。
description:关于新创建的数据库相关的说明。
options:参数可选项接下来我们打开一个命令窗口,进入到 PostgreSQL 的安装目录,并进入到 bin 目录,createdb 命令位于 PostgreSQL安装目录/bin 下,执行创建数据库的命令:
$ cd /Library/PostgreSQL/11/bin/
$ createdb -h localhost -p 5432 -U postgres runoobdb
password ****** -
使用pgAdmin工具
postgreSQL删除数据库的方式:
-
使用 DROP DATABASE SQL 语句来删除。
DROP DATABASE 删除数据库:
DROP DATABASE 会删除数据库的系统目录项并且删除包含数据的文件目录。
DROP DATABASE 只能由超级管理员或数据库拥有者执行。
DROP DATABASE 命令需要在 PostgreSQL 命令窗口来执行,语法格式如下:
DROP DATABASE [ IF EXISTS ] name
eg:删除一个 runoobdb 的数据库:
postgres=# DROP DATABASE runoobdb; -
使用 dropdb 命令来删除。
dropdb 是 DROP DATABASE 的包装器。
dropdb 用于删除 PostgreSQL 数据库。
dropdb 命令只能由超级管理员或数据库拥有者执行。dropdb 命令语法格式如下:
dropdb [connection-option...] [option...] dbname
eg: 接下来我们打开一个命令窗口,进入到 PostgreSQL 的安装目录,并进入到 bin 目录,dropdb 名位于 PostgreSQL安装目录/bin 下,执行删除数据库的命令:$ cd /Library/PostgreSQL/11/bin/
$ dropdb -h localhost -p 5432 -U postgres runoobdb
password ******
3、使用 pgAdmin 工具
-
postgreSQL 选择创建的数据库:
- \l :用于查看已经存在的数据库。
- \c 数据库名来进入数据库
PostgreSQL 创建表格
CREATE TABLE 语法格式如下:
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( 一个或多个列 )
);
eg:以下创建了一个表,表名为 COMPANY 表格,主键为 ID,NOT NULL 表示字段不允许包含 NULL 值:
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
可使用 \d 命令来查看表格是否创建成功,
可使用 \d tablename 命令查看表格信息,
postgre删除表格:
-
DROP TABLE 语法格式如下:
DROP TABLE table_name;
postgreSQL INSERT INTO 语句
INSERT INTO 语句语法格式如下:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
在使用 INSERT INTO 语句时,字段列必须和数据值数量相同,且顺序也要对应。
如果我们向表中的所有字段插入值,则可以不需要指定字段,只需要指定插入的值即可:
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
postgreSQL SELECT 语句:
SELECT column1, column2,...columnN FROM table_name;
postgresql索引:
创建索引的语法:
CREATE INDEX index_name ON table_name;
- 索引类型:
-
单列索引:只基于表的一个列上创建的索引;
基本语法:
CREATE INDEX index_name ON table_name (column_name); -
组合索引:基于表的多列上创建的索引
基本语法:
CREATE INDEX index_name ON table_name (column1_name1,column_name2);注意:不管是单列索引还是组合索引,该索引必须是在 WHERE 子句的过滤条件中使用非常频繁的列。
如果只有一列被使用到,就选择单列索引,如果有多列就使用组合索引。 -
唯一索引:使用唯一索引不仅是为了性能,同时也为了数据的完整性。唯一索引不允许任何重复的值插入到表中。
基本语法:
CREATE UNIQUE INDEX index_name on table_name (column_name); -
局部索引:表的子集上构建的索引;子集由一个条件表达式上定义。索引只包含满足条件的行。
基本语法:
CREATE INDEX index_name on table_name (conditional_expression); -
隐式索引:在创建对象时,由数据库服务器自动创建的索引。索引自动创建为主键约束和唯一约束。
-
删除索引:DROP INDEX (删除索引)
一个索引可以使用 PostgreSQL 的 DROP 命令删除。
DROP INDEX index_name;
什么情况下要避免使用索引?
虽然索引的目的在于提高数据库的性能,使用索引时,需要考虑下列准则:
* 索引不应该使用在较小的表上。
* 索引不应该使用在有频繁的大批量的更新或插入操作的表上。
* 索引不应该使用在含有大量的 NULL 值的列上。
* 索引不应该使用在频繁操作的列上。