sqlite3 关系型数据库语言 SQL 语言

        SQL(Structured Query Language)语言是一种结构化查询语言,是一个通用的,功能强大的关系型数据库操作语言.
包含 6 个部分:
1.数据查询语言(DQL:Data Query Language)
        从数据库的二维表格中查询数据,保留字 SELECT 是 DQL 中用的最多的语句
2.数据操作语言(DML)
        最主要的关键字是 INSERT,UPDATE,和 DELETE,分别用于向二维表格中插入行,修改和删除行
3.事务处理语言(TPL)
        它的语句能确保被 DML 语句影响的表的所有行及时得以更新。TPL 语句包括 BEGIN TRANSACTION,COMMIT 和 ROLLBACK。
4.数据控制语言(DCL)
        确定单个用户或者用户组对数据库操作的权限
5.数据定义语言(DDL)
        主要的动作包括 CREATE 和 DROP,用来在数据库中新建表格或者删除表格
6.指针控制语言(CCL)
        用于对一个或者多个表格单独行的操作
        SQL 语句最好写成大写.SQL 语句在执行的时候,如果给出的是小写就会转换成大写再去执行。 所有 SQL 语句都以分号结尾。如果没有加分号,将会出现 数据库的命令输入将变为…>就是在等待你输入分号结束。

创建一个 sqlite3 数据库

方式一:sqlite3 命令方式
【命令语法】
sqlite3 + sqlite3 数据库名
【命令示例】
sqlite3 test.db
【图示】

方式二:点命令方式
【命令语法】
.open + sqlite3 数据库名
【命令示例】
.open test.db
【图示】
【备注】
        打开已存在数据库也是用 .open 命令,以上命令如果 test.db 存在则直接会打开,不存在就创建它。

往数据库中新建二维表格

【命令语法】
CREATE TABLE 表名
(
        [字段 1] [数据类型] ["约束"],
        [字段 2] [数据类型] ["约束"],
        [字段 3] [数据类型] ["约束"],
        ....
 );
【数据类型】
【数据类型】
1) 数值类型
        TINYINT(微小整型)、SMALLINT(小整型)、MEDIUMINT(中等整型)、INT(标准整 型)、BIGINT(大整型)
备注: INT(size):数值类型后面括号里的 size 可以规定这个字段的的最大值
2) 日期/时间类型
        包括 YEAR、TIME、DATE、DATETIME 和 TIMESTAMP。
3) 字符串类型
        包括 CHAR、VARCHAR(变长字符串)、BINARY(二进制)、VARBINARY(变长二进 制)、BLOB、TEXT(文本)、ENUM(枚举) 和 SET 等。
        CHAR(M) 固定长度非二进制字符串 M 字节,1<=M<=255 长度固定为 M
        VARCHAR(M) 变长非二进制字符串 L+1 字节,L< = M 和 1<=M<=255,长度不超过 M
        TEXT小的非二进制字符串  L+2 字节,在此,L<2^16
4) 二进制类型
        包括 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。 【约束】
        NOT NULL 不为空,
        UNIQUE  唯一,此列数据不能重复
        PRIMARY KEY 主键,主键必须是 NOT NULL 和 UNIQUE
        FOREIGN KEY 外键,这一列在外部的表中是主键(保持数据的一致性,维护数据的完整性)
备注: sqlite3 中外键默认是关闭的,需要使用 PRAGMA foreign_keys = ON; 命令打开外键
CHECK 用于限制列中值的范围 例:CHECK(ID>0)
DEFAULT 设置列的默认值 例:DEFAULT 10086
【命令示例】
        新建一个名字为 STUINFO 的二维表,ID 为主键
CREATE TABLE STUINFO (
ID INT PRIMARY KEY,
NAME VARCHAR(255) NOT NULL,
ADDR TEXT,
TEL TEXT DEFAULT 10086,
CHECK(ID>0)
);
【图示】
【外键创建示例】
        CREATE TABLE CJB(ID INT,KCH INT,SCORE FLOAT,FOREIGN KEY(ID) REFERENCES STU(ID));
        上面语句就是新建一个 CJB 表格,其中 ID 是外键,这个外键是 STU 表格中的主键,其中这个 REFERENCES 是外键约束,表示这个外键是哪个表里的主键。上图就是创建了一个 CJB,有一个外键 ID,这个 ID 还是 STU 表中的主键。

删除一个表格

【命令语法】
DROP TABLE 表名;
【命令示例】
DROP TABLE STUINFO;
【图示】

修改表名

【命令语法】
ALTER TABLE 表名 RENAME TO 新表名;
【命令示例】
ALTER TABLE STUINFO RENAME TO STU;
【图示】

增加表中字段

【命令语法】
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 约束;
【命令示例】
ALTER TABLE STU ADD COLUMN HEIGHT INT(300) DEFAULT 100;
【备注】
        1 新增列时约束不能为 NOT NULL,因为当前表中的已有的数据将默认新增列为 NULL
        2. 在 sqlite3 中,修改列名,删除列都是不支持的
【图示】

向表中增加用户数据

【命令语法】
语法 1:
INSERT INTO 表名 VALUES(值 1,值 2,值 3.....);
// 每一列都必须提供一个值,和创建表格的时候要一一对应
语法 2:
INSERT INTO 表名(列名 1,列名 2,...)VALUES(值 1,值 2....);
//提供的列名必须和值个数相同
【命令示例】
示例 1:
        INSERT INTO STU VALUES(2,”jiuyue”,3,10010,5,168);
示例 2:
        INSERT INTO STU(ID,NAME,ADDR,TEL,SEX,HEIGHT)VALUES(2,”jiuyue”,3,10010,5,168);
【图示】

表中数据查询

基本查找

【命令语法】
SELECT 列名 FROM 表名 WHERE 条件;
【条件运算符】
        基本语法如下:
                SELECT 列名 1,列名 2.... FROM 表名 WHERE 列 运算符 值
                运算符可以是下面一些:
                                        = 等于
                                        <> 不等于
                                         > 大于
                                        < 小于
                                        BETWEEN AND 在某一个范围之间
                                        //例:BETWEEN 2 AND 3 2~3 之间
                                        LIKE 模糊查找
【备注】
                有多个条件可以使用 AND 和 OR 来连接条件
                                AND 并且
                                OR 或者
【命令示例】
        SELECT * FROM STU; //查看 STU 表中所有数据
        SELECT ID FROM STU WHERE ID=1; //查看 STU 表中 ID 这一列 ID 号为 1 的数据
        SELECT * FROM STU WHERE TEL="10086" OR NAME="zhangsan"; // 查看 STU 表中列 TEL 值等于 10086 或 NAME 列值等于 zhangsan 的数据
        SELECT ID,NAME,TEL FROM STU WHERE NAME LIKE 'zhang%'; //查看所有姓 zhang 的同学的信息

【图示】

其他的一些查看语法

【命令示例】
SELECT MAX(ID) FROM STU; //查找列中的最大值
SELECT MIN(ID) FROM STU; //查找列中的最小值
SELECT AVG(ID) FROM STU; //平均值
SELECT SUM(ID) FROM STU; //总和
SELECT COUNT(ID) FROM STU; //行数

排序和限行查询

【命令语法】
排序查询:
SELECT * FROM 表名 ORDER BY 字段名 ASC/DESC;
                                //ASC 为升序,DESC 为降序
限行查询:
SELECT * FROM STU LIMIT 行数
【命令示例】
        SELECT * FROM STU ORDER BY ID ASC; //在 STU 表中以 ID 号升序查看
        SELECT * FROM STU LIMIT 3; //只查看前 3 行
        SELECT * FROM STU ORDER BY ID DESC LIMIT 3; //降序排序并只查看前 3 行

多表查询

【命令语法】
SELECT 表名 N.列名 N,表名 M.列名 M FROM WHERE 条件;
【命令示例】
  1.查看表 STU 和 CJB 中相关列满足 STU.ID = CJB.ID 条件的数据
        SELECT STU.ID,STU.NAME,CJB.ID,CJB.KCH,CJB.SCORE FROM STU,CJB WHERE STU.ID = CJB.ID;
2.查看表 STU,CJB 和 KCB 中相关列满足 STU.ID = CJB.ID 且 KCB.KCH = CJB.KCH 条件的数据
        SELECT STU.ID,KCB.KCH,STU.NAME,CJB.SCORE,KCB.KCM,KCB.TEACHER FROM STU,CJB,KCB WHERE STU.ID = CJB.ID AND KCB.KCH = CJB.KCH;
3.加上查看 CJB.SCORE 列中降序排序的前三列
        SELECT STU.ID,KCB.KCH,STU.NAME,CJB.SCORE,KCB.KCM,KCB.TEACHER FROM STU,CJB,KCB WHERE STU.ID = CJB.ID AND KCB.KCH = CJB.KCH AND KCB.KCH = 1 ORDER BY CJB.SCORE DESC LIMIT 3;

更新数据(数据修改)

【命令语法】
UPDATE 表名 SET 列名 1 = 新值,列名 2 = 新值,... WHERE 条件;
【命令示例】
 1. 将 STU 表 ID 为 6 的一行数据的 NAME 和 TEL 改变
        UPDATE STU SET NAME="wanglang",TEL="88888888" WHERE ID = 6;
2. 将 CJB 表中 SCORE 中 0 到 60 的数据全部改为 60
        UPDATE CJB SET SCORE = 60 WHERE SCORE > 0 AND SCORE < 60;

删除用户数据

【命令语法】
DELETE FROM 表名 WHERE 条件;
【命令示例】
1. 删除 STU 表中 TEL 为“88888888“的一行数据
        DELETE FROM STU WHERE TEL = "88888888";

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Git企业开发】第四节.Git的分支管理策略和bug分支

文章目录 前言一、Git的分支管理策略 1.1 Fast forward 模式和--no-ff 模式 1.2 企业分支管理策略二、bug分支三、删除临时分支四、总结总结 前言 一、Git的分支管理策略 1.1 Fast forward 模式和--no-ff 模式 通常合并分支时&#xff0c;如果可能&#xff0c;Git 会…

Mac docker+vscode

mac 使用docker vs code 通过vscode 可以使用docker容器的环境。 可以在容器安装gdb, 直接调试代码。 创建容易时候可以指定目录和容易目录可以共享文件。

空气质量查询API促使空气数据可视化

引言 在当今的现代化社会中&#xff0c;关注和改善空气质量已成为人们共同的关切。随着科技的不断发展&#xff0c;空气质量查询API为我们提供了一种前所未有的方式来实时监测、分析和改善我们所处的环境。这一工具不仅让我们更深入地了解空气质量&#xff0c;还鼓励了空气数据…

Java如何使用KEPserver 实现S71500 OPC通信

一.PLC和OPC 使用的PLC&#xff1a;西门子PLC S7-1500 使用的OPC server软件&#xff1a; KEPServer V6 二.连接测试 OPC是工业控制和生产自动化领域中使用的硬件和软件的接口标准&#xff0c;以便有效地在应用和过程控制设备之间读写数据。O代表OLE(对象链接和嵌入)&am…

Qt 使用Quazip解压缩、压缩文件

1.环境搭建 Quazip&#xff0c;是在zlib基础上进行了简单封装的开源库&#xff0c;适用于多种平台&#xff0c;利用它可以很方便将单个或多个文件打包为zip文件&#xff0c;且打包后的zip文件可以通过其它工具打开。 下载Quazip QuaZIP download | SourceForge.net 解压后&…

cnpm windows系统安装后查看版本cnpm -v报错Error: Cannot find module ‘node:util‘

1、报错截图 2、原因 在网上查了一些资料&#xff0c;有的说配置环境变量就可以&#xff0c;但经过配置后发现还是会报错。又查到说是由于cnpm和npm的版本不一致导致的&#xff0c;最后尝试成功解决&#xff01;&#xff01;&#xff01; 2、解决办法 1、先卸载掉之前安装的c…

【扩散模型】理解扩散模型的微调(Fine-tuning)和引导(Guidance)

理解扩散模型的微调Fine-tuning和引导Guidance 1. 环境准备2. 加载预训练过的管线3. DDIM——更快的采样过程4. 微调5. 引导6. CLIP引导参考资料 微调&#xff08;Fine-tuning&#xff09;指的是在预先训练好的模型上进行进一步训练&#xff0c;以适应特定任务或领域的过程。这…

DSP 开发例程: 单镜像多核引导

目录 DSP 开发例程: 单镜像多核引导新建工程源码编辑multicore_boot.c config.hos.cmain.c测试 DSP 开发例程: 单镜像多核引导 此例程实现在 EVM6678L 开发板上将单镜像应用程序进行多核引导, 核0-核4 分别控制一个LED 闪烁, 并通过串口打印日志信息. 例程源码可从我的 gitee …

今日温馨早安问候语,祝大家平安健康早安吉祥

用清晨的阳光沐浴&#xff0c;给你舒展;用清新的空气洗漱&#xff0c;给你舒心;伴清莹的雨露散步&#xff0c;给你舒情;向美好的一天欢呼&#xff0c;给你舒怀&#xff0c;用快乐的词汇凝聚&#xff0c;给你祝福&#xff0c;祝你在绚丽的晨光中走好每一天。朋友&#xff0c;早安…

PyCharm社区版安装

PyCharm社区版安装 到中国官网下载 https://www.jetbrains.com/zh-cn/pycharm/download/?sectionwindows 首次创建项目&#xff0c;会自动下载安装Python 3.9 社区版的区别 社区版的区别

HTTP和HTTPS本质区别——SSL证书

HTTP和HTTPS是两种广泛使用的协议&#xff0c;尽管它们看起来很相似&#xff0c;但是它们在网站数据传输的安全性上有着本质上的区别。 HTTP是明文传输协议&#xff0c;意味着通过HTTP发送的数据是未经加密的&#xff0c;容易受到拦截、窃听和篡改的风险。而HTTPS通过使用SSL或…

vue 获取上一周和获取下一周的日期时间

效果图&#xff1a; 代码 <template><div><div style"padding: 20px 0;"><div style"margin-left: 10px; border-left: 5px solid #0079fe; font-size: 22px; font-weight: 600; padding-left: 10px">工作计划</div><di…

使用 Docker 部署高可用 MongoDB 分片集群

使用 Docker 部署 MongoDB 集群 Mongodb 集群搭建 mongodb 集群搭建的方式有三种&#xff1a; 主从备份&#xff08;Master - Slave&#xff09;模式&#xff0c;或者叫主从复制模式。副本集&#xff08;Replica Set&#xff09;模式。分片&#xff08;Sharding&#xff09;…

网络协议--TCP的超时与重传

21.1 引言 TCP提供可靠的运输层。它使用的方法之一就是确认从另一端收到的数据。但数据和确认都有可能会丢失。TCP通过在发送时设置一个定时器来解决这种问题。如果当定时器溢出时还没有收到确认&#xff0c;它就重传该数据。对任何实现而言&#xff0c;关键之处就在于超时和重…

Mac 上安装 Emscripten

背景&#xff1a;Web 端需要使用已有的 C 库&#xff0c;需要将 C 项目编译成 WebAssembly(.wasm) 供 js 调用。 Emscripten 可以将 C 编译成 .wasm 一、下载源码 # 下载 emsdk 源码 git clone https://github.com/emscripten-core/emsdk.git# 下载完成后进入到 emsdk 项目根…

2021-arxiv-LoRA Low-Rank Adaptation of Large Language Models

2021-arxiv-LoRA Low-Rank Adaptation of Large Language Models Paper: https://arxiv.org/abs/2106.09685 Code: https://github.com/microsoft/LoRA 大型语言模型的LoRA低秩自适应 自然语言处理的一个重要范式包括对通用领域数据的大规模预训练和对特定任务或领域的适应。…

不容错过的2023年度线框图工具Top 8

线框图工具可以快速呈现设计师的灵感。在任何项目的开始阶段&#xff0c;选择一个方便的线框图工具都是最好的选择。如今&#xff0c;线框图工具的出现并不夸张。各种工具都很容易获得&#xff0c;但选择太多确实很容易给设计师的选择带来困难。 买东西都讲性价比&#xff0c;…

电商课堂|5分钟了解电商数据分析完整流程,建议收藏!

账户效果下降&#xff0c;如何能够快速找到问题并优化调整&#xff1f; 相信百分之90%的竞价员都会说&#xff1a;“做数据分析。” 没错&#xff0c;数据分析能够帮助我们快速锁定问题所在&#xff0c;确定优化方向&#xff0c;还可以帮助我们找到流量控制的方向。那么做电商&…

[RISC-V]verilog

小明教IC-1天学会verilog(7)_哔哩哔哩_bilibili task不可综合&#xff0c;function可以综合

206.反转链表

206.反转链表 力扣题目链接(opens new window) 题意&#xff1a;反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 双双指针法&#xff1a; 创建三个节点 pre(反转时的第一个节点)、cur(当前指向需要反转的节点…