pg學習 基本表定義 資料型別

2021-07-29 21:25:11 字數 3024 閱讀 3728

資料型別

1、字串型別

char 型別:描述單個位元組的字段。 

char(length)型別:存放定長的字元到字串中,不足 length 的字串,用空格進行

補充。varchar(length)型別:存放變長的字串,但有長度限制

text 型別:不限制字串的數目,通常用於描述長度變化較大或長度不可預知的資料字

段。其中,char(length)型別處理速度上要比 varchar(length)型別和 text 型別要快,

但是儲存上要占用很大空間。所以說在設計資料庫的時候,需要注意的地方。

2、數值型別

int2 型別

int4、integer 型別

int8 型別

float4 型別

float8 型別

numeric 型別

serial 型別

integer、int2 和 int8 用於描述存放整型數值的變數。integer 型別和 int4 型別的變數

都是占用 4 個位元組的儲存容量;int2 型別的變數是占用 2 個位元組的儲存容量;int8 型別的變數是占用 8 個位元組的儲存容量。

float8 和 float4 用於描述浮點型別變數。前者精度為 15 位資料,後者的精確度為 6 位 資料。

numeric 型別用於描述使用者自定義精度的實數變數。這種型別的處理速度最慢。盡量避免使用。

serial 型別是用其他型別構造出來的一種特殊型別。典型的用途是建立表的唯一標識。 預設情況下,能建立乙個隱含的序列,當刪除表的時候,隱含序列並不會被刪除。

3、時間型別

date

time

timestamp

interval

其中,date 型別用於描述日期變數,包括年、月、日,它的格式由 datestyle 配置項的 值來決定。

highgo=# select current_date;

date

------------

2017-03-30

(1 row)

time 型別用於描述時間資料變數,包括時、分、秒,三者之間用「:」分隔。

highgo=# select current_time;

timetz

--------------------

15:23:24.057695+08

(1 row)

timestamp 型別用於描述時間戳資料變數,包括年、月、日和時、分、秒。

highgo=# select current_timestamp;

now

-------------------------------

2017-03-30 15:23:29.536595+08

(1 row)

interval 型別用於描述時間間隔變數,包括年、月、日和時、分、秒等分量。

4、邏輯型別

boolean 型別 用於描述邏輯變數,只能存放兩個值:true 和 false。

5、幾何型別

幾何型別是 highgo db 特有的資料型別,主要用於描述存放平面二維幾何圖引數的變數。

6、網路型別

cidr 型別:ip v4 位址

inet 型別:ip v4 位址或主機名 

通常在資料庫設計的時候,由字元型別進行代替。也減少了在程式設計的時候進資料型別的轉換。

7、陣列型別

陣列型別,這種字段可以用於存放多個簡單型別的資料。陣列字段可以是一維的,也可以 是二維的,甚至可以是多維的。

7.1定義方法

highgo=# create table test1(name integer[5]);

create table

highgo=# create table test2(name integer);

create table

7.2插入資料

highgo=# insert into test1 values('');

insert 0 1

highgo=# insert into test1 values('');

insert 0 1

7.3陣列欄位的引用

highgo=# select * from test1 where name='';

name

-------

(1 row)

7.4用途

對於長度不固定、對資料型別有特別要求的資料,陣列字段特別有用。

8、大物件型別

highgo db 提供了用於儲存超大型文字的 text 型別和儲存二進位制資料的 bytea 型別。

瀚高資料庫還相容了 oracle 的 clob 和 blob 型別。

大物件的引用可以利用 highgo db 的函式 lo_import()將大物件插入到資料庫中,也可 以利用 lo_export()函式從資料庫中取出大物件。

9、預定義變數

highgo=# select current_date;

date

------------

2017-03-30

(1 row)

highgo=# select current_time;

timetz

--------------------

15:23:24.057695+08

(1 row)

highgo=# select current_timestamp;

now

-------------------------------

2017-03-30 15:23:29.536595+08

(1 row)

highgo=# select current_user;

current_user

--------------

highgo

(1 row)

pg學習 基本表定義 修改表結構

修改表結構 1 增加字段 highgo d test1 table public.test1 column type modifiers id integer name character varying highgo alter table test1 add addr varchar 20 al...

pg學習 基本表定義 約束關係

約束關係 1 非空約束 highgo create table test1 highgo num int unique,highgo name varchar 10 highgo 注意 create table unique 將要為表 test1 建立隱含索引 test1 num key creat...

C 學習 基本資料型別

整型,字元型,布林型,浮點型 c c 標準只定義了最低的位數,而不是必需的固定位數 bool 布林型 char 字元型 8位 wchar t 寬字元型 16位 short 短整型 16位 int 整形 16位 long 長整形 32位 float 單精度浮點型 6為有效數字 double 雙精度浮點...