当前位置: 首页 > news >正文

PostgreSQL 基础知识

执行环境: psql

1. 创建一个表格

CREATE TABLE customers (
customer_id serial PRIMARY KEY,firstname VARCHAR(100) NOT NULL,lastname VARCHAR(100) NOT NULL,username VARCHAR(50) UNIQUE NOT NULL,password VARCHAR(50) NOT NULL,email VARCHAR(255) UNIQUE NOT NULL,created_on TIMESTAMPTZ NOT NULL	
);
  • customer_id:这是一个序列,意味着它将自动递增,用作主键,用来唯一标识每个客户。
  • created_on:这是一个不允许为空的日期时间字段,用来存储客户的创建时间。

2. 插入

INSERT INTO customers(firstname, lastname, username, password, email, created_on)
VALUES('Elizabeth', 'Banks', 'elizabethbanks', '4s$5eks9m', 'elizabethbanks@myemail.com', CURRENT_TIMESTAMP);
SELECT * FROM customers;

在这里插入图片描述

插入两条记录

INSERT INTO customers(firstname, lastname, username, password, email, created_on)
VALUES('Nicole', 'Kidman', 'nkidman', '392kMLK!m', 'nicole@kidman.com', CURRENT_TIMESTAMP),
('Leroy', 'Jenkins', 'leeroy', '4k2ln@Lm', 'leroy@email.com', CURRENT_TIMESTAMP);
SELECT * FROM customers;

在这里插入图片描述

3. 修改

UPDATE customers
SET username='aliceinwonderland'
WHERE email=
'elizabethbanks@myemail.com';
SELECT * FROM customers;

在这里插入图片描述

4. 查找

SELECT * FROM customers WHERE username='aliceinwonderland';

在这里插入图片描述

仅当"email"字段的值满足特定模式时才被选择,这个模式是以"@myemail.com"结尾的,而"%"符号表示可以有零个或多个字符。
SELECT username FROM customers WHERE email LIKE '%@myemail.com';

在这里插入图片描述

利用选择的数据创建一个新表
CREATE TABLE usernames AS SELECT username FROM customers WHERE email LIKE '%@myemail.com';

在这里插入图片描述

5. 排序

选择的数据将按照"lastname"字段进行降序排列
SELECT firstname, lastname
FROM customers
ORDER BY lastname DESC;

在这里插入图片描述

返回的结果将会包含每个客户的完整姓名、邮箱地址以及密码的长度,并且按照密码长度从短到长进行排序。
SELECT firstname || ' ' || lastname fullname, email, LENGTH(password) passwordlength
FROM customers
ORDER BY passwordlength;

在这里插入图片描述

选择 password 长度小于9的数据
SELECT firstname || ' ' || lastname fullname, email, LENGTH(password) passwordlength
FROM customers
WHERE LENGTH(password) < 9
ORDER BY passwordlength;

在这里插入图片描述

6. 删除

使用RETURNING关键字,返回受影响的行。
DELETE FROM customers
WHERE customer_id = 1
RETURNING *;

在这里插入图片描述

从"customers"表中删除"username"字段不等于’nkidman’的行
DELETE FROM customers
WHERE username <> 'nkidman'
RETURNING *;

在这里插入图片描述

从"customers"表中删除所有行。
DELETE FROM customers
RETURNING *;

在这里插入图片描述

7. 创建只读用户

该用户的有效期截止到’2024-02-02’。
CREATE USER readitralph
WITH PASSWORD 'password'
VALID UNTIL '2024-02-02';
授予名为"readitralph"的用户对数据库中所有数据的读取权限。
GRANT pg_read_all_data TO readitralph;
http://www.lryc.cn/news/209543.html

相关文章:

  • 基于 ResNet18 架构使用 deformable convolution的车道线检测
  • C++in/out输入输出流[IO流]
  • MongoDB的安装
  • SQL查询优化---如何查询截取分析
  • vue3基础流程
  • Vue 数据绑定 和 数据渲染
  • 【原创】解决Kotlin无法使用@Slf4j注解的问题
  • CDN是如何实现全球节点同步的
  • Centos7 Linux系统下生成https的crt和key证书
  • 性能测试工具——Jmeter的安装【超详细】
  • 系列三十、Spring AOP vs AspectJ AOP
  • 面向对象设计模式——策略模式
  • Kubernetes - Ingress HTTP 负载搭建部署解决方案(新版本v1.21+)
  • 刚刚:腾讯云3年轻量2核2G4M服务器优惠价格366元三年
  • `include指令【FPGA】
  • iphone备份后怎么转到新手机,iphone备份在哪里查看
  • JAVA毕业设计106—基于Java+Springboot的外卖系统(源码+数据库)
  • SpringCore完整学习教程4,入门级别
  • 如何能在项目具体编码实现之前能尽可能早的发现问题并解决问题
  • Windows server服务器允许多用户远程的设置
  • Vmware下的虚拟机NAT连接后仍然木有网络
  • 2.Vue — 模板语法、数据绑定、el与data的写法、数据代理
  • 管理类联考——数学——汇总篇——知识点突破——数据分析——记忆
  • springboot+mybatis-plus实现读写分离
  • java将list转为逗号隔开字符串,将逗号连接的字符串转成字符数组,​将逗号分隔的字符串转换为List​(Java逗号分隔-字符串与数组相互转换)
  • 2023高频前端面试题-CSS
  • 我会在以下情况用到GPT
  • 33:深入浅出x86中断机制
  • docker docker-compose安装(centos7)
  • Dockerfile文件详细教程