常用的SQL查询语句包括SELECT(用于查询数据)、INSERT INTO(插入新数据)、UPDATE(更新数据)和DELETE(删除数据)。
SQL 常用查询语句
SQL(Structured Query Language)是用于管理和操作数据库系统的一种语言,在数据库的日常使用中,查询语句是最频繁使用的一部分,以下是一些常用的 SQL 查询语句及其用法。
1. SELECT 语句
基本语法
SELECT column1, column2, ... FROM table_name;
示例
假设有一个名为employees
的表,包含以下列:id
,name
,age
,department
。
查询所有员工的名字和部门:
SELECT name, department FROM employees;
带条件的查询 (WHERE)
语法
SELECT column1, column2, ... FROM table_name WHERE condition;
示例
查询年龄大于30岁的员工:
SELECT * FROM employees WHERE age > 30;
带排序的查询 (ORDER BY)
语法
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC];
示例
按年龄升序查询所有员工:
SELECT * FROM employees ORDER BY age ASC;
2. 聚合函数
COUNT()
语法
SELECT COUNT(*) FROM table_name;
示例
查询员工总数:
SELECT COUNT(*) FROM employees;
SUM()
语法
SELECT SUM(column_name) FROM table_name;
示例
计算所有员工的年龄总和:
SELECT SUM(age) FROM employees;
AVG()
语法
SELECT AVG(column_name) FROM table_name;
示例
计算员工的平均年龄:
SELECT AVG(age) FROM employees;
MAX() / MIN()
语法
SELECT MAX(column_name) FROM table_name; SELECT MIN(column_name) FROM table_name;
示例
查找最大和最小年龄的员工:
SELECT MAX(age), MIN(age) FROM employees;
3. GROUP BY 子句
语法
SELECT column1, column2, aggregate_function(column_name) FROM table_name WHERE condition(s) GROUP BY column1, column2;
示例
按部门分组并计算每个部门的员工数量:
SELECT department, COUNT(*) FROM employees GROUP BY department;
4. HAVING 子句
语法
SELECT column1, column2, aggregate_function(column_name) FROM table_name WHERE condition(s) GROUP BY column1, column2 HAVING condition(s);
示例
查询员工数量大于5的部门:
SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 5;
5. JOIN 语句
INNER JOIN
语法
SELECT columns FROM table1 INNER JOIN table2 ON table1.common_field = table2.common_field;
示例
假设有两个表employees
和departments
,通过department_id
关联,查询每个员工的姓名和部门名称:
SELECT employees.name, departments.department_name FROM employees INNER JOIN departments ON employees.department_id = departments.id;
LEFT JOIN / RIGHT JOIN
语法(以 LEFT JOIN 为例)
SELECT columns FROM table1 LEFT JOIN table2 ON table1.common_field = table2.common_field;
示例
查询所有员工及其对应的部门,如果员工没有对应部门则显示 NULL:
SELECT employees.name, departments.department_name FROM employees LEFT JOIN departments ON employees.department_id = departments.id;
相关问题与解答栏目
问题1:如何查询名字以字母 ‘J’ 开头的所有员工?
解答:
可以使用LIKE
运算符来进行模糊匹配,查询语句如下:
SELECT * FROM employees WHERE name LIKE 'J%';
%
是通配符,表示任意数量的字符。'J%'
表示以字母 ‘J’ 开头的任意字符串。
问题2:如何查询每个部门中工资最高的员工?
解答:
可以使用子查询来找到每个部门的最高工资,然后再将结果与原表连接,假设表中有salary
列表示工资:
SELECT e.* FROM employees e INNER JOIN ( SELECT department_id, MAX(salary) as max_salary FROM employees GROUP BY department_id ) dept_max ON e.department_id = dept_max.department_id AND e.salary = dept_max.max_salary;
这个查询首先通过子查询得到每个部门的最高工资,然后将这个结果与原表连接,筛选出工资等于最高工资的员工。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/140805.html