0


16道经典SQL试题(postgreSQL版,配图附答案)

📢📢📢📣📣📣
哈喽!大家好,我是【莫若心】,一位上进心十足的【大数据领域博主】!😜😜😜
擅长主流数据Oracle、MySQL、PG 运维开发
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

🐴 1.环境准备

🌈1.1 建表

#创建COMPANY表,数据内容如下:DROPTABLE COMPANY;CREATETABLE COMPANY(
ID INTPRIMARYKEYNOTNULL,
NAME TEXTNOTNULL,
AGE INTNOTNULL,
ADDRESS CHAR(50),
SALARY REAL);INSERTINTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES(1,'Paul',32,'California',20000.00);INSERTINTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES(2,'Allen',25,'Texas',15000.00);INSERTINTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES(3,'Teddy',23,'Norway',20000.00);INSERTINTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES(4,'Mark',25,'Rich-Mond ',65000.00);INSERTINTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES(5,'David',27,'Texas',85000.00);INSERTINTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)VALUES(6,'Kim',22,'South-Hall',45000.00);INSERTINTO COMPANY VALUES(7,'James',24,'Houston',10000.00);

🌈1.2 查询表

select * from COMPANY;

在这里插入图片描述

🐴 2.实战案例

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

在这里插入图片描述

🚀🚀 找出 AGE(年龄) 字段大于等于 25,或者 SALARY(薪资) 字段大于等于 65000 的数据
SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;

在这里插入图片描述

🚀🚀 在公司表中找出 AGE(年龄) 字段不为空的记录

在这里插入图片描述

🚀🚀 在 COMPANY 表中找出 NAME(名字) 字段中以 Pa 开头的的数据

在这里插入图片描述

🚀🚀 列出AGE(年龄) 字段不为 25 或 27 的数据:

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

🚀🚀 从第三位开始提取 3 个记录:
SELECT * FROM COMPANY LIMIT 3 OFFSET 2;

在这里插入图片描述

🚀🚀 对结果根据NAME字段值进行降序,SALARY 字段值进行升序排列:
SELECT * FROM COMPANY ORDER BY NAME DESC,SALARY;

在这里插入图片描述

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

在这里插入图片描述

🚀🚀 找出根据 name 字段值进行分组,并且名称的计数大于 1 数据:
SELECT NAME FROM COMPANY GROUP BY name HAVING count(name) > 1;

在这里插入图片描述

🚀🚀 SELECT 语句中使用 DISTINCT 子句:

在这里插入图片描述

🚀🚀 SELECT DISTINCT name FROM COMPANY;

在这里插入图片描述

🚀🚀 在 SELECT 语句中使用子查询,查询薪资大于4500的员工
jempgdb=# SELECT * FROM COMPANY WHERE ID
IN (SELECT ID FROM COMPANY WHERE SALARY > 45000) ;

在这里插入图片描述

🚀🚀 把COMPANY 表中所有 AGE 大于27的客户的 SALARY 更新为原来的 0.50 倍
jempgdb=# UPDATE COMPANY SET SALARY = SALARY * 0.50
WHERE AGE IN (SELECT AGE FROM COMPANY_BKP WHERE AGE >= 27 );

在这里插入图片描述
🚀🚀🚀🚀 体系化掌握SQL,关注以下博客
https://blog.csdn.net/weixin_41645135/category_11653817.html
在这里插入图片描述

大家点赞、收藏、关注、评论啦 👇🏻👇🏻👇🏻

标签: 数据库

本文转载自: https://blog.csdn.net/weixin_55639266/article/details/123676240
版权归原作者 莫若心 所有, 如有侵权,请联系我们删除。

“16道经典SQL试题(postgreSQL版,配图附答案)”的评论:

还没有评论