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

SQL入门篇,数据库基础语法与核心操作

1. SQL 是什么?

  • SQL(Structured Query Language) 是用于管理和操作关系型数据库的标准语言。

  • 核心功能:

    • 创建和管理数据库、表、索引等对象。

    • 插入、查询、更新、删除数据(CRUD)。

    • 定义数据权限和事务。


2. 基础概念

(1) 数据库(Database)

  • 一个容器,存储多个相关的表(类似 Excel 文件)。

  • 示例:CREATE DATABASE school;(创建名为 school 的数据库)。

(2) 表(Table)

  • 结构化数据的集合,由行(记录)和列(字段)组成。

  • 示例:students 表可能包含 idnameage 等字段。

(3) 数据类型

  • 常见类型:

    • INT:整数。

    • VARCHAR(n):可变长度字符串(最多 n 个字符)。

    • DATE:日期(如 2023-10-01)。

    • BOOLEAN:布尔值(TRUE/FALSE)。


3. 核心语法分类

SQL 语法可分为以下几类:

类型作用关键字示例
DDL(数据定义语言)定义数据库结构(创建、修改、删除)CREATEALTERDROP
DML(数据操作语言)操作数据(增删改查)INSERTUPDATEDELETE
DQL(数据查询语言)查询数据SELECT
DCL(数据控制语言)控制数据权限(授权与回收)GRANTREVOKE

4. 基础语法与示例

(1) DDL:创建和管理表

-- 创建表
CREATE TABLE students (
    id INT PRIMARY KEY,  -- 主键(唯一标识)
    name VARCHAR(50),
    age INT,
    enrollment_date DATE
);

-- 修改表结构
ALTER TABLE students ADD COLUMN email VARCHAR(100);

-- 删除表
DROP TABLE students;

(2) DML:数据操作

  • 插入数据
    INSERT INTO students (id, name, age, enrollment_date)
    VALUES (1, '张三', 18, '2023-09-01');
  • 更新数据
    UPDATE students
    SET age = 19
    WHERE id = 1;  -- 指定条件,否则会更新所有行!
  • 删除数据
    DELETE FROM students
    WHERE id = 1;  -- 删除符合条件的记录

(3) DQL:查询数据

  • 基础查询
    -- 查询所有字段
    SELECT * FROM students;  -- *代表所有
    
    -- 查询特定字段
    SELECT name, age FROM students;   -- 查询学生表中name, age的字段
    
    -- 条件筛选(WHERE)
    SELECT * FROM students WHERE age > 18;   -- 查询学生表中年龄大于18的所有字段
    
    -- 排序(ORDER BY)
    SELECT * FROM students ORDER BY enrollment_date DESC;  -- DESC为降序,默认为升序
  • 聚合函数
    -- 统计学生数量
    SELECT COUNT(*) FROM students;
    
    -- 计算平均年龄
    SELECT AVG(age) FROM students;
    
    -- 分组统计(GROUP BY)
    SELECT age, COUNT(*) AS num_students
    FROM students
    GROUP BY age;
  • 多表关联(JOIN)
    -- 假设有另一张表 courses
    CREATE TABLE courses (
        course_id INT PRIMARY KEY,
        course_name VARCHAR(50),
        student_id INT  -- 关联 students 表的 id
    );
    
    -- 内连接(INNER JOIN)
    SELECT students.name, courses.course_name
    FROM students
    INNER JOIN courses ON students.id = courses.student_id

5. 常用子句与关键词

子句/关键词作用示例
WHERE过滤记录SELECT * FROM table WHERE age > 18
LIMIT限制返回行数SELECT * FROM table LIMIT 10
DISTINCT去重SELECT DISTINCT age FROM students
AS别名(字段或表重命名)SELECT name AS 姓名 FROM students
BETWEEN范围筛选SELECT * FROM table WHERE age BETWEEN 18 AND 25
LIKE模糊匹配(% 匹配任意字符,_ 匹配单个字符)SELECT * FROM table WHERE name LIKE '张%'

6. 常见错误与注意事项

  1. 忘记分号:SQL 语句以分号 ; 结束。

  2. 大小写敏感:SQL 关键字通常不区分大小写,但表名和字段名可能区分(取决于数据库)。

  3. 引号问题:字符串用单引号 ',而非双引号。

  4. 未指定条件UPDATE 或 DELETE 不加 WHERE 会操作所有数据!

  5. 主键冲突:插入重复的主键值会导致错误。


7. 练习建议

  1. 动手实践:使用在线 SQL 工具,

    1. 如 DrawDB 数据库设计 :构建表 生成 sql语句 

    2. SQL数据库 :编写sql语句

  2. 经典练习题

    • 查询年龄最大的前 5 名学生。

    • 统计每个学生的选课数量。

    • 删除未选课的学生记录。


总结

掌握 SQL 基础语法后,可以进一步学习:

  • 复杂查询:子查询、窗口函数、递归查询。

  • 性能优化:索引、执行计划分析。

  • 事务管理COMMITROLLBACK、隔离级别。

通过实际项目(如学生管理系统、电商订单分析)巩固知识,逐步提升技能!

相关文章:

  • YOLOv8主干网络升级——融合ResNet18/34/50/101的高效特征提取架构设计
  • 天梯集训笔记整理
  • Git分布式版本控制系统从入门到精通(B站黑马)学习笔记
  • Spark-Core编程
  • Java 如何实现类的热加载和热部署?
  • jQueryHTML与插件
  • MySQL切换PolarDB-X方案
  • GOT-OCR2: 通用OCR理论:通过统一端到端模型迈向OCR-2.0时代
  • NSS#Round30 Web
  • c# 找到字符串中,固定字符串的位置
  • Ant Design X 和 Element-Plus-X
  • 人工智能图像识别spark安装
  • BOTA六维力矩传感器如何打通机器人AI力控操作的三层架构?感知-决策-执行全链路揭秘
  • 【Docker基础-网络】--查阅笔记4
  • JavaScript 性能优化:突破瓶颈的实战指南
  • 【Linux】进程管理
  • Android MediaStore访问的外部存储公共空间都不需要申请权限,这些目录具体指的是哪些
  • 【架构】软件成熟度模型与评估体系深度解析
  • 关于Windows Foxmail安全问题修复通告
  • ECharts大数据量的分批加载:提升图表渲染性能
  • 在线推广是网站推广的首要工具/永久免费域名申请
  • 大图模板网站/营业推广的目标通常是
  • wordpress图片清晰度/信息流优化师证书
  • 为什么都用java做网站/爱链网中可以进行链接买卖
  • 毕设做网站是不是太low/网站seo诊断分析
  • 深圳专业网站设计专业定制/宁波网络推广团队