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 值的列上。
* 索引不应该使用在频繁操作的列上。
相关推荐
“αβ”9 小时前
MySQL表的操作
linux·网络·数据库·c++·网络协议·mysql·https
p***s919 小时前
Spring数据库原理 之 DataSource
java·数据库·spring
虹科网络安全9 小时前
艾体宝干货 | Redis Java 开发系列#1 从零开始的环境搭建与实践指南
java·数据库·redis
火山引擎开发者社区9 小时前
火山引擎向量数据库 Milvus 版正式商业化:AI 时代的向量检索新标杆
数据库·milvus·火山引擎
神秘的土鸡9 小时前
openEuler 25.09 企业级 MySQL主从复制部署与性能优化实战提升50%
linux·数据库·mysql·性能优化·openeuler
韩立学长10 小时前
基于Springboot课堂教学辅助系统08922bq1(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·spring boot·后端
goxingman11 小时前
Oracle视图基础
数据库·oracle
黎相思11 小时前
MySQL索引特性
数据库·mysql
rit843249912 小时前
压缩感知信号恢复算法:OMP与CoSaMP对比分析
数据库·人工智能·算法