postgresql教程

postgreSQL教程目录

postgreSQL 创建数据库的方式:
  1. 使用CREATE DATABASE 语句来创建:

    CREATE DATABASE dbname;

  2. 使用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 ******

  3. 使用pgAdmin工具

postgreSQL删除数据库的方式:
  1. 使用 DROP DATABASE SQL 语句来删除。

    DROP DATABASE 删除数据库:

    DROP DATABASE 会删除数据库的系统目录项并且删除包含数据的文件目录。
    DROP DATABASE 只能由超级管理员或数据库拥有者执行。
    DROP DATABASE 命令需要在 PostgreSQL 命令窗口来执行,语法格式如下:
    DROP DATABASE [ IF EXISTS ] name
    eg:删除一个 runoobdb 的数据库:
    postgres=# DROP DATABASE runoobdb;

  2. 使用 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 选择创建的数据库:

    1. \l :用于查看已经存在的数据库。
    2. \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删除表格:
  1. 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;
  • 索引类型:
  1. 单列索引:只基于表的一个列上创建的索引;

    基本语法:
    CREATE INDEX index_name ON table_name (column_name);

  2. 组合索引:基于表的多列上创建的索引

    基本语法:
    CREATE INDEX index_name ON table_name (column1_name1,column_name2);

    注意:不管是单列索引还是组合索引,该索引必须是在 WHERE 子句的过滤条件中使用非常频繁的列。
    如果只有一列被使用到,就选择单列索引,如果有多列就使用组合索引。

  3. 唯一索引:使用唯一索引不仅是为了性能,同时也为了数据的完整性。唯一索引不允许任何重复的值插入到表中。

    基本语法:
    CREATE UNIQUE INDEX index_name on table_name (column_name);

  4. 局部索引:表的子集上构建的索引;子集由一个条件表达式上定义。索引只包含满足条件的行。

    基本语法:
    CREATE INDEX index_name on table_name (conditional_expression);

  5. 隐式索引:在创建对象时,由数据库服务器自动创建的索引。索引自动创建为主键约束和唯一约束。

  • 删除索引:DROP INDEX (删除索引)

    一个索引可以使用 PostgreSQL 的 DROP 命令删除。
    DROP INDEX index_name;

什么情况下要避免使用索引?
复制代码
虽然索引的目的在于提高数据库的性能,使用索引时,需要考虑下列准则:

* 索引不应该使用在较小的表上。
* 索引不应该使用在有频繁的大批量的更新或插入操作的表上。
* 索引不应该使用在含有大量的 NULL 值的列上。
* 索引不应该使用在频繁操作的列上。
相关推荐
longlong int2 小时前
【每日算法】Day 16-1:跳表(Skip List)——Redis有序集合的核心实现原理(C++手写实现)
数据库·c++·redis·算法·缓存
baobao17676408302 小时前
Mysql 数据库编程技术01
数据库·mysql·oracle
一 乐2 小时前
实验室预约|实验室预约小程序|基于Java+vue微信小程序的实验室预约管理系统设计与实现(源码+数据库+文档)
java·数据库·微信小程序·小程序·毕业设计·论文·实验室预约小程序
极限实验室2 小时前
INFINI Labs 产品更新 | Coco AI 0.3 发布 – 新增支持 Widget 外部站点集成
数据库·搜索引擎
我科绝伦(Huanhuan Zhou)2 小时前
MySQL数据库如何在线修改表结构及字段类型?
数据库·mysql
独行soc2 小时前
2025年渗透测试面试题总结- 某四字大厂面试复盘扩展 一面(题目+回答)
java·数据库·python·安全·面试·职场和发展·汽车
rockmelodies3 小时前
【MongoDB + 向量搜索引擎】MongoDB Atlas 向量搜索 提供全托管解决方案
数据库·mongodb·搜索引擎
西元.4 小时前
详解 Redis repl_backlog_buffer(如何判断增量同步)
数据库·redis·缓存
老华带你飞5 小时前
木里风景文化|基于Java+vue的木里风景文化管理平台的设计与实现(源码+数据库+文档)
java·数据库·vue.js·毕业设计·论文·风景·木里风景文化管理平台
睡睡怪5 小时前
Mysql入门
数据库·mysql·oracle