SQL基础入门教程:从零开始学习SQL查询与数据操作
                           
天天向上
发布: 2025-02-10 23:32:11

原创
277 人浏览过

1. SQL简介

1.1 什么是SQL?

SQL(Structured Query Language)是用于管理关系型数据库的标准语言。它允许用户查询、更新、插入和删除数据库中的数据。SQL 是与数据库交互的核心工具,可以用来执行所有与数据相关的操作。

1.2 SQL的历史与发展

SQL 在1970年代由 IBM 的研究人员开发,并被称为 SEQUEL(Structured English Query Language)。它从最初的关系数据库模型中衍生而来,并在1986年被 ANSI(美国国家标准协会)正式标准化。如今,SQL 已成为最广泛使用的数据库查询语言。

1.3 SQL与数据库的关系

SQL 主要与关系型数据库(RDBMS)配合使用,如 MySQL、PostgreSQL、SQL Server 和 Oracle。通过 SQL,用户能够执行各种数据管理操作,并与数据库系统交互。

2. 基本数据类型

数据库中的数据可以采用不同的数据类型,以下是 SQL 中常见的数据类型:

  • 整数类型(如 INT):存储整数数值。
  • 浮动点数类型(如 FLOAT, DECIMAL):存储小数或浮动小数。
  • 字符类型(如 CHAR, VARCHAR):存储字符串或文本。
  • 日期与时间类型(如 DATE, TIME, DATETIME):存储日期和时间。

示例:

CREATE TABLE users (
    id INT,
    name VARCHAR(100),
    birth_date DATE
);

3. 基本查询

3.1 SELECT语句

SELECT 语句用于从数据库中查询数据。它是 SQL 最基本的语句。

  • 查询所有列:
SELECT * FROM users;
  • 查询特定列:
SELECT name, birth_date FROM users;

3.2 查询特定列与行

通过使用 WHERE 子句,可以指定查询的行。

  • 查询特定条件的数据:
SELECT * FROM users WHERE id = 1;

3.3 使用 WHERE 条件

WHERE 子句用于过滤查询结果,允许根据条件筛选数据。

  • 查询名字为 “John” 的用户:
SELECT * FROM users WHERE name = 'John';

3.4 排序:ORDER BY

ORDER BY 用于排序查询结果,默认按升序排序(ASC),也可以指定降序(DESC)。

  • 按名字升序排序:
SELECT * FROM users ORDER BY name ASC;
  • 按出生日期降序排序:
SELECT * FROM users ORDER BY birth_date DESC;

4. 聚合函数

聚合函数用于执行汇总计算,常见的聚合函数包括:COUNT()SUM()AVG()MIN()MAX()

4.1 COUNT() 函数

用于统计某列的记录数。

SELECT COUNT(*) FROM users;

4.2 SUM() 函数

用于计算某列的总和。

SELECT SUM(age) FROM users;

4.3 AVG() 函数

用于计算某列的平均值。

SELECT AVG(age) FROM users;

4.4 MIN() 和 MAX() 函数

分别返回某列的最小值和最大值。

SELECT MIN(age), MAX(age) FROM users;

4.5 使用 GROUP BY 分组数据

GROUP BY 子句用于将查询结果按照某列进行分组,并对每组数据应用聚合函数。

  • 按年龄分组,统计每个年龄段的人数:
SELECT age, COUNT(*) FROM users GROUP BY age;

4.6 使用 HAVING 过滤聚合结果

HAVING 子句用于在 GROUP BY 后对分组的结果进行过滤。

  • 只选择人数大于1的年龄段:
SELECT age, COUNT(*) FROM users GROUP BY age HAVING COUNT(*) > 1;

5. 数据过滤

5.1 使用 AND、OR、NOT 进行复合条件查询

可以使用 ANDORNOT 来组合多个条件。

  • 查询年龄大于20且名字为 “John” 的用户:
SELECT * FROM users WHERE age > 20 AND name = 'John';
  • 查询名字为 “John” 或 “Jane” 的用户:
SELECT * FROM users WHERE name = 'John' OR name = 'Jane';
  • 查询不包含名字 “John” 的用户:
SELECT * FROM users WHERE NOT name = 'John';

5.2 BETWEEN 操作符

BETWEEN 用于查找指定范围内的数据。

  • 查询年龄在 20 到 30 之间的用户:
SELECT * FROM users WHERE age BETWEEN 20 AND 30;

5.3 IN 操作符

IN 用于匹配指定的多个值。

  • 查询名字是 “John” 或 “Jane” 的用户:
SELECT * FROM users WHERE name IN ('John', 'Jane');

5.4 LIKE 操作符

LIKE 用于模式匹配,通常用于模糊查询。

  • 查询名字以 “J” 开头的用户:
SELECT * FROM users WHERE name LIKE 'J%';
  • 查询名字包含 “an” 的用户:
SELECT * FROM users WHERE name LIKE '%an%';

5.5 IS NULL 操作符

IS NULL 用于查找空值。

  • 查询没有出生日期的用户:
SELECT * FROM users WHERE birth_date IS NULL;

总结

以上是 SQL 基础部分的详细教程,涵盖了 SQL 的核心概念与常用操作,包括查询、数据过滤、排序、聚合、以及数据分组等。掌握这些基础内容后,你将能够在 SQL 数据库中执行高效的查询与操作,为进一步深入学习 SQL 和高级数据库管理打下坚实的基础。

发表回复 0

Your email address will not be published. Required fields are marked *