1. 程式人生 > >postgres關鍵字、常量和資料型別

postgres關鍵字、常量和資料型別


 識別符號和關鍵字          1. SQL 識別符號和關鍵字必須以一個字母 (a-z 以及帶變音符的字母和非拉丁字母 )或下劃線(_) 開頭, 隨後的字元可以是字母、下劃線、數字 (0-9) 美元符號 ($)          2. 根據 SQL 標準,美元符號不允許出現在識別符號中, 因此使用美元符號將不易移植。          3. SQL 標準不會定義包含數字或者以下劃線開頭或結尾的關鍵字, 因此按照這種格式定義的識別符號是安全的,不會和將來標準的擴充套件特性衝突。          4. 系統使用不超過 NAMEDATALEN-1 個字元作為識別符號; 你可以在命令中寫更長的名字,但它們會被截斷。
                   (1)NAMEDATALEN 的預設值是 64  因此識別符號最大長度是 63 位元組。                    (2) 如果覺得這個限制有問題,那麼你可以在 src/include/pg_config_manual.h裡修改NAMEDATALEN 來改變它。          5. 關鍵字和未被引號包圍的識別符號都是大小寫無關的,但是建議:把關鍵字寫成大寫,而名字等用小寫。                    UPDATE MY_TABLE SET A = 5;  uPDaTE my_TabLE SeT a = 5; 是等效的。
         6. 把一個識別符號用引號包圍起來同時也令它大小寫相關,而沒有引號包圍起來的名字總是轉成小寫。                    (1) 識別符號FOO foo"foo" 是等價的 PostgreSQL名字                    (2) "Foo" "FOO" 與上面三個以及它們之間都是不同的。 PostgreSQL裡對未加引號的名子總是轉換成小寫                    (3) 這和 SQL 標準是不相容的, SQL 標準要求未用引號包圍起來的名字總是轉成大寫。因此根據標準, foo等於"FOO" 但不等於 "foo"                    (4)
 如果你想編寫可移植的程式,那麼我們建議你要麼就總是用引號包圍某個名字,要麼就從來不引  常量          1. 兩個只是通過至少一個換行符的空白分隔的字串常量會被連線在一起, 並當做它們是寫成一個常量處理。                    (1)SELECT 'foo'                             'bar';  SELECT 'foobar'; 是等價的。          2. 轉義字串常量,這是一個 PostgreSQLSQL 標準的擴充套件。轉義字串語法是通過在字串前寫字母 E (大寫或者小寫)的方法宣告的。                    (1)C 風格的轉義字串常量。 => select e'this is \n a string!';                                                  ?column?                                                 ------------                                                 this is   +                                                  a string!                                                (1 row)  主意:最好是不使用反斜槓轉義。如果你需要使用反斜槓轉義來表示特殊的字元, 那麼請在字串常量前加上 E  要在字串常量裡包含反斜槓, 則寫兩個反斜槓(\\)。另外, PostgreSQL 允許用一個反斜槓來轉義單引號 \' 不過,將來版本  PostgreSQL 將不允許這麼用。所以最好堅持使用符合標準的 ''                    (2)Unicode 轉義字串常量。一個轉義 Unicode字元常量以 U& 或者u&開始,在引號中, 通過寫一個後面跟有4 16進位制程式碼點或跟有“+”號和 616 進位制程式碼點的反斜槓, Unicode字元可以寫成轉義格式。  例如:U&'d\0061t\+000061';  U&'d!0061t!+000061' UESCAPE '!';  u&'d!0061t!0061' UESCAPE '!'; 都是代表“ data                             cd03=> select U&'d!0061t!+000061' UESCAPE '!';                              ?column?                             ----------                              data                             (1 row)                    (3) 美元符引用字串常量。如果一個字串裡面包含了很多特殊字元,如: [\t\r\n\v\\],那麼用$q$[\t\r\n\v\\]$q$ 這種方式表示會很方便( $q$,是一個字串開始和結束標籤,兩個標籤大小寫一致)。  但是這並非 sql標準。                             => select $q$[\t\r\n\v\\]$q$;                                ?column?                               --------------                              [\t\r\n\v\\]                             (1 row)  在定義函式是經常用到,如:                             $function$                             BEGIN                                 RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);END;                             $function$                    (4) 位串常量 ,位串常量裡可以用的字元只有 0 1                              2 進位制:                             => SELECT B'1001';                              ?column?                             ----------                              1001                             (1 row)                             16 進位制:                             => SELECT X'1FF';                                ?column?                               --------------                              000111111111                             (1 row) 三 資料型別  常用的資料型別:
名字 別名 描述
bigint int8 有符號8位元組整數
bigserial serial8 自增8位元組整數
bit [ (n) ] 定長位串
bit varying [ (n) ] varbit 變長位串
boolean bool 邏輯布林值(真/假)
box 平面上的矩形
bytea 二進位制資料("位元組陣列")
character varying [ (n) ] varchar [ (n) ] 變長字串
character [ (n) ] char [ (n) ] 定長字串
cidr IPv4 或 IPv6 網路地址
circle 平面上的圓
date 日曆日期(年, 月, 日)
double precision float8 雙精度浮點數字(8位元組)
inet IPv4 或 IPv6 主機地址
integer intint4 有符號 4 位元組整數
interval [ fields ] [ (p) ] 時間間隔
line 平面上的無限長直線
lseg 平面上的線段
macaddr MAC (Media Access Control)地址
money 貨幣金額
numeric [ (ps) ] decimal [ (ps) ] 可選精度的準確數字
path 平面上的幾何路徑
point 平面上的點
polygon 平面上的封閉幾何路徑
real float4 單精度浮點數(4 位元組)
smallint int2 有符號 2 位元組整數
smallserial serial2 自增 2 位元組整數
serial serial4 自增 4 位元組整數
text 變長字串
time [ (p) ] [ without time zone ] 一天中的時間(無時區)
time [ (p) ] with time zone timetz 一天裡的時間,包括時區
timestamp [ (p) ] [ without time zone ] 日期和時間(無時區)
timestamp [ (p) ] with time zone timestamptz 日期和時間,包括時區
tsquery 文字檢索查詢
tsvector 文字檢索文件
txid_snapshot 使用者級別的事務ID快照
uuid 通用唯一識別符號
xml XML 資料
json

相關推薦

postgres關鍵字常量資料型別

一 識別符號和關鍵字          1. SQL 識別符號和關鍵字必須以一個字母 (a-z 以及帶變音符的字母和非拉丁字母 )或下劃線(_) 開頭, 隨後的字元可以是字母、下劃線、數字 (0

語法基礎(常量變數資料型別

上一課已經學習瞭如何輸出文字並換行 這一節課來學習一下常量、變數和資料型別 首先說一下什麼是量 量是一種會佔用磁碟空間或記憶體空間的資料,量一般分為地址和值兩部分 地址: 量在計算機中儲存的位置 值: 能被用於運算的資料 簡而言之,量可以看作是一個容器,這個容

TensorFlow常量變數資料型別

TensorFlow 用張量這種資料結構來表示所有的資料。一個張量有一個靜態型別和動態型別的維數,張量可以在圖中的節點之間流通。 (1)TensorFlow中建立常量的方法: hello=tf.constant('hello,TensorFlow!',dtype=tf

Python筆記(二)——Python中的基本語句變數資料型別

目錄 一、python的基本語句 1.1 print語句 任務 1.2 python的註釋 二、資料型別 2.1、整數 2.2、浮點數 2.3、字串 2.4、布林值 2.5、空值 三、Python中的變數 四、Python中定義字串 任務

tensorflow中張量(tensor)的屬性——維數(階)形狀資料型別

tensorflow的命名來源於本身的執行原理,tensor(張量)意味著N維陣列,flow(流)意味著基於資料流圖的計算,所以tensorflow字面理解為張量從流圖的一端流動到另一端的計算過程。

JAVA 程式設計題解與上機指導(第四版) 第二章·識別符號關鍵字資料型別 2.12

/*2.12 設計實現一個MyGraphic類及子類,它們代表一些基本圖形,這些圖形包括矩形、三角形、圓、橢圓、菱形、梯形等。 試給能描述這些圖形所必需的屬性及必要的方法 **/ public class MyGraphic { String lineColor;//線條顏色 Strin

(七)MySQL基礎——庫表的管理常見的資料型別約束

DDL(資料定義語言):包括庫和表的管理 一、庫的管理 1、庫的建立 語法:CREATE DATABASE IF NOT EXISTS 庫名; 2、庫的修改 語法:RENAME DATABASE 舊庫名 TO 新庫名;(版本更新後不使用了,會影響庫內資料) 一般去外部檔案

Java基礎學習 一 (字符集識別符號關鍵字註釋變數基本資料型別非基本資料型別高精度數字)

一 字符集:        java採用Unicode字符集 包含65535個字元 二 識別符號:         由字母、數字、下劃線及美元符號等組成的一個字元序列,用來標識變數、方法名、類名、介面名等

JAVA的資料型別運算子

1、註釋 (1)單行註釋:與C/C++相同 (2)多行註釋:同上 (3)文件註釋: 1)什麼是文件註釋? 將我們寫的一些類和方法,提取出來形成一份API文件,告訴其他人這個類或者方法的作用以及使用方法,類似VS下的幫助文件。 2)如何寫文件註釋? 文件註釋以斜線後面緊跟兩個星號開始(/*

python 數值型別(字串切片)資料型別(元組)

linux下 可以安裝python工具;yum install -y ipython ipython支援 命令補全 數值型別 數值型別分為整形 ,長整形,浮點型,複數行 整形:平常使用的整數 長整型:很大的整數。 type 為 long 浮點:帶小數點的數字 想

js物件Object關係以及js資料型別雜談

今晚上很意外看到一個面試題,js物件和Object的關係,然後梳理了下腦中的知識~~ JavaScript物件和Object關係         W3C上有說JavaScript中所有事物都是物件:數字、字串、陣列、函式等等…我感覺從某種意義上是

Python變數資料型別(一) 基本資料型別

Python中資料型別 計算機顧名思義就是可以做數學計算的機器,因此,計算機程式理所當然地可以處理各種數值。但是,計算機能處理的遠不止數值,還可以處理文字、圖形、音訊、視訊、網頁等各種各樣的資料,不同的資料,需要定義不同的資料型別。在Python中,能夠直接處

c語言常量變數資料型別

常量:在程式執行過程中不被改變的量。 變數:在程式執行過程中可以被改變的量。 變數定義: 資料型別 變數名 = 常量;(初始化) 定義性宣告: 資料型別 變數名; 變數命名規則: 1、數字、字母、下劃線都可做變數名; 2、變數名的開頭不能為數字

mysql資料庫中命令列下常用命令的操作(增查)資料型別

identified by "";   第四招: 操作資料庫   登入到mysql中,然後在mysql的提示符下執行下列命令,每個命令以分號結束。   1、 顯示資料庫列表。   show databases;   預設有兩個資料庫:mysql和 test。 mysql庫存放著mysql的系統和使

常量變量

浮點數 大寫 字母 特殊符號 改變 字符串 內存 將不 首字母 1.常量: 在程序運行過程中,值不會發生改變的標識符 常量分類:整數常量、浮點數常量、布爾常量【true和false】、字符常量、字符串常量、null常量。 打印的時候每次只能打印一個值, 註意:字符表示單個的

Tensorflow入門----占位符常量Session

存在 大小 operation hold 而是 表示 意思 占位符 不同 安裝好TensorFlow之後,開一個python環境,就可以開始運行和使用TensorFlow了。 先給一個實例, #先導入TensorFlowimport tensorflow as tf # C

資料庫之資料型別

  首先補充點了解的小知識; select * from mysql.user #顯示出來亂了 select * from mysql.user\G #加了\G後一行一行顯示了 一、資料型別:分不同種類去存不同型別的資料 儲存引

1.Java基礎之識別符號命名法八大基本資料型別三大引用型別運算子以及程式分支結構方法的定義過載遞迴

一、基礎匯入: 1.java採用Unicode編碼,16進位制編碼,支援世界上所有語言(GBK,gb2312,Unicode,UTF-8,ISO-8859-1)。 多執行緒---> c-編譯型語言 Test.java--原始檔,原始檔必須與主類名(public class Test

Python變數資料型別型別轉換

a.變數的定義   把資料分別用一個簡單的名字代表,方便在接下來的程式中引用。   變數就是代表某個資料(值)的名稱。   變數就是用來儲存資料的,將不同的資料型別儲存到記憶體   b.變數的賦值 變數名= 初始值 初始值:為了確定變數的型

瞭解SparkSQLDataFrames資料

對於資料集和DataFrameAPI存在很多混淆,因此在本文中,我們將瞭解SparkSQL、DataFrames和DataSet。 火花SQL 它是一個用於結構化資料處理的SparkModule,它允許您編寫更少的程式碼來完成任務,並且在幕後,它可以智慧地執行優化。SparkSQL模組由兩個主要部分組