postgresql语句
1、創建數據庫
| [postgres@database2019030517 ~]$ CREATE DATABASE database_name; |
2、刪除數據庫
| [postgres@database2019030517 ~]$ drop database database_name; |
3、連接指定數據庫
| 1、[postgres@database2019030517 ~]$ psql mydb psql (10.5) Type "help" for help. mydb=# 2、psql #\l ??查看數據庫 #\c database_name; ??連接數據庫 |
4、創建表。兩個劃線(“--”)引入注釋。
| mydb=# CREATE TABLE weather ( city ???????????varchar(80), temp_lo ????????int, ??????????-- 最低溫度 temp_hi ????????int, ??????????-- 最高溫度 prcp? ? ? ? ? ? ? real, ?????????-- 濕度 date? ? ? ? ? ? ?date); |
5、刪除表
| mydb=# DROP TABLE cities;??? 1、刪除A庫下的B表。 #\c A; #drop table B; |
6、在表中增加行
INSTERT語句向表中添加行
| mydb=# insert into weather values ('San Francisco',46,50,0.25,'1994-11-27'); INSERT 0 1 |
插入數據時候明確的指出列
| mydb=# insert into weather (city,temp_lo,temp_hi,prcp,date) mydb-# values ('chines',45,66,0.65,'1994-12-1'); INSERT 0 1 |
忽略某些列, 比如說,我們不知道降水量:
| mydb=# insert into weather (date,city,temp_hi,temp_lo) values ('1996-11-2','japan',44,33); INSERT 0 1 |
查詢一個表
| mydb=# select * from weather; ?????city ?????| temp_lo | temp_hi | prcp | ???date ??? ---------------+---------+---------+------+------------ San Francisco | ?????46 | ?????50 | 0.25 | 1994-11-27 chines ???????| ?????45 | ?????66 | 0.65 | 1994-12-01 japan ????????| ?????33 | ?????44 | ????| 1996-11-02 |
查詢指定值
| mydb=# select city,date from weather; ????city ?????| ???date ??? ?---------------+------------ San Francisco | 1994-11-27 chines ???????| 1994-12-01 japan ????????| 1996-11-02 (3 rows |
選擇列表中寫任意表達式,而不僅僅是列的列表。比如:
| mydb=# select city,(temp_lo+temp_hi)/2 as temp_avg,date from weather; ????city ?????| temp_avg | ???date ??? ---------------+----------+------------ San Francisco | ??????48 | 1994-11-27 chines ???????| ??????55 | 1994-12-01 japan ????????| ??????38 | 1996-11-02 |
指定條件
| mydb=# select * from weather where city='chines' and prcp>0; ??city ?| temp_lo | temp_hi | prcp | ???date ??? --------+---------+---------+------+------------ chines | ?????45 | ?????66 | 0.65 | 1994-12-01 (1 row) |
排序查看
| mydb=# select * from weather order by temp_hi; ????city ?????| temp_lo | temp_hi | prcp | ???date ??? ---------------+---------+---------+------+------------ japan ????????| ?????33 | ?????44 | ?????| 1996-11-02 San Francisco | ?????46 | ?????50 | 0.25 | 1994-11-27 chines ???????| ?????45 | ?????66 | 0.65 | 1994-12-01 chines ???????| ?????45 | ?????66 | 0.65 | 1994-12-01 (4 rows) |
消除重復行排序查看
| mydb=# select distinct * from weather order by temp_hi; ?????city ?????| temp_lo | temp_hi | prcp | ???date ??? ---------------+---------+---------+------+------------ japan ????????| ?????33 | ?????44 | ?????| 1996-11-02 San Francisco | ?????46 | ?????50 | 0.25 | 1994-11-27 chines ???????| ?????45 | ?????66 | 0.65 | 1994-12-01 (3 rows) |
7、創建新用戶訪問pg
| [postgres@database2019030517 home]$ psql 1、創建數據庫新用戶如dbuser postgres=# create user dbuser with password 'Ysm_12$%'; 2、創建用戶數據庫,如exampledb postgres=# create database exampledb owner dbuser; 3、將exampledb數據庫的所有權限都賦予dbuser: postgres=# grant select,update,insert,delete,create on database exampledb to dbuser; postgres=# grant all privileges on database exampledb to dbuser; 4、使用命令 \q 退出psql: postgres=# \q 5、創建Linux普通用戶,與剛才新建的數據庫用戶同名,如 dbuser: [root@database2019030517 ~]# adduser dbuser [root@database2019030517 ~]# passwd dbuser 6、以dbuser用戶連接exampledb數據庫 [root@database2019030517 ~]# su - dbuser [dbuser@database2019030517 ~]$ psql -d exampledb 7、http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html |
8、創建pg用戶
| create user user_name; alter user user_namewith password 'Ysm_12$%'; alter user user_namewith CONNECTION LIMIT ?20;#連接數限制 drop user user_name; --刪除用戶 alter user user_name?password '123456'; --修改密碼 |
9、給用戶授權權限
| PostgreSQL中預定義了許多不同類型的內置權限,如:SELECT、INSERT、UPDATE、DELETE、CREATE。 我們可以使用GRANT命令來賦予權限,如: GRANT SELECT, UPDATE, INSERT ON wea TO joe; 對于上面的命令,其含義為將mytable表的增改查權限賦予admin角色。 要撤銷權限,使用合適的REVOKE命令: REVOKE SELECT, UPDATE, INSERT ON wea FROM joe; 創建測試用戶 CREATE USER joe WITH PASSWORD 'Ysm_12$%'; 創建測試表 CREATE TABLE wea ( city ???????????varchar(80), temp_lo ????????int, ??????????-- 最低溫度 temp_hi ????????int, ??????????-- 最高溫度 prcp? ? ? ? ? ? ? real, ?????????-- 濕度 date? ? ? ? ? ? ?date ?); 授權 GRANT SELECT, UPDATE, INSERT ON wea TO joe; 驗證 [postgres@database2019030517 home]$ psql -U joe -d postgres -h 127.0.0.1 -p 5432 postgres=> insert into wea values ('San Francisco',46,50,0.25,'1994-11-27'); postgres=> select * from wea; 會看到數據 [postgres@database2019030517 home]$ ?psql -U postgres postgres=# REVOKE SELECT, UPDATE, INSERT ON wea FROM joe; postgres=> select * from wea; 權限拒絕 |
10、數據恢復
| 導入數據 ?-U用戶 ?-d數據庫 ?-p端口 -f備份文件 ? 給張君用戶的test庫恢復public數據 [postgres@database2019030517 ~]$ psql -U zhangjun -d test -p 20402 -f public.sql |
11、必須知道的語句
| \h:查看SQL命令的解釋,比如\h select。 \?:查看psql命令列表。 \l:列出所有數據庫。 \c [database_name]:連接其他數據庫。 \d:列出當前數據庫的所有表格。 \d [table_name]:列出某一張表格的結構。 \du:列出所有用戶。 \e:打開文本編輯器。 \conninfo:列出當前數據庫和連接的信息。 |
12、更改用戶密碼
| ALTER USER postgres WITH PASSWORD 'Ysm_12$%'; ALTER USER oe_liuhaoran WITH PASSWORD 'Ysm_12$%'; |
13、對于數據庫實例可見性權限
| 將public的權限全部收回 #使普通用戶看不到數據庫liuhaoran1里面內容,只能看到有這個庫,什么都操作不來 revoke all on database liuhaoran1 from public; #讓所有普通用戶可以看到這個庫。可以操作對其授權的操作 grant all on database liuhaoran1 to public; #授予普通用戶對實例liuhaoran1的連接權限 grant connect on database liuhaoran1 to public; #將數據庫liuhaoran授予test2角色連接權限 grant connect on database liuhaoran1 to test2; #讓角色可以連接數據庫 grant connect on database postgres to public; |
14、創建模式
| CREATE SCHEMA schema_name; 模式有助于多用戶使用一個數據庫,而不會互相干擾。 |
15、INSERT語句
| 切換到指定的數據庫 #INSERT INTO TABLE_NAME (column1,column2........columnN) VALUES (values1,values2...valuesN) |
16、SELECT語句
| 切換到指定的數據庫 #SELECT “column1”,”column2”,”columnN” from “teble_name”; |
17、UPDATE語句
| UPDATE語句用于修改表中現有的記錄,使用UPDTE時候必須使用where子句,否則將更新所有行 UPDATE table_name SET column1=values1, column2=values2, ...., columnN=valuesN WHERE [condition]; ? UPDATE mytable SET age=20, aslary=1000 WHERE id=1; |
18、DEELETE語句
| DELETE語句用來刪除表中的記錄,WHERE子句用于指定刪除記錄的條件,如果不指定會將刪除表中的所有記錄 DELETE FROM table_name WHERE [condition]; DELETE FROM EMPLOYEES WHERE id=1; |
19、未完待續。。。
https://www.yiibai.com/postgresql/postgresql-order-by-clause.html#article-start
?
轉載于:https://www.cnblogs.com/charon2/p/11314936.html
總結
以上是生活随笔為你收集整理的postgresql语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: postgresql10.5安装
- 下一篇: hadoop3伪分布式安装