SQL语言(数据库编程)
一.select查询
在数据库编程中,SQL(Structured Query Language,结构化查询语言)是一种用于管理关系数据库管理系统(RDBMS)的标准编程语言。其中,SELECT 是 SQL 中最常用的查询语句,用于从数据库表中检索数据。
下面是一个基本的 SELECT 查询的示例:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
SELECT:指定要检索的列。FROM:指定要从中检索数据的表。WHERE(可选):指定用于过滤结果的条件。
示例
假设我们有一个名为 employees 的表,其中包含以下列:id, name, age, 和 department。
-
检索所有列和所有行:
SELECT * FROM employees;
-
检索特定列:
SELECT name, age FROM employees;
- 添加条件:
检索所有年龄大于 30 的员工的姓名和年龄:
SELECT name, age FROM employees WHERE age > 30;
- 排序结果:
使用 ORDER BY 子句对结果进行排序。默认是升序(ASC),但也可以指定降序(DESC)。
检索所有年龄大于 30 的员工,并按年龄降序排序:
SELECT name, age FROM employees WHERE age > 30 ORDER BY age DESC;
- 限制返回的行数:
使用 LIMIT 子句限制返回的行数。这对于分页特别有用。
检索前 10 个员工的姓名和年龄:
SELECT name, age FROM employees LIMIT 10;
- 使用聚合函数:
SQL 提供了许多聚合函数,如 COUNT(), SUM(), AVG(), MAX(), 和 MIN(),用于对一组值执行计算,并返回单个值。
计算 employees 表中的员工数量:
SELECT COUNT(*) FROM employees;
- 分组和过滤分组:
使用 GROUP BY 子句将数据分成多个逻辑组,并使用 HAVING 子句对分组进行过滤。
按部门分组并计算每个部门的员工数量,仅显示员工数量大于 5 的部门:
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department
HAVING employee_count > 5;
这只是 SELECT 查询的基本用法。SQL 是一个功能强大的语言,还有许多高级功能和技巧可以探索和学习。
二.函数
在数据库编程中,SQL(Structured Query Language)提供了丰富的内置函数,这些函数可以用于在查询中执行各种计算和转换操作。以下是一些常见的SQL函数分类及其示例:
字符串函数
- CONCAT():连接两个或多个字符串。
SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM employees; - UPPER() 和 LOWER():将字符串转换为大写或小写。
SELECT UPPER(name) FROM employees; - TRIM():去除字符串前后的空格。
SELECT TRIM(' Hello World ') AS trimmed_string; - SUBSTRING() 或 SUBSTR():提取字符串的子串。
SELECT SUBSTRING(name, 1, 3) AS initial_letters FROM employees; - LENGTH() 或 CHAR_LENGTH():返回字符串的长度。
SELECT LENGTH(name) AS name_length FROM employees;
数值函数
- ABS():返回数值的绝对值。
-
SELECT ABS(-10) AS absolute_value; - ROUND():对数值进行四舍五入。
SELECT ROUND(123.4567, 2) AS rounded_value; - CEIL() 或 CEILING():返回大于或等于给定数值的最小整数。
SELECT CEIL(123.456) AS ceiling_value; - FLOOR():返回小于或等于给定数值的最大整数。
SELECT FLOOR(123.456) AS floor_value; - MOD():返回两数相除的余数。
SELECT MOD(10, 3) AS remainder;
日期和时间函数
- NOW():返回当前日期和时间。
SELECT NOW() AS current_datetime; - CURDATE():返回当前日期。
SELECT CURDATE() AS current_date; - CURTIME():返回当前时间。
SELECT CURTIME() AS current_time; - DATE_ADD() 和 DATE_SUB():给日期添加或减去指定的时间间隔。
SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY) AS next_day; - DATEDIFF():返回两个日期之间的天数差。
SELECT DATEDIFF('2023-10-23', '2023-10-01') AS days_diff; - EXTRACT():从日期或时间值中提取指定的部分(例如年、月、日)。
SELECT EXTRACT(YEAR FROM CURDATE()) AS current_year;
聚合函数
- COUNT():计算行数。
SELECT COUNT(*) FROM employees; - SUM():计算数值列的总和。
SELECT SUM(salary) AS total_salary FROM employees; - AVG():计算数值列的平均值。
SELECT AVG(salary) AS average_salary FROM employees; - MAX() 和 MIN():返回数值列的最大值和最小值。
SELECT MAX(salary) AS max_salary FROM employees; SELECT MIN(salary) AS min_salary FROM employees; - GROUP_CONCAT():将多个行的值连接成一个字符串。
SELECT department, GROUP_CONCAT(name) AS employees_list FROM employees GROUP BY department;
这些只是SQL中可用函数的一部分。不同的数据库管理系统(如MySQL、PostgreSQL、SQL Server等)可能还提供特定于该系统的额外函数。当编写SQL查询时,最好查阅特定数据库的文档以了解可用的函数及其用法。
三.多表查询
在数据库编程中,多表查询是SQL(Structured Query Language)的一个重要组成部分,它允许用户从多个相关的表中检索数据。多表查询通常涉及连接(JOIN)操作,这些操作可以基于两个或多个表之间的相关列来组合数据。以下是一些常见的多表查询类型及其示例:
1. 内连接(INNER JOIN)
内连接返回两个表中都有的记录
相关文章:
SQL语言(数据库编程)
一.select查询 在数据库编程中,SQL(Structured Query Language,结构化查询语言)是一种用于管理关系数据库管理系统(RDBMS)的标准编程语言。其中,SELECT 是 SQL 中最常用的查询语句,用于从数据库表中检索数据。 下面是一个基本的 SELECT 查询的示例: SELECT column1…...
C#面向对象(OOPs)中的多态性
本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com C#面向对象(OOPs)中的多态性 概述:在编程语言和类型理论中,多态性是为不同类型的实体提供单个接口,或者使用单个符号来表示多个不同的类型。多态对象是能够呈现多种形式的…...
(二十一)从零开始搭建k8s集群——kubernates核心组件及功能介绍
前言 Kubernetes是一个可移植、可扩展、开源的平台,用于管理容器化的工作负载和服务,它促进了声明性配置和自动化。Kubernetes容器可以持续开发、集成和部署:可靠且频繁地构建和部署容器镜像,快速有效地回滚;开发与运…...
[云原生] k8s之存储卷
一、emptyDir存储卷 当Pod被分配给节点时,首先创建emptyDir卷,并且只要该Pod在该节点上运行,该卷就会存在。正如卷的名字所述,它最初是空的。Pod 中的容器可以读取和写入emptyDir卷中的相同文件,尽管该卷可以挂载到每…...
【PCL】(二十七)基于法线差的点云分割
(二十七)基于法线差的点云分割 图片来源 提出这个方法的论文:Difference of Normals as a Multi-Scale Operator in Unorganized Point Clouds 算法流程: 在大尺度的范围内(半径 r 1 r_1 r1)估计每个点…...
智慧公厕系统的组成部分有什么?
智慧公厕系统是现代城市管理中一项重要的创新,利用物联网、互联网、大数据、云计算、自动化控制等先进的技术手段,提供高效便捷的公厕服务。从信息系统的角度来看,智慧公厕系统主要由硬件、软件和网络组成,硬件、软件和网络三大部…...
[数据集][目标检测]芒果叶病害数据集VOC+YOLO格式4000张5类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):4000 标注数量(xml文件个数):4000 标注数量(txt文件个数):4000 标注…...
Linux: 预备
计算机结构基础 操作系统: 内核 (管理软硬件) shell(给用户使用操作系统的方式) 操作系统的目标 对硬件抽象 原因:操作系统是对软硬件资源管理的应用软件抽象:内存管理, 进程管理, 文件管理, 驱动管理软件:驱动程序(给软件提供访问硬件的软件)硬件:磁盘(对应文件), 网卡等隔离…...
ChatGPT 升级出现「我们未能验证您的支付方式/we are unable to authenticate」怎么办?
ChatGPT 升级出现「我们未能验证您的支付方式/we are unable to authenticate」怎么办? 在订阅 ChatGPT Plus 时,有时候会出现以下报错 : We are unable to authenticate your payment method. 我们未能验证您的支付方式。 出现 unable to a…...
JavaWeb - 3 - JavaScript(JS)
JavaScript(JS)官方参考文档:JavaScript 教程 JavaScript(简称:JS)是一门跨平台、面向对象的脚本语言,是用来控制网页行为的,它能使网页可交互(脚本语言就不需要编译,直接通过浏览器…...
基于springboot+vue的美食烹饪互动平台
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...
linux中操作服务器常用命令
在Linux中操作服务器时,常用的命令包括: ls:列出目录内容。 cd:切换目录。 pwd:显示当前所在的目录路径。 mkdir:创建一个新的目录。 rmdir:删除一个空的目录。 cp:复制文件或目录。…...
最简k8s部署(AWS Load Balancer Controller使用)
问题 我需要在k8s集群里面部署springboot服务,通过k8s ingress访问集群内部的springboot服务,应该怎么做? 这里假设已经准备好k8s集群,而且也准备好springboot服务的运行镜像了。这里我们将精力放在k8s服务编排上面。 一图胜千言…...
差距拉开了!量化大厂最新业绩排行曝光!
经历了一月份的失落和二月份绝地反攻,量化大厂们的整体业绩备受关注。 而今年2月份的量化战绩,甚为关键! 毕竟市场指数“前低后高”,基金经理与投资人开年以来,共同经历了“惊心动魄”的考验。 量化大厂,…...
【Web前端】Vue核心基础
文章目录 1. Vue简介2. Vue官网使用指南3. 初识Vue3.1 搭建Vue开发环境3.2 HelloWorld案例3.3 el与data的两种写法3.4 MVVM模型3.5 模板语法 4. 数据绑定4.1 v-bind单向数据绑定4.2 v-model双向数据绑定 5. 事件处理5.1 v-on绑定事件5.2 事件修饰符5.3 键盘事件 6. 计算属性6.1…...
Linux操作系统项目上传Github代码仓库指南
文章目录 1 创建SSH key2.本地git的用户名和邮箱设置3.测试连接4.创建仓库5.终端项目上传 1 创建SSH key 1.登录github官网,点击个人头像,点击Settings,然后点击SSH and GPG keys,再点击New SSH key。 Title 可以随便取,但是 key 需要通过终端生成。 Linux终端执行…...
机器学习--循环神经网路(RNN)2
在这篇文章中,我们介绍一下其他的RNN。 一.深层RNN 循环神经网络的架构是可以任意设计的,之前提到的 RNN 只有一个隐藏层,但 RNN 也可以是深层的。比如把 xt 丢进去之后,它可以通过一个隐藏层,再通过第二个隐藏层&am…...
sheng的学习笔记-AI-多分类学习:ECOC,softmax
目录:sheng的学习笔记-AI目录-CSDN博客 基本术语: 若我们欲预测的是离散值,例如“好瓜”“坏瓜”,此类学习任务称为“分类”(classification); 若欲预测的是连续值,例如西瓜成熟度0.95、0.37,…...
ChatGPT Plus 支付出现「您的银行卡被拒绝/your card has been declined」怎么办?
ChatGPT Plus 支付出现「您的银行卡被拒绝/your card has been declined」怎么办? 在订阅 ChatGPT Plus 或者 OpenAI API 时,有时候会出现已下报错 : Your card has been declined. 您的银行卡被拒绝 出现这种错误,有以下几个解…...
typescript学习(更新中)
目录 开发环境搭建类型如何声明有哪些类型编译配置文件 开发环境搭建 npm i -g typescripttsc检查是否安装成功 类型如何声明 // 先声明再赋值 let a: number a 1// 直接赋值 let b 1function sum(a: number, b: number): number {return a b } console.log(sum(1, 2))有…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
iview框架主题色的应用
1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...
Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...
