您好,登錄后才能下訂單哦!
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è)資訊頻道,感謝各位的閱讀!
免責(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)容。