当前位置: 首页 > news >正文

SQL基础教程:第一章与第二章内容总结(新手入门指南)

SQL(Structured Query Language)是学习数据库管理的基石。无论是开发人员、数据分析师还是对数据管理感兴趣的初学者,掌握SQL都是必不可少的技能。本文将结合《SQL基础教程》的第一章第二章,为新手梳理SQL的核心概念和基础操作,帮助你快速入门。


第一章:数据库与SQL概述

1.1 数据库简介
  • 什么是数据库

    • 数据库(Database)是存储和管理数据的集合,类似于文件柜,但通过数据库管理系统(DBMS)进行高效管理。
    • 常见的数据库类型包括:关系型数据库(如MySQL、PostgreSQL)、层次数据库、面向对象数据库等。
  • 数据库管理系统(DBMS)

    • DBMS是用于创建、管理和操作数据库的软件。常见的DBMS包括MySQL、Oracle、SQL Server、PostgreSQL等。
    • 关系型数据库(RDBMS)是SQL的主要应用场景,其核心是通过表格(表)组织数据。
1.2 SQL的定义与作用
  • SQL是什么

    • SQL(Structured Query Language)是一种标准化的编程语言,专门用于与数据库交互。它允许用户执行查询、更新数据、管理数据库结构等操作。
    • SQL的核心优势在于其通用性:大多数关系型数据库都支持SQL,因此学习SQL可以跨平台应用。
  • SQL的分类

    • DDL(数据定义语言):用于定义数据库结构,例如创建表(CREATE TABLE)、修改表(ALTER TABLE)、删除表(DROP TABLE)。
    • DML(数据操作语言):用于操作数据,例如插入(INSERT)、更新(UPDATE)、删除(DELETE)和查询(SELECT)。
    • DCL(数据控制语言):用于管理权限和安全,例如授权(GRANT)和撤销权限(REVOKE)。
    • TCL(事务控制语言):用于管理事务,例如提交(COMMIT)和回滚(ROLLBACK)。
1.3 表的创建与管理
  • 表的结构

    • 表由(记录)和(字段)组成。每一列有特定的数据类型(如整数、字符串、日期等)。
    • 例如,一个员工表(Employees)可能包含以下列:
    • CREATE TABLE Employees (EmployeeID INT PRIMARY KEY,       -- 主键FirstName VARCHAR(255),           -- 名字LastName VARCHAR(255),            -- 姓氏Email VARCHAR(255),               -- 邮箱Age INT                           -- 年龄
      );
    • 主键(Primary Key):唯一标识表中每一行的字段。主键值必须唯一且非空。
  • 表的维护

    • 修改表结构:使用ALTER TABLE添加、删除或修改列。
    • 删除表:使用DROP TABLE彻底删除表及其数据。

第二章:SQL基础语法与操作

2.1 SQL语法基础
  • SQL语句的通用规则

    • SQL语句以分号(;)结尾。
    • 关键字不区分大小写(如SELECTFROM),但表名和列名通常遵循命名规范(英文开头,使用小写字母和下划线)。
  • 基本数据类型

    • 数值类型INT(整数)、DECIMAL(小数)、FLOAT(浮点数)。
    • 字符串类型VARCHAR(n)(可变长度字符串)、CHAR(n)(固定长度字符串)。
    • 日期时间类型DATE(日期)、DATETIME(日期和时间)、TIMESTAMP(时间戳)。
    • 布尔类型BOOLEAN(表示真或假)。
2.2 数据检索:SELECT语句
  • 基本查询

    • 使用SELECT从表中检索数据:
      SELECT column1, column2 FROM table_name;
    • 通配符*:检索所有列:
      SELECT * FROM Employees;
  • 条件筛选:WHERE子句

    • 使用WHERE过滤特定行:
      SELECT * FROM Employees WHERE Age > 30;
    • 比较运算符=><>=<=<>(不等于)。
    • 逻辑运算符ANDORNOT
  • 排序:ORDER BY子句

    • 对结果按指定列排序(默认升序ASC,可指定降序DESC):
      SELECT * FROM Employees ORDER BY LastName DESC;
2.3 数据聚合与分组
  • 聚合函数

    • COUNT():统计行数。
    • SUM():计算总和。
    • AVG():计算平均值。
    • MAX():查找最大值。
    • MIN():查找最小值。
    • 示例:统计部门人数:
      SELECT Department, COUNT(*) AS EmployeeCount 
      FROM Employees 
      GROUP BY Department;
  • GROUP BY与HAVING

    • GROUP BY:按列分组数据。
    • HAVING:对分组后的结果进行过滤(类似WHERE,但用于聚合条件):
      SELECT Department, AVG(Age) AS AvgAge 
      FROM Employees 
      GROUP BY Department 
      HAVING AVG(Age) > 30;
2.4 数据操作:增删改
  • 插入数据:INSERT INTO

    INSERT INTO Employees (FirstName, LastName, Email, Age)
    VALUES ('John', 'Doe', 'john.doe@example.com', 28);
  • 更新数据:UPDATE

    UPDATE Employees 
    SET Email = 'jane.smith@example.com' 
    WHERE EmployeeID = 101;
  • 删除数据:DELETE

    DELETE FROM Employees 
    WHERE EmployeeID = 102;

动手实践:如何开始学习SQL

  1. 安装数据库系统

    • 选择一个免费的RDBMS(如MySQL、PostgreSQL或SQLite),下载并安装。
    • 使用命令行工具或图形化界面(如MySQL Workbench、pgAdmin)连接数据库。
  2. 创建示例数据库

    • 根据教程中的示例(如Employees表),手动创建表并插入测试数据。
  3. 编写SQL查询

    • 从简单查询开始(如SELECT * FROM table),逐步尝试条件筛选、排序和聚合操作。
    • 练习使用JOIN连接多张表(后续章节内容)。
  4. 使用在线工具

    • 如果不想本地安装数据库,可以使用在线SQL练习平台(如SQL Fiddle或LeetCode)。

总结

第一章和第二章为SQL学习奠定了坚实的基础。通过理解数据库的结构、SQL的分类以及基本语法,你可以开始构建和操作自己的数据库。对于新手来说,最重要的是多动手实践,通过实际案例巩固知识。下一章将进一步探讨更复杂的查询和数据管理技巧,建议持续学习并尝试解决实际问题。

http://www.xdnf.cn/news/675127.html

相关文章:

  • 文档注释:删还是不删
  • 关于 smali:3. Smali 与 APK 结构理解
  • LWIP 中,lwip_shutdown 和 lwip_close 区别
  • 深入剖析Java CompletableFuture:原理、陷阱与高并发场景优化指南
  • R语言基础| 可视化初探(ggplot2)
  • 预测式外呼与自动外呼的区别
  • 【博客系统】博客系统第十弹:实现对数据库存储的用户密码进行加密功能、更新登录接口的密码校验功能
  • 【监控】pushgateway中间服务组件
  • openresty+lua+redis把非正常访问的域名加入黑名单
  • threejs顶点UV坐标、纹理贴图
  • SQL Server 和 MySQL 对比
  • 实现单例模式的6种方法(Python)
  • 开源多模态新标杆——BAGEL本地部署教程:7B参数撬动万亿数据
  • 《算法和数据结构》算法篇
  • 车载通信网络 --- OSI模型:网络层
  • SQL 查询慢的常见原因分析
  • 【新品发布】嵌入式人工智能实验箱EDU-AIoT ELF 2正式发布
  • 机器学习-决策树
  • 洛谷 P5091:【模板】扩展欧拉定理
  • MacOS内存管理-删除冗余系统数据System Data
  • 第六章 文件的其他操作命令
  • 计算机组成原理——CISC与RISC
  • 【基于STM32的新能源汽车智能循迹系统开发全解析】
  • 什么是DevOps的核心目标?它如何解决传统开发与运维之间的冲突?​
  • 使用java8开发mcp server
  • 让学习回归到技术上来(技术 !=== 死记硬背)
  • name ‘selective_scan_fn‘ is not defined运行出现这个错误
  • 修改 Ubuntu Installer 从串口输出的方法
  • 电子邮箱设置SSL:构建邮件传输的加密护城河
  • Qwen2.5-VL视觉-语言模型做图片理解调研