当前位置: 首页 > Linux

PostgreSQL常用SQL语句

时间:2023-04-07 00:12:59 Linux

PostgreSQL简介[1]PostgreSQL可以说是最强大、功能最丰富、最复杂的开源数据库管理系统,其中一些功能甚至是商业数据库所没有的。这个起源于加州大学伯克利分校的数据库,现在已经成为一个国际化的开发项目,拥有广泛的用户群,尤其是在海外,国内用户越来越多。PostgreSQL基本见证了整个数据库理论和技术的发展,由UCB计算机教授MichaelStonebraker于1986年创建。在此之前,Stonebraker教授领导了关系数据库Ingres的研究项目,并于1988年提出了Postgres的第一个原型设计。MySQL号称是使用最广泛的开源数据库,而PG号称是最强大的开源数据库。创建一个新用户创建一个新用户CREATEUSERWITHENCRYPTEDPASSWORD'';用户授权grantCONNECTaccessGRANTCONNECTONDATABASEdatabase_nameTOusername;然后使用GRANTUSAGEONSCHEMAschema_nameTOusername授予模式;授予对特定表的SELECT权限GRANTSELECTONtable_nameTO用户名;GrantSELECTtomultipletables#执行格式GRANTSELECTONALLTABLESINSCHEMAschema_nameTOusername;#示例grantselectonschemapublictouser1中的所有表;如果你想在以后自动授予对新表的访问权限,你必须更改默认值ALTERDEFAULTPRIVILEGESINSCHEMAschema_nameGRANTSELECTONTABLESTOusername;创建数据库创建一个utf-8字符的数据库,以template0为模板创建CREATEDATABASEdbnameWITHOWNER=postgresTEMPLATE=template0ENCODING='UTF8';将指定数据库的所有权限授予指定用户GRANTALLPRIVILEGESONDATABASEdbnametousername;执行登录操作后提示FATAL:role'root'isnotpermittedtologin.alteruser"root"login;databasebackupandrestorebackupalldatabasespg_dumpall>db.outrestorealldatabases#执行这个命令时连接到哪个数据库并不重要,因为pg_dumpall创建的脚本将包含创建和连接到数据库的适当命令数据库psql-fdb.outpostgres备份单个数据库pg_dump-hlocalhost-Upostgres(用户名)数据库名(默认与用户名相同)>/data/dum.sql恢复单个数据库psql-Upostgres(用户名)数据库名(默认与用户名相同)/data/dum.sql.gz恢复单个压缩数据库备份gunzip''ORDERBYlapDESC;#参数说明procpid:processidstart:processstarttimelap:elapsedtimecurrent_query:在命令中执行sql#:=#selectpg_cancel_backend(threadid);杀死指定的SQL语句(该函数只能killSelectquery,但是updae,deleteDML不生效)#使用=#selectpg_terminate_backend(pidint)可以kill各种DML(SELECT、UPDATE、DELETE、DROP)操作,虽然kill-9可以用于强制删除用户进程,但不推荐这样做。因为:对于update语句,kill进程可能会导致Postgres进入recovery模式,而在recovery模式下,表会被锁住,不允许连接数据库。参考链接[1]https://jin-yang.github.io/po...https://wiki.postgresql.org/w...http://www.postgres.cn/docs/9...本文由YP肖战发表!