文章目录
- 说明
- 1. `PostgreSQL`使用扫盲
- 1.1 如何开始
说明
- 此文由来:在完成FreeCodeCamp相关课程时,遇到无法下手的疑问,所以记录一下;
1. PostgreSQL
使用扫盲
1.1 如何开始
在终端使用如下命令进入PostgreSQL
数据库终端:
psql --username=postgres --dbname=postgres # 安装好数据库后,有默认的用户名和数据库名用于数据库管理及测试,都是 postgres
进入数据库后,以下指令是在PostgreSQL
环境下执行。
注意:
- 以下数据库指令都必须要带分号,不然数据库终端会认为你的指令还没有完成而等待用户继续输入,直到收到一个分号;
- 虽然数据库指令大小写不敏感,但是一般关键字都大写,自定义的表名,字段等小写,一遍区分;
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 连接多个表