【记录】postgresQL安装和使用

下载安装包

unzip 然后 tar -xvf 安装包

找到自启动程序sh脚本,打开脚本,里面有个password
然后bash 脚本名 -w 加上 password(或者这里可以重新重置口令) 执行即可

sh Autoinstall.sh -c -w "口令" -repl "口令"

Autoinstall.sh下载完以后,所有安装包的内容都会被删除
操作都需要通过 systemctl status postgresql-11.service来操作,systemctl的stop/start/status即可

使用

记得下载java ,否则不会报错,但是启动失败

yum install -y java-1.8.0-openjdk
java -version
  • 下载DBI,需要从服务端上传jar包,然后去登陆界面下载包。

包名为hkws.jar,然后nohup java -jar hkws.jar >/tmp/nohup.out 2>&1 &
执行命令 ps aux|grep jar 看到下图即可
在这里插入图片描述
su - postgres 然后psql即可

查看当前数据库名/表名/用户名

当前数据库名 SELECT current_database();
所有数据库名 SELECT datname FROM pg_database;
查看当前用户 SELECT current_user;
查看所有用户 SELECT usename FROM pg_user;

当前用户名 \du
查看用户名和密码设置 SELECT rolname, rolpassword FROM pg_authid;
重置用户密码 ALTER ROLE postgres PASSWORD 'new_password';

查看当前数据库有多少表

SELECT *(如想看数量就是select count(*))
FROM information_schema.tables 
WHERE table_schema = 'public';

创建表

CREATE TABLE users (
    user_id SERIAL PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

插入数据

INSERT INTO users (username, email) 
VALUES 
('Alice', 'alice@example.com'),
('Bob', 'bob@example.com'),
('Eve', 'eve@example.com');

查看数据 SELECT * FROM users WHERE username = 'Alice';
删除数据 DELETE FROM users WHERE name = 'Alice';
删除表里数据而不删除整个表格 DELETE FROM table_name;

查看主键

SELECT
    tc.table_schema,
    tc.table_name,
    kc.column_name,
    tc.constraint_name,
    tc.constraint_type
FROM
    information_schema.table_constraints tc
JOIN
    information_schema.key_column_usage kc
ON
    tc.constraint_name = kc.constraint_name
    AND tc.table_schema = kc.table_schema
WHERE
    tc.constraint_type = 'PRIMARY KEY';

在这里插入图片描述

修改操作

添加列ALTER TABLE users ADD email VARCHAR(50);
删除列ALTER TABLE users DROP COLUMN email;
修改列名称ALTER TABLE users RENAME COLUMN email TO useremail;

修改数据UPDATE users SET number = 25 WHERE 条件;

测试数据库完整性Q & A

  • 如何添加条件让select的内容按照字段名筛选?

但是很明显,不可以按照列进行筛选,因为条件里无法筛选column为某个字段,因为select * 是固定的。正常情况下,如果想按照列进行数据保护,就不需要加条件,select *就可以顾及到所有数据的列(select limit的数据值,也就是受到保护的数据条数,大于总数据量即可)。目前无法做到单独针对某一列进行数据的完整性保护。可以修改的条件只有表名和条件

SELECT column1, column2, column3
FROM table_name
ORDER BY column_name;
  • 客户端隔段时间推送给服务器,还是服务器隔段时间推送给客户端

下载wireshark,遇到找不到接口问题:

以管理员身份运行Wireshark和命令提示符(CMD)
安装或更新WinPcap/npcap
重启NPF服务:在管理员身份运行的CMD中,输入net start npf命令重启NPF服务。
检查Wireshark和npcap的安装

然后输入过滤器 ip.addr == 10.19.200.184 and tcp
在这里插入图片描述
可以看到184向我们发送数据,所以是客户端推给服务器

记得关闭防火墙,然后进行数据完整性测试,如果执行异常,就把IP改成127.0.0.1,即使pqsql不在本地,也没关系,因为他这个主机的视角是184为主视角。

  • 文件级完整性保护/数据行级完整性保护

只要筛选出来的数据改变,数据行级别的完整性保护就会被破坏,但如果是文件级完整性保护,就不会报警。

  • 其他测试用例

后面新版本的DBI 是不会让加条件的,真正生产不会只指定几条数据做完整性的,DBI3.0后配置只需要指定表和字段 就可以全表进行完整性保护
DBI3.0还支持日志模式,就是append的数据不会报警,其他中间插入数据和修改,删除数据才会报警

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值