sql语法学习 sql各种语法 sql增删改查 数据库各种操作 数据库指令
sql语法学习 sql各种语法 sql增删改查 数据库各种操作 数据库指令
学习SQL语法时,理解其基本结构和用法是关键。下面是SQL语法的详细学习指南,涵盖了SQL的主要部分,包括查询、插入、更新、删除、表操作等。
1. 基本查询语法
SQL 的查询语句主要使用 SELECT 语句,从数据库中提取数据。
1.1. SELECT 查询
SELECT column1, column2, ...
FROM table_name;
示例:SELECT name, age FROM students;
1.2. SELECT ALL 与 DISTINCT
ALL 是默认的,返回所有行,包括重复行。
DISTINCT 用于消除重复行,只返回唯一的结果。
SELECT DISTINCT column1 FROM table_name;
1.3. WHERE 子句
用于筛选符合条件的记录。
SELECT column1, column2
FROM table_name
WHERE condition;
示例:SELECT name, age
FROM students
WHERE age > 18;
1.4. 逻辑运算符
=: 等于
<> 或 !=: 不等于
>: 大于
<: 小于
>=: 大于等于
<=: 小于等于
BETWEEN: 在两个值之间
IN: 在指定的集合中
LIKE: 模糊匹配
AND、OR、NOT: 逻辑运算符
示例:
SELECT *
FROM students
WHERE age >= 18 AND name LIKE 'A%';
2. 数据排序 (ORDER BY)
使用 ORDER BY 对查询结果进行排序,默认是升序。
SELECT column1, column2
FROM table_name
ORDER BY column1 [ASC|DESC];
示例:
SELECT name, age
FROM students
ORDER BY age DESC;
3. 聚合函数
COUNT(): 计算记录数量
SUM(): 计算总和
AVG(): 计算平均值
MAX(): 最大值
MIN(): 最小值
示例:
SELECT COUNT(*) AS total_students
FROM students;
4. GROUP BY 子句
将数据按某列分组,并结合聚合函数使用。
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;
示例:
SELECT age, COUNT(*)
FROM students
GROUP BY age;
5. HAVING 子句
HAVING 类似于 WHERE,但用于过滤聚合后的数据。
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1
HAVING COUNT(*) > 1;
6. 连接 (JOIN)
用于从多个表中获取数据,最常用的连接方式有内连接、外连接、左连接、右连接。
6.1. INNER JOIN (内连接)
只返回两个表中匹配的记录。
SELECT a.column1, b.column2
FROM table1 a
INNER JOIN table2 b
ON a.common_field = b.common_field;
6.2. LEFT JOIN (左连接)
返回左表的所有记录,即使右表中没有匹配的记录。
SELECT a.column1, b.column2
FROM table1 a
LEFT JOIN table2 b
ON a.common_field = b.common_field;
6.3. RIGHT JOIN (右连接)
返回右表的所有记录,即使左表中没有匹配的记录。
SELECT a.column1, b.column2
FROM table1 a
RIGHT JOIN table2 b
ON a.common_field = b.common_field;
6.4. FULL JOIN (全连接)
返回两个表中所有匹配和不匹配的记录。
SELECT a.column1, b.column2
FROM table1 a
FULL JOIN table2 b
ON a.common_field = b.common_field;
7. 子查询 (Subqueries)
子查询是在一个 SQL 语句中嵌套另一个查询。
SELECT column1
FROM table_name
WHERE column2 = (SELECT MAX(column2) FROM table_name2);
8. 插入数据 (INSERT INTO)
向表中插入新的记录。
8.1. 基本插入
INSERT INTO table_name (column1, column2, …)
VALUES (value1, value2, …);
示例:
INSERT INTO students (name, age)
VALUES ('John', 22);
8.2. 插入多个值
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...), (value3, value4, ...);
9. 更新数据 (UPDATE)
用于修改表中的现有记录。
UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;
示例:
UPDATE students
SET age = 23
WHERE name = 'John';
10. 删除数据 (DELETE)
用于删除表中的记录。
DELETE FROM table_name
WHERE condition;
示例:
DELETE FROM students
WHERE age < 18;
11. 创建表 (CREATE TABLE)
创建一个新表。
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
…
);
示例:
CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT
);
12. 修改表结构 (ALTER TABLE)
修改现有表的结构,比如添加、删除列等。
12.1. 添加列
ALTER TABLE table_name
ADD column_name datatype;
12.2. 删除列
ALTER TABLE table_name
DROP COLUMN column_name;
12.3. 修改列的数据类型
ALTER TABLE table_name
MODIFY COLUMN column_name datatype;
13. 删除表 (DROP TABLE)
删除整个表以及表中的所有数据。
DROP TABLE table_name;
14. 事务 (TRANSACTIONS)
事务确保一系列操作要么全部成功,要么全部失败。
14.1. 开启事务
START TRANSACTION;
14.2. 提交事务
COMMIT;
14.3. 回滚事务
ROLLBACK;
15. 索引 (INDEX)
索引用于提高数据库查询的效率。
CREATE INDEX index_name
ON table_name (column1, column2, ...);
16. 视图 (VIEW)
视图是基于 SQL 查询结果的虚拟表。
CREATE VIEW view_name AS
SELECT column1, column2
FROM table_name
WHERE condition;
17. 常见的SQL数据类型
17.1. 数值类型
INT、INTEGER: 整数
FLOAT、DOUBLE: 浮点数
DECIMAL: 精确小数
17.2. 字符串类型
CHAR: 固定长度字符串
VARCHAR: 可变长度字符串
TEXT: 大文本
17.3. 日期和时间类型
DATE: 日期(YYYY-MM-DD)
TIME: 时间(HH:MI
)
DATETIME: 日期和时间(YYYY-MM-DD HH:MI)
相关文章:
sql语法学习 sql各种语法 sql增删改查 数据库各种操作 数据库指令
sql语法学习 sql各种语法 sql增删改查 数据库各种操作 数据库指令 学习SQL语法时,理解其基本结构和用法是关键。下面是SQL语法的详细学习指南,涵盖了SQL的主要部分,包括查询、插入、更新、删除、表操作等。 1. 基本查询语法 SQL 的查询语句…...
鸡兔同笼,但是线性代数
灵感来自:bilibili,巨佬! 我们有 14 14 14 个头, 32 32 32 只脚,所有鸡和兔都没有变异,头和脚都完整,没有数错。还有什么 Bug 吗 小学奥数 假设全是鸡,则有 14 2 28 14 \time…...
01---java面试八股文——springboot---10题
01-你是怎么理解Spring Boot 的约定优于配置 约定优于配置是一种软件设计的范式,它的核心思想是减少软件开发人员对于配置项的维护,从而让开发人员更加聚焦在业务逻辑上。Spring Boot 就是约定优于配置这一理念下的产物,它类似于 Spring 框架…...
计算机毕业设计 二手图书交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...
【进阶OpenCV】 (3)--SIFT特征提取
文章目录 sift特征提取一、基本原理二、特点三、代码实现1. 函数方法2. 检测图像中的关键点3. 绘制关键点4. 计算关键点描述符5. 输出特征坐标点 总结 sift特征提取 SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)特征检测是一种…...
HarmonyOS/OpenHarmony Audio 实现音频录制及播放功能
关键词:audio、音频录制、音频播放、权限申请、文件管理 在app的开发过程中时常会遇见一些需要播放一段音频或进行语音录制的场景,那么本期将介绍如何利用鸿蒙 audio 模块实现音频写入和播放的功能。本次依赖的是 ohos.multimedia.audio 音频管理模块&am…...
css 中 ~ 符号、text-indent、ellipsis、ellipsis-2、text-overflow: ellipsis、::before的使用
1、~的使用直接看代码 <script setup> </script><template><div class"container"><p><a href"javascript:;">纪检委</a><a href"javascript:;">中介为</a><a href"javascript:…...
Activiti 工作流大致了解
一、什么是 Activiti 简而言之,就是系统的流程图,如:请假审批流程、账单审批流程等。 二、mysql与pom配置 mysql要使用jdbc:mysql://localhost:3306/activiti?autoReconnecttrue pom文件要添加关键依赖 <!--activiti核心依赖--> &…...
速盾:高防 CDN,网站安全的有力保障
在当今数字化时代,网站安全已成为企业和个人关注的焦点。随着网络攻击手段的不断升级,传统的安全防护措施已经难以满足需求。而高防 CDN(Content Delivery Network,内容分发网络)的出现,为网站安全提供了有…...
宝塔搭建nextcould 30docker搭建onlyoffic8.0
宝塔搭建nextcould 宝塔搭建nextcould可以参考这两个博文 我搭建的是30版本的nextcould,服务组件用的是下面这些,步骤是一样的,只是版本不一样而已 nginx 1.24.0 建议选择nginx,apache没成功。 MySQL 8.0以上都可以 php 8.2.…...
【源码+文档+调试讲解】交通信息管理系统
摘 要 智能交通信息管理系统是一种基于计算机技术的软件系统,旨在提高交通管理的效率和服务质量。通过该系统可以实现智能交通管理的全面管理和优化。智能交通信息管理系统具备集成管理功能。它能够整合智能交通管理的各个业务环节,包括个人中心、用户管…...
小阿轩yx-案例:Ansible剧本文件实践
小阿轩yx-案例:Ansible剧本文件实践 Playbook 介绍 什么是 playbook playbook 顾名思义,即剧本,现实生活中演员按照剧本表演在 ansible 中,由被控计算机表演,进行安装,部署应用,提供对外的服…...
【ShuQiHere】深入理解微架构(Microarchitecture):LC-3 的底层实现 ️
【ShuQiHere】🖥️ 微架构(Microarchitecture) 是计算机体系结构中的重要概念,它定义了如何将 指令集架构(Instruction Set Architecture, ISA) 转化为实际硬件。通过微架构,我们可以理解计算机…...
Ubuntu24.04.1系统下VideoMamba环境配置
文章目录 前言第一步:基本的环境创建第二步:causal-conv1d和mamba_ssm库的安装第三步:安装requirements.txt 前言 VideoMamba环境的配置折磨了我三天,由于Mamba对Cuda的版本有要求,因此配置环境的时候Cuda版本以及各种…...
c++第十二章续(队列结构类模拟)
队列类 设计类,需要开发公有接口和私有实现 Queue类接口 公有接口: 默认初始化,和可以用显式初始化覆盖默认值 Queue类的实现 如何表示队列数据: 一种方法是使用new动态分配一个数组,它包含所需的元素数。不过&…...
数据集-目标检测系列-豹子 猎豹 检测数据集 leopard>> DataBall
数据集-目标检测系列-豹子 猎豹 检测数据集 leopard>> DataBall 数据集-目标检测系列-豹子 猎豹 检测数据集 leopard 数据量:5k 想要进一步了解,请联系。 DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集&#x…...
基于ESP8266—AT指令连接阿里云+MQTT透传数据(3)
MQTT_RX设备为接收(订阅)数据的Topic,使用ESP8266通过AT指令实现。 首先需要串口通信软件,如 SSCOM、PuTTY、SecureCRT 等串口调试工具,功能丰富,支持常见的串口调试功能,用于发送AT指令。 以下是ESP8266通过AT指令连接阿里云MQTT服务的步骤: 1、初始化WiFi 发送下面…...
redis的数据结构,内存处理,缓存问题
redisObject redis任意数据的key和value都会被封装为一个RedisObject,也叫redis对象: 这就redis的头信息,占有16个字节 redis中有两个热门数据结构 1.SkipList,跳表,首先是链表,和普通链表有以下差异&am…...
机器学习模型评估与选择
前言 承接上篇讲述了机器学习有哪些常见的模型算法,以及使用的场景,本篇将继续讲述如何选择模型和评估模型。几个概念了解一下: 经验误差:模型在训练集上的误差称之为经验误差;过拟合:模型在训练集上表现…...
Web认识 -- 第一课
文章目录 前言一、HTML是什么?二、了解Web1. 基本概念2.Web标准3. Web构成1.前端1. HTML2.CSS3. javaScript4.常见浏览器介绍 2.Web标签构成1.结构标准2.表现标准 -- css3. 行为标准 -- javaScript 总结 前言 这里是我们进入前端学习的开端,在本次更新之后我会陆续…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
