day40——数据库 sqlite3

news2025/1/13 13:20:24

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也就是所谓的被删除的数据,就查不出来了

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

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

相关文章

存储数据(常量)

常量&#xff1a;用来存储数据&#xff08;不可变&#xff09; 常量不能修改 //常量 const PI:number 3.14 const Name: string "啦啦啦" console.log(名字,Name) console.log(π等于,PI)前面带 后面不带&#xff0c;不然就是打印字符串了

PHPShort轻量级网址缩短程序源码开心版,内含汉化包

需要网址缩短并且想获得更多有关链接点击率和流量的数据分析&#xff0c;那么 PHPShort 可能是一个非常好的选择。PHPShort 是一款高级的 URL 缩短器平台&#xff0c;可以帮助你轻松地缩短链接&#xff0c;并根据受众群体的位置或平台来定位受众。 该程序基于 Laravel 框架编写…

算法——不得不磕!

OK,首先一个小问题——你知道国际大厂通用的筛人方法是什么吗&#xff1f;...... 只有两个&#xff1a; ①算法 Algorithm ②系统设计 SystemDesign 如果你在美国、加拿大&#xff0c;是应届生想找份工作&#xff0c;那么你其它什么都不用考&#xff0c;单单只考算法就够了。至…

科研绘图系列:Python语言时间趋势图

介绍 不同指标在时间上的变化,可以用时间序列线图表示趋势。 加载Python包 import sys import pandas as pd import numpy as np import scipy as sp from scipy import stats import randomimport seaborn as sns import matplotlib.pyplot as plt from matplotl

JavaScript(30)——解构

数组解构 数组解构是将数组的单元值快速批量赋值给一系列变量的简洁语法 基本语法&#xff1a; 赋值运算符左侧的[]用于批量声明变量&#xff0c;右侧数组的单元值将被赋值给左侧变量变量的顺序对应数组单元值的位置依次进行赋值操作 const arr [1, 2, 3, 4, 5]const [a, b…

教育部-华为产学合作协同育人项目 | 仓颉编程语言专项

为响应《教育部高等教育司关于调整产学合作协同育人项目运行模式及征集2024年产学合作协同育人项目的通知》号召&#xff0c;华为公司2024年第二批70个项目已发布&#xff0c;其中仓颉编程语言领域共计10个项目&#xff0c;如下所示&#xff0c;通过新工科建设项目&#xff0c;…

Apache CloudStack Official Document 翻译节选(六)

关于 Apache CloudStack 的 概念和专用术语 &#xff08;六&#xff09; Multi-Site Deployment Apache CloudStack可以通过使用多个专职地带&#xff08;即多数据中心&#xff09;扩展为多局点模式。下面的示意图就是一个多局点部署Apache CloudStack的示例。 下图中的数据中…

Linux 软件编程多路复用tcp

1.select的缺点&#xff1a; 1.select监听的文件描述符集合是一个数组&#xff0c;有上限&#xff08;1024个&#xff09; 2.select监听的文件描述符集合在应用层&#xff0c;内核层监听事件后需要传递给用户层带来资源开销 3.select需要用户手动查找产生事件的文件…

Vim youcompleteme Windows 安装保姆级教程

不说废话。 准备 检查 Vim 的 Python 配置 安装好 vim 和 python 后&#xff08;python 必须 ≥ \ge ≥ 3.6&#xff09;&#xff0c;在 cmd 下运行 vim --version会弹出以下窗口。 如果发现 python/dyn 和 python3/dyn 都是 - &#xff08;我不知道只有前者是 能不能运行…

解决nvm切换node版本不成功的问题(包含全网最正确最齐全的nvm安装配置,全网最细最有用的一篇)

废话前言&#xff1a; 因为现在已经接近实习尾声&#xff0c;我已经没有什么事可干了&#xff0c;于是我就从java后端和python转回前端&#xff0c;开始准备写写前端项目 但是当我重新打开那尘封已久的后端项目的时候&#xff0c;有些是之前GitHub拉去下来的vue项目&#xff0…

【I/O多路复用】

基于I/O多路复用的并发编程 I/O实现I/O多路复用select优缺点 pollepoll优点 I/O I/O复用是基于一个单进程或单线程的一个执行流当中监控多个输入输出流的技术&#xff08;网络套接字或者文件描述符进行监控&#xff09;。单进程或单线程&#xff0c;允许多个用户对单进程发起连…

virtualbox从u盘启动

1.添加到vboxusers用户组 sudo usermod -G vboxusers -a whoami 2.为u盘设备添加访问权限&#xff0c;注意替换对应的设备文件&#xff0c;我这里是/dev/sdf sudo chmod orw /dev/sdf 3.为u盘创建一个虚拟的硬盘镜像 sudo VBoxManage internalcommands createrawvmdk -fi…

Unity Protobuf3 GC 问题(反序列化)

背景&#xff1a;Unity接入的是 Google Protobuf 3.21.12 版本&#xff0c;排查下来反序列化过程中的一些GC点&#xff0c;处理了几个严重的&#xff0c;网上也有一些分析&#xff0c;这里就不一一展开&#xff0c;默认读者已经略知一二了。 如果下面有任何问题请评论区留言提…

Java开发笔记-mysql语句查询指定索引

今天同事遇到一个奇怪的sql查询的问题&#xff1a;一条sql有时候执行素的很快(0.xxs)&#xff0c;有时候执行很慢(20s)&#xff0c;不知道是什么问题. 猜测&#xff1a;1、是不是第一次执行&#xff0c;被mysql缓存了&#xff1f;后面几次直接拿缓存的结果。 2、是不是网络的原…

入门redis

一、安装redis-py库 打开pycharm 在终端中输入 pip install redis 二、连接到redis服务器 import redis r redis.Redis(hostlocalhost, port6379, db0, decode_responsesTrue)host是 Redis 服务器的主机名或 IP 地址&#xff0c;port是端口号&#xff0c;db是要使用的数据库编…

指纹浏览器VS虚拟机,在跨境电商中用哪个更好?

在当今的数字世界中&#xff0c;隐私和安全变得越来越重要。尤其是跨境电商卖家来说&#xff0c;经常需要网络上执行环境独立的操作&#xff0c;例如账号运营、在线购物、网上银行、社交媒体管理等。 为了保护账号隐私与做好账号防关联隔离&#xff0c;人们经常寻求指纹浏览器…

Windows-Server-2016/2019绕过WindowsDefender

当获得了一个webshell的时候&#xff0c;下一步要反弹个shell回来 在尝试了https://github.com/trustedsec/unicorn独角兽失败之后&#xff0c;找到了一篇使用golang将shellcode注入到内存的文章 Bypassing Antivirus with Golang - Gopher it! | JUMPSEC LABS GitHub - brimst…

9.Java基础概念-面向对象

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 Facts speak louder than words&#xff01; 类和对象 类&#xff…

mmyolo训练模型报错:ValueError: Key img_path is not in available keys解决办法

使用mmyolo训练模型 的时候报错&#xff1a;ValueError: Key img_path is not in available keys. Traceback (most recent call last): File “tools/train.py”, line 123, in main() File “tools/train.py”, line 119, in main runner.train() File “/root/anaconda3/en…

基于Ubuntu22.04 安装SSH服务

安全外壳协议&#xff08;Secure Shell&#xff0c;简称 SSH&#xff09;是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。 SSH 由 IETF 的网络小组&#xff08;Network Working Group&#xff09;所制定&#xff0c;SSH 为建立在应用层基础上的安全协议。SSH…