日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

PostgreSQL与MySQL语法对比总结

發布時間:2023/12/20 数据库 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PostgreSQL与MySQL语法对比总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

總結下PostgreSQL的語法, 對比MySQL的語法.

?

PostgreSQL兩種分頁方法查詢

第一種

SELECT * FROM test_table WHERE i_id>1000?limit 100;

第二種

SELECT * FROM test_table? limit 100 OFFSET?1000;

在3000W數據的時候,建議使用第一種.

mysql 的分頁就非常簡單了

SELECT * FROM test_table? limit 100, 10;

?

PostgreSQL的數據類型:

數值數據類型

名稱描述存儲大小范圍
smallint存儲整數,小范圍2字節-32768 至 +32767
integer存儲整數。使用這個類型可存儲典型的整數4字節-2147483648 至 +2147483647
bigint存儲整數,大范圍。8字節-9223372036854775808 至 9223372036854775807
decimal用戶指定的精度,精確變量小數點前最多為131072個數字; 小數點后最多為16383個數字。
numeric用戶指定的精度,精確變量小數點前最多為131072個數字; 小數點后最多為16383個數字。
real可變精度,不精確4字節6位數字精度
double可變精度,不精確8字節15位數字精度
serial自動遞增整數4字節1 至 2147483647
bigserial大的自動遞增整數8字節1 至 9223372036854775807

?

對比Mysql的區別很大,mysql 常用的就tinyint 和 int ,以及bigint?

?

字符串數據類型

String數據類型用于表示字符串類型值。

數據類型描述
char(size)這里size是要存儲的字符數。固定長度字符串,右邊的空格填充到相等大小的字符。
character(size)這里size是要存儲的字符數。 固定長度字符串。 右邊的空格填充到相等大小的字符。
varchar(size)這里size是要存儲的字符數。 可變長度字符串。
character varying(size)這里size是要存儲的字符數。 可變長度字符串。
text可變長度字符串。

比Mysql 擁有更加豐富的字符串類型

?

日期/時間數據類型

日期/時間數據類型用于表示使用日期和時間值的列。

名稱描述存儲大小最小值最大值解析度
timestamp [ (p) ] [不帶時區 ]日期和時間(無時區)8字節4713 bc294276 ad1微秒/14位數
timestamp [ (p) ]帶時區包括日期和時間,帶時區8字節4713 bc294276 ad?
date日期(沒有時間)4字節4713 bc5874897 ad1微秒/14位數
time [ (p) ] [ 不帶時區 ]時間(無日期)8字節00:00:0024:00:001微秒/14位數
time [ (p) ] 帶時區僅限時間,帶時區12字節00:00:00+145924:00:00-14591微秒/14位數
interval [ fields ] [ (p) ]時間間隔12字節-178000000年178000000年1微秒/14位數

一些其他數據類型

布爾類型:

名稱描述存儲大小
boolean它指定true或false的狀態。1字節

貨幣類型:

名稱描述存儲大小范圍
money貨幣金額8字節-92233720368547758.08 至 +92233720368547758.07

幾何類型:

幾何數據類型表示二維空間對象。最根本的類型: - 形成所有其他類型的基礎。

名稱存儲大小表示描述
point16字節在一個平面上的點(x,y)
line32字節無限線(未完全實現)((x1,y1),(x2,y2))
lseg32字節有限線段((x1,y1),(x2,y2))
box32字節矩形框((x1,y1),(x2,y2))
path16+16n字節封閉路徑(類似于多邊形)((x1,y1),…)
polygon40+16n字節多邊形(類似于封閉路徑)((x1,y1),…)
circle24字節<(x,y),r>(中心點和半徑)

?

對數據庫:

創建數據庫:

CREATE DATABASE database_name;

刪除數據庫:

drop database database_name;

?

對表:

創建表:

CREATE TABLE table_name(

column1 datatype,

column2 datatype,

column3 datatype,

.....

columnN datatype,

PRIMARY KEY( one or more columns )

);
?

刪除表:

drop table table_name;

?

?

插入:

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN);

查詢:

SELECT "column1", "column2".."column" FROM "table_name";

更新:

UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];

刪除:

DELETE FROM table_name WHERE [condition];

?

還有 order by / group by /? having / and? ?/? or? /? like? /? in /? not in??? 這些和Mysql 的沒啥不同,一樣用.

?

Not

NOT? 條件與WHERE子句一起使用以否定查詢中的條件。

SELECT column1, column2, ..... columnN?

FROM

? ? ? table_name

WHERE [search_condition] NOT [condition];

?

Between

BETWEEN條件與WHERE子句一起使用,以從兩個指定條件之間的表中獲取數據。

SELECT column1, column2, ..... columnN

FROM table_name

WHERE [search_condition] BETWEEN [condition];

示例:

SELECT * FROM EMPLOYEES WHERE AGE BETWEEN 24 AND 27;
?

連接:

  • 內連接(INNER JOIN)

  • 左外連接(LEFT OUTER JOIN)

  • 右外連接(RIGHT OUTER JOIN)

  • 全連接(FULL OUTER JOIN)

  • 跨連接(CROSS JOIN)


事務:

  • BEGIN TRANSACTION:開始事務。
  • COMMIT:保存更改,或者您可以使用END TRANSACTION命令。
  • ROLLBACK:回滾更改。

其實也和mysql 的差不多.語法區別不是很大.

?

?

總結

以上是生活随笔為你收集整理的PostgreSQL与MySQL语法对比总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。