PostgreSQL 基本操作
发布时间:2020-12-13 17:33:27 所属栏目:百科 来源:网络整理
导读:前言 最近在使用PostgreSQL,基本操作与MySql略有不同,故记录下以备查阅. @Author duangr @Websitehttp://my.oschina.net/duangr/blog/182212 1.相关环境 Host Name IP OS Arch duangr-1 192.168.56.10 CentOS 6.4 x86_64 PostgreSQL 版本: 9.3.1 2.基本操作
前言
最近在使用PostgreSQL,基本操作与MySql略有不同,故记录下以备查阅. @Author duangr @Websitehttp://my.oschina.net/duangr/blog/182212 1.相关环境
PostgreSQL 版本: 9.3.1 2.基本操作2.1 登陆超级用户登陆 su-postgres psqltemplate1--登陆template1数据库 普通用户登陆 psql -U duangr -d template1 -- 使用duangr登陆template1数据库 2.2 基本查询l--查看有哪些数据库 q--退出 cduangr--从之前的库切换到duangr库 dtable_name--查看表结构 dt--查看有哪些表 di--查看索引 du--查看角色 通过SQL查看 --查询系统有哪些数据库 selectoid,datnamefrompg_database; --查询系统有哪些用户 selectusenamefrompg_user; --查询系统有哪些角色 selectrolnamefrompg_roles; 2.3 用户与角色用户和角色类似,用户就是可以登陆的角色. --创建用户(duangr) CREATEUSERduangrWITHPASSWORD'${passwd}'; --在db中切换用户 !-Uduangr-dtemplate1 --删除用户(duangr) DROPUSERduangr; --创建角色(dgr_role) CREATEroledgr_role; --删除角色 DROPROLE[IFEXISTS]name[,...] --将角色赋给其他角色或用户 GRANTrole_name[,...]TOrole_or_user_name[,...] --回收角色 REVOKErole[,...]FROMrole_or_user_name[,...] 授予权限 GRANT{{SELECT|INSERT|UPDATE|DELETE|REFERENCES|TRIGGER}[,...]|ALL[PRIVILEGES]} ON[TABLE]tablename[,...] TO{rolename|PUBLIC}[,...][WITHGRANTOPTION] GRANT{{USAGE|SELECT|UPDATE}[,...]|ALL[PRIVILEGES]} ONSEQUENCEsequencename[,...] TO{role_or_user_name|PUBLIC}[,...][WITHGRANTOPTION] GRANT{{CREATE|CONNECT|TEMPORARY|TEMP}[,...]|ALL[PRIVILEGES]} ONDATABASEdbname[,...][WITHGRANTOPTION] GRANT{EXECUTE|ALL[PRIVILEGES]} ONFUNCTIONfuncname([[argmode][argname]argtype[,...]])[,...][WITHGRANTOPTION] GRANT{USAGE|ALL[PRIVILEGES]} ONLANGUAGElangname[,...][WITHGRANTOPTION] GRANT{{CREATE|USAGE}[,...]|ALL[PRIVILEGES]} ONSCHEMAschemaname[,...][WITHGRANTOPTION] GRANT{CREATE|ALL[PRIVILEGES]} ONTABLESPACEtablespacename[,...][WITHGRANTOPTION] 回收权限 REVOKE[GRANTOPTIONFOR] {{SELECT|INSERT|UPDATE|DELETE|REFERENCES|TRIGGER}[,...] FROM{role_or_user_name|PUBLIC}[,...] [CASCADE|RESTRICT] REVOKE[GRANTOPTIONFOR] {{USAGE|SELECT|UPDATE}[,...]|ALL[PRIVILEGES]} ONSEQUENCEsequencename[,...] FROM{[role_or_user_name|PUBLIC}[,...] [CASCADE|RESTRICT] REVOKE[GRANTOPTIONFOR] {{CREATE|CONNECT|TEMPORARY|TEMP}[,...] [CASCADE|RESTRICT] REVOKE[GRANTOPTIONFOR] {EXECUTE|ALL[PRIVILEGES]} ONFUNCTIONfuncname([[argmode][argname]argtype[,...] [CASCADE|RESTRICT] REVOKE[GRANTOPTIONFOR] {USAGE|ALL[PRIVILEGES]} ONLANGUAGElangname[,...] [CASCADE|RESTRICT] REVOKE[GRANTOPTIONFOR] {{CREATE|USAGE}[,...] [CASCADE|RESTRICT] REVOKE[GRANTOPTIONFOR] {CREATE|ALL[PRIVILEGES]} ONTABLESPACEtablespacename[,...] [CASCADE|RESTRICT] 2.4 数据库操作
--创建db(duangr) createdatabaseduangr --删除db(duangr) dropdatabaseduangr --建表 createtable( [field1][type1]<references关联表名(关联的字段名)>,[field2][type2],......,primarykey([field1],[field2],...) ); --改表名 altertable[table_A]renameto[table_B]; --删表 droptable[table_name] --修改表 --加字段 altertable[table_name]addcolumn[field_name][type]; --删字段 altertable[table_name]dropcolumn[field_name]; --重命名字段 altertable[table_name]renamecolumn[field_A]to[field_B]; --设置字段缺省值 altertable[table_name]altercolumn[field_name]setdefault[value]; --删除缺省值 altertable[table_name]altercolumn[field_name]dropdefault; --记录增删改 insertinto[table_name](field1,field2,...)values(...) update[table_name]setfield=?where... deletefrom[table_name]where... 2.5 数据清理--对数据库进行清理、收回磁盘空间并更新统计信息 vaccumdb-d -a对所有的数据库操作 -z保证不断地删除失效的行,节约磁盘空间,将统计信息更新为最近的状态 2.6 备份数据库--备份duangr库 pg_dumpduangr>/export/home/duangr/pgsql/backup/duangr_20131206.bak 2.7 导入数据--将文件中的数据导入到表中(字段分隔符可以自定义,与数据文件中保持一致.数据文件字段与表中列相对应) copytable_namefrom'/tmp/etl/table_name.dat'withdelimiter'^A' P.S. 此处使用ASCII字符 0x01 作为文件中字段分隔符,目的是避免与数据字段内容冲突. ^A 需要通过 "Ctrl+V" + "Ctrl+A" 的方式输入. 3. 相关链接
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |