IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 通俗易懂的学会SQL,30道练习题(PostgreSQL基础版) -> 正文阅读

[大数据]通俗易懂的学会SQL,30道练习题(PostgreSQL基础版)

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
? 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
??????感谢各位大可爱小可爱!??????

前言

PostgreSQL是加州大学伯克利分校计算机系开发的,一个开源免费的关系式数据库管理系统,经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内相对高的声誉

🚀 1.数据定义语言DDL

🌈 1.1 数据库操作

📣📣【选择数据库】

#使用 \l 用于查看已经存在的数据库:

在这里插入图片描述

#使用 \c 数据库名 来进入数据库:

在这里插入图片描述

#使用?查看所有信息,比如jempgdb=# \conninfo

在这里插入图片描述

#可以在连接数据库后面添加数据库名来选择数据库:

在这里插入图片描述
📣📣 【删除数据库】

PostgreSQL 删除数据库可以用以下三种方式:
1、使用 DROP DATABASE SQL 语句来删除。
2、使用 dropdb 命令来删除。
3、使用 pgAdmin 工具。
注意:删除数据库要谨慎操作,一旦删除,所有信息都会消失。
#DROP DATABASE 删除数据库
DROP DATABASE 会删除数据库的系统目录项并且删除包含数据的文件目录
DROP DATABASE 只能由超级管理员或数据库拥有者执行
DROP DATABASE 命令需要在 PostgreSQL 命令窗口来执行,语法格式如下:
DROP DATABASE [ IF EXISTS ] name

🌈 1.2 表操作

以下创建了一个表,表名为 COMPANY 表格,主键为 ID,NOT NULL 表示字段不允许包含 NULL 值:
CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);

postgres=# \d --查看所有表
postgres=# \d department --查看表的定义

在这里插入图片描述

📣📣 【删除表】

我们创建了 COMPANY 和 DEPARTMENT 两个表,我们可以先使用 \d 命令来查看表是否创建成功:

在这里插入图片描述

从以上结果可以看出,我们表格已经创建成功,接下来我们删除这两个表:
postgres=# drop table department, company;
再使用 \d 命令来查看就找不到表

在这里插入图片描述

🚀 2.处理数据DML

🌈 2.1 INSERT INTO

在 jempgdb 数据库中创建 COMPANY 表
postgres=# create database jempgdb;
postgres=# \c jempgdb
postgres=# CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL,
JOIN_DATE DATE
);

在 COMPANY 表中插入以下数据:
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE)
VALUES (1, ‘Paul’, 32, ‘California’, 20000.00,‘2001-07-13’);

在这里插入图片描述

以下实例插入多行:
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE)
VALUES (4, ‘Mark’, 25, 'Rich-Mond ', 65000.00, ‘2007-12-13’ ),
(5, ‘David’, 27, ‘Texas’, 85000.00, ‘2007-12-13’);

在这里插入图片描述

🌈 2.2 UPDATE

更新在 PostgreSQL 数据库中的数据,我们可以用 UPDATE 来操作。
#以下是 UPDATE 语句修改数据的通用 SQL 语法:
UPDATE table_name
SET column1 = value1, column2 = value2…, columnN = valueN
WHERE [condition];
我们可以同时更新一个或者多个字段。
我们可以在 WHERE 子句中指定任何条件

更新 COMPANY 表中 id 为 3 的 salary 字段值:
UPDATE COMPANY SET SALARY = 15000 WHERE ID = 3;
同时更新 salary 字段和 address 字段的值:
UPDATE COMPANY SET ADDRESS = ‘Texas’, SALARY=20000;

🌈 2.3 DELETE

#DELETE 语句删除数据的通用语法:
DELETE FROM table_name WHERE [condition];
如果没有指定 WHERE 子句,PostgreSQL 表中的所有记录将被删除。
一般我们需要在 WHERE 子句中指定条件来删除对应的记录
条件语句可以使用 AND 或 OR 运算符来指定一个或多个。

删除 ID 为 2 的数据:
DELETE FROM COMPANY WHERE ID = 2;
删除整张 COMPANY 表:
DELETE FROM COMPANY;

🚀 3、查询语言DQL

🌈 3.1 SELECT 语句

PostgreSQL SELECT 语句用于从数据库中选取数据,结果被存储在一个结果表中,称为结果集。
#语法
SELECT 语句语法格式如下:
SELECT column1, column2,…columnN FROM table_name;
如果我们想读取表中的所有数据可以使用以下 SQL 语句:
SELECT * FROM table_name;

在这里插入图片描述

找出 AGE(年龄) 字段大于等于 25,并且 SALARY(薪资) 字段大于等于 65000 的数据:
SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;

在这里插入图片描述

列出 AGE(年龄) 字段在 25 到 27 的数据:
SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27;

在这里插入图片描述

🌈 3.2 子查询

以下的 SELECT 语句使用了 SQL 的子查询,子查询语句中读取 SALARY(薪资) 字段大于 65000 的数据,然后通过 EXISTS 运算符判断它是否返回行,如果有返回行则读取所有的 AGE(年龄) 字段。
SELECT AGE FROM COMPANY
WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);

在这里插入图片描述

🌈 3.3 LIKE 子句

在 PostgreSQL 数据库中,我们如果要获取包含某些字符的数据,可以使用 LIKE 子句。
在 LIKE 子句中,通常与通配符结合使用,通配符表示任意字符,在 PostgreSQL 中,
主要有以下两种通配符:百分号 % 下划线 _
如果没有使用以上两种通配符,LIKE 子句和等号 = 得到的结果是一样的。

找出 AGE 以 2 开头的数据:
SELECT * FROM COMPANY WHERE AGE::text LIKE ‘2%’;
找出 address 字段中含有 - 字符的数据:
SELECT * FROM COMPANY WHERE ADDRESS LIKE ‘%-%’;

在这里插入图片描述

🌈 3.4 LIMIT 子句

找出限定的数量的数据,即读取 4 条数据:
SELECT * FROM COMPANY LIMIT 4;

在这里插入图片描述

🌈 3.5 GROUP BY 语句

根据 NAME 字段值进行分组,找出每个人的工资总额:
SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME;

在这里插入图片描述

根据 NAME 字段值进行分组,找出每个客户的工资总额,且name降序:
SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME DESC;

在这里插入图片描述

🌈 3.6 WITH 子句

在 PostgreSQL 中,WITH 子句提供了一种编写辅助语句的方法,以便在更大的查询中使用。
WITH 子句有助于将复杂的大型查询分解为更简单的表单,便于阅读。这些语句通常称为通用表表达式(Common Table Express, CTE),
也可以当做一个为查询而存在的临时表。
WITH 子句是在多次执行子查询时特别有用,允许我们在查询中通过它的名称(可能是多次)引用它。
WITH 子句在使用前必须先定义。

With CTE AS
(Select
ID
, NAME
, AGE
, ADDRESS
, SALARY
FROM COMPANY )
Select * From CTE;

在这里插入图片描述

查找 SALARY(工资) 字段小于 20000 的数据并计算它们的和:
WITH RECURSIVE t(n) AS (
VALUES (0)
UNION ALL
SELECT SALARY FROM COMPANY WHERE SALARY < 20000
)
SELECT sum(n) FROM t;

在这里插入图片描述

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:47:05  更:2022-04-30 08:50:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:23:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码