栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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


哈喽!大家好,我是【莫若心】,一位上进心十足的【大数据领域博主】!
擅长主流数据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

大家点赞、收藏、关注、评论啦 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780667.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号