SQLite数据库简单小入门学习(一)

news2024/12/23 0:46:12

目录

  • 一、认识数据库
    • (一)数据库简介
    • (二)数据库类型
  • 二、SQLite数据库
    • (一)SQLite简介
    • (二)学习所需工具
      • (1)scott.db
      • (2)SQLiteSpy.exe
    • (三)SQL语言
      • SQL语言分类
      • 1.简单查询
      • 2.限定查询
        • (1)关系运算
        • (2)取值范围运算
        • (3)基数范围运算
        • (4)模糊查询
        • (5)空判断
        • (6)逻辑运算

一、认识数据库

(一)数据库简介

简单来说数据库是用于持久化存储数据的软件,数据库本质上是把程序中的数据保存到计算机硬盘中,在需要的时候可以对数据进行增、删、修、查。

(二)数据库类型

数据库产品非常多,常见的有两类:

  • 关系型数据库:行与列的格式,例如Excel表格的形式。常见的是SQLite、MySQL、SQLServer、Oracle、DB2…
  • 非关系型数据库:使用JSON格式。常见的有MongoDB。

二、SQLite数据库

(一)SQLite简介

SQLite是一种轻量级的关系型数据库,本体只有几兆大小。SQLite常见的数据操作都有,但是由于本体较小,相比其它数据库:

  • 语法结构不严格
  • 在很多系统或软件框架中自带
  • 主要进行本体数据库存储和管理,不太擅长高并发的服务器系统

(二)学习所需工具

链接:https://pan.baidu.com/s/15bOv56PzRBMf978cCdw__Q?pwd=1luw
提取码:1luw

(1)scott.db

.db或.db3格式是SQLite数据库的格式,scott.db内部存储的是本次的学习数据。
在这里插入图片描述
scott.db中用到的表的关键信息:
请添加图片描述
请添加图片描述
请添加图片描述

(2)SQLiteSpy.exe

在这里插入图片描述

这是一个免安装直接打开就能使用的SQLite操作软件,内置了SQLite数据库。

使用SQLiteSpy打开学习数据的操作步骤如下:

  1. 双击打开SQLiteSpy软件
  2. 在软件中点击File,点击Open Database
  3. 在弹出的窗口中选中scott.db就可也以打开学习数据了
    在SQLite中,.db文件是数据库文件,这个文件可以认为等效于.xlsx表格文件。

在Excel中,点击下方的标签,切换一个又一个的表(Sheet),在数据库中使用表(Table)来表示相同含义。

(三)SQL语言

为了统一不同的数据库产品的操作方式,IBM公司在上世纪70年代发明了SQL语言,SQL语言已经成为关系型数据库的通用操作语言。

SQL语言分类

SQL语言可以分为三类:
(1) 数据操作语言 DML
  ①数据查询语言 DQL
    通过各种条件的限制,筛选和整理出需要数据。
  ②更新操作
    包括对数据的增删改,网络编程与Qt等课程中学习。
(2) 数据定义语言 DDL
  定义数据库格式,常见于设计数据库表,一般由软件架构师负责。
(3)数据控制语言 DCL
  用于操作数据库账户的控制权限,一般由数据库管理员负责。

1.简单查询

简单查询的结果包含所有的行(记录),依次展示每条数据,但是可以控制显示哪些列(字段)。
请添加图片描述

[]表示可选填内容 |表示或者
*表示全查 DISTINCT表示去掉重复行

例1:查询emp表中的所有内容,相当于在SQLiteSpy中双击表名。

SELECT * FROM emp;

在SQLiteSpy中填写上述语句,点击键盘F9或依次鼠标点击Execute→Execute SQL

例2:查询所有雇员的编号(empno)、姓名(ename)、职位(job)、基本工资(sal)。

SELECT empno,ename,job,sal
FROM emp;

例3:查询每个雇员的编号、姓名和基本年薪(基本工资x12)

SELECT empno,ename,sal*12 FROM emp;

也可以给每个列起别名

SELECT empno,ename,sal*12 年薪 FROM emp;

给列起别名(特别是中文别名)后期用的不算多,也不建议使用中文。

练:查询每个雇员的编号、姓名、职位、年薪,每个月有200元的餐补,有200元的交通补助,夏天每个月有300元的高温补贴,年底奖金3个月
薪资。

SELECT empno,ename,job,sal*15+12*(200+200)+3*300 income 
FROM emp;

例4:查询公司的职位有哪些?

SELECT job FROM emp;

优化👇:

-- 增加DISTINCT关键字可以消除重复项
SELECT DISTINCT job FROM emp;
-- 需要注意的是,重复项指的是每一列的数据都相同。

2.限定查询

在简单查询的基础上限制结果的行数,就是限定查询。
限定查询主要通过WHERE子句完成,支持六种运算:
关系运算、取值范围运算、基数范围运算、模糊查询、空判断、逻辑运算

(1)关系运算

关系运算是最简单的运算符号,包括:

符号意思
>大于
>=大于等于
<=小于等于
!=或<>不等于
==或=等于

例1:查询薪金在2000以上的雇员信息。

SELECT * FROM emp WHERE sal>2000;

练1:查询基本工资小于1600的雇员信息。

SELECT *
FROM emp
WHERE sal<1600;

练2:查询姓名是SMITH的雇员信息。

SELECT * FROM emp WHERE ename='SMITH';

练3:查询职位不是销售的雇员信息。

SELECT *
FROM emp
WHERE job!="SALESMAN";

(2)取值范围运算

使用BETWEEN a AND b表示一个[a,b]的闭区间。

例1:查询工资在1000-2000区间的雇员信息。

SELECT *
FROM emp
WHERE sal BETWEEN 1000 AND 2000;

例2:查询在1981年雇佣的雇员信息。
分析:雇佣日期在1981年1月1日到1981年12月31日。
时间和日期一定要按照标准格式的字符串编写。

SELECT *
FROM emp
WHERE hiredate BETWEEN '1981-01-01' AND '1981-12-31';

练1:查询员工编号在7500-7800之间的雇员信息。

SELECT *
FROM emp
WHERE empno BETWEEN 7500 AND 7800;

(3)基数范围运算

数据在几个可选的选项中存在,使用IN操作完成。

例1:查询出雇员编号为7369、7566、7839和8899(不存在)的雇员。

SELECT *
FROM emp
WHERE empno IN (7369,7566,7839,8899);

例2:查询出雇员编号不为7369、7566、7839和8899(不存在)的雇员。

-- NOT是取反
SELECT *
FROM emp
WHERE empno NOT IN (7369,7566,7839,8899);

练1:查询出公司的柜员(CLERK)和销售(SALESMAN)的信息。

SELECT * FROM emp WHERE job IN ('CLERK','SALESMAN');

🚨IN不能与NULL一起使用,一起使用没有任何效果。

(4)模糊查询

模糊查询可以只通过部分内容查询所完成的数据,使用LIKE配合两个标记符:

符号含义
_匹配任意一个字符
%匹配任意多个(0,1,…,n)字符
_匹配任意一个字符
%匹配任意多个(0,1,…,n)字符

例1:查询所有姓名以字母A开头的雇员信息。

SELECT *
FROM emp
WHERE ename LIKE 'A%';

练习:
① 查询姓名第二个字母是A的雇员信息。

SELECT * FROM emp WHERE ename LIKE "_A%";

②查询姓名中包含字母A的雇员信息。

SELECT * FROM emp WHERE ename LIKE "%A%";

(5)空判断

NULL是一种特殊的数据状态,表示无内容。

例1:查询不领取佣金的雇员信息。

-- 错误的写法:NULL不能使用关系运算符判断❌
SELECT *
FROM emp
WHERE comm=NULL;

使用IS NULL来判断一个数据是否为空。
使用IS NOT NULL或者NOT IS NULL判断非空。

-- 上面的例子的正确写法✅
SELECT *
FROM emp
WHERE comm IS NULL;

例2:查询领取佣金的雇员信息。

SELECT *
FROM emp
WHERE comm IS NOT NULL;

SELECT *
FROM emp
WHERE NOT comm IS NULL;

(6)逻辑运算

符号含义
AND所有条件都满足,结果才满足
OR所有的条件满足一个,结果就满足
NOT反转结果

例1:查询出工资高于1300的销售人员信息。
分析:要同时满足两个筛选条件 sal>1300 job=‘SALESMAN’

SELECT *
FROM emp
WHERE sal>1300 AND job='SALESMAN';

例2:查询出公司的柜员(CLERK)和销售(SALESMAN)的信息。

SELECT *
FROM emp
WHERE job='CLERK' OR job='SALESMAN';

练:
(1)查询出工资范围不在1200-1300区间的雇员信息。

SELECT *
FROM emp
WHERE sal NOT BETWEEN 1200 AND 1300;

(2)查询出10部门的经理信息。

SELECT *
FROM emp
WHERE job='MANAGER' AND deptno=10;

(3)查询出工资高于3000或者职位是柜员的雇员信息。

SELECT * FROM emp WHERE sal>3000 OR job=='CLARK';

(4)查询出所有职位不是柜员的雇员信息。

SELECT * 
FROM emp 
WHERE NOT job='CLERK';

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

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

相关文章

【分布式理论】聊一下 ACID、BASE、CAP、FLP

分布式理论基础 今天我们来聊一下分布式相关基础理论基础&#xff0c;上一篇文章中&#xff0c;我描述了一下分布式系统的纲&#xff0c;但是想要入手学习分布式系统设计&#xff0c;其实需要先从基本理论开始。而知名的ACID、BASE、CAP、FLP都是相关的理论基础。 ACID ACID…

STM32平衡小车 TB6612电机驱动学习

TB6612FNG简介 单片机引脚的电流一般只有几十个毫安&#xff0c;无法驱动电机&#xff0c;因此一般是通过单片机控制电机驱动芯片进而控制电机。TB6612是比较常用的电机驱动芯片之一。 TB6612FNG可以同时控制两个电机&#xff0c;工作电流1.2A&#xff0c;最大电流3.2A。 VM电…

C++ [STL-简介]

本文已收录至《C语言和高级数据结构》专栏&#xff01; 作者&#xff1a;ARMCSKGT ​​​​​​​​ 文章目录 前言正文简介关于STL各种版本 STL组件容器迭代器配接器(适配器)算法仿函数空间配置器 STL的重要性学习STL的意义如何学习STL STL的缺陷 最后 前言 STL(standard tem…

Django+Vue的一个用户数据分析展示

文章目录 Git地址、项目所需文件总体效果展示一、项目环境所需二、Django代码解析2.1、执行文件2.2、注册app01 Git地址、项目所需文件 SQL数据文件和用户需求文件 提取码 1111 Git克隆地址 zip下载 其中第一个连接是数据文件&#xff0c;后两个连接选一个即可 总体效果展示 …

从idea向GitLab上传代码图文详解

这里写目录标题 一 新建一个idea工程二 点击左下角Version Control三 上传到GitLab四 给IDEA发链接五 回gitlab上校验六 去gitlab上把代码拖回来 在安装完gitlab插件&#xff0c;辛苦的配置完gitlab环境后&#xff0c;向gitlab中提交代码变成了首要任务 一 新建一个idea工程 二…

非常量引用只能绑定到左值

问题分析 代码情况&#xff1a; // ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include <vector> using namespace std; vector<int> fun1() {vector<int> ver1;for (int i…

HCIP之路---vlan实验

1、pc2/4/5/6同一网段&#xff0c;pc1/3与2/4/5/6不在同一网段 设置1/3 --- 192.168.1.0/24 2/4/5/6 --- 192.168.2.0/24 sw1上配置 [SW1-GigabitEthernet0/0/3]dis this # interface GigabitEthernet0/0/3 port link-type access port default vlan 2 # return [SW1-Giga…

C++类的模拟实现

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容讲解了简单模拟实现string类 C类的模拟实现 文章目录 C类的…

Progress ThemeBuilder crack

Progress ThemeBuilder crack 自定义输入将覆盖自定义日期输入和下拉列表。 Fluent主题中的图表不应用系列颜色。 撤消重做操作会导致重复以前编辑过的变量。 拆分器折叠的拆分条模板错误。 ThemeBuilder是一个多功能工具&#xff0c;可以帮助您创建视觉样式&#xff0c;并将其…

数据分析入门之:如何快速安装使用Jupyter Notebook?

人生苦短&#xff0c;我用python 今天来给大家介绍一下关于Jupyter Notebook的用法 关于它的组成部分就先不在这里详细解说啦~ 毕竟我可太懂你们啦~ 文章太长就会吃灰的~ python 安装包资料:点击此处跳转文末名片获取 一、什么是Jupyter Notebook&#xff1f; 1. 简介 Jupy…

Atom 1.13版本带来的哪些改变?

Atom是GitHub基于Electron的开源文本编辑器&#xff0c;它的1.13版本 为用户和开发人员增加了许多新的特性和改进&#xff0c;包括一个基准工具&#xff0c;一个“重新打开项目”菜单选项和API&#xff0c;以及一个自定义按钮解析器&#xff0c;它可以把Chrome键盘事件映射为At…

PTA L1-092 进化论 (10 分)

在“一年一度喜剧大赛”上有一部作品《进化论》&#xff0c;讲的是动物园两只猩猩进化的故事。猩猩吕严说自己已经进化了 9 年了&#xff0c;因为“三年又三年”。猩猩土豆指出“三年又三年是六年呐”…… 本题给定两个数字&#xff0c;以及用这两个数字计算的结果&#xff0c;…

【c语言】函数的基本概念 | 函数堆栈调用原理

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ…

【通知】CSDN学院:<华为流程体系课程> 正式上线啦!

目录 前言 适用人群 你将收获 课程介绍 前言 经过两个月的准备和短视频测试&#xff0c;这门介绍华为流程体系的课程就正式上线了。 虽然由于公开的原因&#xff0c;华为的发展受到了一定程度的影响&#xff0c;但是丝毫不妨碍企业、以及一些个人对学习华为的热情。 原因…

Java内存模型详解

Java内存模型 Java内存模型(Java Memory Model)是Java虚拟机规范定义的&#xff0c;用于屏蔽因不同程序/硬件/操作系统上内存访问的差异&#xff0c;确保程序运行与设计一致&#xff0c;Java内存模型定义了Java虚拟机在计算机内存中的工作方式&#xff0c;确定了在共享内存系统…

通过SSH实现Linux与Windows之间的文件互传

目录 一 序言 二 准备工作 三 Windows端操作命令&#xff0c;实现文件互传 四 Linux端操作命令&#xff0c;实现文件互传 五 总结 一 序言 Linux和Linux以及Windows和Windows之间的文件共享互传&#xff0c;大家应该接触的都比较多&#xff0c;无非就是两种方式&#xff…

【C++类和对象】类和对象(上) {初识面向对象,类的引入,类的定义,类的访问限定符,封装,类的作用域,类的实例化,类对象模型,this指针}

一、面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&#xff0c;将一件事情拆分成不同的对象&#xff0c;靠对象之间的交互完成。…

1.2和1.3、GCC

1.2和1.3、GCC 1.2和1.3、GCC1.2.1、什么是GCC1.2.2、编程语言的发展1.2.3、GCC工作流程1.2.4、gcc和g的区别1.2.5、GCC常用参数选项实际操作①接下来进行预处理操作&#xff08;test.c为需要预处理的源代码&#xff0c;test.i为要生成的目标代码&#xff09;②汇编操作&#x…

iOS--SDWebImage源码

文章目录 前言它提供了UIImageView的一个分类&#xff0c;支持从网路上下载且缓存图片&#xff0c;并设置图片到对应的UIImageView控件或者UIButton控件。 SDWebImage简介官方图解主序列图&#xff08;Main Sequence Disagram&#xff09;顶层API图&#xff08;Top Level API D…

XLA IR:HLO、LHLO、MHLO和LMHLO

XLA IR&#xff1a;HLO、LHLO、MHLO和LMHLO HLOLHLOMHLOLMHLOXLA IR 总结HLO->LMHLO xla基本编译流程如下&#xff1a; HLO Optimization: 硬件无关优化和硬件相关优化LHLO Codegen: 算子向量化和llvmir的生成HLO&LHLO是XLA-HLO&#xff1b;MHLO&LMHLO是MLIR-HLO&…