溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Postgresql有哪些常用的新手入門命令

發(fā)布時(shí)間:2020-08-24 16:33:15 來源:億速云 閱讀:130 作者:Leah 欄目:編程語言

Postgresql有哪些常用的新手入門命令?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

Postgresql的常用命令:

連接數(shù)據(jù)庫, 默認(rèn)的用戶和數(shù)據(jù)庫是postgres

psql -U user -d dbname

切換數(shù)據(jù)庫,相當(dāng)于mysql的use dbname

\c dbname

列舉數(shù)據(jù)庫,相當(dāng)于mysql的show databases

\l

列舉表,相當(dāng)于mysql的show tables

\dt

查看表結(jié)構(gòu),相當(dāng)于desc tblname,show columns from tbname

\d tblname

查看索引

\di

創(chuàng)建數(shù)據(jù)庫: 

create database [數(shù)據(jù)庫名];

刪除數(shù)據(jù)庫: 

drop database [數(shù)據(jù)庫名];

*重命名一個(gè)表: 

alter table [表名A] rename to [表名B];

*刪除一個(gè)表: 

drop table [表名];

*在已有的表里添加字段: 

alter table [表名] add column [字段名] [類型];

*刪除表中的字段: 

alter table [表名] drop column [字段名];

*重命名一個(gè)字段:  

alter table [表名] rename column [字段名A] to [字段名B];

*給一個(gè)字段設(shè)置缺省值:  

alter table [表名] alter column [字段名] set default [新的默認(rèn)值];

*去除缺省值:  

alter table [表名] alter column [字段名] drop default;

在表中插入數(shù)據(jù): 

insert into 表名 ([字段名m],[字段名n],......) values ([列m的值],[列n的值],......);

修改表中的某行某列的數(shù)據(jù): 

update [表名] set [目標(biāo)字段名]=[目標(biāo)值] where [該行特征];

刪除表中某行數(shù)據(jù): 

delete from [表名] where [該行特征];

刪空整個(gè)表:

delete from [表名];

創(chuàng)建表: 

create table ([字段名1] [類型1] ;,[字段名2] [類型2],......<,primary key (字段名m,字段名n,...)>;);

顯示 PostgreSQL 的使用和發(fā)行條款:

\copyright

顯示或設(shè)定用戶端字元編碼:

\encoding [字元編碼名稱]

SQL 命令語法上的說明,用 * 顯示全部命令              

\h [名稱]

提示用戶設(shè)定內(nèi)部變數(shù):

\prompt [文本] 名稱

securely change the password for a user

\password [USERNAME]

退出 psql:

\q

可以使用pg_dump和pg_dumpall來完成。比如備份sales數(shù)據(jù)庫: 

pg_dump drupal>/opt/Postgresql/backup/1.bak

指定給postgresql用戶的常用命令:

默認(rèn)用戶

postgres安裝完成后,會(huì)自動(dòng)在操作系統(tǒng)和postgres數(shù)據(jù)庫中分別創(chuàng)建一個(gè)名為postgres的用戶以及一個(gè)同樣名為postgres的數(shù)據(jù)庫。

登錄

·方式1:指定參數(shù)登錄

psql -U username -d database_name -h host -W

參數(shù)含義: -U指定用戶 -d要連接的數(shù)據(jù)庫 -h要連接的主機(jī) -W提示輸入密碼。

·方式2:切換到postgres同名用戶后登錄

su username;
psql

當(dāng)不指定參數(shù)時(shí)psql使用操作系統(tǒng)當(dāng)前用戶的用戶名作為postgres的登錄用戶名和要連接的數(shù)據(jù)庫名。所以在PostgreSQL安裝完成后可以通過以上方式登錄。

創(chuàng)建用戶

·方式1:在系統(tǒng)命令行中使用createuser命令中創(chuàng)建

createuser username;

·方式2:在PostgresSQL命令行中使用CREATE ROLE指令創(chuàng)建

CREATE ROLE rolename;

·方式3:在PostgresSQL命令行中使用CREATE USER指令創(chuàng)建

CREATE USER username;

CREATE USER和CREATE ROLE的區(qū)別在于,CREATE USER指令創(chuàng)建的用戶默認(rèn)是有登錄權(quán)限的,而CREATE ROLE沒有。

·\du 指令顯示用戶和用戶的用戶屬性 

創(chuàng)建用戶時(shí)設(shè)定用戶屬性

·基本語法格式

CREATE ROLE role_name WITH optional_permissions;

·示例:在創(chuàng)建用戶時(shí)設(shè)定登錄權(quán)限。

CREATE ROLE username WITH LOGIN;

·可以通過\h CREATE ROLE指令查看全部可設(shè)置的管理權(quán)限

修改用戶屬性

·修改權(quán)限的命令格式

ALTER ROLE username WITH attribute_options;

·例如:可通過以下方式禁止用戶登錄

ALTER ROLE username WITH NOLOGIN;

設(shè)置訪問權(quán)限

·語法格式如下:

GRANT permission_type ON table_name TO role_name;

·實(shí)例:

GRANT UPDATE ON demo TO demo_role; --賦予demo_role demo表的update權(quán)限
GRANT SELECT ON ALL TABLES IN SCHEMA PUBLIC to demo_role; --賦予demo_role所有表的SELECT權(quán)限

·特殊符號(hào):ALL代表所訪問權(quán)限,PUBLIC代表所有用戶

GRANT ALL ON demo TO demo_role; --賦給用戶所有權(quán)限
GRANT SELECT ON demo TO PUBLIC; --將SELECT權(quán)限賦給所有用戶

·\z或\dp指令顯示用戶訪問權(quán)限。

·\h GRANT顯示所有可設(shè)置的訪問權(quán)限

撤銷用戶訪問權(quán)限

·語法格式如下:

REVOKE permission_type ON table_name FROM user_name;

其中permission_type和table_name含義與GRANT指令中相同。

用戶組

在postgres中用戶實(shí)際上是role,同時(shí)組也是role。 包含其他role的role就是組。

·創(chuàng)建組示例:

CREATE ROLE temporary_users;
GRANT temporary_users TO demo_role;
GRANT temporary_users TO test_user;

·切換ROLE

SET ROLE role_name; --切換到role_name用戶
RESET ROLE; --切換回最初的role

·INHERIT權(quán)限:該屬性使組成員擁有組的所有權(quán)限

ALTER ROLE test_user INHERIT;

刪除用戶和組

刪除用戶和組很簡(jiǎn)單:

DROP ROLE role_name;
DROP ROLE IF EXISTS role_name;

刪除組role只會(huì)刪除組的role本身,組的成員并不會(huì)被刪除。

看完上述內(nèi)容,你們掌握Postgresql有哪些常用的新手入門命令的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI