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

news2024/12/23 5:34:37
        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.coloradmin.cn/o/1153280.html

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

相关文章

视频下载工具Downie4 mac中文支持格式

Downie4 mac是一款视频下载工具。它支持下载各种视频网站上的视频&#xff0c;并且具有快速、稳定、易于使用的特点。 Downie支持下载各种视频网站上的视频&#xff0c;包括YouTube、Vimeo、Netflix、Hulu、Amazon等等。它具有快速、稳定的下载速度&#xff0c;可以帮助用户轻松…

HDFS架构介绍

数新网络_让每个人享受数据的价值浙江数新网络有限公司是一家开源开放、专注于云数据智能操作系统和数据价值流通的服务商。公司自主研发的DataCyber云数据智能操作系统&#xff0c;主要包括数据平台CyberData、人工智能平台CyberAI、数据智能引擎CyberEngine、数据安全平台Cyb…

手机app爬虫配置 (苹果手机)

近期在做某个项目,涉及到需要对手机app的进行数据爬取。在上一篇博文中,讲述了以模拟机为例的配置操作流程,这里将以苹果手机为例进行描述。 下面将讲述具体配置步骤 1、安装 抓包软件 fiddler (Fiddler | Web Debugging Proxy and Troubleshooting Solutions) ​ 下载后…

navicat15 恢复试用方法

1.运行&#xff0c;输入regedit&#xff0c;打开注册表 2.注册表中搜索 HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium&#xff0c;删除下面的Registration15XCS文件夹 3.注册表中再搜索 HKEY_CURRENT_USER\Software\Classes\CLSID 然后拉到文件夹目录的最后&#x…

实时视频混合和映射:Resolume Arena 6(专业的VJ)中文

Resolume Arena 6是一款专业的实时视频混合和映射软件&#xff0c;广泛应用于音乐表演、舞台演出、俱乐部活动等场合&#xff0c;打造令人惊叹的视觉效果和图像投影。它支持实时混合多个视频源&#xff0c;拥有视频映射功能以及提供多样实时效果和过渡效果&#xff0c;让用户能…

MySQL的MSI安装

MySQL的MSI安装 文章目录&#xff1a; MySQL的MSI安装材料准备&#xff1a;一、MySQL安装的准备工作二、MySQL的配置三、MySQL安装验证1、CMD命名验证2、MySQL 8.0 Command Line Client验证 材料准备&#xff1a; 1、x64或x86电脑 2、MySQL安装包 一、MySQL安装的准备工作 M…

Unity 粒子特效-第一集-五角星发射特效

一、基础理解 1.粒子特效的意思是&#xff0c;发射很多小的东西&#xff0c;组成一个效果 2.主要可以分成两种 a.一直循环&#xff08;如上图&#xff09; b.发射状 二、案例视频 今天我们做一个发射的五角星 三、案例分析 我们仔细来分析一下这个五角星的功能 1.每次显示1秒…

Android体育场馆预约系统+全套手把手视频教程

【项目功能介绍】 功能列表: 本系统包含后台管理和前端app双端系统, 本系统包含三个角色: 管理员,员工,app用户。 后台管理员的功能包含: 登录, 退出, 场馆管理,添加场馆,修改场馆,禁用启用场馆; 场馆场地管理,添加场馆场地,修改场馆场地,启用禁用场馆场地; 订单管理,确定订单…

Python自动化运维监控——批量监听页面发邮件(自由配置ini文件+smtplib)

一、程序样式 1.listen.ini配置文件 2.监控页面 3.日志 二、核心点 smtplib库&#xff1a;这里使用了smtp.qq.com与smtp.163.com两个发送邮件的地址&#xff0c;使用邮箱用户名与授权码来实现登录&#xff0c;端口都使用465&#xff0c;最后抛出异常&#xff0c;finally里…

分享一下微信小程序抽奖链接怎么做

标题&#xff1a;微信小程序抽奖链接制作全攻略&#xff0c;轻松玩转营销抽奖活动 一、引言 在当今的数字化时代&#xff0c;抽奖活动已经成为一种高效的市场营销策略&#xff0c;而微信小程序作为一个功能强大的移动端平台&#xff0c;为企业和个人提供了制作抽奖链接的便捷…

如何能够根据现有业务,结合代码清晰的知道技术实现是如何去实现的,方法论和切入点是什么?

要深入了解现有业务系统的技术实现&#xff0c;特别是当你想要准确理解某个具体功能或组件是如何实现的时候&#xff0c;你可以采取以下的方法论和切入点&#xff1a; 1. 文档和设计说明 首先查阅相关的技术文档和设计说明&#xff0c;这些文档通常会详细描述系统的架构、各个…

STM32———USART串口控制LED灯亮灭

1.硬件设计流程 2.程序设计流程 1.串口初始化时钟使能&#xff1a;RCC_APBxPeriphClockCmd(); GPIO初始化时钟使能&#xff1a;RCC_AHBxPeriphClockCmd();2.GPIO端口模式配置&#xff1a;GPIO_Init();3.串口参数初始化&#xff1a;USART_Init();4.串口使能&#xff1a;USART_C…

如何在React项目中引用less

安装less npm install less less-loader --save-dev暴露 webpack 文件 利用 npx create-react-app 搭建的 React 项目&#xff0c;默认隐藏 webpack 配置文件&#xff0c;引入 less 需要修改 webpack 配置文件&#xff0c;因此我们需要执行命令暴露 webpack 配置文件。 请先将…

SRM系统采购功能

SRM系统采购是企业为了优化供应链管理而采购的一种信息系统。它旨在帮助企业与供应商之间建立良好的合作关系&#xff0c;提供全面的供应商管理功能&#xff0c;以实现采购的效率和效益最大化。 首先&#xff0c;SRM系统采购在企业供应链管理中具有重要的意义。供应链是企业与供…

2023最新版本 FreeRTOS教程 -1-标准库移植FreeRTOS

源码下载 官网下载驱动 点击直达 源码剪裁 剪裁之后的图片,找我免费获取 添加进MDK 配置滴答定时器 全部工程获取 查看下方头像

pycharm使用ssh连接远程jupyter

1. 安装jupyter pip install jupyter2. 生成jupyter_notebook_config.py文件 jupyter notebook --generate-config3. 设置命令参数 jupyter notebook --no-browser --allow-root --port 8900配置Jupyter服务器 将上面的代码复制到命令行实参中&#xff1a;

[NISACTF 2022]is secret RC4加密执行SSTI

这里结合了加密 记录一下 首先获取 啥都没得 扫一下目录 都看看 后面发现 http://node5.anna.nssctf.cn:28378/secret 这个页面 Tell me 是不是就是传参 我们get传递一个看看 http://node5.anna.nssctf.cn:28378/secret?secret{{49}} 发生报错 出现了 框架 这…

企业内部外网向内网传输文件如何实现高效安全?

随着信息技术的发展&#xff0c;企业内部外网隔离已成为一种常见的网络安全措施&#xff0c;旨在防止外部攻击者入侵内部网络&#xff0c;保护企业的核心数据和业务系统。然而&#xff0c;企业内外网隔离也带来了一些问题&#xff0c;其中之一就是如何实现内外网之间的文件传输…

数据库查询语句字段不匹配不报错,删除语句字段不匹配报错?

使用了很多的mybatisplus导致了遇到mybatis有点忘记了。工作遇到了这样的一个错误&#xff1a; Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column userId in where clause at sun.reflect.NativeConstructorAccessorImpl.newInstance0(…

大模型该被知道的技术实现-面向垂直领域

一个高度清晰的思维导图截图奉上&#xff08;下载&#xff1a;需3积分&#xff09; 内容截图