PostgreSQL
安装
- Windows:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
- Debian:
apt install postgresql-12
Windows 上都是无脑下一步了,没啥好提的,而聪明的 Linux 用户应该用不着我提醒。
登录
Windows 用户使用开始菜单搜索 SQL Shell (psql)
,Linux 用户使用 PSQL
命令进入 PostgreSQL 命令提示符。如果你登录成功,会看到提示符会变成postgres=#
,然后再试试键入 help
,如果输出这样的信息就算成功了(大概)。
您正在使用psql, 这是一种用于访问PostgreSQL的命令行界面. 键入: \copyright 显示发行条款 \h 显示 SQL 命令的说明 ? 显示 pgsql 命令的说明 \g 或者以分号(;)结尾以执行查询 \q 退出
看起来,PostgreSQL 的 Syntax 跟 MySQL 差别好像很大,但是这只是命令行而已,实际上的语句都是较为标准的 SQL 语句的。 嗯,此时你已经能连接 PostgreSQL 了,还是直接打开 Navicat、Datagrid 罢。
些许不同
PostgreSQL 跟 MySQL 还是有些不同的,目前我所知道的,只有层级上的区别,PostgreSQL 多了一层 Schema,中文叫模式
(国内大多这么叫),或者架构
(Jetbrains IDE 喜欢这么叫),看别人的解释是,说是这样就能让一个数据库里存在相同表名,不知对错,但是我觉得好像是这么回事。
创建“模式”
sql
create schema 模式名
创建表
命令如下,跟 MySQL 也就差在多了一个模式名而已。
sql
create table 模式名.表名 (
条目名 类型 约束
)
大概就这样子。
数据类型
- 布尔型:使用“boolean”或“bool”声明true或false值。
- 字符值
- char:拥有一个字符
- char(#):保存#个字符数。将插入空间以填补任何额外的空间。
- varchar(#):最多包含#个字符数。
- 整数值
- smallint:-32768和32767之间的整数。
- int:-214783648和214783647之间的整数。
- serial:自动填充的整数。
- 浮点值
- float(#):浮点数,至少有#个精度点。
- real:8字节浮点数
- numeric(#,after_dec):拥有#位数的实数,小数点后有after_dec位
只列了一些初级的玩意,我现在能用上的玩意。
约束
- NOT NULL:列不能具有空值。
- UNIQUE:任何记录的列值都不能相同。Null始终被视为唯一值。
- PRIMARY KEY:上述两个约束的组合。每张表只能使用一次。
- CHECK:确保列中值的条件为真。
- REFERENCES:值必须存在于另一个表的列中。
约束和数据类型设计的看起来好简洁。
其他
仔细想来,对于我这种初学者来说,跟 MySQL 的差别好像就只是在操作表的时候要附加一个模式名,好像也仅此而已了