SQLite3数据库的介绍和使用教程(面向业务编程-数据库)

yizhihongxing

SQLite3数据库的介绍和使用教程

什么是SQLite3数据库

SQLite 是一种关系型数据库管理系统,是一个开源的轻型数据库系统,它的存储是基于文件系统的。

一般情况下,SQLite3 被认为是以文件为载体的数据库,它的操作速度快,文件占用内存小,适用于小型应用程序(如手机App等)。但是,SQLite3 并不是不支持应用程序的高并发访问,只是sqlite3采用的是锁机制限制同时访问的进程数。

SQLite3 使用 SQL 作为其操作语言。SQLite3 内置了一个命令行程序(sqlite3),它允许用户在没有第三方监测工具的情况下创建、使用和管理 SQLite 数据库。

SQLite3数据库的安装

在绝大多数系统版本的操作系统中,SQLite都已经预装了。如果没有,可以参考以下步骤进行安装。

Windows系统下安装SQLite3

  1. 下载 SQLite3下载链接,选择最新的编译版本。推荐下载 sqlite-dll-win64-x64-[版本号].zip。

  2. 解压下载后的文件。

  3. 将解压后的文件夹添加至系统环境变量的PATH中。具体步骤是:选中“此电脑”(该电脑),右键选择“属性”,选择“高级系统设置”,选择“环境变量”,找到“系统变量”中的“Path”,选择编辑,将SQLite解压路径添加就可以。

  4. 打开cmd命令行,输入sqlite3,如果出现以下提示,则说明安装成功。

bash
SQLite version 3.33.0 2020-08-14 13:23:32
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

Linux系统下安装SQLite3

  1. 打开终端,输入以下命令:

bash
sudo apt-get update
sudo apt-get install sqlite3 libsqlite3-dev

  1. 如果成功则输入以下命令可查看是否安装成功:

bash
sqlite3

SQLite3数据库的基本操作

1. 创建数据库

可以通过如下命令创建一个名为test.db的SQLite3数据库。

sqlite3 test.db

此时,新建的数据库会自动保存在当前目录下。

2. 创建表格

创建表格的语法如下:

CREATE TABLE table_name(
    column1 datatype,
    column2 datatype,
    column3 datatype,
   .....
    columnN datatype,
    PRIMARY KEY( one or more columns )
);

例如,我们创建一个名为Employee的表,列名分别为ID、Name、Salary和Department。

CREATE TABLE Employee(
   ID INT PRIMARY KEY      NOT NULL,
   NAME           TEXT     NOT NULL,
   AGE            INT      NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

3. 插入数据

插入数据的语法如下:

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

例如,我们向Employee表插入一条数据,该数据ID为1,姓名为"张三",年龄为22,地址为"浙江省杭州市",工资为8888.50。

INSERT INTO Employee (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, '张三', 22, '浙江省杭州市', 8888.50);

4. 查询数据

查询数据的语法如下:

SELECT column1, column2, columnN FROM table_name;

例如,我们查找Employee表中的所有数据。

SELECT * FROM Employee;

5. 更新数据

更新数据的语法如下:

UPDATE table_name SET column1 = value1, column2 = value2...., columnN = valueN WHERE [condition];

例如,我们将Employee表中的Address字段中ID为1的数据地址修改为"浙江省宁波市"。

UPDATE Employee SET ADDRESS = '浙江省宁波市' WHERE ID = 1;

6. 删除数据

删除数据的语法如下:

DELETE FROM table_name WHERE [condition];

例如,我们删除Employee表中ID为1的一条记录。

DELETE FROM Employee WHERE ID = 1;

SQLite3数据库应用示例

示例一:Python使用SQLite3进行操作

Python自带SQLite3库,我们可以在Python中轻易地对SQLite3数据库进行操作。

在前提需要先安装sqlite库:

pip install pysqlite3

接着,我们新建test.db数据库,并在该数据库中创建Employee表。代码如下:

import sqlite3

# 连接数据库
conn = sqlite3.connect('test.db')

# 创建游标
c = conn.cursor()

# 创建Employee表
c.execute('''CREATE TABLE Employee (
            ID INT PRIMARY KEY      NOT NULL,
            NAME           TEXT     NOT NULL,
            AGE            INT      NOT NULL,
            ADDRESS        CHAR(50),
            SALARY         REAL);''')

# 向Employee表中插入一条数据
c.execute("INSERT INTO Employee (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, '张三', 22, '浙江省杭州市', 8888.50);")

# 查询Employee表中的所有数据
result = c.execute("SELECT * FROM Employee;")
for row in result:
   print(row)

# 提交
conn.commit()

# 关闭连接
conn.close()

执行之后,将输出Employee表中的所有数据。

示例二:SQLite3使用Django进行操作

Django是Python Web框架,它也内置了SQLite3数据库。我们可以在Django项目中使用SQLite3数据库。

首先,需要新建一个Django项目:

django-admin startproject test_django

接着,我们在项目的settings.py中添加数据库配置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

然后,我们新建一个应用:

python manage.py startapp testapp

接着,我们在该应用的models.py中定义一个表格:

from django.db import models

# 创建Employee表
class Employee(models.Model):
    ID = models.AutoField(primary_key=True)
    NAME = models.CharField(max_length=20)
    AGE = models.IntegerField()
    ADDRESS = models.CharField(max_length=50)
    SALARY = models.DecimalField(max_digits=10, decimal_places=2)

    class Meta:
        db_table = "employee"

接着,我们在该应用的views.py中定义一个查询函数,查询Employee表中的所有数据:

from testapp.models import Employee

def listEmployee(request):
    list = Employee.objects.all()

    return render(request, 'index.html', {'list': list})

最后,我们在templates文件夹中新建一个index.html文件,展示查询到的数据:

<!DOCTYPE html>
<html>
<head>
    <title>查询结果</title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>姓名</th>
                <th>年龄</th>
                <th>地址</th>
                <th>工资</th>
            </tr>
        </thead>
        <tbody>
            {% for item in list %}
            <tr>
                <td>{{ item.ID }}</td>
                <td>{{ item.NAME }}</td>
                <td>{{ item.AGE }}</td>
                <td>{{ item.ADDRESS }}</td>
                <td>{{ item.SALARY }}</td>
            </tr>
            {% endfor %}
        </tbody>
    </table>
</body>
</html>

执行 python manage.py runserver 启动Django开发服务器,访问http://127.0.0.1:8000,则可以看到查询到的结果。

至此,我们已经学会了如何在Python中使用SQLite3库进行操作,以及如何在Django项目中使用SQLite3数据库。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SQLite3数据库的介绍和使用教程(面向业务编程-数据库) - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • RDBMS和ORDBMS的区别

    RDBMS(关系型数据库管理系统)和ORDBMS(对象关系型数据库管理系统)都是数据库管理系统的一种。两者的本质区别在于,RDBMS是基于关系模型来管理数据的,而ORDBMS是基于关系模型和面向对象模型相结合来管理数据的。接下来,我们就对两者进行详细的比较。 RDBMS和ORDBMS的基本概念 RDBMS:RDBMS是关系型数据库管理系统的简称。它是一种数据…

    database 2023年3月27日
    00
  • Linux下编译redis和phpredis的方法

    当在Linux下搭建Web应用时,Redis和phpredis扮演了重要的角色。Redis是一个高性能的Key-Value数据库,而phpredis是PHP的扩展,它允许我们用PHP操作Redis。下面我将分享如何在Linux下编译Redis和phpredis的方法。 编译Redis 步骤一:从官网下载Redis源码包 在官网https://redis.io…

    database 2023年5月22日
    00
  • SQL中 decode()函数简介

    介绍 decode() 是SQL中非常强大的条件表达式函数之一。它被广泛用于在查询中测试和显示一个字段的不同值。decode()函数本质上是一个语言结构,它接受若干个条件和结果,对于输入数据的每一个值,按照顺序依次判断是否满足条件,如果满足,则返回对应的结果。 语法 decode() 函数的语法如下: decode( expression ,search ,…

    database 2023年5月21日
    00
  • JS代码检查工具ESLint介绍与使用方法

    ESLint介绍与使用方法 什么是ESLint? ESLint是一个开源的JavaScript代码检查工具,它用于识别和报告代码中的模式和错误,有助于开发人员在编写代码时遵守一致的规则和标准,从而提高代码质量。ESLint支持多种插件,可以根据不同的使用场景进行扩展。 安装ESLint 可以通过npm进行ESLint的安装,命令如下: npm install…

    database 2023年5月21日
    00
  • windows下mysql-python安装出错

    注意:python2.x用mysql-python,从Python3.x起,变更为mysqlclient windows安装python的mysql驱动是so easy的: pip install mysql-python 但是毫不意外的出错了: _mysql.c(42) : fatal error C1083: Cannot open include fi…

    MySQL 2023年4月12日
    00
  • 【MySQL】索引和锁

    前言 本文摘自数据库两大神器【索引和锁】 InnoDB存储引擎 索引 在之前,我对索引有以下的认知: 索引可以加快数据库的检索速度 表经常进行INSERT/UPDATE/DELETE操作就不要建立索引了,换言之:索引会降低插入、删除、修改等维护任务的速度。 索引需要占物理和数据空间。 了解过索引的最左匹配原则 知道索引的分类:聚集索引和非聚集索引 Mysql…

    MySQL 2023年4月12日
    00
  • RedHat6.5安装MySQL5.7教程详解

    RedHat6.5安装MySQL5.7教程详解 准备工作 在开始安装过程前,请先下载MySQL5.7的安装包。可以在官网下载对应版本的安装包。 安装步骤 步骤一:卸载旧版本MySQL 如果系统上已经安装了旧版本的MySQL,需要先将其卸载掉。可以通过以下命令进行卸载: sudo yum remove mysql 步骤二:添加MySQL源 下载安装包后,需要将…

    database 2023年5月22日
    00
  • tp框架报“mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead” 警告信息

    警告信息是“mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead……\ThinkPHP\Library\Think\Db\Driver\Mysql.class.php 第 52 行.”   …

    MySQL 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部