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

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

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


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

一、数据定义语言(DDL)

CREATE

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

  • 创建表:

    sql 复制代码
    CREATE TABLE students (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER,
        grade TEXT
    );

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

  • 创建索引:

    sql 复制代码
    CREATE INDEX idx_student_name ON students (name);

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

  • 创建视图:

    sql 复制代码
    CREATE VIEW student_info AS
    SELECT id, name, age
    FROM students
    WHERE age > 18;

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

ALTER

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

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

    sql 复制代码
    ALTER TABLE students ADD COLUMN email TEXT;

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

DROP

  • 用于删除数据库对象。

  • 删除表:

    sql 复制代码
    DROP TABLE students;

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

  • 删除索引:

    sql 复制代码
    DROP INDEX idx_student_name;

    删除名为"idx_student_name"的索引。

  • 删除视图:

    sql 复制代码
    DROP VIEW student_info;

    删除名为"student_info"的视图。

二、数据操纵语言(DML)

INSERT

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

  • 插入单行数据:

    sql 复制代码
    INSERT INTO students (id, name, age, grade) VALUES (1, 'John', 20, 'A');

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

  • 插入多行数据:

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

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

UPDATE

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

  • 更新单个字段:

    sql 复制代码
    UPDATE students SET grade = 'B' WHERE id = 1;

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

  • 更新多个字段:

    sql 复制代码
    UPDATE students SET age = 21, grade = 'A' WHERE name = 'Alice';

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

DELETE

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

  • 删除单行数据:

    sql 复制代码
    DELETE FROM students WHERE id = 2;

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

  • 删除多行数据:

    sql 复制代码
    DELETE FROM students WHERE age < 18;

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

SELECT

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

  • 查询所有列:

    sql 复制代码
    SELECT * FROM students;

    查询"students"表中的所有数据。

  • 查询特定列:

    sql 复制代码
    SELECT name, age FROM students;

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

  • 带条件查询:

    sql 复制代码
    SELECT * FROM students WHERE age > 20 AND grade = 'A';

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

  • 排序查询:

    sql 复制代码
    SELECT * FROM students ORDER BY age ASC, grade DESC;

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

三、数据控制语言(DCL)

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

BEGIN TRANSACTION

  • 开始一个事务。

    sql 复制代码
    BEGIN TRANSACTION;

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

COMMIT

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

    sql 复制代码
    COMMIT;

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

ROLLBACK

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

    sql 复制代码
    ROLLBACK;

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

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

相关推荐
星空下的曙光17 分钟前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql
小楓120119 分钟前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
染落林间色27 分钟前
达梦数据库-实时主备集群部署详解(附图文)手工搭建一主一备数据守护集群DW
数据库·sql
颜颜yan_1 小时前
企业级时序数据库选型指南:从传统架构向智能时序数据管理的转型之路
数据库·架构·时序数据库
lichenyang4531 小时前
管理项目服务器连接数据库
数据库·后端
沙振宇1 小时前
【数据库】通过‌phpMyAdmin‌管理Mysql数据
数据库·mysql
杨云龙UP2 小时前
CentOS Linux 7 (Core)上部署Oracle 11g、19C RAC详细图文教程
数据库·oracle
ezl1fe2 小时前
RAG 每日一技(十八):手写SQL-RAG太累?LangChain的SQL智能体(Agent)前来救驾!
数据库·人工智能·后端
小咖张2 小时前
spring声明式事务,finally 中return对事务回滚的影响
数据库·java 声明式事务
JSON_L2 小时前
MySQL 加锁与解锁函数
数据库·mysql