SQLite 语法

news2024/11/5 17:26:48

SQLite 语法

SQLite 是一种轻量级的数据库管理系统,它遵循 SQL(结构化查询语言)标准。SQLite 的语法相对简单,易于学习和使用。本文将详细介绍 SQLite 的基本语法,包括数据定义语言(DDL)、数据操作语言(DML)、事务控制以及查询等。

数据定义语言(DDL)

数据定义语言用于创建、修改和删除数据库中的表和其他对象。

创建表

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
    ...
);

例如,创建一个名为 students 的表,包含 idnameage 三个字段:

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

修改表

ALTER TABLE table_name
ADD column_name datatype;

例如,向 students 表中添加一个 grade 字段:

ALTER TABLE students
ADD grade TEXT;

删除表

DROP TABLE table_name;

例如,删除 students 表:

DROP TABLE students;

数据操作语言(DML)

数据操作语言用于插入、更新和删除表中的数据。

插入数据

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

例如,向 students 表中插入一条数据:

INSERT INTO students (name, age, grade)
VALUES ('Alice', 20, 'A');

更新数据

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

例如,将 students 表中名为 'Alice' 的学生的年龄更新为 21:

UPDATE students
SET age = 21
WHERE name = 'Alice';

删除数据

DELETE FROM table_name
WHERE condition;

例如,删除 students 表中年龄大于 21 的学生:

DELETE FROM students
WHERE age > 21;

事务控制

SQLite 中的事务用于确保数据库的一致性。事务可以是隐式的或显式的。

开始事务

BEGIN TRANSACTION;

提交事务

COMMIT;

回滚事务

ROLLBACK;

例如,一个简单的事务处理:

BEGIN TRANSACTION;
INSERT INTO students (name, age, grade)
VALUES ('Bob', 22, 'B');
UPDATE students
SET age = 23
WHERE name = 'Bob';
COMMIT;

如果在这个过程中发生错误,可以使用 ROLLBACK 回滚到事务开始前的状态。

查询

查询是数据库操作中最常用的操作之一。SQLite 支持各种类型的查询,包括简单查询、连接查询、子查询等。

简单查询

SELECT column1, column2, ...
FROM table_name
WHERE condition;

例如,查询 students 表中所有学生的姓名和年龄:

SELECT name, age
FROM students;

连接查询

SQLite 支持多种类型的连接,包括内连接、左连接和右连接。

SELECT columns
FROM table1
JOIN table2
ON table1.column = table2.column;

例如,假设有一个 courses 表,查询 students 表和 courses 表的连接结果:

SELECT students.name, courses.course_name
FROM students
JOIN courses
ON students.id = courses.student_id;

子查询

子查询是嵌套在另一个查询中的查询。

SELECT column1, column2, ...
FROM table_name
WHERE column IN (SELECT column FROM table_name WHERE condition);

例如,查询 students 表中年龄大于平均年龄的学生:

SELECT name, age
FROM students
WHERE age > (SELECT AVG(age) FROM students);

总结

SQLite 的语法相对简单,但功能强大。通过掌握上述基本语法,您可以进行大多数常见的数据库操作。无论是数据定义、数据操作还是查询,SQLite 都能提供高效且可靠的支持。随着您对 SQLite 的进一步学习和实践,您将能够利用它的更多高级功能来处理更复杂的数据库任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2231387.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows部署rabbitmq

本次安装环境: 系统:Windows 11 软件建议版本: erlang OPT 26.0.2rabbitmq 3.12.4 一、下载 1.1 下载erlang 官网下载地址: 1.2 下载rabbitmq 官网下载地址: 建议使用解压版,安装版可能会在安装软件…

vue2和vue3在html中引用组件component方式不一样

我的vue版本是&#xff1a;20.17.0 一、在HTML中&#xff0c;引用组件格式区别。 vue2引用组件可以是file.vue格式&#xff0c;需要导入&#xff1a;<script src"https://unpkg.com/http-vue-loader"></script>才可以识别vue格式。 vue3引用组件格式是…

uniapp下载文件的方案,包括H5,App方案解决办法

1. 在uniapp需要下载文件&#xff0c;但是显示情况是不能下载。所以只能使用该办法来进行下载。 2. 这有一个注意点是&#xff1a;如果你做的是H5的方案&#xff0c;那么我已经替你踩好坑了&#xff0c;UC浏览器是不支持blob类型的下载&#xff0c;以及创建a标签的方案来进行下…

【ubuntu】双系统无grub引导菜单中没有windows引导项

无GRUB选择系统界面 修改一下配置即可 # 1. 更新下工具 sudo apt update sudo apt install vim# 2. 修改引导设置 sudo vim /etc/default/grub按i编辑&#xff0c; 编辑好ESC推出到控制模式&#xff0c;shift: 输入wq 回车保存 修改GRUB_TIMEOUT_STYLE改为菜单模式 # 3. 修改…

六 在WEB中应用MyBatis(使用MVC架构模式)

六、在WEB中应用MyBatis&#xff08;使用MVC架构模式&#xff09; 实现功能&#xff1a; 银行账户转账 使用技术&#xff1a; HTML Servlet MyBatis WEB应用的名称&#xff1a; bank 6.1 需求描述 6.2 数据库表的设计和准备数据 6.3 实现步骤 第一步&#xff1a;环境…

Rust 力扣 - 73. 矩阵置零

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们使用两个变量记录矩阵初始状态的第一行与第一列是否存在0 然后我们遍历矩阵&#xff08;跳过第一行与第一列&#xff09;&#xff0c;如果矩阵中元素为0则将该元素映射到矩阵第一行与矩阵第一列的位置置为0…

ExpandingCard扩展卡片

文章目录 演示效果分析思路核心代码总结 源码 演示效果 分析思路 使用flex布局&#xff0c;每个卡片的宽度都由flex进行灵活调整交互可以增加和删除active&#xff0c;来实现宽度扩增和恢复还需要使用transition进行动画过渡&#xff0c;使得平滑切换 核心代码 首先创建一个…

QT找不到ffmpeg链接库解决方法

error: undefined reference to avformat_network_init() 一个神奇的报错&#xff0c;查了很久&#xff0c;检查步骤&#xff1a; 1、检查了 pro工程文件 2、链接库的真实性和正确性 在main.cpp中调用没有报错&#xff0c;在其它cpp文件中调用就报错。 破案了&#xff0c;…

【Python单元测试】pytest框架单元测试常用用例

【Python单元测试】pytest框架单元测试 配置 命令行操作 测试报告 覆盖率 常用用例 本文重点介绍使用的Mock写法&#xff0c; pytest的基本用法&#xff0c;非本文重点。 pytest 相较于unittest, 写法更加简便。对测试用例直接assert是否符合预期即可 # 定义mock对象, 测试…

OmniGen: Unified Image Generation(代码的复现)

文章目录 论文简介模型的部署需要下载的预训练权重 模型的生成效果图像编辑的效果风格迁移的效果 总结 论文简介 OmniGen的github项目地址 OmniGen: Unified Image Generation。OmniGen 在各种图像生成任务中都表现出了卓越的性能&#xff0c;并可能大大超过现有扩散模型的极…

景联文科技医疗数据处理平台:强化医疗数据标注与管理,推动医疗数字化新篇章

随着医疗科技快速进步与广泛应用&#xff0c;医疗信息的规模正在迅速扩张&#xff0c;如何有效管理这些医疗数据成为了关键议题。 医疗数据不仅包括传统的纸质病历&#xff0c;还有电子病历、实验室检测结果、医学影像等多样化的数字信息。为确保这些数据能为临床决策、科研分析…

在线学习新体验:SpringBoot精品试题库系统

1 绪论 1.1 研究背景 现在大家正处于互联网加的时代&#xff0c;这个时代它就是一个信息内容无比丰富&#xff0c;信息处理与管理变得越加高效的网络化的时代&#xff0c;这个时代让大家的生活不仅变得更加地便利化&#xff0c;也让时间变得更加地宝贵化&#xff0c;因为每天的…

Fluent Editor 富文本开源2个月的总结:增加格式刷、截屏、TypeScript 类型声明等新特性

你好&#xff0c;我是 Kagol&#xff0c;个人公众号&#xff1a;前端开源星球。 Fluent Editor 是一个基于 Quill 2.0 的富文本编辑器&#xff0c;在 Quill 基础上扩展了丰富的模块和格式&#xff0c;框架无关、 功能强大、开箱即用。 2024年8月12日&#xff0c;Fluent Edito…

redis v6.0.16 安装 基于Ubuntu 22.04

redis安装 基于Ubuntu 22.04 本文演示如何在ubuntu22.04下&#xff0c;安装redis v6.0.16&#xff0c;并配置测试远程访问。 Step1 更新环境 sudo apt updateStep2 安装redis sudo apt install redis-server -yStep3 启动 sudo systemctl restart redissudo systemctl sta…

python画出圣诞树(简易版,matplotlib.pyplot) 代码实现

需求 使用python的turtle库绘制圣诞树 绘制结果 代码实现 import matplotlib.pyplot as plt import matplotlib.patches as patches import numpy as npdef draw_christmas_tree(ax):# 定义树的基本参数base_width 6 # 底部宽度height 12 # 总高度levels 3 # 层次数量…

【1个月速成Java】基于Android平台开发个人记账app学习日记——第4天,注册登录逻辑代码

24.11.03 1.输入手机号跳转功能 第一个要设计的功能是&#xff0c;输入手机号以后跳转到另一个页面&#xff0c;输入获取得到的验证码页面。先拿这个功能练练手。 首先看一下此时的完整项目结构&#xff1a; 主要是添加了2个活动类和对应的界面&#xff0c;下面看详细的代码…

使用GraphQL构建现代API

使用GraphQL构建现代API GraphQL简介 安装GraphQL 使用npm安装GraphQL 使用Yarn安装GraphQL 创建GraphQL服务器 定义Schema 编写Resolver 查询数据 变更数据 使用Apollo Client GraphQL订阅 数据验证 错误处理 分页查询 拆分和组合Schema 总结 随着API的发展&#xff0c;传统…

炒到天价的数字头像如何用AI制作——教你用Midjourney轻松打造像素风NFT头像

​ ​ 近年来&#xff0c;NFT数字头像成了热门话题&#xff0c;许多以像素风格为主的头像被炒到天价&#xff0c;像最近比较火的星球兽头像。 它们之所以备受追捧&#xff0c;不仅是因为视觉风格独特&#xff0c;更是因其在NFT领域的稀缺性。 那如果想自己制作一个像素风头像…

网络层2--IP协议

目录 一、虚拟互连网络 二、IP地址 1、IP地址表示方法 2、IP地址分类 3、无分类编址CIDR &#xff08;1&#xff09;网络前缀 &#xff08;2&#xff09;地址块 、 地址掩码 4、IP地址特点 5、地址解析协议ARP &#xff08;1&#xff09;原理 &#xff08;2&#xf…

进程间通信(命名管道 共享内存)

文章目录 命名管道原理命令创建命名管道函数创建命名管道 共享内存原理shmgetFIOK 代码应用&#xff1a;premsnattch 命名管道 用于两个毫无关系的进程间的通信。 原理 Linux文件的路径是多叉树&#xff0c;故文件的路径是唯一的。 让内核缓冲区不用刷新到磁盘中&#xff0c…