PostgreSQL语法

PostgreSQL

两个数据库都支持 ACID 事务,Postgres 提供更强大的事务支持

Postgres 的查询优化器更优秀,详情参考此吐槽:https://news.ycombinator.com/item?id=29455852

图片

易用性 Usability

Postgres 更加严格,而 MySQL 更加宽容:

  • MySQL 允许在使用 GROUP BY 子句的 SELECT 语句中包含非聚合列;而 Postgres 则不允许。
  • MySQL 默认情况下是大小写不敏感的;而 Postgres 默认情况下是大小写敏感的。
  • MySQL 允许 JOIN 来自不同数据库的表;而 Postgres 只能连接单个数据库内部的表,除非使用 FDW 扩展。

1.数据类型差异(对比MySQL)

MySQL中的TEXT数据类型最大存储容量为64KB,而PostgreSQL中的TEXT数据类型没有此限制
MySQL中使用TINYINT、MEDIUMINT和INT表示不同大小的整数,而PostgreSQL使用SMALLINT、INT和BIGINT

2.字符串引号

MySQL中可以使用单引号或双引号来表示字符串,而PostgreSQL只接受单引号来表示字符串
PostgreSQL使用E’…’ 来表示带有转义序列的字符串

3.字符串连接

在MySQL中,可以使用"+“或CONCAT函数来连接字符串,而在PostgreSQL中,可以使用”||"来连接字符串

4.日期和时间函数差异

MySQL使用NOW()来获取当前日期时间,而PostgreSQL使用CURRENT_TIMESTAMP或CURRENT_DATE来获取
MySQL使用DATE_ADD()、DATE_SUB()等函数来添加或减少日期时间,而PostgreSQL使用INTERVAL进行类似操作

5.LIMIT子句差异

在MySQL中,LIMIT子句用于限制结果集中返回的记录数,语法为"LIMIT offset, count",offset为起始位置,count为返回记录数。
在PostgreSQL中,LIMIT子句用于限制结果集中返回的记录数,语法为"LIMIT count OFFSET offset",count为返回记录数,offset为起始位置

6.NULL值处理

在MySQL中,使用"= NULL"或"IS NULL"来检查NULL值,使用"IS NOT NULL"来检查非NULL值
在PostgreSQL中,使用"IS NULL"来检查NULL值,使用"IS NOT NULL"来检查非NULL值

7.自增主键列

在MySQL中,可以使用AUTO_INCREMENT关键字将主键列设置为自增列
在PostgreSQL中,可以使用SERIAL或BIGSERIAL类型来创建自增主键列

8.变量和参数差异

MySQL使用@符号来声明和使用用户变量,使用?来作为占位符来传递参数
PostgreSQL使用冒号(:)来声明和使用变量,使用$1、$2等占位符来传递参数

9.连接查询

在MySQL中,可以使用JOIN、LEFT JOIN、RIGHT JOIN和INNER JOIN来进行不同类型的连接。
在PostgreSQL中,使用JOIN来进行内连接,使用LEFT JOIN和RIGHT JOIN来进行左连接和右连接。
这里列举了一些常见的MySQL和PostgreSQL之间的语法区别,但并不是全部。因此,使用时需要仔细阅读相应的文档以了解具体的差异和特性。

posted @   zhangyf1121  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示