【SQLite】SQLite数据库简单使用与Navicat安装-加密

news2024/11/22 23:23:34

Sqlite为免安装数据库,安装步骤总结:

官网下载Sqlit数据库,官网下载地址:https://www.sqlite.org/download.html
下载:
sqlite-dll-win64-x64-3390400.zip或者32位sqlite-dll-win32
sqlite-tools-win-x64-3440200.zip或者32位sqlite-tools-win32

SQLite 不支持远程连接,因为它是一种文件数据库,需要直接访问数据库文件。

window下

1.将下载后的两个压缩文件,解压到一个文件夹中

在这里插入图片描述
在这里插入图片描述

2.在此目录-打开命令窗口,输入sqlite3,返回版本信息等内容,如下说明安装成功

cmd执行命令:
sqlite3

在这里插入图片描述
2.SQLite安装

Linux系统

Linux中几乎所有版本的 Linux 操作系统都附带 SQLite,所以只要使用下面的命令来检查您的机器上是否已经安装了 SQLite。

#运行看看有没有
,没有就行下载:sqlite-tools-linux-x64-3440200.zip-解压

sqlite3

目录:
在这里插入图片描述
执行:sqlite3或者sqlite
在这里插入图片描述

SQLite命令

DDL - 数据定义语言
命令	描述
CREATE	创建一个新的表,一个表的视图,或者数据库中的其他对象。
ALTER	修改数据库中的某个已有的数据库对象,比如一个表。
DROP	删除整个表,或者表的视图,或者数据库中的其他对象。
DML - 数据操作语言

命令	描述
INSERT	创建一条记录。
UPDATE	修改记录。
DELETE	删除记录。
DQL - 数据查询语言
命令	描述
SELECT	从一个或多个表中检索某些记录。

SQLite数据类型
每个存储在 SQLite 数据库中的值都具有以下存储类之一:
存储类	描述
NULL	值是一个 NULL 值。
INTEGER	值是一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中。
REAL	值是一个浮点值,存储为 8 字节的 IEEE 浮点数字。
TEXT	值是一个文本字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储。
BLOB	值是一个 blob 数据,完全根据它的输入存储。
5.SQLite创建数据库,创建表,增加数据等操作
命令不区分大小写

命令操作-Linux系统

(1)创建数据库
sqlite3 my.db
(2)查询数据库
.database
(3)创建表
create table user(id int,name text);
(4)查询表
.t
.tables //两种都可以
(5)插入数据
insert into user(id,name)values(1,'kk');
(6)查询表数据
select * from user;//查询所有
select id from user;//查询id底下数据
(7)退出数据库
.q
.quit

win10,使用Navicat操作SQLite3-数据库文件自己建一个.db后缀文件

创建数据库
新建连接
先用txt创建文件,改成db结尾

在这里插入图片描述

java

        public static string pathSqlite = @"DataSource=C:\Users\admini\Desktop\0602.db";
       
        /// <summary>
        /// 数据库加密
        /// </summary>
        /// <param name="pathsql"></param>
        /// <param name="passWord"></param>
        /// <returns></returns>
        public static bool SetPassWordToSqlite(string passWord)
        {
            bool result = false;
            try
            {
                using (SQLiteConnection cnn = new SQLiteConnection(pathSqlite))
                {
                    cnn.Open();
                    cnn.ChangePassword(passWord);
                    result = true;
                    Console.WriteLine("加密成功!");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + "数据库或已加密");
            }
            return result;
        }
	
       public static bool ClearPassWordToSqlite( string passWord)
        {
            bool result = false;
            try
            {
                using (SQLiteConnection cnn = new SQLiteConnection(pathSqlite))
                {
                    cnn.SetPassword(passWord);
                    cnn.Open();
                    cnn.ChangePassword("");
                    result = true;
                    Console.WriteLine("解除密码成功!");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + "数据库或已解密");
            }
            return result;
        }

c++

#include <iostream>
#include "sqlite3.h" // SQLite头文件
 
int main() {
    sqlite3 *db;
    int rc = sqlite3_open("database.db", &db); // 打开或创建数据库
    
    if (rc != SQLITE_OK) {
        std::cout << "无法打开/创建数据库!错误信息:" << sqlite3_errmsg(db) << std::endl;
        return -1;
    } else {
        const char* password = "mypassword"; // 要设置的密码
        
        rc = sqlite3_exec(db, "PRAGMA key='mypassword';", NULL, NULL, NULL); // 设置密码
        
        if (rc == SQLITE_OK) {
            std::cout << "成功设置密码连接到SQLite数据库!" << std::endl;
            
            // 这里可以进行其他操作...
            
            sqlite3_close(db); // 关闭数据库连接
        } else {
            std::cout << "无法设置密码连接到SQLite数据库!错误信息:" << sqlite3_errmsg(db) << std::endl;
            sqlite3_close(db); // 关闭数据库连接
            return -1;
        }
    }
    
    return 0;
}

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

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

相关文章

【✅Java中有了基本类型为什么还需要包装类?】

✅Java中有了基本类型为什么还需要包装类&#xff1f; ✅Java中有了基本类型为什么还需要包装类✅Java的8中基本数据类型 ✅知识拓展✅基本类型和包装类型的区别✅如何理解自动拆装箱&#xff1f;✅拆箱与装箱✅自动拆装箱✅自动拆装箱原理 ✅哪些地方会自动拆装箱&#xff1f;…

10-高并发-应用级缓存

缓存简介 缓存&#xff0c;是让数据更接近于使用者&#xff0c;目的是让访问速度更快。 工作机制是先从缓存中读取数据&#xff0c;如果没有&#xff0c;再从慢速设备上读取实际数据并同步到缓存。 那些经常读取的数据、频繁访问的数据、热点数据、I/O瓶颈数据、计算昂贵的数…

算法基础之约数个数

约数个数 核心思想&#xff1a; 用哈希表存每个质因数的指数 然后套公式 #include <iostream>#include <algorithm>#include <unordered_map>#include <vector>using namespace std;const int N 110 , mod 1e9 7;typedef long long LL; //long l…

移动安全APP--Frida+模拟器,模拟器+burp联动

最近测APP被通报了&#xff0c;问题点测得比较深&#xff0c;涉及到frida和burp抓包&#xff0c;一般在公司可能会有网络的限制&#xff0c;手机没办法抓包&#xff0c;我就直接在模拟器上试了&#xff0c;就在这记录一下安装过程。 目录 一、Frida安装 二、burp与逍遥模拟器…

MySQL是如何保证数据不丢失的?

文章目录 前言Buffer Pool 和 DML 的关系DML操作流程加载数据页更新记录 数据持久化方案合适的时机刷盘双写机制日志先行机制日志刷盘机制Redo Log 恢复数据 总结 前言 上篇文章《InnoDB在SQL查询中的关键功能和优化策略》对InnoDB的查询操作和优化事项进行了说明。但是&#…

STM32F4的DHT11初始化与实例分析

STM32—— DHT11 本文主要涉及STM32F4 的DHT11的使用以及相关时序的介绍&#xff0c;最后有工程下载地址。 文章目录 STM32—— DHT11一、 DHT11的介绍1.1 DHT11的经典电路 二、DHT11的通信2.1 DHT11的传输数据格式2.2 DHT11 通信分步解析 三、 DHT11 代码3.1 引脚图3.2 电路图…

污水处理厂可视化:让环保与科技共舞

随着科技的飞速发展&#xff0c;我们的生活环境变得越来越美好。然而&#xff0c;随着城市化进程的加快&#xff0c;污水处理问题也日益凸显。如何有效、高效地处理污水&#xff0c;成为了一个亟待解决的问题。而“污水处理厂可视化”技术的出现&#xff0c;为这个问题提供了一…

隐藏通信隧道技术——防御DNS隧道攻击

隐藏通信隧道技术——防御DNS隧道攻击 DNS协议 ​ DNS协议是一种请求/应答协议&#xff0c;也是一种可用于应用层的隧道技术。虽然激增的DNS流量可能会被发现&#xff0c;但是基于传统Socket隧道已经濒临淘汰及TCP、UDP通信大量被防御系统拦截的状况&#xff0c;DNS、ICMP、H…

第二十二章 : Spring Boot 集成定时任务(一)

第二十二章 &#xff1a; Spring Boot 集成定时任务&#xff08;一&#xff09; 前言 本章知识点&#xff1a; 介绍使用Spring Boot内置的Scheduled注解来实现定时任务-单线程和多线程&#xff1b;以及介绍Quartz定时任务调度框架&#xff1a;简单定时调度器&#xff08;Simp…

QT中网络编程之发送Http协议的Get和Post请求

文章目录 HTTP协议GET请求POST请求QT中对HTTP协议的处理1.QNetworkAccessManager2.QNetworkRequest3.QNetworkReply QT实现GET请求和POST请求Get请求步骤Post请求步骤 测试结果 使用QT的开发产品最终作为一个客户端来使用&#xff0c;很大的一个功能就是要和后端服务器进行交互…

使用代理服务器和Beautiful Soup爬取亚马逊

概述 Beautiful Soup 是一个用于解析 HTML 和 XML 文档的 Python 库&#xff0c;它能够从网页中提取数据&#xff0c;并提供了一些简单的方法来浏览文档树、搜索特定元素以及修改文档的内容。在本文中&#xff0c;我们将介绍如何使用代理服务器和Beautiful Soup库来爬取亚马逊…

nginx 离线安装 https反向代理

这里写自定义目录标题 安装步骤1.安装nginx所需依赖1.1 安装gcc和gcc-c1.1.1下载依赖包1.1.2 上传依赖包1.1.3安装依赖 1.2 安装pcre1.2.1 下载pcre1.2.2 上传解压安装包1.2.3 编译安装 1.3 下载安装zlib1.3.1 下载zlib1.3.2 上传解压安装包1.3.3 编译安装 1.4 下载安装openssl…

UG扫掠体与部件导航器的使用

扫掠体命令的本质在我看来&#xff0c;就是用一个道具沿着轨迹线在选中的实体中进行加工&#xff0c;切除相应部分&#xff1b; 有如下原则 扫掠体&#xff1a; 引导线必须光顺相切&#xff0c;不能有尖角 工具体&#xff1a; 1、必须为单个的实体&#xff0c;不能有孔或内…

[NISACTF 2022]babyserialize

[NISACTF 2022]babyserialize 题目做法及思路解析&#xff08;个人分享&#xff09; 题目平台地址&#xff1a;NSSCTF | 在线CTF平台 一、题目代码 查看分析代码&#xff0c;寻找漏洞点&#xff08;题目中注释为个人思路标注&#xff0c;实际代码中没有&#xff09; …

每日一题,二维平面

给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形&#xff0c;请你计算并返回两个矩形覆盖的总面积。 每个矩形由其 左下 顶点和 右上 顶点坐标表示&#xff1a; 第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。 第二个矩形由其左下顶点 (bx1, …

牛客小白月赛78(C: 第K小表示数)

C-第K小表示数_牛客小白月赛78 (nowcoder.com) 问题&#xff1a; 分析: k的极限是1e6,因此要几乎O(n)的时间复杂度给求出来&#xff0c;还需要每插入一个元素我都要去排序&#xff0c;这个时候set就派上用场了&#xff0c;自带排序和去重,集合里面最小和第二小的一定是min(a…

LeetCode 647回文子串 517最长回文子序列 | 代码随想录25期训练营day57

动态规划算法14 LeetCode 647 回文子串 2023.12.20 题目链接代码随想录讲解[链接] int countSubstrings(string s) {//暴力搜索&#xff0c;前两层遍历确定子字符串的起始和末尾位置//第三层循环判断当前子字符串是否为回文串/*int result 0;for (int i 0; i < s.size…

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口?!

【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口&#xff1f;&#xff01;&#x1f60e; 前言&#x1f64c;【hadoop】解决浏览器不能访问Hadoop的50070、8088等端口&#xff1f;&#xff01;查看自己的配置文件&#xff1a;最终成功访问如图所示&#xff1a; 总结撒花…

Best script for images porter 【容器镜像搬运最佳脚本】

文章目录 1. 简介2. 功能3. 代码4. 示例4.1 拉取 kube-prometheus-stack 55.4.1 版本的镜像 1. 简介 很多情况下&#xff0c;针对一个项目会有很多镜像需要搬运&#xff0c;打包&#xff0c;解压&#xff0c;打标签&#xff0c;推送入库。该项目将针对多个镜像进行管理操作。方…

vscode配置node.js调试环境

node.js基于VSCode的开发环境的搭建非常简单。 说明&#xff1a;本文的前置条件是已安装好node.js(具体安装不再赘述&#xff0c;如有需要可评论区留言)。 阅读本文可掌握&#xff1a; 方便地进行js单步调试&#xff1b;方便地查看内置的对象或属性&#xff1b; 安装插件 C…