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