1. 程式人生 > >DB——postgresql的安裝與簡單使用

DB——postgresql的安裝與簡單使用

安裝 sudo apt-get install postgresql 此命令預設建立了一個名為 postgres 的linux使用者,無密碼。相當於mysql中無密碼的root 使用者。

預設客戶端操作 登入客戶端: sudo -u postgres psql 建立使用者: create user 'username' with password 'password'; 建立資料庫(指定擁有者): create database 'databasename' owner 'username' 賦予許可權: grant all privileges on database 'databasename' to 'username';

常規操作 登入資料庫: psql -U dbuser -d databasename -h localhost -p 5432; 修改密碼: alter user 'username' with password 'password'; 刪除密碼: sudo -u 'username' psql -d 'databasename'; 刪除使用者: DROP POLE 'username'; 刪除庫: DROP DATABASE 'databasename'; 刪除表: DROP TABLE 'tablename'; 建立表:

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

增刪改查

插入:

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)  VALUES (value1, value2, value3,...valueN);

查詢:

SELECT "column1", "column2".."column" FROM "table_name"
;

更改:

UPDATE table_name  SET column1 = value1, column2 = value2...., columnN = valueN  WHERE [condition];

刪除:

DELETE FROM table_name  WHERE [condition];

排序:

SELECT "column1", "column2".."column" FROM "table_name" ORDER BY column1 ASC;

跟在查詢語句後。後接處理欄位和規則,升序:ASC(預設) 降序:DESC

分組:

SELECT "column1", "column2".."column" FROM "table_name" GROUP BY 'column1';

跟在查詢語句後。後接處理欄位,可以將重複的資料合併,減少冗餘。

條件滿足:

SELECT "column1", "column2".."column" FROM "table_name" GROUP BY 'column1' having 'column2'>100;

跟在查詢語句後。後接條件,達到篩選的效果。 where 子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾資料,條件中不能包含聚組函式,使用where條件顯示特定的行。 having 子句的作用是篩選滿足條件的組,即在分組之後過濾資料,條件中經常包含聚組函式,使用having 條件顯示特定的組,也可以使用多個分組標準進行分組。

條件語句:

  • AND 條件
  • OR 條件
  • AND & OR 條件
  • NOT 條件
  • LIKE 條件
  • IN 條件 在...裡
  • NOT IN 條件
  • BETWEEN 條件 在 . 和 . 之間

連線查詢

  • 內連線(INNER JOIN) 此連線返回滿足連線條件的多個表中的所有行。
SELECT table1.columns, table2.columns  
FROM table1  
INNER JOIN table2  
ON table1.common_filed = table2.common_field;
  • 左外連線(LEFT OUTER JOIN) 左外連線返回從“ON”條件中指定的左側表中的所有行,只返回滿足條件的另一個表中的行。
SELECT table1.columns, table2.columns  
FROM table1  
LEFT OUTER JOIN table2  
ON table1.common_filed = table2.common_field;
  • 右外連線(RIGHT OUTER JOIN) 右外連線返回從“ON”條件中指定的右側表中的所有行,只返回滿足條件的另一個表中的行。
SELECT table1.columns, table2.columns  
FROM table1  
RIGHT OUTER JOIN table2  
ON table1.common_filed = table2.common_field;
  • 全連線(FULL OUTER JOIN) 全外連線從左表和左表中返回所有行。 它將NULL置於不滿足連線條件的位置。
SELECT table1.columns, table2.columns  
FROM table1  
FULL OUTER JOIN table2  
ON table1.common_filed = table2.common_field;
  • 跨連線(CROSS JOIN) 跨連線(CROSS JOIN)將第一個表的每一行與第二個表的每一行相匹配。 它也被稱為笛卡爾積。 如果table1具有“x”行,而table2具有“y”行,則所得到的表將具有(x * y)行。
SELECT coloums   
FROM table1   
CROSS JOIN table2