当前位置: 首页 > news >正文

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

相关文章:

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

SQL(Structured Query Language)语言是一种结构化查询语言,是一个通用的,功能强大的关系型数据库操作语言. 包含 6 个部分: 1.数据查询语言(DQL:Data Query Language) 从数据库的二维表格中查询数据,保留字 SELECT 是 DQL 中用的最多的语句 2.数据操作语言(DML) 最主要的关…...

spring boot中的多环境配置

1.切换环境 spring:profiles:include: devactive: dev的作用是为了启动某个环境&#xff0c;两个作用基本一致&#xff0c; 环境定义如下&#xff1a; spring:profiles: dev或者是查找application-dev.yml这个文件的所有配置 2.加载文件 spring:config:import:- optional:f…...

python3 阿里云api进行巡检发送邮件

python3 脚本爬取阿里云进行巡检 不确定pip能不能安装上&#xff0c;使用时候可以百度一下&#xff0c;脚本是可以使用的&#xff0c;没有问题的 太长时间了&#xff0c;pip安装依赖忘记那些了&#xff0c;使用科大星火询问了下&#xff0c;给了下面的&#xff0c;看看能不能使…...

【Linux】安装使用Nginx负载均衡,并且部署前端项目

目录 一、Nginx概述 1. 什么 2. 背景 3. 作用 二、Nginx负载均衡 1. 讲述 2. 使用 1. 下载 2. 安装 3. 负载均衡 三、前端部署 1. 准备 2. 部署 一、Nginx概述 1. 什么 Nginx是一个高性能的开源Web服务器和反向代理服务器。它具有轻量级、高并发、低内存消耗的…...

k8s中 pod 或节点的资源利用率监控

pod 或节点的资源利用率监控 1 简介2 Kubectl Top介绍3 生效kubectl top命令3.1 下载配置components.yaml3.2 修改配置components.yaml参数3 kubectl top 应用3.1 查看node节点的资源占⽤率3.2 查看pod的资源占⽤率1 简介 通过Kubectl Top命令,可以查看你k8snode节点或者pod的…...

订水商城实战教程07-搜索

目录 1 创建数据源2 首页搜索功能3 创建搜索页面4 搭建搜索结果页面总结 上一篇我们讲解了店铺信息的展示功能&#xff0c;本篇讲解一下搜索功能。通常小程序在首页都配置了搜索的功能&#xff0c;输入关键词进行检索&#xff0c;可以在结果页上进行选购。同时还记录了用户的搜…...

stm32内 misc stm32f10x_hd stm32f10x_it stm32f10x_conf关系

STM32启动流程 初始位置 startup_stm32f10x_hd.s 查看源码 ;******************** (C) COPYRIGHT 2010 STMicroelectronics ******************** ;* File Name : startup_stm32f10x_hd.s ;* Author : MCD Application Team ;* Version :…...

树结构及其算法-二叉查找树

目录 树结构及其算法-二叉查找树 C代码 树结构及其算法-二叉查找树 二叉树在建立的过程中是根据“左子树 < 树根 < 右子树”的原则建立的&#xff0c;因此只需从树根出发比较键值即可&#xff0c;如果比树根大就往右&#xff0c;否则往左而下&#xff0c;直到相等就找…...

PHP自定义文件缓存实现

文件缓存&#xff1a;可以将PHP脚本的执行结果缓存到文件中。当一个PHP脚本被请求时&#xff0c;先查看是否存在缓存文件&#xff0c;如果存在且未过期&#xff0c;则直接读取缓存文件内容返回给客户端&#xff0c;而无需执行脚本 1、文件缓存写法一&#xff0c;每个文件缓存一…...

猫耳 Android 播放框架开发实践

概述 猫耳FM是中国最大的 95 后声音内容分享平台&#xff0c;是B站重要平台之一&#xff0c;深度合作国内顶级声优工作室&#xff0c;打造了数百部精品广播剧&#xff0c;全站播放总量超过百亿次。 MEPlayer 是猫耳 Android 技术团队研发的一款适用于音视频、直播、特效播放等…...

linux下df -h 命令一直卡住的解决方法

在Linux中&#xff0c;偶尔遇到用 df -h 查看磁盘情况时&#xff0c;一直卡住无法显示结果。 解决方法&#xff1a; 1、首先使用strace追踪到底执行到哪里卡住 $ strace df -h 2、如果没有strace命令则进行安装 $ yum install strace -y 3、显示出卡住的地方&#xff0c;如…...

系统架构设计热点知识

系统架构设计师考点包括以下内容&#xff1a; 1. 系统设计和架构思想. 了解系统设计和架构的基本概念和思想&#xff0c;特别是面向服务架构&#xff08;SOA&#xff09;、微服务架构、云架构、事件驱动架构、响应式架构等。 系统设计是指在软件项目中&#xff0c;确定系统结…...

2023-在mac下安装Homebrew的国内镜像

mac安装Homebrew的国内镜像 尝试使用其他下载源&#xff1a;GitHub 可能会受到访问限制&#xff0c;尝试使用其他镜像或下载源。您可以使用清华大学、中科大或阿里云的 Homebrew 镜像&#xff0c;以提高下载速度和可靠性。例如&#xff0c;可以使用阿里云的镜像来安装 Homebre…...

Ubuntu 20.04设置虚拟内存 (交换内存swap)解决内存不足

数据库服务器程序在运行起来之后&#xff0c;系统内存不足。 在系统监控中发现&#xff0c;当数据库服务程序启动后&#xff0c;占用了大量内存空间&#xff0c;导致系统的剩余的内存往往只有几十MB。 在ubuntu系统中&#xff0c;swap空间就是虚拟内存&#xff0c;所以考虑在磁…...

RabbitMQ-死信交换机和死信队列

1. 简介 1.1 DLX简介 DLX: Dead-Letter-Exchange 死信交换器&#xff0c;死信邮箱 当消息成为Dead message后&#xff0c;可以被重新发送到另一个交换机&#xff0c;这个交换机就是DLX。 如下图所示&#xff1a; 其实死信队列就是一个普通的交换机&#xff0c;有些队列的消息…...

[HNCTF 2022 WEEK2]easy_include 文件包含遇上nginx

这道纯粹记录 完全没想到 <?php //WEB手要懂得搜索if(isset($_GET[file])){$file $_GET[file];if(preg_match("/php|flag|data|\~|\!|\|\#|\\$|\%|\^|\&|\*|\(|\)|\-|\_|\|\/i", $file)){die("error");}include($file); }else{highlight_file(__…...

python中transform和apply的区别是什么

文章目录 1. 介绍transform&#xff1a;apply&#xff1a; 2. 应用示例示例数据使用transform进行向量化操作使用apply进行更复杂的操作性能比较 3. 示例输出使用 transform 进行向量化操作使用 apply 进行更复杂的操作 4. transform再举例示例数据使用transform计算平均销售额…...

TCP 协议

文章目录 协议格式1面向连接:1.1三次握手&#xff08;建立连接&#xff09;1.2包序管理1.2四次挥手&#xff08;断开连接&#xff09; 2可靠传输:一。保证数据可靠有序的到达对端:确认应答机制超时重传机制 二。提高传输效率:1.提升自身发送数据量滑动窗口机制 rwnd滑动窗口丢包…...

Azure机器学习 - 在 Azure 机器学习中上传、访问和浏览数据

目录 一、环境准备二、设置内核三、下载使用的数据四、创建工作区的句柄五、将数据上传到云存储空间六、访问笔记本中的数据七、创建新版本的数据资产八、清理资源 机器学习项目的开始阶段通常涉及到探索性数据分析 (EDA)、数据预处理&#xff08;清理、特征工程&#xff09;以…...

新建包含cuda和cudnn的docker

背景&#xff1a;服务器的cudnn版本太低了&#xff0c;没有权限去修改。故新建包含cuda和cudnn的docker 步骤 一、拉取镜像及创建docker 拉取相关的镜像 从镜像列表选出相关版本的镜像https://gitlab.com/nvidia/container-images/cuda/blob/master/doc/supported-tags.md …...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...