自学内容网 自学内容网

PostgreSQL关系型数据库总结

说明

  1. 此文由来:在完成FreeCodeCamp相关课程时,遇到无法下手的疑问,所以记录一下;

1. PostgreSQL使用扫盲

1.1 如何开始

在终端使用如下命令进入PostgreSQL数据库终端:

psql --username=postgres --dbname=postgres# 安装好数据库后,有默认的用户名和数据库名用于数据库管理及测试,都是 postgres

进入数据库后,以下指令是在PostgreSQL环境下执行。

注意:

  1. 以下数据库指令都必须要带分号,不然数据库终端会认为你的指令还没有完成而等待用户继续输入,直到收到一个分号;
  2. 虽然数据库指令大小写不敏感,但是一般关键字都大写,自定义的表名,字段等小写,一遍区分;
postgres=# \du# 查询所有的用户及其权限
postgres=# CREATE USER freecodecamp WITH PASSWORD 'your_password'; # 创建用户 freecodecamp
postgres=# \q# 退出数据库终端

然后以新创建的用户登录:

psql --username=freecodecamp --dbname=postgres# 每个新创建的用户都有一个默认的postgres数据库用于连接测试

正常情况下,现在应该已经进入了数据库终端:

注意上面的#表示当前用户为管理员,下面的>表示普通用户;

postgres=> SELECT CURRENT_USER;# 查看当前用户
postgres=> \l# 查询当前用户已有的数据库
postgres=> CREATE DATABASE universe;# 创建一个名为 universe 的数据库(需要相应权限)
postgres=> ALTER DATABASE database_name RENAME TO new_database_name; # 重命名数据库
postgres=> \c universe;# 连接数据库,连接后前面的提示词会变成数据库名
universe=> CREATE TABLE tableName();# 创建空表格
universe=> DROP TABLE table_name;# 删除表格
universe=> \dt# 查看所有表格, \d 也行,就是多了自动生成的表格
universe=> \d tableName;# 查看表格结构
universe=> ALTER TABLE table_name ADD COLUMN column_name DATATYPE;# 新加列
universe=> ALTER TABLE table_name DROP COLUMN column_name;# 删除列
universe=> ALTER TABLE tableName RENAME xxx TO yyy;# 重命名列
universe=> INSERT INTO tableName(id, name) VALUES(1, 'Samus');# 新增数据,对于varchar类型,需要用单引号
universe=> DELETE FROM table_name WHERE condition;# 删除数据行
universe=> INSERT INTO tableName(column1Name, column2Name, column3Name)
VALUES('Mario', 'Mushroom Kingdom', 'Red'),
  ('Luigi', 'Mushroom Kingdom', 'Green'),
  ('Peach', 'Mushroom Kingdom', 'Pink');# 一次添加多条数据
universe=> UPDATE table_name SET column_name=new_value WHERE condition;# 修改数据
universe=> SELECT * FROM table_name ORDER BY column_name;# 数据排序
universe=> SELECT * FROM tableName;# 查看表格数据,也可以只看指定列
universe=> ALTER TABLE tableName ADD PRIMARY KEY (columnName);# 将某列设为主键,括号是必须的!
universe=> ALTER TABLE table_name ADD PRIMARY KEY(column1, column2);# 将组合列设为主键
universe=> ALTER TABLE table_name ADD COLUMN column_name DATATYPE REFERENCES referenced_table_name(referenced_column_name);# 添加列并设置为外键
universe=> ALTER TABLE table_name ALTER COLUMN column_name SET NOT NULL;# 将某表某列设为 NOT NULL
universe=> SELECT columns FROM table_1 FULL JOIN table_2 ON table_1.primary_key_column = table_2.foreign_key_column;# 用 JOIN 查看通过一个外键连接的两个表的全部数据
universe=> SELECT columns FROM junction_table
FULL JOIN table_1 ON junction_table.foreign_key_column = table_1.primary_key_column
FULL JOIN table_2 ON junction_table.foreign_key_column = table_2.primary_key_column;# 通过 JOIN 连接多个表

原文地址:https://blog.csdn.net/qq_29506411/article/details/143647871

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!