SQLite 语法

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.mzph.cn/news/884303.shtml

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

相关文章

河南高校大数据实验室建设案例分享

泰迪智能科技在与中国各地高校的合作中积累了丰富的经验,尤其是在大数据和人工智能领域。过去多年里与河南省内多所高校在大数据领域进行了积极的探索和建设,形成了一系列具有特色的大数据实验室。这些实验室不仅促进了高校内部的科研创新,也…

VulkanTutorial(12·recreation swap chain,Vertex buffers)

Swap chain recreation 我们要优化程序,因为window surface(窗口大小)可能会发生变化,导致swapchain不再兼容,当这个事件发生时,我们应该重新创建swapchain 实例 我们写新的recreateSwapChain和cleanupS…

qt QPicture详解

1、概述 QPicture类是Qt框架中的一个重要图形类,它主要用于记录和回放QPainter的绘图指令。这个类能够跨平台、无分辨率依赖地绘制图形,非常适合用于实现打印预览和图像操作等场景。QPicture可以将绘图操作序列化为一种独立于平台的格式,保存…

获取vue.config.js里代理的路径

vue.config.js 主要用于配置 Vue CLI 的构建和开发服务器选项,不能直接拿到里面的值,如果是自己重新写的config,引入到页面就可以拿到 下面说,我的解决办法,如果有更好的,一定要给我说啊 在public目录下创…

【数据结构】宜宾大学-计院-实验六

实验 6 栈和队列(综合实验) 实验目的:实验内容:进制转换问题:第1题测试结果:第1题代码实现: 括号匹配问题:第2题测试结果:第2题代码实现: 回文字符串问题&…

Day22 opencv图像预处理

图像预处理 在计算机视觉和图像处理领域,图像预处理是一个重要的步骤,它能够提高后续处理(如特征提取、目标检测等)的准确性和效率。OpenCV 提供了许多图像预处理的函数和方法,常见的操作包括图像空间转换、图像大小调…

LabVIEW for Linux 介绍

LabVIEW for Linux 介绍 1. 兼容性 LabVIEW for Linux 设计用于多种 Linux 发行版,包括 CentOS、Ubuntu 等。在安装之前,务必检查与您特定发行版版本的兼容性。 2. 程序移植 可移植性:在许多情况下,LabVIEW 程序(VI…

axios竟态问题

竟态问题 在我们日常开发经常遇到一些竟态问题 例子1 现象1 表格分页,如果设置请求loading, 先切换到分页第99页,迅速在又切换到第1页,最后列表显示的是第99页数据。 原因 由于第99页请求数据花费时间可能500ms,第1页数据只需要100ms,第1页…

《深入浅出HTTPS​​​​》读书笔记(4):密码学

解决HTTP安全的方法就是采用HTTPS,理解HTTPS之前必须掌握基本的密码学知识,HTTPS本质上就是对密码学算法的组合。 【密码学的四个目标】 1)机密性(隐私性) 在网络中传递的数据如果具备机密性,那么传输的数据…

《Python游戏编程入门》注-第4章2

《Python游戏编程入门》的“4.2.2 键盘事件”中介绍了通过键盘事件来监听键盘按键的方法。 1 键盘事件 玩家点击键盘中某个按键实际上包含了两个动作:点击按键和释放按键,也就是按键按下和松开。按键按下的对应的事件是KEYDOWN,按键松开对应…

递归到分治

一、递归与分治: 1、递归:如果一个问题分可以简化为某些更小的、更简单的子问题来解决,那么可以用递归 2、分治:如果想并行处理,可以用到分治 二、假设我们有一段文本,需要统计每个单词出现的频率。我们将…

yarn : 无法加载文件,未对文件 进行数字签名。无法在当前系统上运行该脚本。

执行这个命令时报错:yarn --registryhttps://registry.npm.taobao.org yarn : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\yarn.ps1。未对文件 C:\Users\Administ rator\AppData\Roaming\npm\yarn.ps1 进行数字签名。无法在当前系统上运行该脚本。有…

数据结构(8.5_2)——基数排序

基数排序 第一趟“分配”:按"个位"进行分配 第一趟“收集”: 第二趟“分配”:按"十位"进行分配("个位"越大的越先入队) 第二趟“收集”: 第三趟“分配”:按"百位"进行分配(&…

力扣——113. 路径总和

113. 路径总和 II 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [5,4,8,11,null,13,4,7,2,null,null,5,1], t…

漫途焊机安全生产监管方案,提升安全生产管理水平!

随着智能制造时代的到来,企业安全生产管理的重要性日益凸显。特别是在现代工厂中,焊机的安全生产监管成为了一个不容忽视的重要环节。传统的焊机安全生产监管方式存在诸多不足,如人工巡检频率低、数据延迟、安全隐患发现不及时等问题。因此&a…

《Linux系统编程篇》管道(Linux 进程间通信(IPC))——基础篇

文章目录 引言理解 Linux 进程间通信(IPC)基础什么是进程间通信(IPC)? 管道(Pipe)的基本介绍使用场景:管道特点:管道类型:匿名管道命名管道(FIFO&…

阿拉伯国家本地化测试的特点

针对阿拉伯国家的应用程序的本地化测试需要详细了解语言、文化背景、地区规范和技术细节,以符合阿拉伯语用户的期望。这些国家包括沙特阿拉伯、阿拉伯联合酋长国、科威特、卡塔尔、巴林和阿曼,具有独特的语言和文化因素,成功地本地化测试解决…

nignx代理获取真实地址request.getRequestURL()

# 反向代理配置到后端接口 location /prod-api/ { # proxy_set_header Host $proxy_host; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarde…

报错:npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。

报错场景 使用npm run dev 报错 npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 npm…

1015:计算并联电阻的阻值

【题目描述】 对于阻值为 r1和 r2 的电阻,其并联电阻阻值公式计算如下:R1/((1/r1)(1/r2))。输入两个电阻阻抗大小,浮点型。输出并联之后的阻抗大小,结果保留小数点后2位。 【输入】 两个电阻阻抗大小,浮点型&#xff0…