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

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语法时&#xff0c;理解其基本结构和用法是关键。下面是SQL语法的详细学习指南&#xff0c;涵盖了SQL的主要部分&#xff0c;包括查询、插入、更新、删除、表操作等。 1. 基本查询语法 SQL 的查询语句…...

鸡兔同笼,但是线性代数

灵感来自&#xff1a;bilibili&#xff0c;巨佬&#xff01; 我们有 14 14 14 个头&#xff0c; 32 32 32 只脚&#xff0c;所有鸡和兔都没有变异&#xff0c;头和脚都完整&#xff0c;没有数错。还有什么 Bug 吗 小学奥数 假设全是鸡&#xff0c;则有 14 2 28 14 \time…...

01---java面试八股文——springboot---10题

01-你是怎么理解Spring Boot 的约定优于配置 约定优于配置是一种软件设计的范式&#xff0c;它的核心思想是减少软件开发人员对于配置项的维护&#xff0c;从而让开发人员更加聚焦在业务逻辑上。Spring Boot 就是约定优于配置这一理念下的产物&#xff0c;它类似于 Spring 框架…...

计算机毕业设计 二手图书交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…...

【进阶OpenCV】 (3)--SIFT特征提取

文章目录 sift特征提取一、基本原理二、特点三、代码实现1. 函数方法2. 检测图像中的关键点3. 绘制关键点4. 计算关键点描述符5. 输出特征坐标点 总结 sift特征提取 SIFT&#xff08;Scale-Invariant Feature Transform&#xff0c;尺度不变特征变换&#xff09;特征检测是一种…...

HarmonyOS/OpenHarmony Audio 实现音频录制及播放功能

关键词&#xff1a;audio、音频录制、音频播放、权限申请、文件管理 在app的开发过程中时常会遇见一些需要播放一段音频或进行语音录制的场景&#xff0c;那么本期将介绍如何利用鸿蒙 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 简而言之&#xff0c;就是系统的流程图&#xff0c;如&#xff1a;请假审批流程、账单审批流程等。 二、mysql与pom配置 mysql要使用jdbc:mysql://localhost:3306/activiti?autoReconnecttrue pom文件要添加关键依赖 <!--activiti核心依赖--> &…...

速盾:高防 CDN,网站安全的有力保障

在当今数字化时代&#xff0c;网站安全已成为企业和个人关注的焦点。随着网络攻击手段的不断升级&#xff0c;传统的安全防护措施已经难以满足需求。而高防 CDN&#xff08;Content Delivery Network&#xff0c;内容分发网络&#xff09;的出现&#xff0c;为网站安全提供了有…...

宝塔搭建nextcould 30docker搭建onlyoffic8.0

宝塔搭建nextcould 宝塔搭建nextcould可以参考这两个博文 我搭建的是30版本的nextcould&#xff0c;服务组件用的是下面这些&#xff0c;步骤是一样的&#xff0c;只是版本不一样而已 nginx 1.24.0 建议选择nginx&#xff0c;apache没成功。 MySQL 8.0以上都可以 php 8.2.…...

【源码+文档+调试讲解】交通信息管理系统

摘 要 智能交通信息管理系统是一种基于计算机技术的软件系统&#xff0c;旨在提高交通管理的效率和服务质量。通过该系统可以实现智能交通管理的全面管理和优化。智能交通信息管理系统具备集成管理功能。它能够整合智能交通管理的各个业务环节&#xff0c;包括个人中心、用户管…...

小阿轩yx-案例:Ansible剧本文件实践

小阿轩yx-案例&#xff1a;Ansible剧本文件实践 Playbook 介绍 什么是 playbook playbook 顾名思义&#xff0c;即剧本&#xff0c;现实生活中演员按照剧本表演在 ansible 中&#xff0c;由被控计算机表演&#xff0c;进行安装&#xff0c;部署应用&#xff0c;提供对外的服…...

【ShuQiHere】深入理解微架构(Microarchitecture):LC-3 的底层实现 ️

【ShuQiHere】&#x1f5a5;️ 微架构&#xff08;Microarchitecture&#xff09; 是计算机体系结构中的重要概念&#xff0c;它定义了如何将 指令集架构&#xff08;Instruction Set Architecture, ISA&#xff09; 转化为实际硬件。通过微架构&#xff0c;我们可以理解计算机…...

Ubuntu24.04.1系统下VideoMamba环境配置

文章目录 前言第一步&#xff1a;基本的环境创建第二步&#xff1a;causal-conv1d和mamba_ssm库的安装第三步&#xff1a;安装requirements.txt 前言 VideoMamba环境的配置折磨了我三天&#xff0c;由于Mamba对Cuda的版本有要求&#xff0c;因此配置环境的时候Cuda版本以及各种…...

c++第十二章续(队列结构类模拟)

队列类 设计类&#xff0c;需要开发公有接口和私有实现 Queue类接口 公有接口&#xff1a; 默认初始化&#xff0c;和可以用显式初始化覆盖默认值 Queue类的实现 如何表示队列数据&#xff1a; 一种方法是使用new动态分配一个数组&#xff0c;它包含所需的元素数。不过&…...

数据集-目标检测系列-豹子 猎豹 检测数据集 leopard>> DataBall

数据集-目标检测系列-豹子 猎豹 检测数据集 leopard>> DataBall 数据集-目标检测系列-豹子 猎豹 检测数据集 leopard 数据量&#xff1a;5k 想要进一步了解&#xff0c;请联系。 DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#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&#xff0c;也叫redis对象&#xff1a; 这就redis的头信息&#xff0c;占有16个字节 redis中有两个热门数据结构 1.SkipList&#xff0c;跳表&#xff0c;首先是链表&#xff0c;和普通链表有以下差异&am…...

机器学习模型评估与选择

前言 承接上篇讲述了机器学习有哪些常见的模型算法&#xff0c;以及使用的场景&#xff0c;本篇将继续讲述如何选择模型和评估模型。几个概念了解一下&#xff1a; 经验误差&#xff1a;模型在训练集上的误差称之为经验误差&#xff1b;过拟合&#xff1a;模型在训练集上表现…...

Web认识 -- 第一课

文章目录 前言一、HTML是什么&#xff1f;二、了解Web1. 基本概念2.Web标准3. Web构成1.前端1. HTML2.CSS3. javaScript4.常见浏览器介绍 2.Web标签构成1.结构标准2.表现标准 -- css3. 行为标准 -- javaScript 总结 前言 这里是我们进入前端学习的开端,在本次更新之后我会陆续…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

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

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

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...