青少年编程与数学 02-012 SQLite 数据库简介 03课题、数据库语言

发布于:2025-03-28 ⋅ 阅读:(24) ⋅ 点赞:(0)

课题摘要:SQLite 使用 SQL(Structured Query Language,结构化查询语言)作为其数据库语言。


SQLite 使用 SQL(Structured Query Language,结构化查询语言)作为其数据库语言。SQL 是一种广泛应用于关系型数据库的标准编程语言,用于管理、查询和操作数据库中的数据。SQLite 支持大部分标准的 SQL 语句,以下是一些常见的 SQLite SQL 语句类型及其用途:

一、数据定义语言(DDL)

  1. CREATE

    • 用于创建数据库对象,如表、索引、视图等。

    • 创建表:

      CREATE TABLE students (
          id INTEGER PRIMARY KEY,
          name TEXT NOT NULL,
          age INTEGER,
          grade TEXT
      );
      

      这个语句创建了一个名为“students”的表,包含四个字段:id(整型,主键)、name(文本型,非空)、age(整型)和 grade(文本型)。

    • 创建索引:

      CREATE INDEX idx_student_name ON students (name);
      

      在“students”表的“name”列上创建了一个名为“idx_student_name”的索引,可以加快按姓名查询学生信息的速度。

    • 创建视图:

      CREATE VIEW student_info AS
      SELECT id, name, age
      FROM students
      WHERE age > 18;
      

      创建了一个名为“student_info”的视图,它是一个虚拟的表,包含 id、name 和 age 字段,且只包含年龄大于 18 的学生信息。

  2. ALTER

    • 用于修改已存在的数据库对象的结构。SQLite 的 ALTER TABLE 语句相对简单,主要支持添加新列。

    • 例如,为“students”表添加一个新列“email”:

      ALTER TABLE students ADD COLUMN email TEXT;
      

      这会在“students”表中添加一个名为“email”的文本型列。

  3. DROP

    • 用于删除数据库对象。

    • 删除表:

      DROP TABLE students;
      

      这会删除“students”表及其所有数据和结构。

    • 删除索引:

      DROP INDEX idx_student_name;
      

      删除名为“idx_student_name”的索引。

    • 删除视图:

      DROP VIEW student_info;
      

      删除名为“student_info”的视图。

二、数据操纵语言(DML)

  1. INSERT

    • 用于向表中插入新的数据行。

    • 插入单行数据:

      INSERT INTO students (id, name, age, grade) VALUES (1, 'John', 20, 'A');
      

      向“students”表中插入一行数据,id 为 1,姓名为“John”,年龄为 20,成绩为“A”。

    • 插入多行数据:

      INSERT INTO students (id, name, age, grade) VALUES
      (2, 'Alice', 19, 'B'),
      (3, 'Bob', 22, 'A');
      

      一次性向表中插入多行数据。

  2. UPDATE

    • 用于更新表中已存在的数据行。

    • 更新单个字段:

      UPDATE students SET grade = 'B' WHERE id = 1;
      

      将“students”表中 id 为 1 的学生的成绩更新为“B”。

    • 更新多个字段:

      UPDATE students SET age = 21, grade = 'A' WHERE name = 'Alice';
      

      将姓名为“Alice”的学生的年龄更新为 21,成绩更新为“A”。

  3. DELETE

    • 用于删除表中的数据行。

    • 删除单行数据:

      DELETE FROM students WHERE id = 2;
      

      删除“students”表中 id 为 2 的学生记录。

    • 删除多行数据:

      DELETE FROM students WHERE age < 18;
      

      删除“students”表中年龄小于 18 的所有学生记录。

  4. SELECT

    • 用于从一个或多个表中检索数据。

    • 查询所有列:

      SELECT * FROM students;
      

      查询“students”表中的所有数据。

    • 查询特定列:

      SELECT name, age FROM students;
      

      只查询“students”表中的姓名和年龄两列数据。

    • 带条件查询:

      SELECT * FROM students WHERE age > 20 AND grade = 'A';
      

      查询“students”表中年龄大于 20 且成绩为“A”的学生记录。

    • 排序查询:

      SELECT * FROM students ORDER BY age ASC, grade DESC;
      

      查询“students”表中的所有学生记录,并按年龄升序、成绩降序排序。

三、数据控制语言(DCL)

SQLite 的数据控制语言相对简单,主要用于事务控制。

  1. BEGIN TRANSACTION

    • 开始一个事务。

      BEGIN TRANSACTION;
      

      这个语句表示开始一个新的事务,在事务中可以执行多个 DML 语句,如 INSERT、UPDATE、DELETE 等。

  2. COMMIT

    • 提交事务,使事务中所有的操作永久生效。

      COMMIT;
      

      提交事务后,事务中对数据库所做的更改将被保存。

  3. ROLLBACK

    • 回滚事务,撤销事务中所有的操作。

      ROLLBACK;
      

      如果在事务执行过程中出现错误,可以通过回滚事务来撤销所有已经执行的操作,恢复数据库到事务开始前的状态。

SQLite 还支持一些其他 SQL 语句和功能,如联合查询(使用 UNION 和 UNION ALL)、子查询、事务的隔离级别设置(虽然 SQLite 的事务隔离级别相对简单,主要是串行化)等。不过,SQLite 的 SQL 实现也有一些限制,例如它不支持存储过程、游标等一些在大型数据库系统中常见的功能。尽管如此,SQLite 的 SQL 语言已经足够强大,能够满足大多数轻量级应用程序的数据库操作需求。