1. 程式人生 > >PostgreSQL學習第八篇--psql的使用技巧和注意事項

PostgreSQL學習第八篇--psql的使用技巧和注意事項

1.歷史命令與補全功能
可以使用上下鍵把以前使用過的命令或SQL語句調出來。
連續按兩個tab鍵表示命令補全或者提示輸入。--類似於Linux功能

2.自動提交方面的技巧
在psql中,事務是自動提交的。(與oracle不同)
如果不想自動提交,可以:
    預設,postgresql是自動提交的,可以避免自動提交 
    1)使用begin;命令 
      示例: 
    postgres=# begin; 
    BEGIN 
    postgres=# insert into test values(2,2); 
    INSERT 0 1 
    postgres=# select * from test; 
     id | name 
    ----+------ 
      1 | 
      1 |    2 
      2 |    2 
    (3 行記錄) 


    postgres=# rollback; 
    ROLLBACK 
    postgres=# select * from test; 
     id | name 
    ----+------ 
      1 | 
      1 |    2 
    (2 行記錄) 

    2)還可以直接關閉自動提交的功能 
    \set AUTOCOMMIT off  --注意,AUTOCOMMIT要大寫。
    示例: 
    postgres=# \set AUTOCOMMIT off 
    postgres=# 
    postgres=# 
    postgres=# insert into test values(2,2); 
    INSERT 0 1 
    postgres=# select * from test; 
     id | name 
    ----+------ 
      1 | 
      1 |    2 
      2 |    2 
    (3 行記錄) 


    postgres=# rollback; 
    ROLLBACK 
    postgres=# select * from test; 
     id | name 
    ----+------ 
      1 | 
      1 |    2 
    (2 行記錄)

3.得到psql命令列中具體執行的SQL語句
啟動psql時加上-E引數,或者在命令列中使用\set ECHO_HIDDEN on|off命令。
[
[email protected]
~]$ psql -E psql (9.6.1) Type "help" for help. postgres=# \d ********* QUERY ********** SELECT n.nspname as "Schema", c.relname as "Name", CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as "Type", pg_catalog.pg_get_userbyid(c.relowner) as "Owner" FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relkind IN ('r','v','m','S','f','') AND n.nspname <> 'pg_catalog' AND n.nspname <> 'information_schema' AND n.nspname !~ '^pg_toast' AND pg_catalog.pg_table_is_visible(c.oid) ORDER BY 1,2; ************************** List of relations Schema | Name | Type | Owner --------+------+-------+---------- public | test | table | postgres public | txx | table | postgres (2 rows) postgres=# \set ECHO_HIDDEN off postgres=# \d List of relations Schema | Name | Type | Owner --------+------+-------+---------- public | test | table | postgres public | txx | table | postgres (2 rows) postgres=# \set ECHO_HIDDEN on postgres=# \d ********* QUERY ********** SELECT n.nspname as "Schema", c.relname as "Name", CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'm' THEN 'materialized view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' WHEN 'f' THEN 'foreign table' END as "Type", pg_catalog.pg_get_userbyid(c.relowner) as "Owner" FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relkind IN ('r','v','m','S','f','') AND n.nspname <> 'pg_catalog' AND n.nspname <> 'information_schema' AND n.nspname !~ '^pg_toast' AND pg_catalog.pg_table_is_visible(c.oid) ORDER BY 1,2; ************************** List of relations Schema | Name | Type | Owner --------+------+-------+---------- public | test | table | postgres public | txx | table | postgres (2 rows)

相關推薦

PostgreSQL學習--psql的使用技巧注意事項

1.歷史命令與補全功能 可以使用上下鍵把以前使用過的命令或SQL語句調出來。 連續按兩個tab鍵表示命令補全或者提示輸入。--類似於Linux功能 2.自動提交方面的技巧 在psql中,事務是自動提交的。(與oracle不同) 如果不想自動提交,可以: 預設,po

從.Net到Java學習——SpringBoot實現session共享國際化

區分 cal request 展示 hang 輸入 nds www target SpringBoot Session共享 修改pom.xml添加依賴 <!--spring session--> <dependen

Python 語言學習 :函式2(引數、lamdba函式屬性)

函式的引數是引數暴露給外部的介面,向函式傳遞引數,可以控制函式的流程,函式可以0個、1個或多個引數;在Python中向函式傳參,使用的是賦值方式。 一,傳遞引數 引數是通過賦值來傳遞的,傳遞引數的特點是: 引數的傳遞是通過自動把物件賦值給函式的本地變數名來實現的, 在函式內部的變數名的賦值不會

機器學習

構造價格模型 在利用多種不同屬性(比如價格)對數值型資料進行預測時,貝葉斯分類器、決策樹、支援向量機都不是最佳的演算法。 本篇將對一系列演算法進行考查,這些演算法可以接受訓練,根據之前見過的樣本資料作出資料類的預測,而且它們還可以顯示出預測的概率分佈情況,以幫助使用者對預測過程加以解釋。後續

ORACLE學習(ORACLE檢視)

一、概念 檢視是虛表,沒有具體物理資料,是通過實體表的一種計算對映邏輯。主要就是為了方便和資料安全; 二、建立檢視 Create view 檢視名稱 as 查詢語句 create view v_emp1 as select ename,job from emp; 出

Android學習;使用gradle.properties

一,為什麼使用gradle.properties? 1,對於專案而言,有時候需要配置某些敏感資訊。比如密碼,帳號等。而這些資訊需要被很多類共同使用,所以必須有一個全域性的配置 2,當需要把專案push到git上時,我們不希望別人看到我們專案的key,token等。我們可以將

PostgreSQL學習十三 執行計劃

PostgreSQL中explain的語法: explain [option] statement explain [analyze] [verboase] statement 命令的可選選項option為: analyze verbose costs buffers fo

pandas 學習 14:索引選擇資料

資料框和序列結構中都有軸標籤,軸標籤的資訊儲存在Index物件中,軸標籤的最重要的作用是: 唯一標識資料,用於定位資料 用於資料對齊 獲取和設定資料集的子集。 本文重點關注如何對序列(Series)和資料框(DataFrame)進行切片(slice),切塊(dice)、如何獲取和設定子集。 下表列出資料框

Python學習:numpy的使用技巧注意

在實際操作中,我們需要需要養成習慣,任何浪費空間或者時間的操作都需要減少,因為我們操作的是大資料,可能造成災難性的放大,使用numpy的思想,儘量減少不必要的拷貝,我們操作的物件是大資料。 # -*- coding: utf-8 -*- # numpy是針對list操作的 impor

ESP8266-01學習筆記02:指令集注意事項

設定WiFi模組的名字和密碼(AP模式下) AT+CWSAP=”ESP8266”,”1234567890”,5,3 本模組可以工作在三種模式: 1. STA 2 .AP 3 .AP+STA, 出廠設定為第三種 Sta模式: Station, 類似於無線終端

關於本地快取localstorage與sessionStorage 陣列 (array)字串(string) 物件(object)的儲存技巧注意事項

localstorage與sessionStorage的使用方法都是一樣的 唯一的區別在與 localstorage是永久儲存在你的計算機上  sessionstorage只要瀏覽器關閉,儲存就消失 <!DOCTYPE html> <html> &l

Model設計中常見的技巧注意事項

verbose_name 可以作為第一個引數傳入,書寫更加工整和有序; name = models.CharField('類別名',default="", max_length=30,help_text="類別名") null=True, blank=True 一般同時出現

Django學習筆記--實戰練習四--為你的視圖函數自定義裝飾器

ons one ces app1 pos print 事情 res 需要 零、背景: 對於登錄後面所有視圖函數,都需要驗證登錄信息,一般而言就是驗證cookie裏面的一些信息。所以你可以這麽寫函數: 1 def personinfo(request): 2 if

python學習[十三] 條件循環

one res mds this 沒有 case語句 Suite 部分 字典 python學習[第十三篇] 條件和循環 if語句 單一if 語句 if語句有三個部分構成,關鍵字if本身,判斷結果真假的條件表達式,以及表達式為真或非0是執行的代碼 if expression:

學習筆記-小甲魚Python3學習講:了不起的分支循環2

false 成績 pytho 問題 成員 報錯 nsh abc 語法 按照100分制,90分以上成績為A,80到90為B,60到80為C,60以下為D,寫一個程序,當用戶輸入分數,自動轉換為ABCD的形式打印。使用if 條件:...elif 條件:...else...循環f

python學習天二進制字符編碼有關聯

我們 www python學習 怎麽 unicode pytho 國際 python編程 漢字 計算機所能識別只有0,1這兩種狀態,但是我們人類用字母,漢字,還有其他語言,那麽怎麽和計算機進行溝通呢,python編程語言最早unicode,現在統一用utf8,UTF8

MyBatis學習——(手動分頁pagehelper分頁實現)

1:專案場景介紹 在專案中分頁是十分常見的功能,一般使用外掛實現分頁功能,但是在使用外掛之前我們首先手動寫出分頁程式碼,發然對比外掛實現的分頁,利於我們理解分頁底層實現和更好的實現外掛分頁實用技術,本次使用的外掛是PageHelper(採用都是物理分頁) 在開始之前我們建立兩個表,分別是t_

MyBatis學習——(攔截器攔截器分頁實現)

MyBatis架構體圖 1:mybatis核心物件 從MyBatis程式碼實現的角度來看,MyBatis的主要的核心部件有以下幾個: SqlSession         &n

博文 markdown學習記錄

2018-10-11更新 13、圖片 感嘆號後加方括號後加小括號,方括號內寫圖片文字描述,可不寫,小括號內寫圖片網路地址 ![](http://pic.cr173.com/up/2016-1/20161491356.jpg) 12、 表格 程式碼如下,

HTML5學習3-HTML5的前世今生設計理念

引言 想要深入的瞭解一個人就必須要知道這個人的過往經歷和成長背景,因為是這些經歷的疊加成就了這個人現在的樣子。就像樑寧老師說的,一個人所表現出的樣子就是這個人過往經歷的疊加。學技術也一樣,想深入的瞭解一門技術也需要知道技術的前世今生和設計理念。知道這些才知道語言真正的生命力,知道語言的背