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";

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

易点天下受邀参与云栖大会,以AIGC重塑出海营销新范式

10月31日&#xff0c;2023云栖大会在杭州云栖小镇拉开帷幕。与往年不同&#xff0c;今年的云栖大会以“计算&#xff0c;为了无法计算的价值”为主题&#xff0c;与国际潮流科技大会组织方式接轨&#xff0c;通过云计算、人工智能、产业创新三大主题馆40000平科技展&#xff0c…

redis缓存穿透

redis缓存穿透 模拟一个缓存穿透的环境&#xff1a; redis缓存穿透1. 准备一个GET请求并且在第一次访问的时候将数据写入缓存2. 再次访问的时候首先判断缓存是否命中3. 命中了直接返回&#xff0c;未命中重建缓存1. 缓存空对象2. 布隆过滤器 1. 准备一个GET请求并且在第一次访问…

avi怎么转mp4?

avi怎么转mp4&#xff1f;如今市面上涌现了各种多样的视频格式&#xff0c;其中AVI作为一种音频视频交错格式&#xff0c;虽然使用较少但相对常见。它的优点在于占用空间较小&#xff0c;但画面质量并不是很出色。然而&#xff0c;AVI格式也存在一个明显的缺点&#xff0c;即兼…

柯桥专升本学校,自考本科文凭的价值如何?

自考本科文凭的价值如何&#xff1f; 自考本科学历是通过独立学习和考试获得的一种本科学历。对于自考本科学历的价值&#xff0c;很多人感到困惑&#xff0c;那么究竟自考本科学历有多大的价值呢? 首先&#xff0c;在就业市场上&#xff0c;自考本科学历具有一定的竞争力。随…

VBA技术资料MF77:组合所选范围中的所有形状

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

横屏签字板手写签名并旋转90°转为横屏显示base64

手写签名并旋转90转为横屏显示base64 base64 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAApsAAAF3CAYAAADq/IAAAAAAAXNSR0IArs4c6QAAIABJREFUeF7t3W3MPlldH/CvwLK7wEKNoiABZLvYiBqIdJGnQlor9gVBaAtJmzQsoI2wgKD4hqVNmrD7ohWhPFRSIgaKO0XTS8AVLb4AIVtFnaSiMPSktxoyVVWFxAF…

我的云栖大会之旅:见证云计算创新的15年

云栖大会&#xff0c;曾经是一次不可思议的科技之旅&#xff0c;却如今已见证了我对云计算世界的15年关注和发展。第一次踏上云栖大会之旅&#xff0c;我记得是在2009年。那时的云计算还是一个新生事物&#xff0c;而云栖大会正是其中的奠基石。 我清楚地记得那个炎热的夏天&am…

OpenCV标定演示,及如何生成标定板图片

标定的程序在官方的源码里有&#xff0c; opencv-4.5.5\samples\cpp\tutorial_code\calib3d\camera_calibration 很多小白不知道怎么跑起来&#xff0c;这个也怪OpenCV官方&#xff0c;工作没做完善&#xff0c;其实的default.xml是要自己手动改的&#xff0c;输入的图片也要…

【QT】鼠标常用事件

新建项目 加标签控件 当鼠标进去&#xff0c;显示【鼠标进入】&#xff0c;离开时显示【鼠标离开】 将QLable提升成自己的控件&#xff0c;然后再去捕获 添加文件 改继承的类名 提升类 同一个父类&#xff0c;可以提升 效果 现在代码就和Qlabel对应起来了。 在.h中声明&…

Linux———— 运算命令

Shell与其他编程语言一样&#xff0c;支持多种类型的运算符&#xff0c;包括&#xff1a; 算术运算符&#xff1a;用于执行数学运算&#xff0c;例如加法、减法、乘法和除法。 关系运算符&#xff1a;用于比较两个值之间的关系&#xff0c;例如相等、大于、小于等。 布尔运算…

FPGA 如何 固化程序到 FLASH中

1、导出Hardware 2、导出bit文件 3、打开SDK 4、 点击Ok 5、创建工程 6、 输入工程名称&#xff1a;guhua 7、选择 Zynq FSBL 8、单击 guhua、然后点击 build 点击&#xff1a;build all 9、 右键之后&#xff0c;点击&#xff1a;Creat Boot Image 10、点击 Cr…

项目解读_v2

1. 项目介绍 如果使用task2-1作为示例时&#xff0c; 运行process.py的过程中需要确认 process调用的是函数 preprocess_ast_wav2vec(wav, fr) 1.1 任务简介 首个开源的儿科呼吸音数据集&#xff0c; 通过邀请11位医师标注&#xff1b; 数字听诊器的采样频率和量化分辨率分…

大厂面试题-网络四元组

四元组&#xff0c;简单理解就是在TCP协议中&#xff0c;去确定一个客户端连接的组成要素&#xff0c;它包括源 IP地址、目标IP地址、源端口号、目标端口号。 正常情况下&#xff0c;我们对于网络通信的认识可能是这样(如图)。 服务端通过Server Socket建立一个对指定端口号…

商城性能测试LoadRunner快速上手教学

软件介绍 Virtual User Generator &#xff0c;记录用户流程并创建一个自动化性能测试脚本Controller&#xff0c;单一控制点&#xff0c;轻松、有效地控制所有Vuser&#xff0c;执行期间监控场景性能Analysis&#xff0c;生成性能测试报告&#xff0c;以图表形式呈现。 由于…

UE5使用Dash插件实现程序化地形场景制作

目录 0 dash下载后激活 1 初步使用 2 导入bridge的资产路径 3 练习成果 4 参考链接 0 dash下载后激活 1 初步使用 Dash插件点击蓝色的A&#xff0c;可以使用。 通过输入不同提示命令&#xff0c;来激活不同的功能。 2 导入bridge的资产路径 这里需要注意是UAsserts…

解决Linux Debian12系统中安装VirtualBox虚拟机无法使用USB设备的问题

Debian12系统中安装VirtualBox&#xff0c;再VirtualBox虚拟机中无法使用 USB设备。如下图所示&#xff1a; 解决方法如下&#xff1a; 1.安装 Virtualbox增强功能。如下图所示&#xff1a; 2.添加相关用户、用户组&#xff08; Virtualbox 装完成后会有 vboxusers 和 vboxs…

Vue:实现输入vue组件名称,就可以从网页上加载出组件

作者:CSDN @ _乐多_ 本文记录了使用动态组件实现在网页上输入vue组件名称,就可以从网页上直接加载组件的功能的代码。 实现效果如下所示, 在许多Vue.js应用中,我们有大量的组件,但并不是每个组件都需要在应用初始化时加载。动态加载组件的好处包括: 减小初始加载时间:…

Android页面周期、页面跳转

1.什么是Activity&#xff1f; Activity是Android的四大组件之一&#xff0c;它是一种可以包含用户界面的组件&#xff0c;主要用于和用户进行交互。Activity用于显示用户界面&#xff0c;用户通过Activity交互完成相关操作&#xff0c;一个APP允许有多个Activity。 2.Activi…

职业规划:如何成为年薪80W+的Salesforce项目经理?

Salesforce项目经理负责监督各种Salesforce云和端到端Salesforce项目&#xff0c;首要任务是确保项目成功&#xff0c;并在预算范围内按时交付。Salesforce项目经理的薪资是不断增长的Salesforce经济中的热门话题。 Salesforce项目经理的职责 项目经理的职业发展更多地关注经验…

JS 去除字符串中所有标点符号

直接上代码了 var str 这是《书》中的一段&#xff0c;两段文字。; var new_str str.replace(/[:_.~!#$%^&*() \ <>?"{}|, \/ ; \\ [ \] ~&#xff01;#&#xffe5;%……&*&#xff08;&#xff09;—— \ {}|《》&#xff1f;&#xff1a;“”【】、&a…