PostgreSQL数据库基础--简易版

数据库

其中runoobdb为数据库名

  • 查看已经存在的数据库
bash 复制代码
\l
  • 进入数据库
bash 复制代码
\c runoobdb
  • 创建数据库
bash 复制代码
CREATE DATABASE runoobdb;
  • 删除数据库
bash 复制代码
DROP DATABASE runoobdb;

其中COMPANY为表名

  • 创建表格
bash 复制代码
CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);
  • 查看表格
bash 复制代码
\d
  • 查看表格信息
bash 复制代码
\d company
  • 查询表格数据
bash 复制代码
# 所有数据
SELECT * FROM company;
# 指定字段 ID,NAME  
SELECT ID,NAME FROM company;
# 找出 AGE(年龄) 字段大于等于 25,并且 SALARY(薪资) 字段大于等于 65000 的数据(使用WHERE)
SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
# avg(),返回一个表达式的平均值;sum(),返回指定字段的总和;count(),返回查询的记录总数
# 使用(AS) 
SELECT COUNT(*) AS "RECORDS" FROM COMPANY;
# 在 COMPANY 表中找出 NAME(名字) 字段中以 Pa 开头的的数据
# WHERE ... LIKE ...
SELECT * FROM COMPANY WHERE NAME LIKE 'Pa%';
# BETWEEN ... AND ...和 
# IN 或
# 查询当前时间
SELECT CURRENT_TIMESTAMP;


bash 复制代码
# LIMIT 读取 4 条数据:
SELECT * FROM COMPANY LIMIT 4;
# LIMIT OFFSET 从第三位开始提取 3 个记录:
SELECT * FROM COMPANY LIMIT 3 OFFSET 2;
  • 插入数据
bash 复制代码
# 单行
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (1, 'Paul', 32, 'California', 20000.00,'2001-07-13');
# 缺字段
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,JOIN_DATE) VALUES (2, 'Allen', 25, 'Texas', '2007-12-13');
# 设置默认值,而不是指定值
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (3, 'Teddy', 23, 'Norway', 20000.00, DEFAULT );
# 多行
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00, '2007-12-13' ), (5, 'David', 27, 'Texas', 85000.00, '2007-12-13');
  • 删除数据
bash 复制代码
# DELETE FROM ...  WHERE ... 
DELETE FROM COMPANY WHERE ID = 2;
# 删除表的数据,但不删除表结构
TRUNCATE TABLE  table_name;
  • 更新表数据
bash 复制代码
# UPDATE ... SET ...WHERE ... 
 UPDATE COMPANY SET SALARY = 15000 WHERE ID = 3;
  • 删除表格
bash 复制代码
drop table company;

模式

  • 创建模式 myschema
bash 复制代码
create schema myschema;
  • myschema模式下创建company表格
bash 复制代码
reate table myschema.company(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25),
   SALARY   DECIMAL (18, 2),
   PRIMARY KEY (ID)
);
  • 删除一个为空的模式
bash 复制代码
DROP SCHEMA myschema;
  • 删除一个模式以及其中包含的所有对象
bash 复制代码
DROP SCHEMA myschema CASCADE;

事务

  • 启动事务
bash 复制代码
BEGIN;

或者

BEGIN TRANSACTION;
  • 把事务调用的更改保存到数据库中的事务命令,即确认事务
bash 复制代码
COMMIT;

或者

END TRANSACTION;
  • 撤消尚未保存到数据库的事务命令,即回滚事务
bash 复制代码
ROLLBACK;

例如:

bash 复制代码
BEGIN;
DELETE FROM COMPANY WHERE AGE = 25;
ROLLBACK;

ALTER TABLE 命令

索引

bash 复制代码
# 列出数据库中所有索引
\di
# 删除索引
DROP INDEX index_name;

触发器

bash 复制代码
# 列举所有触发器
SELECT * FROM pg_trigger;
# 删除触发器
drop trigger ${trigger_name} on ${table_name};
相关推荐
程序员卷卷狗2 分钟前
联合索引的最左前缀原则与失效场景
java·开发语言·数据库·mysql
蓝色猪猪侠1 小时前
postgresql数据库的安装
数据库
敖云岚1 小时前
【疑难解答】MySQL 报错 Public Key Retrieval is not allowed
数据库·mysql
观测云2 小时前
阿里云 RDS PostgreSQL 可观测最佳实践
阿里云·postgresql·云计算
小旺不正经2 小时前
Linux介绍及常用命令
linux·运维·数据库
焦糖码奇朵、2 小时前
移动通信网络建设-实验2:5G站点选型与设备部署
网络·数据库·人工智能·5g·信号处理·基带工程
l1t2 小时前
把ITPUB newkid先生编写的Oracle语法数独求解SQL改写成DuckDB
数据库·人工智能·sql·oracle·duckdb
ヾChen2 小时前
MySQL——增删改查操作
数据库·sql·物联网·学习·mysql
betazhou2 小时前
Oracle Goldengate 同步过程的同步用户权限设置
数据库·oracle·goldengate·ogg·goldengate授权