首页 > 数据库 >PostgreSQL语法

PostgreSQL语法

时间:2024-07-06 16:22:06浏览次数:14  
标签:JOIN Postgres MySQL 语法 使用 PostgreSQL NULL

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之间的语法区别,但并不是全部。因此,使用时需要仔细阅读相应的文档以了解具体的差异和特性。

标签:JOIN,Postgres,MySQL,语法,使用,PostgreSQL,NULL
From: https://www.cnblogs.com/zhangyf1121/p/18287373

相关文章

  • Oracle语法
    OracleOracle数据和Mysql数据库都是十分常见的数据库,使用都很广泛,使用过的人会发现在写sql语句时两者之间大多数语法是相通的,但是也有一些地方语法不一样,今天我们一起来浅聊一下它们的区别吧1.dual1.oracle中select语句后边的from是不能省略的,如果没有实际的表,可以用dual作为fr......
  • SQLSugar 基本语法+数据库读写分离
    面向对象的操作数据库,相比EFCore、Dapper等其他ORM框架性能支持性能轻便快捷,数据库的读写分离能大大减轻数据库的压力一、NuGet下载安装SqlSugarCore二、实例化SqlSugarCore---包含数据库链接---指定数据库类型---增删改查,上代码这里演示使用控制台程序usingSqlSugar;......
  • java学习——基础语法篇(适合已经学过c++的人群)
    本篇适合之前学过c和c++语言,现在要学java的人进行学习。由于之前学习过c++同为面向对象的程序语言,基础语法在相对比之下学习,对比c++与java的差异,会快速掌握基本语法。学编程语言,语法不是重点,用时即查,编程思路才是重点。1.注释、标识符、关键字、数据类型,变量定义,运算符与c++基本......
  • Vue指令语法
    1、简单介绍:在Vue中,指令(Directives)是带有v-前缀的特殊属性,用于操作DOM元素和响应数据变化。2、语法规则vue中的所有的指令都以v开始,同时是以html标签的形式存在,如:<html标签v-指令名:参数="javascript表达式"></html>。之前在{{}}插值语法中可以用的放到这里也可以用有的指令......
  • Markdowm语法
    jianlouMarkdown语法目录Markdown语法标题命令代码框命令插入图片分类表格超链接字体复选框分隔符突出文本目录标题命令#:一级标题##:二级标题###:三级标题……最多6级标题代码框命令代码框:```(三个反引号)三个开始三个结束,Typro可以自动补全插入图片插入图片:![......
  • 语法基础——字符、字符串与字符数组
    字符、字符串和字符数组2024-07-0520:52:00星期五字符串和字符数组的区别和联系字符串和字符数组在C语言中是紧密相关的概念,但它们之间存在一些区别和联系。定义与表示:字符串在C语言中并没有专门的类型,而是通过字符数组来表示。字符数组可以用来存储一个字符串,其中字......
  • PostgreSQL的系统视图pg_file_settings和pg_settings的区别
    PostgreSQL的系统视图pg_file_settings和pg_settings的区别pg_file_settings和pg_settings是PostgreSQL中两个相关的系统视图,它们用于查看和管理数据库的配置设置。这两个视图提供了不同层次的配置信息,适用于不同的管理和调试需求。以下是它们的区别和特点:pg_file_se......
  • C++基础语法篇
    一、语法1.定义变量并赋值:数据类型 变量名=值;2.宏常量定义#define会报错,提示转换:constexprauto数据类型常量名=常量值;3.定义普通(局部)常量:const 数据类型常量名=常量值;4.sizeof关键字,查询占用空间 sizeo......
  • 2.2 实验三、自动生成语法分析程序(JavaCUP)
    help-assignment2.3实验三、自动生成语法分析程序(JavaCUP)实验三要求你下载一个语法分析程序自动生成工具JavaCUP,利用该工具自动产生一个Oberon-0语言的语法分析和语法制导翻译程序;生成的程序源代码是以Java语言编写的。2.3.1实验步骤3.1、下载自动生成工具Java......
  • Python基础语法(与C++对比)(持续更新ing)
    代码块Python在统一缩进体系内,为同一代码块C++{...}内部的为同一代码块注释Python单行注释:#...多行注释:'''...'''C++单行注释://...多行注释:/*...*/数据类型1.Python数据类型    Python中支持数字之间使用下划线'_'分割数字,旨在查看方便    ......