day40——数据库 sqlite3

1 安装sqlite3数据库以及sqlite3函数库

复制代码
1:sudo apt install sqlite3 //安装数据库

2:sudo apt install libsqlite3-dev // 安装数据库的函数库

2 什么是数据库

一种存放数据的文件,但是该文件拥有特殊的结构

第一层结构:数据库本身

第二层结构体:数据库中存放了若干张表单

每一张表单的字段构成各不相同

第三层结构:一张表单中,所有字段都能存放信息

一组字段中的所有数据,就是一条记录

最终,很多很多条件,格式不同的记录,组成了一个完整的数据库

3 常用数据库类型

① sqlite3:一个允许部署在本地的轻量级数据库

特别适合用于嵌入式开发

② mysql:是一个部署在服务端的,需要网络连接的数据。

如果一定要部署在本地的话,也是需要安装一个mysql服务器的

适合一些应用层程序开发

4 如何操作sqlite3数据库

4.1 打开数据库

输入指令:sqlite3 数据库名.db,出现以下画面就OK了

4.2 sqlite3数据库中的指令规则

1:显示指令

必须以 . 开头,回车确认输入

.table :查看当前数据库中所有表单的名字

.schema 表单名: 查看当前数据库中指定的表单中字段的结构

如果没有写表单名,则表示查看所有表单的字段结构

.head(er) on 在查看数据的时候,打开抬头

.mode column 以字段对齐的形式显示数据

2:操作指令

必须以 ;结尾,然后再键入回车,如果没有 ; 的话,sqlite3不会认定这条指令结束了

如果忘记敲 ; 了,换一行再补一个 ; 也是没有问题的

3:数据库中的指令 大小写无所谓

4.3 创建表单

复制代码
create table 表单名(

    字段名1	数据类型		约束类型		, 

    ......								,

    字段名n	数据类型		约束类型		

);

字段名:变量名

数据类型:

整形 INTERGER

浮点型 REAL

字符串 TEXT

约束类型:什么是约束?

在添加数据的时候,必要的为这些数据添加一些取值范围,保证这些数据不会过于离谱,添加取值范围这个事,就是依赖约束实现的

① 主键约束 :primary key

什么是键:用于比较大小,从而确定数据存放位置的关键数据。这个数据不能重复,不能修改

被主键约束的字段,成为了表单中的 "键",剩下的都是 "值"

被主键约束的字段,还有一个修饰词: auto increment

功能为:在添加新记录的时候,如果被 auto increment 所修饰的字段,没有填充数据的话,则数据库会根据最近一次填充的数据,自增1后,为当前数据填充

② 默认约束: default 默认值

在添加新纪录的时候,如果没有为拥有默认约束的字段,填充数据的话,数据库会选用默认值填充

③ 非空约束:not null

在添加新记录的时候,如果没有为 非空约束 所修饰的字段,填充数据的话,则本次记录添加失败

④ 检查约束:check(检查条件)

在添加记录的时候,会检查被检查约束的字段所填充的数据,是否满足"检查条件",如果不满足则添加失败

例如:为 字段"成绩" 添加检查约束,约束条件为成绩的取值范围在 0~150分之间

check(成绩>=0 AND 成绩<=150)

再例如:为字段"性别"添加检查约束,要求性别只能是 "男" 或者 "女"

check(性别="男" OR 性别="女")

练习

Plain Text

自动换行

复制代码
在数据库中创建如下表单

姓名 字符串类型 要求非空

学号 整形,要求主键自增

成绩 整形,要求0~150

性别  字符串类型,要求只能是男或者女,并且默认男

4.4 向表单中添加数据

复制代码
insert into 表单名(字段1,字段2,....,字段n) values(数据1,数据2,...,数据 n)

    为表单中添加一条新的记录,但是只填充 字段1 ~ 字段n 这几个字段的数据

    如果有任何字段对应的数据,违反了约束,则添加失败

4.5 查看表单中数据

复制代码
select 字段1,字段2,...,字段n from 表单名

    查看指定表单中的指定字段的所有数据

select * from 表单名

    查看指定表单中的所有字段的所有数据

insert 指令和 select 指令可以配合使用

复制代码
insert into 表单1(字段1,字段2,....,字段n) select 字段1,字段2,...,字段n from 表单2

    先查询出表单2中的所有指定字段的数据,再将这些数据,对应的添加到表单1中的每一个字段中去

4.6 查看某个特定的数据

复制代码
where子句:

    只要有任何附加的查询条件的时候,在英语语法应该写条件的地方写上 where 条件
复制代码
 
复制代码
    比如说,想要查看 姓名为"张三"的所有信息

select * from stu where 姓名="张三"

4.7 修改表单中指定数据

复制代码
update 表单名 set 字段名=新数据 where条件定位

    例如:将姓名为"张三"的成绩,改成50分

update stu set 成绩=50 where 姓名="张三"

4.8 删除表单中的指定数据

复制代码
delete from 表单名 where 条件定位

千万小心:如果不写 where 条件定位的话,会将表单中所有数据全都删除

一般来说,为了防止数据的误删,基本上不用delete指令

一般会在表单中添加一个字段叫做 "delete" ,他的值只有0或者非0

查询的时候,只要在最后加上 where delete=0,这样一来 delete=1也就是所谓的被删除的数据,就查不出来了
相关推荐
zandy10113 小时前
多租户SaaS架构下的BI数据隔离与权限治理体系
数据库·架构·数据加密
多巴胺梦想家3 小时前
NoSQL 数据库:不只是关系型
数据库·nosql
数字孪生家族4 小时前
3DGS 数据编辑单体化技术:将高斯重建转化为结构化数字空间资产
数据库·3d·高斯泼溅·空间智能应用
广州灵眸科技有限公司4 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) 系统操作-线进程操作
数据库·单片机·嵌入式硬件·算法·php
石一峰6995 小时前
驱动:私有数据为什么要在三个地方各挂一遍?
数据库·python·算法
ClouGence6 小时前
跨云、跨地域数据同步,这样更省心
数据库·sql·saas
TDengine (老段)6 小时前
TDengine 函数完整参考 — 聚合、时序、字符串、时间、数学
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
TDengine (老段)7 小时前
昆仑数智选择 TDengine TSDB,提升页岩气生产运行可视化与精细化管理能力
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
陆水A7 小时前
【问数系统】SQL跑对了图表却空了?打通问数系统最后1公里的3个API坑
大数据·数据库·自然语言处理·big data·etl工程师
海外数字观察家8 小时前
品未云:泰国华商批发零售一体化 ERP,破解本土软件适配难题|CSDN 技术分享
网络·数据库·人工智能