irpas技术客

16道经典SQL试题(postgreSQL版,配图附答案)_莫若心_postgresql 练习题

irpas 1210

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

文章目录 🐴 1.环境准备🌈1.1 建表🌈1.2 查询表 🐴 2.实战案例

🐴 1.环境准备 🌈1.1 建表 #创建COMPANY表,数据内容如下: DROP TABLE COMPANY; CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (2, 'Allen', 25, 'Texas', 15000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (3, 'Teddy', 23, 'Norway', 20000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (5, 'David', 27, 'Texas', 85000.00 ); INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 ); INSERT INTO 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

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


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #postgresql #练习题 #本文总结了常用的PG #SQL