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};
相关推荐
会游泳的石头4 分钟前
Java 异步事务完成后的监听器:原理、实现与应用场景
java·开发语言·数据库
数智工坊4 分钟前
【操作系统-IO调度】
java·服务器·数据库
星梦清河13 分钟前
MySQL—分组函数
数据库·mysql
霖霖总总35 分钟前
[小技巧33]MySQL 事务持久化的一致性保障:binlog 与 redo log 的两阶段提交机制解析
数据库·mysql
九章-1 小时前
2026国产向量数据库选型新趋势:融合架构如何支撑AI与信创双轮驱动
数据库·向量数据库
三不原则1 小时前
故障案例:数据库慢查询导致交易延迟,AIOps 如何自动定位?
运维·数据库
Elieal2 小时前
MybatisPlus难懂点
数据库·mybatis
一只专注api接口开发的技术猿2 小时前
微服务架构下集成淘宝商品 API 的实践与思考
java·大数据·开发语言·数据库·微服务·架构
AC赳赳老秦2 小时前
Dify工作流+DeepSeek:运维自动化闭环(数据采集→报告生成)
android·大数据·运维·数据库·人工智能·golang·deepseek
明洞日记2 小时前
【软考每日一练009】计算机系统性能评价:基准程序分类与 TPC 实战案例详解
大数据·数据库