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 值的列上。
* 索引不应该使用在频繁操作的列上。
相关推荐
不羁。。5 小时前
【撸靶笔记】第七关:GET - Dump into outfile - String
数据库·笔记·oracle
yangchanghua1117 小时前
pgsql 如何查询今天范围内的数据(当天0点0分0秒 - 当天23点59分59秒....)
数据库·pgsql
larance7 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
python_chai7 小时前
从数据汇总到高级分析,SQL 查询进阶实战(下篇)—— 分组、子查询与窗口函数全攻略
数据库·sql·mysql
在努力的前端小白7 小时前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
未来之窗软件服务7 小时前
自建知识库,向量数据库 (九)之 量化前奏分词服务——仙盟创梦IDE
数据库·仙盟创梦ide·东方仙盟·自建ai·ai分词
冒泡的肥皂10 小时前
MVCC初学demo(一
数据库·后端·mysql
.Shu.11 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
薛晓刚14 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队14 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术