當前位置:首頁 » 編程語言 » pgsql查看建表語句
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

pgsql查看建表語句

發布時間: 2023-08-31 12:52:38

⑴ pgsql如何獲取觸發器中的表名

創建表dbo.triggerTest
CREATE TABLE dbo.triggerTest ( rowId INT IDENTITY PRIMARY KEY, someData VARCHAR(50) DEFAULT NEWID() )
GO

---創建觸發器
CREATE TRIGGER dbo.itrg_triggerTest ON dbo.triggerTest
FOR INSERT
AS

--查詢該觸發器觸發的表
SELECT @@PROCID, OBJECT_NAME( @@PROCID )

SELECT OBJECT_SCHEMA_NAME( parent_id ) + '.' + OBJECT_NAME( parent_id ) tableName FROM sys.triggers WHERE object_id = @@PROCID
GO

INSERT INTO dbo.triggerTest DEFAULT VALUES
GO

⑵ 如何查PostgreSQL 資料庫中所有的表

1、通過命令行查詢
\d 資料庫 —— 得到所有表的名字
\d 表名 —— 得到表結構
2、通過SQL語句查詢
"select * from pg_tables" —— 得到當前db中所有表的信息(這里pg_tables是系統視圖)
"select tablename from pg_tables where schemaname='public'" —— 得到所有用戶自定義表的名字(這里"tablename"欄位是表的名字,"schemaname"是schema的名字。用戶自定義的表,如果未經特殊處理,默認都是放在名為public的schema下)

⑶ 在postgresql中如何從資料庫中檢索出所有的表名

1、查看當前資料庫中所有的模式。

⑷ pgsql怎樣創建表,資料庫等

打開軟體,進入界面中。

雙擊「PostgresSQL 9.3」連接伺服器

方法一:右鍵單擊「postgres」,選擇「新建對象」--新建資料庫,設置新的資料庫的參數,所有者一般默認為「postgres」

新建完後,不能立即看到界面上更新的數據,需要點擊界面上的更新按鈕才能夠看到資料庫的變化情況。

方法二:在插件中輸入SQL語言,運行命令

方法三:點擊面板上的「執行任意的SQL查詢」

⑸ pg資料庫的db怎麼查看錶關聯

一、資料庫的多表連接查詢,inner的不同用法

在pg資料庫中建立兩張表:

t_a和t_b如下所示:

t_a:

t_b:

1、inner join(內連接)

inner join就是根據on欄位標示出來的條件,查詢關聯的表中符合條件的數據,並把他前部都顯示出來,形成一個結果集。

執行如下語句:

select * from t_a inner join t_b on t_a.adi=t_b.bid

得到的結果為:

這樣的查詢會顯示出所有的數據,如果我們僅僅需要一部分的數據(例如我們只想查出t_a中所有aid和t_b中的bid相同的數據),那麼查詢語句應該變成:

select t_a.* from t_a inner join t_b on t_a.aid=t_b.bid

那麼得到的數據如下所示,就只顯示了t_a表中的數據。如下:

要排除重復的數據,在select後加distinct即可。

2、left join

left join 就是以表t_a為基礎從右表t_b中查詢出所有符合on條件的結果,在合並到表t_a中對應的部分,再作為一個結果集輸出,在結果集中,會顯示出表t_a中的所有數據。

執行如下查詢語句:

select * from t_a left join t_b on t_a.aid=t_b.bid

得到如下結果:

可以看到,在查詢的結果中,有一行關於表t_b的數據都為null,因為表t_b中沒有符合on條件的數據。但是表t_a表顯示出了全部的數據。那麼在需要篩選的時候,應該著重於篩選表t_b中的數據,如果執行如下的語句:

select t_a.* from t_a left join t_b on t_a.aid=t_b.bid

那麼得到的就是表t_a中的所有數據,那麼這個查詢就顯得沒有意義了。

3、right join

right join 就是以表t_b為基礎從左表t_a中查詢出所有符合on條件的結果,在合並到表t_b中對應的部分,再作為一個結果集輸出,在結果集中,會顯示出表t_b中的所有數據。

執行如下查詢語句:

select * from t_a right join t_b on t_a.aid=t_b.bid

得到的結果為:

可以看到,查詢的結果中,有兩行數據在表t_a的對應部分都是null的,表示表t_a中沒有符合on條件的數據,但是表t_b顯示了全部的數據,那麼需要做條件篩選的時候,我們就應該主要針對表t_a進行篩選。

二、查詢一個父級的所有子級(包括子級的子級)

在pg資料庫中建立一張表t_c如下:

要查出cid為1的所有的子級、包括cid為2、3、5的子級的集合。執行以下sql語句

with recursive tb as(select * from t_c where parent_id='1' union all select t_c.* from t_c,tb where t_c.parent_id=tb.cid )select * from tb

得到如下的結果:

由查詢出的結果集可以看到,我們查詢出了除了父級(cid為1)以外的所有cid為父級的子級以及子級的子級。

我們來解析一下這個sql語句:

顯而易見的,這是一個遞歸的查詢方法。首先是with為查詢語句提供了輔助功能,可以看做是查詢語句中的臨時表,其次recursive是sql中遞歸的關鍵字,只有有了這個關鍵字,pg才知道with這個語句需要做遞歸操作。union all是去重的,t_c.parent_id=tb.cid 表示了t_c的parent_id要等於臨時表tb的cid要在整個with語句的外面查詢建立的臨時表tb,才能得到所有的子級的集合。

⑹ PostgreSQL 與Mysql對照

mysql:show databases
pgsql:\l 或者\l+(顯示的信息要多一些)

mysql:use xx
pgsql:\c xx

mysql:show tables
pgsql:\dt

⑺ sql語句 怎麼從一張表中查詢數據插入到另一張表中

sql語句從一張表中查詢數據插入到另一張表中的方法如下:

1、select * into destTbl from srcTbl。

2、insert into destTbl(fld1, fld2) select fld1, 5 from srcTbl。

以上兩句都是將 srcTbl 的數據插入到 destTbl,但兩句又有區別的:

第一句(select into from)要求目標表(destTbl)不存在,因為在插入時會自動創建。

第二句(insert into select from)要求目標表(destTbl)存在,由於目標表已經存在,所以我們除了插入源表(srcTbl)的欄位外,還可以插入常量。

拓展資料:

結構化查詢語言(Structured Query Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更卜凱漏新和管理關系資料庫系統。sql 語句就是對資料庫進行操作的一種語言。

常見語句:

1、更新:update table1 set field1=value1 where 范圍。孫逗

2、查找:select * from table1 where field1 like 』%value1%』 (所有包含『value1』這個模式的字元串)。

3、排序:select * from table1 order by field1,field2 [desc]。

4、求和:select sum(field1) as sumvalue from table1。

5、型爛平均:select avg(field1) as avgvalue from table1。

6、最大:select max(field1) as maxvalue from table1。

7、最小:select min(field1) as minvalue from table1[searator]。