第一部分:SQL入门基础

什么是SQL?

SQL(Structured Query Language)是一种用于管理关系型数据库的编程语言。它允许用户创建、查询、更新和删除数据库中的数据。SQL已成为关系型数据库的标准语言,广泛应用于各种数据库系统中,如MySQL、Oracle、SQL Server等。

SQL的用途

  • 创建数据库和表
  • 插入、查询、更新和删除数据
  • 管理数据库用户和权限
  • 分析数据,生成报表

SQL的基本语法

  • SELECT:用于查询数据库中的数据
  • FROM:指定要查询的表
  • WHERE:指定查询条件
  • INSERT INTO:用于向表中插入数据
  • UPDATE:用于更新表中的数据
  • DELETE FROM:用于删除表中的数据

第二部分:SQL基础操作

1. 创建数据库和表

-- 创建名为"mydatabase"的数据库
CREATE DATABASE mydatabase;

-- 使用"mydatabase"数据库
USE mydatabase;

-- 创建名为"students"的表,包含"name"、"age"和"score"三个字段
CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    score INT
);

2. 插入数据

-- 向"students"表中插入一条数据
INSERT INTO students (name, age, score) VALUES ('张三', 20, 90);

-- 插入多条数据
INSERT INTO students (name, age, score) VALUES
('李四', 21, 85),
('王五', 22, 95);

3. 查询数据

-- 查询所有学生信息
SELECT * FROM students;

-- 查询年龄大于20岁的学生信息
SELECT * FROM students WHERE age > 20;

-- 查询姓名为"张三"的学生年龄和成绩
SELECT age, score FROM students WHERE name = '张三';

4. 更新数据

-- 将学生"张三"的成绩更新为100
UPDATE students SET score = 100 WHERE name = '张三';

5. 删除数据

-- 删除年龄小于20岁的学生信息
DELETE FROM students WHERE age < 20;

第三部分:SQL高级应用

1. 聚合函数

SQL提供了多种聚合函数,用于对一组数据进行计算,如COUNT、SUM、AVG、MAX、MIN等。

-- 查询学生总数
SELECT COUNT(*) FROM students;

-- 查询所有学生的平均成绩
SELECT AVG(score) FROM students;

2. 连接查询

连接查询用于从多个表中获取数据,通过指定连接条件将相关数据连接起来。

-- 查询学生的姓名、年龄和成绩
SELECT s.name, s.age, s.score
FROM students s
JOIN scores sc ON s.id = sc.student_id;

3. 子查询

子查询是一种嵌套在另一个SQL语句中的查询,用于从数据中获取更复杂的结构。

-- 查询成绩高于平均成绩的学生信息
SELECT * FROM students
WHERE score > (SELECT AVG(score) FROM students);

第四部分:实战案例

1. 创建一个简单的在线商城数据库

创建用户表、商品表、订单表和订单详情表,实现用户购买商品的功能。

2. 分析用户购买数据

查询用户购买的商品种类、数量和金额,生成购买分析报告。

3. 数据库优化

针对数据库查询性能进行优化,提高查询效率。

第五部分:学习资源推荐

通过以上教程,相信你已经对SQL有了基本的了解。接下来,动手实践,不断提升自己的SQL技能吧!