当前位置: 首页 > 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 总结 前言 这里是我们进入前端学习的开端,在本次更新之后我会陆续…...

Recaptcha2 图像识别 API 对接说明

Recaptcha2 图像识别 API 对接说明 本文将介绍一种 Recaptcha2 图像识别2 API 对接说明&#xff0c;它可以通过用户输入识别的内容和 Recaptcha2验证码图像&#xff0c;最后返回需要点击的小图像的坐标&#xff0c;完成验证。 接下来介绍下 Recaptcha2 图像识别 API 的对接说…...

6种MySQL高可用方案对比分析

大家好&#xff0c;我是 V 哥&#xff0c;关于 MySQL 高可用方案&#xff0c;在面试中频频出现&#xff0c;有同学在字节面试就遇到过&#xff0c;主要考察你在高可用项目中是如何应用的&#xff0c;V 哥整理了6种方案&#xff0c;供你参考。 MySQL的高可用方案有多种&#xf…...

FastAPI: websocket的用法及举例

1. Websocket 1.1 Websocket介绍 WebSocket 是一种在单个TCP连接上进行全双工通信的协议&#xff0c;允许客户端和服务器之间相互发送数据&#xff0c;而不需要像传统的HTTP请求-响应模型那样频繁建立和断开连接。 全双工通信(Full-Duplex Communication)是一种通信模式&#…...

JavaSE——面向对象2:方法的调用机制、传参机制、方法递归、方法重载、可变参数、作用域

目录 一、成员方法 (一)方法的快速入门 (二)方法的调用机制(重要) (三)方法的定义 (四)注意事项和使用细节 1.访问修饰符(作用是控制方法的使用范围) 2.返回的数据类型 3.方法名 4.形参列表 5.方法体 6.方法调用细节说明 (五)传参机制 1.基本数据类型的传参机制 …...

Vue+Flask

App.vue 首先要安装 npm install axios<template><div><h1>{{ message }}</h1><input v-model"name" placeholder"Enter your name" /><input v-model"age" placeholder"Enter your age" /><…...

深入剖析 Android Lifecycle:构建高效稳定的应用

在 Android 开发中&#xff0c;管理应用组件的生命周期是至关重要的。正确处理生命周期事件可以确保应用的性能、稳定性和用户体验。Android Framework 提供了一系列的机制来管理应用组件的生命周期&#xff0c;而android.arch.lifecycle库则为我们提供了更简洁、更灵活的方式来…...

ElasticSearch分词器、相关性详解与聚合查询实战

目录 1. ES分词器详解 1.1 基本概念 1.2 分词发生时期 1.3 分词器的组成 切词器&#xff1a;Tokenizer 词项过滤器&#xff1a;Token Filter 字符过滤器&#xff1a;Character Filter 1.4 倒排索引的数据结构 2. 相关性详解 2.1 什么是相关性&#xff08;Relevance&am…...

删除二叉树中以x为根节点的子树(包括根结点)

已知二叉树以二叉链表存储&#xff0c;编写算法完成&#xff1a;对于树中每个元素值为x的结点&#xff0c;删除以它为根的子树&#xff0c;并释放相应的空间。 思想&#xff1a; 删除二叉树采用后序遍历。先删除左子树&#xff0c;然后右子树&#xff0c;最后根。 利用层次遍…...

Netty 与 WebSocket之间的关系

WebSocketProtocolHandler 和 Netty 在处理 WebSocket 连接时扮演不同的角色&#xff0c;但它们通常是一起使用的&#xff0c;尤其是在基于 Netty 的项目中。为了更好地理解它们之间的区别&#xff0c;我们首先需要了解 WebSocket 和 Netty 的基本概念。 WebSocket WebSocket…...

通信工程学习:什么是CSMA/CA载波监听多路访问/冲突避免

CSMA/CA&#xff1a;载波监听多路访问/冲突避免 CSMA/CA&#xff08;Carrier Sense Multiple Access/Collision Avoidance&#xff09;&#xff0c;即载波监听多路访问/冲突避免&#xff0c;是一种用于数据传输时避免各站点之间冲突的算法&#xff0c;尤其适用于无线局域网&…...

贵港市城乡住房建设厅网站/整合营销的特点有哪些

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01;超越昨天的自己系列&#xff08;7&#xff0…...

深圳网站排名怎么做/深圳网络整合营销公司

Oracle索引修复 &#xff0c;ORA-00600: internal error code, arguments: [6200],问题背景&#xff1a;客户反馈DB每天产生的incident日志很多&#xff0c;需要排查原因查看alert日志发现大量的ORA-07445、ORA-00600错误Errors in file /data/oracle/diag/rdbms/bydata/bydata…...

长沙市网站制作多少钱/网站关键词优化方法

tasks.json 配置 解决vscode控制台乱码问题参考文章&#xff1a; &#xff08;1&#xff09;tasks.json 配置 解决vscode控制台乱码问题 &#xff08;2&#xff09;https://www.cnblogs.com/souphm/p/10870296.html 备忘一下。...

怎么做电脑端网站设计稿/电脑培训学校哪家好

1 继承的概念 在Java中&#xff0c;类的继承是指在一个现有类的基础上去构建一个新的类&#xff0c;构建出来的新类被称作子类&#xff0c;现有类被称作父类&#xff0c;子类会自动拥有父类所有可继承的属性和方法。 在程序中&#xff0c;如果想声明一个类继承另一个类&…...

广州seo网站推广优化/今日头条新闻在线看

什么是索引覆盖就是select的数据列只用从索引中就能够取得&#xff0c;不必读取数据行&#xff0c;换句话说查询列要被所建的索引覆盖。那么显然select * from ...是一种拙劣的查询&#xff0c;除非你建立了包含所有列的索引&#xff08;这样建索引脑子进水&#xff09;。对 于…...

高校财务网站建设/时事热点新闻

Android Retrofit详解 文章目录Android Retrofit详解前言使用步骤1.添加Retrofit库的依赖&#xff1a;2.创建用于描述网络请求的接口3.创建Retrofit实例4.发送请求注解第一类&#xff1a;网络请求方法第二类&#xff1a;标记第三类&#xff1a;网络请求参数前言 Retrofit 是一…...