您的位置 首页 编程知识

第二天 – 句子,订购,子查询,汇总函数,在数据库中组。

员工信息表: empid | empname | designation | dept | salary –…

第二天 - 句子,订购,子查询,汇总函数,在数据库中组。

员工信息表:

empid | empname |    designation    |   dept    | salary  -------+---------+-------------------+-----------+--------     11 | lakshmi | 软件工程师       | IT        |  50000     12 | guru    | 经理             | HR        |  40000     13 | pritha  | 经理             | IT        |  70000     14 | gokul   | 团队主管         | Sales     |  30000     15 | raja    | HR                | Marketing |  65000     16 | rani    | HR                | Sales     |  45000 (6 rows)
登录后复制

表名修改:

ALTER TABLE employee RENAME TO employees;
登录后复制

员工表详细信息:

d employees
登录后复制

向员工表添加多行:

INSERT INTO employees VALUES(105, 'bala', '团队主管', 'AI', 100000), (106, 'kani', '经理', 'CS', 150000);
登录后复制

员工表数据:

SELECT * FROM employees;
登录后复制

所有部门的员工:

SELECT dept FROM employees;
登录后复制

唯一部门:SELECT DISTINCT dept FROM employees; 确保只返回唯一部门值。

WHERE子句:PostgreSQL 的 WHERE 子句用于基于特定条件过滤记录,仅检索满足指定标准的行。语法:SELECT column1, column2 FROM table_name WHERE condition;

IT 部门的员工:

SELECT * FROM employees WHERE dept = 'IT';
登录后复制

IT 部门且职位为“软件工程师”的员工:

SELECT * FROM employees WHERE dept = 'IT' AND designation = '软件工程师';
登录后复制

将职位列重命名为“职位”:

SELECT designation AS 职位 FROM employees;
登录后复制

非IT部门的员工:

SELECT * FROM employees WHERE dept <> 'IT';
登录后复制

薪水大于50000的员工:

SELECT * FROM employees WHERE salary > 50000;
登录后复制

薪水大于等于50000的员工:

SELECT * FROM employees WHERE salary >= 50000;
登录后复制

薪水小于等于50000的员工:

SELECT * FROM employees WHERE salary <= 50000;
登录后复制

薪水在40000到100000之间的员工:

SELECT * FROM employees WHERE salary BETWEEN 40000 AND 100000;
登录后复制

职位为“团队主管”或“经理”的员工:

SELECT * FROM employees WHERE designation IN ('团队主管', '经理');
登录后复制

职位既不是“团队主管”也不是“经理”的员工:

SELECT * FROM employees WHERE designation NOT IN ('团队主管', '经理');
登录后复制

员工’raja’,在IT或市场部门:

SELECT * FROM employees WHERE empname = 'raja' AND (dept = 'IT' OR dept = 'Marketing');
登录后复制

ORDER BY 子句:用于根据一个或多个列的升序(ASC)或降序(DESC)排序结果集。

按职位升序排序的员工:

SELECT * FROM employees ORDER BY designation;
登录后复制

按姓名和薪水升序排序的员工:

SELECT * FROM employees ORDER BY empname, salary;
登录后复制

按薪水降序,姓名升序排序的员工:

SELECT * FROM employees ORDER BY salary DESC, empname ASC;
登录后复制

薪水最低的前三名员工:

SELECT * FROM employees ORDER BY salary LIMIT 3;
登录后复制

薪水最高的前三名员工:

SELECT * FROM employees ORDER BY salary DESC LIMIT 3;
登录后复制

姓名以’r’开头的员工:

SELECT * FROM employees WHERE empname LIKE 'r%';
登录后复制

姓名第二个字符为’a’的员工:

SELECT * FROM employees WHERE empname LIKE '_a%';
登录后复制

姓名第三个字符为’n’的员工:

SELECT * FROM employees WHERE empname LIKE '__n%';
登录后复制

姓名符合模式’p_i__a’的员工:

SELECT * FROM employees WHERE empname LIKE 'p_i__a';
登录后复制

薪水最低的员工:

SELECT empname FROM employees ORDER BY salary LIMIT 1;
登录后复制

:在行组上执行计算并返回单个结果。

计数、平均值、总和、最大值、最小值:

SELECT COUNT(*), AVG(salary), SUM(salary), MIN(salary), MAX(salary) FROM employees;
登录后复制

子查询:嵌套在另一个SQL查询中的查询。

第二高薪的员工:

SELECT MAX(salary) FROM employees WHERE salary NOT IN (SELECT MAX(salary) FROM employees);
登录后复制

第三高薪的员工:

SELECT MAX(salary) FROM employees WHERE salary NOT IN (SELECT MAX(salary) FROM employees) AND salary NOT IN (SELECT MAX(salary) FROM employees WHERE salary NOT IN (SELECT MAX(salary) FROM employees));
登录后复制

GROUP BY 子句:通常与聚合函数一起使用,按一个或多个列分组结果集。

每个部门的总工资:

SELECT dept, SUM(salary) FROM employees GROUP BY dept;
登录后复制

每个部门的平均工资:

SELECT dept, ROUND(AVG(salary), 2) FROM employees GROUP BY dept;
登录后复制

每个部门的最高薪水:

SELECT dept, MAX(salary) FROM employees GROUP BY dept;
登录后复制

每个部门的最低薪水:

SELECT dept, MIN(salary) FROM employees GROUP BY dept;
登录后复制

每个部门的员工人数:

SELECT dept, COUNT(*) FROM employees GROUP BY dept;
登录后复制

以上就是第二天 – 句子,订购,子查询,汇总函数,在数据库中组。的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表四平甲倪网络网站制作专家立场,转载请注明出处:http://www.elephantgpt.cn/6976.html

作者: nijia

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

18844404989

在线咨询: QQ交谈

邮箱: 641522856@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部