Toggle navigation
主页
English
K8S
Golang
Guitar
About Me
归档
标签
Welcome to Sanger's Blog!
Postgresql 常用SQL
无
2021-03-03 16:37:46
78
0
0
sanger
[TOC] # 终端命令 ## 登录 根据提示输入密码 ``` psql -h 127.0.0.1 -U postgres ``` ## 备份 根据提示输入密码 ``` pg_dump -h 127.0.0.1 -U postgres -d drone -f drone.sql ``` ## 还原 根据提示输入密码 ``` psql -h 127.0.0.1 -d drone -U postgres -f drone.sql ``` # 控制台命令 ``` - \h:查看SQL命令的解释,比如\h select。 - \?:查看psql命令列表。 - \l:列出所有数据库。 - \c [database_name]:连接其他数据库。 - \d:列出当前数据库的所有表格。 - \d [table_name]:列出某一张表格的结构。 - \du:列出所有用户。 - \e:打开文本编辑器。 - \conninfo:列出当前数据库和连接的信息。 ``` # 数据库操作 ## 创建用户 ``` create user drone with password 'xxxxxx'; ``` ## 创建数据库 ``` create database drone owner drone; ``` ## 授权用户 ``` grant all privileges on database drone to drone; # \c 到指定的数据库下执行grant才生效 \c drone GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO drone; GRANT SELECT CREATE INSERT UPDATE ON ALL TABLES IN SCHEMA public TO drone; ``` ## 查看用户权限 ``` select * from information_schema.table_privileges where grantee='drone'; ``` ## 撤销用户权限 ``` REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM drone; ``` ## 创建新表 ``` CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE); ``` ## 插入数据 ``` INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22'); ``` ## 选择记录 ``` SELECT * FROM user_tbl; ``` ## 更新数据 ``` UPDATE user_tbl set name = '李四' WHERE name = '张三'; ``` ## 删除记录 ``` DELETE FROM user_tbl WHERE name = '李四' ; ``` ## 添加栏位 ``` ALTER TABLE user_tbl ADD email VARCHAR(40); ``` ## 更新结构 ``` ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL; ``` ## 更名栏位 ``` ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup; ``` ## 删除栏位 ``` ALTER TABLE user_tbl DROP COLUMN email; ``` ## 表格更名 ``` ALTER TABLE user_tbl RENAME TO backup_tbl; ``` ## 删除表格 ``` DROP TABLE IF EXISTS backup_tbl; ``` # 日常查询 ## 当前总共正在使用的连接数 ``` postgres=# select count(1) from pg_stat_activity; ``` ## 显示系统允许的最大连接数 ``` postgres=# show max_connections; ``` ## 显示系统保留的用户数 ``` postgres=# show superuser_reserved_connections ; ``` ## 按照用户分组查看 ``` select usename, count(*) from pg_stat_activity group by usename order by count(*) desc; ``` ## 查看最大连接 ``` show max_connections; SELECT COUNT(*) from pg_stat_activity; select min_val, max_val from pg_settings where name='max_connections'; ``` # 脚本 批量赋权 ``` #!/bin/bash # PG密码环境变量 export PGPASSWORD='xxx' for i in `cat pg_list` do psql -h pgm-xxx.pg.rds.aliyuncs.com -U xxx -p 3433 -d $i -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO sanger;" && echo "$i granted." || echo "$i can't be grant." done ``` # 参考 https://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html
上一篇:
在ubuntu16.0x 上安装openvpn+privacyIDEA+freeradius
下一篇:
Mysql常用SQL
0
赞
78 人读过
新浪微博
微信
更多分享
腾讯微博
QQ空间
人人网
文档导航