青少年编程与数学 02-012 SQLite 数据库简介 04课题、数据库应用

青少年编程与数学 02-012 SQLite 数据库简介 04课题、数据库应用

  • 一、Python
  • 二、Java
  • 三、C#
  • 四、JavaScript(Node.js)
  • 五、PHP
  • 六、Android(Java/Kotlin)
  • 七、iOS(Swift)
  • 八、Go

课题摘要: SQLite 在各种编程语言中的应用非常广泛,本文是一些常见编程语言中使用 SQLite 的基本方法和示例。


SQLite 在各种编程语言中的应用非常广泛,以下是一些常见编程语言中使用 SQLite 的基本方法和示例:

一、Python

Python 通过内置的 sqlite3 模块来支持 SQLite 数据库操作,使用起来非常方便。

  1. 连接数据库

    Python复制

    import sqlite3# 连接到 SQLite 数据库
    # 如果文件不存在,会自动在当前目录创建一个数据库文件
    conn = sqlite3.connect('example.db')
    
  2. 创建表

    Python复制

    c = conn.cursor()# 创建一个表
    c.execute('''CREATE TABLE stocks(date text, trans text, symbol text, qty real, price real)''')
    
  3. 插入数据

    Python复制

    # 插入一行数据
    c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
    
  4. 查询数据

    Python复制

    # 执行查询
    c.execute('SELECT * FROM stocks ORDER BY price')
    for row in c.fetchall():print(row)
    
  5. 提交事务和关闭连接

    Python复制

    # 提交事务
    conn.commit()# 关闭连接
    conn.close()
    

二、Java

在 Java 中,可以使用 JDBC(Java Database Connectivity)来连接和操作 SQLite 数据库。

  1. 添加 SQLite JDBC 驱动 首先需要在项目中添加 SQLite JDBC 驱动,可以通过 Maven 依赖来添加:

    xml复制

    <dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.36.0.3</version>
    </dependency>
    
  2. 连接数据库

    java复制

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;// 加载驱动
    Class.forName("org.sqlite.JDBC");
    // 连接到数据库
    Connection conn = DriverManager.getConnection("jdbc:sqlite:example.db");
    
  3. 创建表和插入数据

    java复制

    Statement stmt = conn.createStatement();
    stmt.execute("CREATE TABLE IF NOT EXISTS stocks (date TEXT, trans TEXT, symbol TEXT, qty REAL, price REAL)");
    stmt.execute("INSERT INTO stocks VALUES ('2006-01-05', 'BUY', 'RHAT', 100, 35.14)");
    
  4. 查询数据

    java复制

    ResultSet rs = stmt.executeQuery("SELECT * FROM stocks");
    while (rs.next()) {System.out.println(rs.getString("date") + " " + rs.getString("trans"));
    }
    
  5. 关闭连接

    java复制

    conn.close();
    

三、C#

在 C# 中,可以使用 System.Data.SQLite 库来操作 SQLite 数据库。

  1. 安装 SQLite 库 可以通过 NuGet 包管理器安装:

    Shell复制

    Install-Package System.Data.SQLite
    
  2. 连接数据库

    csharp复制

    using System.Data.SQLite;// 创建连接
    SQLiteConnection conn = new SQLiteConnection("Data Source=example.db;Version=3;");
    conn.Open();
    
  3. 创建表和插入数据

    csharp复制

    SQLiteCommand cmd = new SQLiteCommand(conn);
    cmd.CommandText = "CREATE TABLE IF NOT EXISTS stocks (date TEXT, trans TEXT, symbol TEXT, qty REAL, price REAL)";
    cmd.ExecuteNonQuery();cmd.CommandText = "INSERT INTO stocks VALUES ('2006-01-05', 'BUY', 'RHAT', 100, 35.14)";
    cmd.ExecuteNonQuery();
    
  4. 查询数据

    csharp复制

    cmd.CommandText = "SELECT * FROM stocks";
    SQLiteDataReader reader = cmd.ExecuteReader();
    while (reader.Read())
    {Console.WriteLine(reader["date"] + " " + reader["trans"]);
    }
    
  5. 关闭连接

    csharp复制

    conn.Close();
    

四、JavaScript(Node.js)

在 Node.js 中,可以使用 sqlite3 模块来操作 SQLite 数据库。

  1. 安装 sqlite3 模块

    Shell复制

    npm install sqlite3
    
  2. 连接数据库

    JavaScript复制

    const sqlite3 = require('sqlite3').verbose();
    let db = new sqlite3.Database('example.db');
    
  3. 创建表和插入数据

    JavaScript复制

    db.run("CREATE TABLE IF NOT EXISTS stocks (date TEXT, trans TEXT, symbol TEXT, qty REAL, price REAL)");
    db.run("INSERT INTO stocks VALUES ('2006-01-05', 'BUY', 'RHAT', 100, 35.14)");
    
  4. 查询数据

    JavaScript复制

    db.all("SELECT * FROM stocks", [], (err, rows) => {rows.forEach((row) => {console.log(row.date + " " + row.trans);});
    });
    
  5. 关闭连接

    JavaScript复制

    db.close();
    

五、PHP

在 PHP 中,可以使用 PDO(PHP Data Objects)扩展来连接和操作 SQLite 数据库。

  1. 连接数据库

    php复制

    $db = new PDO('sqlite:example.db');
    
  2. 创建表和插入数据

    php复制

    $db->exec("CREATE TABLE IF NOT EXISTS stocks (date TEXT, trans TEXT, symbol TEXT, qty REAL, price REAL)");
    $db->exec("INSERT INTO stocks VALUES ('2006-01-05', 'BUY', 'RHAT', 100, 35.14)");
    
  3. 查询数据

    php复制

    $stmt = $db->query('SELECT * FROM stocks');
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {echo $row['date'] . " " . $row['trans'] . "\n";
    }
    
  4. 关闭连接

    php复制

    $db = null;
    

六、Android(Java/Kotlin)

在 Android 开发中,SQLite 是常用的数据存储方式之一。

  1. 创建数据库帮助类

    java复制

    public class DBHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME = "example.db";private static final int DATABASE_VERSION = 1;public DBHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE stocks (date TEXT, trans TEXT, symbol TEXT, qty REAL, price REAL)");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// 处理数据库升级逻辑}
    }
    
  2. 插入数据

    java复制

    DBHelper dbHelper = new DBHelper(context);
    SQLiteDatabase db = dbHelper.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put("date", "2006-01-05");
    values.put("trans", "BUY");
    values.put("symbol", "RHAT");
    values.put("qty", 100);
    values.put("price", 35.14);
    db.insert("stocks", null, values);
    
  3. 查询数据

    java复制

    Cursor cursor = db.query("stocks", null, null, null, null, null, null);
    while (cursor.moveToNext()) {String date = cursor.getString(cursor.getColumnIndex("date"));String trans = cursor.getString(cursor.getColumnIndex("trans"));System.out.println(date + " " + trans);
    }
    cursor.close();
    
  4. 关闭数据库

    java复制

    db.close();
    

七、iOS(Swift)

在 iOS 开发中,可以使用 SQLite.swift 库来操作 SQLite 数据库。

  1. 安装 SQLite.swift 可以通过 CocoaPods 安装:

    ruby复制

    pod 'SQLite.swift', '~> 0.13.0'
    
  2. 连接数据库

    swift复制

    import SQLitelet dbPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! + "/example.db"
    let db = try Connection(dbPath)
    
  3. 创建表和插入数据

    swift复制

    let stocks = Table("stocks")
    let date = Expression<String>("date")
    let trans = Expression<String>("trans")
    let symbol = Expression<String>("symbol")
    let qty = Expression<Double>("qty")
    let price = Expression<Double>("price")try db.run(stocks.create { t int.column(date)t.column(trans)t.column(symbol)t.column(qty)t.column(price)
    })try db.run(stocks.insert(date <- "2006-01-05", trans <- "BUY", symbol <- "RHAT", qty <- 100, price <- 35.14))
    
  4. 查询数据

    swift复制

    for stock in try db.prepare(stocks) {print(stock[date], stock[trans])
    }
    
  5. 关闭连接

    swift复制

    db.close()
    

这些示例展示了在不同编程语言中使用 SQLite 的基本方法,包括连接数据库、创建表、插入数据、查询数据和关闭连接。SQLite 的简单性和灵活性使其成为许多轻量级应用程序的首选数据库解决方案。

好的,以下是 Go 语言中使用 SQLite 的基本方法和示例。

八、Go

在 Go 语言中,可以使用 database/sql 标准库结合 github.com/mattn/go-sqlite3 这个第三方驱动来操作 SQLite 数据库。

  1. 安装 SQLite 驱动 首先需要安装 go-sqlite3 驱动,可以通过以下命令安装:

    Shell复制

    go get -u github.com/mattn/go-sqlite3
    
  2. 连接数据库

    go复制

    package mainimport ("database/sql""fmt""log"_ "github.com/mattn/go-sqlite3"
    )func main() {// 连接到 SQLite 数据库// 如果文件不存在,会自动在当前目录创建一个数据库文件db, err := sql.Open("sqlite3", "./example.db")if err != nil {log.Fatal(err)}defer db.Close()
    }
    
  3. 创建表

    go复制

    _, err := db.Exec(`CREATE TABLE IF NOT EXISTS stocks (date TEXT,trans TEXT,symbol TEXT,qty REAL,price REAL
    )`)
    if err != nil {log.Fatal(err)
    }
    
  4. 插入数据

    go复制

    // 插入一行数据
    _, err = db.Exec("INSERT INTO stocks (date, trans, symbol, qty, price) VALUES (?, ?, ?, ?, ?)", "2006-01-05", "BUY", "RHAT", 100, 35.14)
    if err != nil {log.Fatal(err)
    }
    
  5. 查询数据

    go复制

    rows, err := db.Query("SELECT date, trans, symbol, qty, price FROM stocks")
    if err != nil {log.Fatal(err)
    }
    defer rows.Close()for rows.Next() {var date, trans, symbol stringvar qty float64var price float64if err := rows.Scan(&date, &trans, &symbol, &qty, &price); err != nil {log.Fatal(err)}fmt.Println(date, trans, symbol, qty, price)
    }
    
  6. 处理查询错误

    go复制

    if err = rows.Err(); err != nil {log.Fatal(err)
    }
    
  7. 关闭连接

    go复制

    db.Close()
    

完整示例

将上述代码片段组合成一个完整的示例:

go复制

package mainimport ("database/sql""fmt""log"_ "github.com/mattn/go-sqlite3"
)func main() {// 连接到 SQLite 数据库// 如果文件不存在,会自动在当前目录创建一个数据库文件db, err := sql.Open("sqlite3", "./example.db")if err != nil {log.Fatal(err)}defer db.Close()// 创建表_, err = db.Exec(`CREATE TABLE IF NOT EXISTS stocks (date TEXT,trans TEXT,symbol TEXT,qty REAL,price REAL)`)if err != nil {log.Fatal(err)}// 插入一行数据_, err = db.Exec("INSERT INTO stocks (date, trans, symbol, qty, price) VALUES (?, ?, ?, ?, ?)", "2006-01-05", "BUY", "RHAT", 100, 35.14)if err != nil {log.Fatal(err)}// 查询数据rows, err := db.Query("SELECT date, trans, symbol, qty, price FROM stocks")if err != nil {log.Fatal(err)}defer rows.Close()for rows.Next() {var date, trans, symbol stringvar qty float64var price float64if err := rows.Scan(&date, &trans, &symbol, &qty, &price); err != nil {log.Fatal(err)}fmt.Println(date, trans, symbol, qty, price)}// 处理查询错误if err = rows.Err(); err != nil {log.Fatal(err)}
}

这个示例展示了如何在 Go 语言中连接 SQLite 数据库、创建表、插入数据和查询数据。通过使用 database/sql 标准库和 go-sqlite3 驱动,可以方便地进行 SQLite 数据库操作。

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

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

相关文章

SQL Server 2008安装教程

目录 一.安装SQL Server 二.安装SQL Server Management Studio 三.使用SQL Server Management Studio 一.安装SQL Server 官网下载:SQL Server 下载 | Microsoft 1.选择安装中的全新安装如下图 2.功能选择 3.实例配置 4.后面一直下一步到数据库引擎配置 密码自己设置 系统…

Microi吾码界面设计引擎之基础组件用法大全【内置组件篇·中】

&#x1f380;&#x1f380;&#x1f380; microi-pageengine 界面引擎系列 &#x1f380;&#x1f380;&#x1f380; 一、Microi吾码&#xff1a;一款高效、灵活的低代码开发开源框架【低代码框架】 二、Vue3项目快速集成界面引擎 三、Vue3 界面设计插件 microi-pageengine …

如何在 Windows 上安装并使用 Postman?

Postman 是一个功能强大的API测试工具&#xff0c;它可以帮助程序员更轻松地测试和调试 API。在本文中&#xff0c;我们将讨论如何在 Windows 上安装和使用 Postman。 Windows 如何安装和使用 Postman 教程&#xff1f;

便携版:随时随地,高效处理 PDF 文件

PDF-XChange Editor Plus 便携版是一款功能强大且极其实用的 PDF 阅读与编辑工具。它不仅支持快速浏览 PDF 文件&#xff0c;还提供了丰富的编辑功能&#xff0c;让用户可以轻松处理 PDF 文档。经过大神优化处理&#xff0c;这款软件已经变得十分轻便&#xff0c;非常适合需要随…

MCP Server 实现一个 天气查询

​ Step1. 环境配置 安装 uv curl -LsSf https://astral.sh/uv/install.sh | shQuestion: 什么是 uv 呢和 conda 比有什么区别&#xff1f; Answer: 一个用 Rust 编写的超快速 (100x) Python 包管理器和环境管理工具&#xff0c;由 Astral 开发。定位为 pip 和 venv 的替代品…

MySQL执行计划

MySQL 的 执行计划&#xff08;Execution Plan&#xff09; 是优化器根据 SQL 语句生成的查询执行路径的详细说明。通过分析执行计划&#xff0c;可以了解 MySQL 如何处理 SQL 查询&#xff08;如索引使用情况、表连接顺序等&#xff09;&#xff0c;进而优化查询性能。 1. 获…

数据大屏点亮工业互联网的智慧之眼

在当今数字化飞速发展的时代&#xff0c;数据已成为企业决策的核心依据&#xff0c;而数据大屏作为数据可视化的重要工具&#xff0c;正逐渐成为工业互联网领域不可或缺的一部分。通过直观、动态的可视化展示&#xff0c;数据大屏能够将复杂的数据转化为易于理解的图表和图形&a…

GPT-SoVITS本地部署:低成本实现语音克隆远程生成音频全流程实战

文章目录 前言1.GPT-SoVITS V2下载2.本地运行GPT-SoVITS V23.简单使用演示4.安装内网穿透工具4.1 创建远程连接公网地址 5. 固定远程访问公网地址 前言 今天要给大家安利一个绝对能让你大呼过瘾的声音黑科技——GPT-SoVITS&#xff01;这款由花儿不哭大佬精心打造的语音克隆神…

【AI大模型】DeepSeek + 通义万相高效制作AI视频实战详解

目录 一、前言 二、AI视频概述 2.1 什么是AI视频 2.2 AI视频核心特点 2.3 AI视频应用场景 三、通义万相介绍 3.1 通义万相概述 3.1.1 什么是通义万相 3.2 通义万相核心特点 3.3 通义万相技术特点 3.4 通义万相应用场景 四、DeepSeek 通义万相制作AI视频流程 4.1 D…

【Unity】合批处理和GPU实例化的底层优化原理(完)

【Unity】批处理和实例化的底层优化原理 URP1.基础概念SetPassCallsDrawCallsBatches 2.重要性排序既然如此为什么仍然要合批&#xff1f; 3.unity主流的合批优化方案和优先级Early-Z透明物体情况 4.合批&#xff08;小场景但是很复杂很多小物件刚需&#xff09;合并纹理图集更…

当人类关系重构:从“相互需要”到“鹅卵石化”——生成式人工智能(GAI)认证的角色与影响

在数字化浪潮的席卷之下,人类社会正经历着前所未有的变革。人与人之间的连接方式、互动模式以及价值认同,都在悄然发生着变化。这一过程中,一个显著的现象是,人与人之间的关系逐渐从传统的“相互需要”模式,转变为一种更为复杂、多元且稳定的“鹅卵石化”结构。在此背景下…

ctfhow——web入门171~175

sql简介 web入门171 ——判断注入点&#xff1a; -1 union select 1,2,3 -- 其实在这之前可以先判断多少列&#xff0c;即 -1‘ group&#xff08;order&#xff09; by 3 -- group by用于将具有相同值的行分组成一个汇总行&#xff0c;可以查看是否报错确定列数 2&#x…

vue遗漏的知识点(动态组件.组件库的操作使用)

----动态组件&#xff08;vue2vue3通用&#xff09; <component :is"..."> 的作用 <component> 是 Vue 的内置组件&#xff0c;用于动态渲染其他组件。:is 属性 用于指定要渲染的组件。它的值可以是&#xff1a; 组件的名称&#xff08;字符串&#xf…

ip改变导致的数据库连接不上

前言 需要用到路由器&#xff0c;所以先把家里的路由器给拆了先用着。新的路由器到了之后&#xff0c;更换上新的路由器之后&#xff0c;调用到服务会有报错&#xff0c;记录一下更换路由器之后ip重新分配服务可能会报的错. 进一步可以看到有关网路在服务当中的影响。 正文 …

DeepSeek面试——模型架构和主要创新点

本文将介绍DeepSeek的模型架构多头潜在注意力&#xff08;MLA&#xff09;技术&#xff0c;混合专家&#xff08;MoE&#xff09;架构&#xff0c; 无辅助损失负载均衡技术&#xff0c;多Token 预测&#xff08;MTP&#xff09;策略。 一、模型架构 DeepSeek-R1的基本架构沿用…

基于HTML5的3D魔方项目开发实践

基于HTML5的3D魔方项目开发实践 这里写目录标题 基于HTML5的3D魔方项目开发实践项目概述核心技术实现1. 3D效果实现CSS3 3D变换魔方结构设计 2. 交互控制实现动画控制键盘控制触摸控制 技术难点与解决方案1. 3D变换控制2. 触摸体验优化3. 动画性能优化 项目收获总结项目展望 项…

23种设计模式-原型(Prototype)设计模式

原型设计模式 &#x1f6a9;什么是原型设计模式&#xff1f;&#x1f6a9;原型设计模式的特点&#x1f6a9;原型设计模式的结构&#x1f6a9;原型设计模式的优缺点&#x1f6a9;原型设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是原型设计模式…

【MATLAB例程】交互式多模型(IMM),模型使用:CV,CT左转、CT右转,二维平面,三个模型的IMM,滤波使用EKF。订阅专栏后可查看代码

简单的介绍:本文所述的代码实现了一种基于交互多模型(IMM)算法的目标跟踪仿真,适用于复杂运动目标(如匀速、转弯运动)的状态估计。代码通过三个运动模型(匀速CV、左转弯CT1、右转弯CT2)的协同滤波,动态调整模型概率,最终输出综合跟踪结果。代码包含完整的仿真数据生成…

搭建私人对外git空间

# 创建用户&#xff0c;指定不可登录的 Shell&#xff08;git-shell 或 /usr/sbin/nologin&#xff09; sudo adduser --system --shell /usr/bin/git-shell --group git # 验证用户配置 grep git /etc/passwd # 预期输出&#xff1a;git:x:998:998::/home/git:/usr/bin/git-s…

PHP中yield关键字的使用

PHP版本>5.5 原理&#xff1a;yield关键字会生成一个Generator类的对象&#xff0c;PHP通过Generator实例计算出下一次迭代的值&#xff0c;再次返回一个Generator对象并停止循环&#xff08;即循环一次执行一次&#xff09;。 理解&#xff1a;使用在for/foreach/while循…