#su - postgres #切換用戶,執行後提示符會變爲 '-bash-4.2$'
#psql -U postgres #登陸數據庫,執行後提示符變爲 'postgres=#'
#ALTER USER postgres WITH PASSWORD 'postgres' #設置postgres用戶密碼爲
#postgres=# \q #退出數據庫html
\h : 查看SQL命令的解釋,好比\h select。 \? : 查看psql命令列表。 \l : 列出全部數據庫。 \c [database_name] : 鏈接其餘數據庫。 \d : 列出當前數據庫的全部表格。 \d [table_name] : 列出某一張表格的結構。 \du : 列出全部用戶。 \e : 打開文本編輯器。 \conninfo : 列出當前數據庫和鏈接的信息。
alter user postgres with password 'new password' #更改postgres的密碼
注意 :linux
pg_dump 將PostgreSQL數據庫導出到一個腳本文件
pg_dumpall 將全部的PostgreSQL數據庫導出到一個腳本文件
pg_restore 從一個由pg_dump或pg_dumpall程序導出的腳本文件中恢復PostgreSQL數據庫 sql
*在已有的表裏添加字段: alter table [表名] add column [字段名] [類型];
*刪除表中的字段: alter table [表名] drop column [字段名];
*重命名一個字段: alter table [表名] rename column [字段名A] to [字段名B];
*給一個字段設置缺省值: alter table [表名] alter column [字段名] set default [新的默認值];
*去除缺省值: alter table [表名] alter column [字段名] drop default;
在表中插入數據: insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);
修改表中的某行某列的數據: update [表名] set [目標字段名]=[目標值] where [該行特徵];
刪除表中某行數據: delete from [表名] where [該行特徵];
delete from [表名]; --刪空整個表數據庫
仍是要用例子來講明:
建立一個用戶組:
sales=# CREATE GROUP sale;
添加幾個用戶進入該組
sales=# ALTER GROUP sale ADD USER sale1,sale2,sale3;
授予用戶級sale針對表employee和products的SELECT權限
sales=# GRANT SELECT ON employee,products TO GROUP sale;
在sale中將用戶user2刪除
sales=# ALTER GROUP sale DROP USER sale2;centos
建立用戶以及設置用戶密碼bash
默認狀況下只有用戶名。postgres沒有設置密碼yii
postgres=# select usename,passwd from pg_shadow; 查看用戶以及是否加密 usename | passwd ----------+------------------------------------- postgres | zabbix | md520e0e8833ebe8947cd347f94b1c4977f (2 rows) #create user test #建立test用戶,不設置密碼 postgres=# \password test #test用戶設置密碼 Enter new password: Enter it again: postgres=# select usename,passwd from pg_shadow; usename | passwd ----------+------------------------------------- postgres | zabbix | md520e0e8833ebe8947cd347f94b1c4977f test | md55a2e54ee57e5b7273b9a8fed78c1ebd8 (3 rows)
進入到 PostgreSQL 的安裝目錄,並進入到 bin 目錄,createdb 命令位於 PostgreSQL安裝目錄/bin 下,執行建立數據庫的命令:編輯器
$ cd /Library/PostgreSQL/11/bin/ $ createdb -h localhost -p 5432 -U postgres runoobdb password ******
CREATE DATABASE dbname;
使用 \l 用於查看已經存在的數據庫:函數
postgres=# \l
使用 \c + 數據庫名 來進入數據庫:post
postgres=# \c runoobdb
鏈接數據庫後面添加數據庫名來選擇數據庫:
$ psql -h localhost -p 5432 -U postgress testdb Password for user postgress: ****
給定的數據庫中建立一個新表
CREATE TABLE table_name( column1 datatype, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY( one or more columns ) );
CREATE TABLE public.student2 ( id integer NOT NULL, name character(100), subjects character(1), CONSTRAINT student2_pkey PRIMARY KEY (id) ) WITH ( OIDS=FALSE ); ALTER TABLE public.student2 OWNER TO postgres; COMMENT ON TABLE public.student2 IS '這是一個學生信息表2';
CREATE TABLE myschema.tb_test ( id integer, name character(254) ) WITH ( OIDS=FALSE ); ALTER TABLE myschema.tb_test OWNER TO postgres;
建立模式
經過SQL命令行直接建立 -
CREATE SCHEMA myschema;
建立了一個表,表名爲 COMPANY 表格,主鍵爲 ID,NOT NULL 表示字段不容許包含 NULL 值:
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
使用SQL刪除數據庫
postgres=# drop database testdb; DROP DATABASE
postgres=# drop table student2;
#CREATE DATABASE testdb OWNER postgres; #建立testdb數據庫,屬於用戶postgres
語法:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN);
注意:
column1
,column2
,column3
,...columnN
是要插入數據的表中的列的名稱。
INSERT INTO EMPLOYEES( ID, NAME, AGE, ADDRESS, SALARY) VALUES (1, 'Maxsu', 25, '海口市人民大道2880號', 109990.00 ), (2, 'minsu', 25, '廣州中山大道 ', 125000.00 ), (3, '李洋', 21, '北京市朝陽區', 185000.00), (4, 'Manisha', 24, 'Mumbai', 65000.00), (5, 'Larry', 21, 'Paris', 85000.00);
SELECT語句用於從數據庫表中檢索數據。 數據以結果表格的形式返回。
語法:
SELECT "column1", "column2".."column" FROM "table_name";
這裏,column1,column2,.. columnN
指定檢索哪些數據的列。 若是要從表中檢索全部字段,則必須使用如下語法:
SELECT * FROM "table_name";
執行如下查詢從表中檢索指定字段:
SELECT id,name FROM EMPLOYEES;
或者
SELECT ID, NAME, AGE, SALARY FROM EMPLOYEES;
UPDATE語句用於修改表中現有的記錄。 要更新所選行,您必須使用WHERE子句,不然將更新全部行。
語法:
如下是update
語句的基本語法:
UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];
WHERE」子句用於指定刪除所選記錄的條件,如是不指定條件則將刪除全部記錄。
語法:
如下是DELETE語句的基本語法:
DELETE FROM table_name WHERE [condition];
ORDER BY
子句用於按升序或降序對數據進行排序。數據在一列或多列的基礎上進行排序。
語法:
SELECT column-list FROM table_name [WHERE condition] [ORDER BY column1, column2, .. columnN] [ASC | DESC];
參數說明:
column_list
:它指定要檢索的列或計算。table_name
:它指定要從中檢索記錄的表。FROM子句中必須至少有一個表。WHERE conditions
:可選。 它規定必須知足條件才能檢索記錄。ASC
:也是可選的。它經過表達式按升序排序結果集(默認,若是沒有修飾符是提供者)。DESC
:也是可選的。 它經過表達式按順序對結果集進行排序。
執行如下查詢以按升序ORDER BY AGE
數據記錄:
SELECT * FROM EMPLOYEES ORDER BY AGE ASC;
按照 age
字段升序排序
執行如下查詢以按降序ORDER BY name DESC
數據的記錄:
SELECT * FROM EMPLOYEES ORDER BY name DESC;
按照 name
字段降序排序
GROUP BY
子句用於將具備相同數據的表中的這些行分組在一塊兒。 它與SELECT
語句一塊兒使用。
GROUP BY
子句經過多個記錄收集數據,並將結果分組到一個或多個列。 它也用於減小輸出中的冗餘。
語法:
SELECT column-list FROM table_name WHERE [conditions ] GROUP BY column1, column2....columnN ORDER BY column1, column2....columnN
注意:在
GROUP BY
多個列的狀況下,您使用的任何列進行分組時,要確保這些列應在列表中可用。
執行如下查詢:
SELECT NAME, SUM(SALARY) FROM EMPLOYEES GROUP BY NAME;
再來看看下面這個例子:
咱們在「EMPLOYEES
」表中插入一些重複的記錄。添加如下數據:
INSERT INTO EMPLOYEES VALUES (6, '李洋', 24, '深圳市福田區中山路', 135000); INSERT INTO EMPLOYEES VALUES (7, 'Manisha', 19, 'Noida', 125000); INSERT INTO EMPLOYEES VALUES (8, 'Larry', 45, 'Texas', 165000);
執行如下查詢以消除冗餘:
SELECT NAME, SUM(SALARY) FROM EMPLOYEES GROUP BY NAME;
使用GROUP BY NAME
時,能夠看到重複的名字數據記錄被合併。 它指定GROUP BY
減小冗餘。
HAVING子句與GROUP BY子句組合使用,用於選擇函數結果知足某些條件的特定行。
語法:
SELECT column1, column2 FROM table1, table2 WHERE [ conditions ] GROUP BY column1, column2 HAVING [ conditions ] ORDER BY column1, column2
HAVING子句與GROUP BY子句組合使用,用於選擇函數結果知足某些條件的特定行。
語法:
SELECT column1, column2 FROM table1, table2 WHERE [ conditions ] GROUP BY column1, column2 HAVING [ conditions ] ORDER BY column1, column2
在「EMPLOYEES
」表中插入一些重複的記錄,首先添加如下數據:
INSERT INTO EMPLOYEES VALUES (7, 'Minsu', 24, 'Delhi', 135000); INSERT INTO EMPLOYEES VALUES (8, 'Manisha', 19, 'Noida', 125000);
執行如下查詢表「EMPLOYEES
」中name
字段值計數大於1
的名稱。
SELECT NAME,COUNT (NAME) FROM EMPLOYEES GROUP BY NAME HAVING COUNT (NAME) > 1;
Having子句
HAVING子句與GROUP BY子句組合使用,用於選擇函數結果知足某些條件的特定行。
語法:
SELECT column1, column2 FROM table1, table2 WHERE [ conditions ] GROUP BY column1, column2 HAVING [ conditions ] ORDER BY column1, column2
將顯示名稱(name
)數量小於2
的記錄。
執行如下查詢:
SELECT NAME FROM EMPLOYEES GROUP BY NAME HAVING COUNT (NAME) < 2;
在「EMPLOYEES
」表中插入一些重複的記錄,首先添加如下數據:
INSERT INTO EMPLOYEES VALUES (7, 'Minsu', 24, 'Delhi', 135000); INSERT INTO EMPLOYEES VALUES (8, 'Manisha', 19, 'Noida', 125000);
查詢表「EMPLOYEES
」中name
字段值計數大於1
的名稱。
SELECT NAME,COUNT (NAME) FROM EMPLOYEES GROUP BY NAME HAVING COUNT (NAME) > 1;
AND條件與WHERE
子句一塊兒使用,以從表中的多個列中選擇惟一的數據。
語法:
SELECT column1, column2, ..... columnN FROM table_name WHERE [search_condition] AND [search_condition];
查詢全部ID小於4
而且薪水大於120000
的員工數據信息,執行如下查詢語句:
SELECT * FROM EMPLOYEES WHERE SALARY > 120000 AND ID <= 4;
OR條件與WHERE
子句一塊兒使用,以從表中的一列或多列列中選擇惟一數據。
語法
SELECT column1, column2, ..... columnN FROM table_name WHERE [search_condition] OR [search_condition];
查詢名字是Minsu
或者地址爲Noida
員工信息,執行如下查詢:
SELECT * FROM EMPLOYEES WHERE NAME = 'Minsu' OR ADDRESS = 'Noida';
AND&OR條件在僅一個查詢中提供了AND
和OR
條件的優勢。
語法:
SELECT column1, column2, ..... columnN FROM table_name WHERE [search_condition] AND [search_condition] OR [search_condition];
查詢名字的值爲Minsu
和地址的值爲’Delhi
‘,或者ID值大於等8
的記錄信息,執行如下查詢:
SELECT * FROM EMPLOYEES WHERE (NAME = 'Minsu' AND ADDRESS = 'Delhi') OR (ID>= 8);
NOT條件與WHERE子句一塊兒使用以否認查詢中的條件。
語法:
SELECT column1, column2, ..... columnN FROM table_name WHERE [search_condition] NOT [condition];
查詢那些地址不爲NULL
的記錄信息,執行如下查詢:
SELECT * FROM EMPLOYEES WHERE address IS NOT NULL ;
查詢那些年齡不是21
和24
的全部記錄,執行如下查詢:
SELECT * FROM EMPLOYEES WHERE age NOT IN(21,24) ;
LIKE條件與WHERE子句一塊兒用於從指定條件知足LIKE
條件的表中獲取數據。
語法
SELECT column1, column2, ..... columnN FROM table_name WHERE [search_condition] LIKE [condition];
示例1
查詢名字以Ma
開頭的數據記錄,以下查詢語句:
SELECT * FROM EMPLOYEES WHERE NAME LIKE 'Ma%';
示例2
查詢名字以su
結尾的數據記錄,以下查詢語句:
SELECT * FROM EMPLOYEES WHERE NAME LIKE '%su';
示例3
查詢地址中含有大道
的數據記錄,以下查詢語句:
SELECT * FROM EMPLOYEES WHERE address LIKE '%大道%';
IN條件與WHERE子句一塊兒使用,從指定條件知足IN
條件的表中獲取數據。
語法:
SELECT column1, column2, ..... columnN FROM table_name WHERE [search_condition] IN [condition];
查詢employee
表中那些年齡爲19
,21
的員工信息,執行如下查詢:
SELECT * FROM EMPLOYEES WHERE AGE IN (19, 21);
NOT IN條件與WHERE子句一塊兒使用,以從指定條件否認IN
條件的表中獲取數據。
語法:
SELECT column1, column2, ..... columnN FROM table_name WHERE [search_condition] NOT IN [condition];
查詢那些年齡不是19
,25
的數據,執行如下查詢:
SELECT * FROM EMPLOYEES WHERE AGE NOT IN (19, 25);
查詢那些名字不是Minsu
,Maxsu
的數據信息,執行如下查詢:
SELECT * FROM EMPLOYEES WHERE name NOT IN ('Maxsu', 'Minsu');
BETWEEN條件與WHERE子句一塊兒使用,以從兩個指定條件之間的表中獲取數據。
語法:
SELECT column1, column2, ..... columnN FROM table_name WHERE [search_condition] BETWEEN [condition];
查詢employees
表中年齡在24
~27
之間(含24
,27
)的數據信息,執行如下查詢:
SELECT * FROM EMPLOYEES WHERE AGE BETWEEN 24 AND 27;
安裝PostgreSQL
1 2 |
|
卸載PostgreSQL
1 2 |
|
CentOS卸載舊版本postgresql
一、$ yum remove postgresql*
二、刪除相關目錄文件:
rm -rf /var/lib/pgsql
rm -rf /usr/pgsql*
rm -r /etc/postgresql/
rm -r /etc/postgresql-common/
rm -r /var/lib/postgresql/
三、刪除pg相關用戶組/用戶
userdel -r postgres
groupdel postgres
四、
參考連接:
原文出自【易百教程】,商業轉載請聯繫做者得到受權,非商業轉載請保留原文連接:https://www.yiibai.com/postgresql/postgresql-between-condition.html
連接 :
PostgreSQL安裝詳細步驟(linux) : https://www.cnblogs.com/qiyebao/p/4562557.html
源碼postgresql安裝及常見錯誤處理 :https://blog.csdn.net/zhu_xun/article/details/21234663
centos7 在線安裝新版postgresql10 :https://www.jianshu.com/p/4e88071ed09a
Centos7 安裝Postgresql10.5和PostGIS : https://blog.csdn.net/u010430471/article/details/81663248