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也就是所谓的被删除的数据,就查不出来了
相关推荐
中草药z30 分钟前
【Spring】深入解析 Spring 原理:Bean 的多方面剖析(源码阅读)
java·数据库·spring boot·spring·bean·源码阅读
地球资源数据云32 分钟前
全国30米分辨率逐年植被覆盖度(FVC)数据集
大数据·运维·服务器·数据库·均值算法
Ahern_1 小时前
Oracle 普通表至分区表的分区交换
大数据·数据库·sql·oracle
夜半被帅醒1 小时前
MySQL 数据库优化详解【Java数据库调优】
java·数据库·mysql
不爱学习的啊Biao2 小时前
【13】MySQL如何选择合适的索引?
android·数据库·mysql
破 风2 小时前
SpringBoot 集成 MongoDB
数据库·mongodb
Rverdoser2 小时前
MySQL-MVCC(多版本并发控制)
数据库·mysql
m0_748233642 小时前
SQL数组常用函数记录(Map篇)
java·数据库·sql
dowhileprogramming2 小时前
Python 中的迭代器
linux·数据库·python
0zxm3 小时前
08 Django - Django媒体文件&静态文件&文件上传
数据库·后端·python·django·sqlite