1. 程式人生 > 實用技巧 >PostgresSQL (二) 基礎語法 CREATE, INSERT INTO, SELECT

PostgresSQL (二) 基礎語法 CREATE, INSERT INTO, SELECT

一. 語法命令

1. 基礎語法

建立資料庫

create database testdb;

刪除資料庫

postgres=# drop database testdb;

DROP DATABASE
postgres=#

建立表

建立表之前要連線指定的資料庫 \c test;

CREATE TABLE table_name(  
   column1 datatype,  
   column2 datatype,  
   column3 datatype,  
   .....  
   columnN datatype,  
   PRIMARY KEY( one or more columns )  
);


寫法1:
test=# create table company(id int primary key not null , name text not null , age int not null ,address char(50) , salary real);

寫法2:
test=# CREATE TABLE COMPANY(
test(#    ID INT PRIMARY KEY     NOT NULL,
test(#    NAME           TEXT    NOT NULL,
test(#    AGE            INT     NOT NULL,
test(#    ADDRESS        CHAR(50),
test(#    SALARY         REAL
test(# );


# create tabke company(); 表示建立名為company的表
# 其中包括幾個欄位
# 每個欄位新建的順序按照 1.欄位名 2.欄位資料型別 3.是否可以為空 來定義
primary key主鍵不能為空  id     int     primary key not null
					  name   text          		 not null
					  age     int          		 not null
					  
					  

檢視架構(schema)模式

\d 檢視架構模式

\d tablename 查看錶格資訊

刪除表

  1. 連線到對應的資料庫 \c test;
test-# \c test;
您現在已經連線到資料庫 "test",使用者 "postgres".
test-#
  1. drop table company;
test=# drop table company;
DROP TABLE
test=#
  1. \d 檢視刪除後的目錄結構

由於我一開始只有一張company; 刪除後, 顯示沒有其他的表

更改表資料

比如我這裡有一張pg_equipment的表

2. 插入記錄

2.1 語法

PostgreSQL INSERT INTO 語句用於向表中插入新記錄。

我們可以插入一行也可以同時插入多行。

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
  • column1, column2,...columnN 為表中欄位名。
  • value1, value2, value3,...valueN 為欄位對應的值。

在使用 INSERT INTO 語句時,欄位列必須和資料值數量相同,且順序也要對應。

如果我們向表中的所有欄位插入值,則可以不需要指定欄位,只需要指定插入的值即可:

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

2.2 例項

在test資料庫中建立COMPANY表

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL,
   JOIN_DATE      DATE
);

\d company 檢視建立表

插入資料

test=# INSERT INTO COMPANY (id,name,age,address,salary,join_date) VALUES (1, 'Paul', 32, 'California', 2000.00,'2001-07-13');
INSERT 0 1
test=#

檢視新增的表中的資料

SELECT * FROM company;

如果要忽略某一欄位 如salary 就把對應某個欄位刪去, 對應的value值也刪去

test=# INSERT INTO company (id,name,age,address,join_date) VALUES (2, 'yang', 18, 'suzhou', '2012-7-13');
INSERT 0 1

同理:

以下插入語句 join_data 欄位使用 default 子句來設定預設值,而不是指定值:

runoobdb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (3, 'Teddy', 23, 'Norway', 20000.00, DEFAULT );
INSERT 0 1

插入多行

runoobdb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00, '2007-12-13' ), (5, 'David', 27, 'Texas', 85000.00, '2007-12-13');
INSERT 0 2

使用 SELECT 語句查詢表格資料:

使用 SELECT 語句查詢表格資料:

runoobdb=# SELECT * FROM company;

ID        NAME        AGE        ADDRESS     SALARY   JOIN_DATE
----      ----------  -----      ----------  -------      --------
1         Paul        32         California  20000.0      2001-07-13
2         Allen       25         Texas                    2007-12-13
3         Teddy       23         Norway      20000.0
4         Mark        25         Rich-Mond   65000.0      2007-12-13
5         David       27         Texas       85000.0      2007-12-13

3. SELECT語法

3.1 語法

SELECT 語句語法格式如下:

SELECT column1, column2,...columnN FROM table_name;
  • column1, column2,...columnN 為表中欄位名。
  • table_name 為表名

3.1.1 讀取表中所有資料

SELECT * FROM table_name;

3.1.2 讀取指定的欄位和name:

SELECT ID,NAME FROM company;