在数字化时代,数据库技术已经成为信息管理的基础。SQL(Structured Query Language,结构化查询语言)作为数据库的标准查询语言,是每个数据库开发者必须掌握的技能。从零开始,我们可以通过以下技巧与案例,轻松掌握SQL语句。
一、SQL基础语法
1. 数据库和数据表创建
-- 创建数据库
CREATE DATABASE mydatabase;
-- 使用数据库
USE mydatabase;
-- 创建数据表
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
department VARCHAR(50)
);
2. 数据插入
-- 插入数据
INSERT INTO employees (id, name, age, department) VALUES (1, 'Alice', 30, 'HR');
3. 数据查询
-- 查询所有数据
SELECT * FROM employees;
-- 查询特定列
SELECT name, age FROM employees;
4. 数据更新
-- 更新数据
UPDATE employees SET age = 31 WHERE id = 1;
5. 数据删除
-- 删除数据
DELETE FROM employees WHERE id = 1;
二、高级SQL技巧
1. 聚合函数
-- 计算平均年龄
SELECT AVG(age) AS average_age FROM employees;
-- 计算最大年龄
SELECT MAX(age) AS max_age FROM employees;
2. 子查询
-- 查询年龄大于30岁的员工
SELECT * FROM employees WHERE age > (SELECT AVG(age) FROM employees);
3. JOIN操作
-- 查询员工及其部门信息
SELECT e.name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.id;
4. 窗口函数
-- 查询每个部门的平均年龄,并按部门排序
SELECT department, AVG(age) OVER (PARTITION BY department) AS avg_age
FROM employees
ORDER BY department;
三、案例实战
1. 查询公司员工年龄分布
-- 查询每个年龄段的人数
SELECT
CASE
WHEN age BETWEEN 20 AND 30 THEN '20-30'
WHEN age BETWEEN 31 AND 40 THEN '31-40'
WHEN age BETWEEN 41 AND 50 THEN '41-50'
ELSE '50+'
END AS age_group,
COUNT(*) AS num_employees
FROM employees
GROUP BY age_group;
2. 查询每个部门平均工资
-- 查询每个部门的平均工资
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;
3. 查询员工晋升记录
-- 查询员工晋升记录
SELECT e.name, e.age, e.department,
p.position, p.start_date
FROM employees e
JOIN promotions p ON e.id = p.employee_id
ORDER BY p.start_date DESC;
通过以上技巧与案例,相信你已经对SQL语句有了更深入的了解。记住,实践是掌握SQL的关键,多动手操作,才能熟练运用SQL解决实际问题。祝你在数据库领域取得优异成绩!
