MemFireDB 支持符合ANSI标准的结构化查询语言。兼容PostgreSQL 11.2版本。MemFireDB复用了PostgresSQL的原生查询层。MemFire支持所有的传统关系模型功能,例如引用完整性(例如外键)、JOIN、分布式事务、部分索引、触发器和存储过程。

PostgreSQL总共有182条SQL语句,MemFireDB 支持79条,有49条语句的语法(参数)是完全相同的,有29条语句的部分语法(参数)MemFireDB 不支持,只有一条( SHOW TRANSACTION 显示事务等级)是MemFireDB自创的,CREATE DATABASE 和 DROP FUNCTION 语句 MemFireDB 在 PG 的基础上多设了一个参数。详细对比见下表(左侧为 PG 全部SQL语句,中间为MemFireDB支持的语句,右侧表示该语句的语法是否完全相同):

PostgreSQL MemFireDB same
182 79 49
ABORT — 中止当前事务 ABORT
ALTER AGGREGATE — 更改一个聚集函数的定义
ALTER COLLATION — 更改一个排序规则的定义
ALTER CONVERSION — 改变一个转换的定义
ALTER DATABASE — 更改一个数据库 ALTER DATABASE
ALTER DEFAULT PRIVILEGES — 定义默认访问特权 ALTER DEFAULT PRIVILEGES
ALTER DOMAIN — 更改一个域的定义 ALTER DOMAIN no
ALTER EVENT TRIGGER — 更改一个事件触发器的定义
ALTER EXTENSION — 更改一个扩展的定义
ALTER FOREIGN DATA WRAPPER — 更改一个外部数据包装器的定义
ALTER FOREIGN TABLE — 更改一个外部表的定义
ALTER FUNCTION — 更改一个函数的定义
ALTER GROUP — 更改角色名称或者成员关系 ALTER GROUP
ALTER INDEX — 更改一个索引的定义
ALTER LANGUAGE — 更改一种过程语言的定义
ALTER LARGE OBJECT — 更改一个大对象的定义
ALTER MATERIALIZED VIEW — 更改一个物化视图的定义
ALTER OPERATOR — 更改一个操作符的定义
ALTER OPERATOR CLASS — 更改一个操作符类的定义
ALTER OPERATOR FAMILY — 更改一个操作符族的定义
ALTER POLICY — 更改一条行级安全性策略的定义 ALTER POLICY
ALTER PROCEDURE — change the definition of a procedure
ALTER PUBLICATION — 修改发布的定义
ALTER ROLE — 更改一个数据库角色 ALTER ROLE no
ALTER ROUTINE — 更改一个例程的定义
ALTER RULE — 更改一个规则定义
ALTER SCHEMA — 更改一个模式的定义
ALTER SEQUENCE — 更改一个序列发生器的定义 ALTER SEQUENCE no
ALTER SERVER — 更改一个外部服务器的定义
ALTER STATISTICS — 更改扩展统计对象的定义
ALTER SUBSCRIPTION — 修改订阅的定义
ALTER SYSTEM — 更改一个服务器配置参数
ALTER TABLE — 更改一个表的定义 ALTER TABLE no
ALTER TABLESPACE — 更改一个表空间的定义
ALTER TEXT SEARCH CONFIGURATION — 更改一个文本搜索配置的定义
ALTER TEXT SEARCH DICTIONARY — 更改一个文本搜索字典的定义
ALTER TEXT SEARCH PARSER — 更改一个文本搜索解析器的定义
ALTER TEXT SEARCH TEMPLATE — 更改一个文本搜索模板的定义
ALTER TRIGGER — 更改一个触发器的定义
ALTER TYPE — 更改一个类型的定义
ALTER USER — 更改一个数据库角色 ALTER USER
ALTER USER MAPPING — 更改一个用户映射的定义
ALTER VIEW — 更改一个视图的定义
ANALYZE — 收集有关一个数据库的统计信息
BEGIN — 开始一个事务块 BEGIN no
CALL — 调用一个过程
CHECKPOINT — 强制一个事务日志检查点
CLOSE — 关闭一个游标
CLUSTER — 根据一个索引聚簇一个表
COMMENT — 定义或者更改一个对象的注释 COMMENT
COMMIT — 提交当前事务 COMMIT
COMMIT PREPARED — 提交一个早前为两阶段提交预备的事务
COPY — 在一个文件和一个表之间复制数据 COPY
CREATE ACCESS METHOD — 定义一种新的访问方法
CREATE AGGREGATE — 定义一个新的聚集函数 CREATE AGGREGATE
CREATE CAST — 定义一种新的造型 CREATE CAST
CREATE COLLATION — 定义一种新排序规则
CREATE CONVERSION — 定义一种新的编码转换
CREATE DATABASE — 创建一个新数据库 CREATE DATABASE no
CREATE DOMAIN — 定义一个新的域 CREATE DOMAIN no
CREATE EVENT TRIGGER — 定义一个新的事件触发器
CREATE EXTENSION — 安装一个扩展 CREATE EXTENSION no
CREATE FOREIGN DATA WRAPPER — 定义一个新的外部数据包装器
CREATE FOREIGN TABLE — 定义一个新的外部表
CREATE FUNCTION — 定义一个新函数 CREATE FUNCTION
CREATE GROUP — 定义一个新的数据库角色 CREATE GROUP no
CREATE INDEX — 定义一个新索引 CREATE INDEX no
CREATE LANGUAGE — 定义一种新的过程语言
CREATE MATERIALIZED VIEW — 定义一个新的物化视图
CREATE OPERATOR — 定义一个新的操作符 CREATE OPERATOR
CREATE OPERATOR CLASS — 定义一个新的操作符类 CREATE OPERATOR CLASS no
CREATE OPERATOR FAMILY — 定义一个新的操作符族
CREATE POLICY — 为一个表定义一条新的行级安全性策略 CREATE POLICY
CREATE PROCEDURE — 定义一个新的过程 CREATE PROCEDURE
CREATE PUBLICATION — 定义一个新的发布
CREATE ROLE — 定义一个新的数据库角色 CREATE ROLE no
CREATE RULE — 定义一条新的重写规则 CREATE RULE
CREATE SCHEMA — 定义一个新模式 CREATE SCHEMA
CREATE SEQUENCE — 定义一个新的序列发生器 CREATE SEQUENCE no
CREATE SERVER — 定义一个新的外部服务器
CREATE STATISTICS — 定义扩展统计
CREATE SUBSCRIPTION — 定义一个新的订阅
CREATE TABLE — 定义一个新表 CREATE TABLE no
CREATE TABLE AS — 从一个查询的结果创建一个新表 CREATE TABLE AS no
CREATE TABLESPACE — 定义一个新的表空间
CREATE TEXT SEARCH CONFIGURATION — 定义一个新的文本搜索配置
CREATE TEXT SEARCH DICTIONARY — 定义一个新的文本搜索字典
CREATE TEXT SEARCH PARSER — 定义一个新的文本搜索解析器
CREATE TEXT SEARCH TEMPLATE — 定义一种新的文本搜索模板
CREATE TRANSFORM — 定义一个新的转换
CREATE TRIGGER — 定义一个新触发器 CREATE TRIGGER no
CREATE TYPE — 定义一种新的数据类型 CREATE TYPE no
CREATE USER — 定义一个新的数据库角色 CREATE USER no
CREATE USER MAPPING — 定义一个用户到一个外部服务器的新映射
CREATE VIEW — 定义一个新视图 CREATE VIEW no
DEALLOCATE — 释放一个预备语句 DEALLOCATE
DECLARE — 定义一个游标
DELETE — 删除一个表的行 DELETE no
DISCARD — 抛弃会话状态
DO — 执行一个匿名代码块 DO
DROP ACCESS METHOD — 移除一种访问方法
DROP AGGREGATE — 移除一个聚集函数 DROP AGGREGATE
DROP CAST — 移除一个造型 DROP CAST
DROP COLLATION — 移除一个排序规则
DROP CONVERSION — 移除一个转换
DROP DATABASE — 移除一个数据库 DROP DATABASE
DROP DOMAIN — 移除一个域 DROP DOMAIN
DROP EVENT TRIGGER — 移除一个事件触发器
DROP EXTENSION — 移除一个扩展 DROP EXTENSION
DROP FOREIGN DATA WRAPPER — 移除一个外部数据包装器
DROP FOREIGN TABLE — 移除一个外部表
DROP FUNCTION — 移除一个函数 DROP FUNCTION no
DROP GROUP — 移除一个数据库角色 DROP GROUP
DROP INDEX — 移除一个索引
DROP LANGUAGE — 移除一个过程语言
DROP MATERIALIZED VIEW — 移除一个物化视图
DROP OPERATOR — 移除一个操作符 DROP OPERATOR
DROP OPERATOR CLASS — 移除一个操作符类 DROP OPERATOR CLASS
DROP OPERATOR FAMILY — 移除一个操作符族
DROP OWNED — 移除一个数据库角色拥有的数据库对象 DROP OWNED
DROP POLICY — 从一个表移除一条行级安全性策略 DROP POLICY
DROP PROCEDURE — 移除一个过程 DROP PROCEDURE
DROP PUBLICATION — 删除一个发布
DROP ROLE — 移除一个数据库角色 DROP ROLE
DROP ROUTINE — 删除一个例程
DROP RULE — 移除一个重写规则 DROP RULE
DROP SCHEMA — 移除一个模式
DROP SEQUENCE — 移除一个序列 DROP SEQUENCE
DROP SERVER — 移除一个外部服务器描述符
DROP STATISTICS — 删除扩展统计
DROP SUBSCRIPTION — 删除一个订阅
DROP TABLE — 移除一个表 DROP TABLE no
DROP TABLESPACE — 移除一个表空间
DROP TEXT SEARCH CONFIGURATION — 移除一个文本搜索配置
DROP TEXT SEARCH DICTIONARY — 移除一个文本搜索字典
DROP TEXT SEARCH PARSER — 移除一个文本搜索解析器
DROP TEXT SEARCH TEMPLATE — 移除一个文本搜索模板
DROP TRANSFORM — 移除转换
DROP TRIGGER — 移除一个触发器 DROP TRIGGER
DROP TYPE — 移除一个数据类型 DROP TYPE
DROP USER — 移除一个数据库角色 DROP USER
DROP USER MAPPING — 移除一个用于外部服务器的用户映射
DROP VIEW — 移除一个视图
END — 提交当前事务 END
EXECUTE — 执行一个预备语句 EXECUTE
EXPLAIN — 显示一个语句的执行计划 EXPLAIN
FETCH — 使用游标从查询中检索行
GRANT — 定义访问特权 GRANT no
IMPORT FOREIGN SCHEMA — 从一个外部服务器导入表定义
INSERT — 在一个表中创建新行 INSERT no
LISTEN — 监听一个通知
LOAD — 载入一个共享库文件
LOCK — 锁定一个表 LOCK
MOVE — 定位一个游标
NOTIFY — 生成一个通知
PREPARE — 为执行准备一个语句 PREPARE
PREPARE TRANSACTION — 为两阶段提交准备当前事务
REASSIGN OWNED — 更改一个数据库角色拥有的数据库对象的拥有关系 REASSIGN OWNED
REFRESH MATERIALIZED VIEW — 替换一个物化视图的内容
REINDEX — 重建索引
RELEASE SAVEPOINT — 销毁一个之前定义的保存点
RESET — 把一个运行时参数的值恢复到默认值 RESET
REVOKE — 移除访问特权 REVOKE no
ROLLBACK — 中止当前事务 ROLLBACK
ROLLBACK PREPARED — 取消一个之前为两阶段提交准备好的事务
ROLLBACK TO SAVEPOINT — 回滚到一个保存点
SAVEPOINT — 在当前事务中定义一个新的保存点
SECURITY LABEL — 定义或更改应用到一个对象的安全标签
SELECT — 从一个表或视图检索行 SELECT no
SELECT INTO — 从一个查询的结果定义一个新表
SET — 更改一个运行时参数 SET
SET CONSTRAINTS — 为当前事务设置约束检查时机 SET CONSTRAINTS no
SET ROLE — 设置当前会话的当前用户标识符 SET ROLE
SET SESSION AUTHORIZATION — 设置当前会话的会话用户标识符和当前用户标识符 SET SESSION AUTHORIZATION
SET TRANSACTION — 设置当前事务的特性 SET TRANSACTION
SHOW — 显示一个运行时参数的值 SHOW
SHOW TRANSACTION -
START TRANSACTION — 开始一个事务块
TRUNCATE — 清空一个表或者一组表 TRUNCATE no
UNLISTEN — 停止监听一个通知
UPDATE — 更新一个表的行 UPDATE no
VACUUM — 垃圾收集并根据需要分析一个数据库
VALUES — 计算一个行集合