SQLite简单介绍

一.简单介绍

SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口 。

SQLite第一个Alpha版本诞生于2000年5月。至2019年已经有19个年头,SQLite也迎来了一个版本 SQLite 3已经发布 。

二.具体安装细节

2.1 下载

下载地址 :https://www.sqlite.org/download.html
具体下载window版本的即可
在这里插入图片描述

2.2 解压

解压文件后,我们进行点击操作
Shift + 右键点击 sqlite3.exe 所在⽬录, 打开 powershell

在这里插入图片描述

2.3 sqlite的使用

对数据库的操作

  1. 创建数据库:sqlite3 database_name.db
  2. 删除数据库:DROP DATABASE database_name.db

对表的操作

  1. 创建表
语法:CREATE TABLE 表名(列名1	数据类型	“约束”(有可无)列名2	数据类型	“约束”(有可无)列名3	数据类型	“约束”(有可无)...);//注意,SQL语句要以分号结尾
数据类型:
  1. 删除表
语法:DROP TABLE 表名;
  1. 修改表结构
重命名:ALTER TABLE 旧表名 rename to 新表名;
增加一列:ALTER TABLE 表名 add column 列名 数据类型
  1. 向表插入数据
语法:INSERT INTO 表名 VALUES(1,值2,值3...);//给所有的列插入数据,有多少列就要填多少值。INSERT INTO 表名 VALUE(列名1,列名2....) VALUE (1,值2... );//给指定列插入数据
  1. 修改表内的数据
UPDATE 表名 set 列名 = 新值,...;
UPDATE 表名 set 列名 = 新值,...WHERE 条件;//条件用来定位要修改的某些行
条件:列名 运算符 值运算符: = 	!= 	>	 >=	 <=如果有多个条件,可以用andor连接
eg:update stu set age = 21;update stu set age = 30 where num = 1001;update stu set age = 30 where num > 60 and num < 999;
  1. 删除表中的所有数据
DELETE FROM  表名;//删除表中所有的数据
DELETE FROM 表名 WHERE 条件;//删除满足条件数据eg:delete from stu;delete from stu where num = 1003;
  1. select 数据查询
语法:SELECT	列名1...FROM 表名;SELECT *FROM 表名;//查询整个表的数据SELECT *FROM 表名 where 条件;//查询整个表的数据eg:insert into stu1(stu_num,stu_name,age,,addr) select stu_num,stu_name,age,addr from stu;//从stu表中插入数据,然后插入到stu1表中
  1. 高级查询
模糊查询列名	like	通配符	(_%)_:	匹配单个字符&:匹配任意单个字符eg:select *from stu where name like 'wang_';select	*from stu where name like	'%wang%'
排序:按指定的列名进行排序order by 列名 asc/desc;//asc:升序	desc:降序eg:select *from stu order by age desc;//根据年龄降序排序限制记录条数limit 数字eg:select *from stu limit 2;//查看表中的前两条记录排序+限制eg:select *from stu order by age desc limit 1;//查看年龄最大的记录聚合函数cout(*)	//统计记录数量sum(列名)	//计算给定列的总和avg(列名)		//计算给定列的平均值min(列名)		//计算给定列的最小值max(列名)	//计算给定列*的最大值eg:select	cout(*)  from stu;select max(age)-min(age) from stu;别名eg:select num AS 学号,name AS	姓名 from stu;分组:group byeg:select age,cout(*) from stu group by age;//查询每个年龄的人数范围查询:between ... and ...eg:	select *from stu where age between 10 and 20;去重:distincteg:select distinct age from stu;子查询:in(值,...)in(select ...)eg:select *from stu where age in (18,20,25);select *from stu where age in (select age from stu where age < 30);		★★★★★★多表联接select	列名,...1,表2...where 条件select 列名,... form 表1	join2 on	联接条件  ... where	过滤条件;eg:学生表:	学号 	姓名 	年龄		班级		学校	...create table t_stu(num int primary key, name text,age int,class int school int);intsrt into t_stu values(1001,'wb1',18,100101,2001);insert into t_stu values(1002,'wb2',19,100101,2001);insert into t_stu values(1003.'wb3',20,100101,2002);学校表:编号		校名		电话		地址...create table t_school(num int primary key,name text, tel text,addr text);insert into t_school values(2001,'first',010-123456,'changsha');insert into t_school values(2002,'second',010-0101011,'shanghai');需求:查询学生的学号,姓名,学校名select  t_stu.num,t_stu.name,t_school,name from t_stu,t_school);===》学生表中的每一行都与学校表中的每一行进行联结,结果称之为 笛卡尔积此时,需要指明两个表联结条件,在上述表中,联结条件是 学校的编号相同两种联结写法:第一种: select t_stu,num, t_stu.name,t_school.name from t_stu,t_school where	t_stu.school = t_school.num;第二种:select t_stu.num,t_stu.name,t_school.name from t_stu join t_school on t_stu.school = t_school.num;select t_stu.num,t_stu.name,t_school.name from t_stu join t_school on t_stu.school = t_school.num where t_stu.num = 1002;

2.4 怎么使用jdbc连接sqlite

事先创建一个表

CREATE TABLE test(id int primary key,name varchar(20));

然后我们开始对sqlite进行基本的操作.
1.首先引入sqlite依赖
进入maven官网,导入依赖
https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc/3.42.0.0

<!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
<dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.42.0.0</version>
</dependency>

2.编写数据库连接代码

public class ConnectionTest {public static void main(String[] args) throws SQLException {
//        testInsert();testSelect();}private static void testSelect() throws SQLException {//1.创建数据源DataSource dataSource=new SQLiteDataSource();((SQLiteDataSource)dataSource).setUrl("jdbc:sqlite://d:/ITsoftware/sqlite-tools-win32-x86-3420000/test.db");//2.建立连接Connection connection= dataSource.getConnection();//3.构造SQL语句String sql="select * from test";//4.执行SQL语句PreparedStatement statement=connection.prepareStatement(sql);ResultSet resultSet=statement.executeQuery();//5.遍历结果集合while (resultSet.next()){int id=resultSet.getInt("id");String name=resultSet.getString("name");System.out.println("id "+id +" "+ name);}//6.释放资源statement.close();resultSet.close();connection.close();}private static void testInsert() throws SQLException {//1.创建数据源 DatasourceDataSource dataSource=new SQLiteDataSource();((SQLiteDataSource)dataSource).setUrl("jdbc:sqlite://d:/ITsoftware/sqlite-tools-win32-x86-3420000/test.db");//2.建立连接Connection connection=dataSource.getConnection();//3.构造Sql语句String sql ="insert into test values(?,?)";//4.执行Sql预期PreparedStatement statement=connection.prepareStatement(sql);statement.setInt(1,11);statement.setString(2,"李四");statement.executeUpdate();//5.释放资源statement.close();connection.close();}}

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

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

相关文章

【django开发手册】详解drf filter中DjangoFilterBackend,SearchFilter,OrderingFilter使用方式

&#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是Zeeland&#xff0c;开源建设者与全栈领域优质创作者。&#x1f4dd; CSDN主页&#xff1a;Zeeland&#x1f525;&#x1f4e3; 我的博客&#xff1a;Zeeland&#x1f4da; Github主页: Undertone0809 (Zeeland)&…

uniapp集成windicss的流程

一、背景介绍 Windicss是一个基于Tailwind CSS 灵感的库,它更快、更兼容,使用 TypeScript 构建。Windicss的目标是为了解决与Tailwind CSS 类似的问题,提供一个可以快速上手开发的组件库,让开发者不再需要繁琐地编写 CSS 样式。Windicss包含了几乎所有的 CSS 样式,因此开发…

大数据课程K20——Spark的SparkSql概述

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的SparkSQL由来; ⚪ 了解Spark的SparkSQL特点; ⚪ 了解Spark的SparkSQL优势; ⚪ 掌握Spark的SparkSQL入门; 一、SparkSQL概述 1. 概述 Spark为结构化数据处理引入了一个称…

Unity设置TextMeshPro文本超出范围显示...

TextMtshPro文本超出范围&#xff0c;展示省略。选择Overflow为Ellipsis。

高忆管理:总市值和流动市值区别?

总市值和活动市值是衡量一个公司或许财物商场价值的两个常用指标。总市值是指一个公司的悉数股票乘以当时股价的总值&#xff0c;而活动市值则是指一个公司的可自在买卖的股票乘以当时股价的总值。总市值和活动市值之间有着很大的不同&#xff0c;下面从多个角度进行分析。 首…

连接云-边-端,构建火山引擎边缘云网技术体系

近日&#xff0c;火山引擎边缘云网络产品研发负责人韩伟在LiveVideoStack Con 2023上海站围绕边缘云海量分布式节点和上百T的网络规模&#xff0c;结合边缘云快速发展期间遇到的各种问题和挑战&#xff0c;分享了火山引擎边缘云网的全球基础设施&#xff0c;融合开放的云网技术…

spacy安装旧版本en_core_web_sm的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

sql:SQL优化知识点记录(十)

&#xff08;1&#xff09;慢查询日志 Group by的优化跟Order by趋同&#xff0c;只是多了一个having 开启慢查询日志&#xff1a; 演示一下慢sql&#xff1a;4秒之后才会出结果 查看一下&#xff1a;下方显示慢查询的sql &#xff08;2&#xff09;批量插入数据脚本 函数和存…

开源风雷CFD软件多物理场耦合接口开发路线分享!!!

本文将基于开发过程中积累的经验&#xff0c;介绍风雷如何基于preCICE开发适配器。 preCICE是一个开源的多物理场数值模拟耦合库&#xff0c;可以用于多个求解器联合求解一个复杂的多场问题&#xff0c;支持在大规模并行系统上应用&#xff0c;具有良好的并行效率。并且可以对…

使用VisualStudio制作上位机(六)

文章目录 使用VisualStudio制作上位机&#xff08;六&#xff09;第五部分&#xff1a;应用程序打包第一步&#xff1a;勾选为Release模式第二步&#xff1a;生成解决方案第三步&#xff1a;将我们额外添加的文件放入到Release这个文件夹里 使用VisualStudio制作上位机&#xf…

SpringBoot原理

SpringBoot原理篇&#xff0c;主要偏向于底层原理。 包括这么三个部分&#xff1a; 配置优先级&#xff1a;SpringBoot项目当中属性配置的常见方式以及不同配置的优先级 Spring IOC容器中Bean的管理 剖析SpringBoot的底层原理 1. 配置的优先级 如果我们通过多种方式配置…

QProcess 调用 ffmpeg来处理音频

项目场景&#xff1a; 在文章 qt 实现音视频的分贝检测系统中&#xff0c;实现的是边播放变解析音频数据来统计音频的分贝大小&#xff0c;并不满足实际项目的需求&#xff0c;有的视频声音正常&#xff0c;有的视频声音就偏低&#xff0c;即使放到最大音量声音也是比较小&…