PostgreSQL 教程:从入门到精通

打印 上一主题 下一主题

主题 523|帖子 523|积分 1569

1. 弁言

欢迎来到 PostgreSQL 教程!作为一个使用 PostgreSQL 多年的开辟者,我深知初学者在学习这门强大而机动的数据库管理体系时会遇到各种寻衅和题目。本文将从安装开始,逐步深入讲解 PostgreSQL 的各个方面,帮助你从零底子徐徐掌握这门技术。
2. 什么是 PostgreSQL?

PostgreSQL 是一个开源的对象关系型数据库管理体系,以其强大的功能、稳定性和扩展性著称。它支持尺度 SQL 以及各种高级特性,如事务处置惩罚、外键、触发器、视图和多版本并发控制(MVCC)。PostgreSQL 的设计目标是提供高性能和可靠性,使其成为处置惩罚大规模数据和复杂查询的理想选择。
3. 安装 PostgreSQL

3.1 在 Windows 上安装


  • 下载 PostgreSQL:访问 PostgreSQL 官方网站,选择得当你的 Windows 版本的安装步伐。
  • 运行安装步伐:双击下载的安装步伐,按照提示进行安装。记得选择要安装的组件,如 pgAdmin(一个图形化管理工具)。
  • 配置初始化数据库:安装过程中会提示设置超级用户暗码,这个暗码是你未来管理数据库的重要凭证,请务必记住。
  • 完成安装:安装完成后,你可以使用 pgAdmin 大概命令行工具 psql 毗连和管理你的数据库。
3.2 在 Linux 上安装


  • 更新软件包索引:打开终端并输入以下命令:
  1. sudo apt update
复制代码
    2. 安装 PostgreSQL
  1. sudo apt install postgresql postgresql-contrib
复制代码
   3. 启动和启用 PostgreSQL 服务
  1. sudo systemctl start postgresql
  2. sudo systemctl enable postgresql
复制代码
   4. 设置超级用户暗码:
  1. sudo -i -u postgres
  2. psql
  3. \password
复制代码
3.3 在 macOS 上安装


  • 使用 Homebrew 安装
  1. brew update
  2. brew install postgresql
复制代码
    2. 启动 PostgreSQL 服务:
  1. brew services start postgresql
复制代码
   3. 初始化数据库(假如需要):
  1. initdb /usr/local/var/postgres
复制代码
4. 根本操纵

4.1 创建数据库和用户


  • 创建用户
  1. CREATE USER new_user WITH PASSWORD 'your_password';
复制代码
    2. 创建数据库:
  1. CREATE DATABASE new_db;
复制代码
   3. 将数据库所有权授予用户
  1. GRANT ALL PRIVILEGES ON DATABASE new_db TO new_user;
复制代码
4.2 毗连数据库

使用 psql 命令行工具毗连数据库:
  1. psql -U new_user -d new_db -h localhost -W
复制代码
大概使用 pgAdmin 图形化工具,通过输入毗连信息毗连数据库。
5. SQL 底子

5.1 创建表

  1. CREATE TABLE employees (
  2.     id SERIAL PRIMARY KEY,
  3.     name VARCHAR(100) NOT NULL,
  4.     department VARCHAR(50),
  5.     salary NUMERIC
  6. );
复制代码
5.2 插入数据

  1. INSERT INTO employees (name, department, salary) VALUES
  2. ('Alice', 'HR', 60000),
  3. ('Bob', 'Engineering', 80000),
  4. ('Charlie', 'Sales', 70000);
复制代码
5.3 查询数据

  1. SELECT * FROM employees;
复制代码
5.4 更新数据

  1. UPDATE employees SET salary = 75000 WHERE name = 'Charlie';
复制代码
5.5 删除数据

  1. DELETE FROM employees WHERE name = 'Bob';
复制代码
6. 高级功能

6.1 事务处置惩罚

事务是确保数据库操纵要么全部成功,要么全部失败的机制。使用 BEGIN 和 COMMIT 来开始和提交事务,使用 ROLLBACK 来回滚事务。
  1. BEGIN;
  2. UPDATE employees SET salary = salary * 1.1;
  3. INSERT INTO log (message) VALUES ('Updated salaries');
  4. COMMIT;
复制代码
假如中途堕落,可以使用 ROLLBACK:
  1. BEGIN;
  2. UPDATE employees SET salary = salary * 1.1;
  3. -- 假设这里出现错误
  4. ROLLBACK;
复制代码
6.2 外键和约束

外键用于保持数据的同等性和完整性。
  1. CREATE TABLE departments (
  2.     dept_id SERIAL PRIMARY KEY,
  3.     dept_name VARCHAR(50) UNIQUE NOT NULL
  4. );
  5. ALTER TABLE employees ADD COLUMN dept_id INTEGER REFERENCES departments(dept_id);
复制代码
6.3 视图

视图是基于表的查询结果集。
  1. CREATE VIEW high_salary_employees AS
  2. SELECT name, salary FROM employees WHERE salary > 70000;
复制代码
7. 性能优化

7.1 索引

索引可以大大加速查询速度。
  1. CREATE INDEX idx_employees_name ON employees(name);
复制代码
7.2 查询优化

使用 EXPLAIN 命令分析查询计划。
  1. EXPLAIN SELECT * FROM employees WHERE salary > 70000;
复制代码
8. 备份与恢复

8.1 备份数据库

使用 pg_dump 进行备份:
  1. pg_dump -U new_user -F c -b -v -f "new_db_backup.dump" new_db
复制代码
8.2 恢复数据库

使用 pg_restore 恢复备份:
  1. pg_restore -U new_user -d new_db -v "new_db_backup.dump"
复制代码
9. 安全和权限管理

9.1 用户权限

  1. REVOKE ALL ON TABLE employees FROM new_user;
  2. GRANT SELECT, INSERT ON TABLE employees TO new_user;
复制代码
9.2 安全配置

编辑 pg_hba.conf 文件配置毗连权限。
  1. # Allow all users with password authentication from localhost
  2. host    all             all             127.0.0.1/32            md5
复制代码
10. 总结

通过本教程,我们从底子安装开始,逐步讲解了 PostgreSQL 的根本操纵、SQL 底子、高级功能、性能优化、备份恢复和安全管理。希望这些内容能帮助你更好地掌握 PostgreSQL,并在实际项目中得心应手。假如你遇到任何题目或有更多题目,别忘了参考官方文档和社区资源。
祝你学习愉快,编码顺利!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表