Sqilte3初步教程

文章目录

安装

Windows下安装,首先到下载页面,下载Windows安装软件,一般是

复制代码
sqlite-dll-win32-*.zip
sqlite-tools-win32-*.zip

下载之后将其内容解压到同一个文件夹下,我把它们都放在了D:\CS\sqlite目录下,然后将这个目录添加到环境变量,就可以在命令行中调用了

sql 复制代码
>sqlite3
SQLite version 3.39.3 2022-09-05 11:02:23
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>

正如进入sqlite后所提示的,可以通过.help来获取帮助信息,这些以点开头且不需要分号结尾的命令严格来说不属于数据库语言,而是提供一种命令行交互。最常用的应该是.exit或者.quit,用于退出,后面如果用到,会陆续介绍其他点命令。

除了点指令之外,sqlite中其他命令均不区分大小写,同时必须以分号结尾,如果不输入分号,命令行会以为指令没写完。

创建数据库

sqlite所谓数据库,其实是以文件的形式存储的,若想新创建一个数据库,只需在命令行中输入sqlite3 xx.db,这样就相当于创建了一个新的db文件,并且进入命令行后,进行的一切操作,也都是基于这个文件的。

sql 复制代码
>sqlite3 test.db
SQLite version 3.39.3 2022-09-05 11:02:23
Enter ".help" for usage hints.
sqlite>

后续如不加说明,所有操作均在sqlite命令行中进行。

.databases命令可以列出数据库的名称、所在文件以及读写权限

sql 复制代码
sqlite> .databases
main: C:\Users\Laser\Documents\00\0816\test.db r/w

创建和删除表

数据库由表构成,创建和删除表也自然是sqlite中的基本操作。在sqlite中创建一个表的基本指令是CREATE TABLE,下面就创建一个表

sql 复制代码
sqlite> create table blogs(
   ...> ID   int  primary key not null,
   ...> name text             not null,
   ...> view int              not null,
   ...> like int);
sqlite>

这是个blogs表,共有4列,分别是id, name, view和like,其中id是主键。id, name和view都不允许为空,因为一个博客必须有id、标题,但可能不一定有点赞,所以没有这个标志。

点指令.tables可以查看当前所有表

sql 复制代码
sqlite> .tables
blogs

通过DROP TABLE指令可以删除表,删除之后再用.tables指令,结果什么都没有返回,说明的确删除了。

sql 复制代码
sqlite> drop table blogs;
sqlite> .tables

插入行数据

表格由行和列组成,一个表被创建后,表中每一列的属性就基本确定下来了,而若想添加行,则需要用到INSERT INTO命令。

由于刚刚的blogs被删除了,所以重新建一个,并演示insert into功能

sql 复制代码
sqlite> create table blogs(
   ...> id int primary key not null,
   ...> name text not null,
   ...> view int,
   ...> like int);
sqlite> insert into blogs(id, name, view, like)
   ...> values(1, 'sqlite教程', 1, 0);

首先,第一行表示在blogs中插入一行,数据依次是id, name, view, like;而第二行是输入的具体的值,即id是1,名字是sqlite教程,阅读量1,点赞数0。

由于插入的这行数据和每列的名称是一一对应的,所以可以有相对简便的写法

sql 复制代码
sqlite> insert into blogs values(2, 'sqlite进阶', 2, 0);

通过SELECT指令,查询表中的数据,当查询内容为*时,可以返回表中所有的数据

sql 复制代码
sqlite> select * from blogs;
1|sqlite教程|1|0
2|sqlite进阶|2|0
相关推荐
蓝胖子酱1 小时前
在 Electron 中用 electron-store 实现加密存储与自定义格式文件
前端·javascript·数据库
snow@li2 小时前
Redis:数据库语法速查表 / 全景梳理
数据库·redis·缓存
Devlive 开源社区2 小时前
Nebula 1.6.0 发布:跨区域桶自动路由、秒传、文本/PDF 预览一次到位
数据库·sql
这个DBA有点耶2 小时前
导个数据中文全变问号?字符集这事儿真没那么简单
数据库·mysql·代码规范
wuqingshun3141593 小时前
MYSQL中如果发生死锁应该如何解决?
数据库·mysql
DO_Community3 小时前
Weaviate 托管数据库现已在 DigitalOcean 上开放公测
数据库·人工智能·开源·向量数据库·weaviate
报错小能手3 小时前
索引常见面试题
数据库
Database_Cool_3 小时前
时序数据库选型:阿里云 Lindorm 时序引擎 vs InfluxDB 全维度对比
数据库·阿里云·时序数据库
其实防守也摸鱼3 小时前
渗透--损坏的对象级别鉴权漏洞(Broken Object Level Authorization, BOLA)
大数据·网络·数据库·学习·tcp/ip·安全·安全威胁分析
hehelm4 小时前
IO 多路复用 — Reactor
linux·服务器·网络·数据库·c++