数据库语句学习

news2025/1/8 9:22:05

WHERE AND:

请编写 SQL 语句,从 courses 表中,选取课程名为 'Web' 或者 'Big Data' 的课程信息,如果这两门课程存在,请将这两门课程的信息全部返回。

SELECT * FROM courses
where name in ('Web','Big Data')
-- 等同于
-- WHERE name = 'Web' or name = 'Big Data'

请编写 SQL 语句,查询课程表 courses 中课程创建时间 created_at 在 '2020-01-01' (包括) 到 '2020-05-01' (不包括) 之间的所有课程名称和课程创建时间

select name , created_at from courses
where created_at>='2020-01-01' and created_at<'2020-05-01'

WHERE NOT:

题目要求查询课程表 courses 中,教师 id teacher_id 不为 3,且学生人数 student_count 超过 800 的所有课程,最后返回满足条件的课程的所有信息。

SELECT * FROM courses
WHERE NOT (teacher_id = 3 or student_count < 800)

WHERE NOT IN

请编写 SQL 语句,查询课程表 courses 中所有教师 id teacher_id 不为 1 或 3 的所有课程,并返回满足查询条件的课程名称。

SELECT name FROM courses
WHERE teacher_id not in (1,3)

BETWEEN AND 

BETWEEN AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

查询国籍不为中国和英国的 20~25 岁老师:

SELECT *
FROM teachers
WHERE (age BETWEEN 20 AND 25) AND (country NOT IN ('CN','UK'));

 IS NULL 、IS NOT NULL

查询教师表 teachers 中,国籍为 'CN' 或 'JP' 且 email 信息不为空的所有教师信息。

SELECT * FROM teachers 
WHERE email is not NULL and country in ('CN', 'JP')

  LIKE 模糊查询

例:查询教师表 teachers 中,所有使用 qq 邮箱的教师名字和邮箱。

SELECT name , email FROM teachers
where email like '%qq.com'

order by:升序排列

例:查询教师表 teachers 中教师年龄 age 的唯一值,并将结果按照年龄 age 进行升序排序。
表定义: teachers (教师表)

SELECT distinct age from teachers
-- 升序--
order by age
--或者--
--order by age ASC--
-- 降序 --
--ORDER BY age DESC;--

 limit限制行数:

select * from table_name limit 10;//检索前10行记录
select * from table_name limit 5 ,10;//从第6行开始,检索10行记录,即:检索记录行 6-15

例:从教师表 teachers 中查询一条年龄最大的并且国籍为中国(对应的 country 值为 CN)的教师的信息。

SELECT * FROM teachers
WHERE country = 'CN'
-- 将age升序排列,按理说第一行数据就是年龄最大的
-- 但是不能这样写,检索的结果是第2行
-- order by age
-- LIMIT 1;
-- 要将age降序,那么第2行是最大的
ORDER BY age DESC
limit 1;

使用 AVG() 函数求数值列的平均值

查询教师表 teachers 中教师邮箱为 '@qq.com' 结尾的年龄的平均值,最后返回结果列名显示为 'average_teacher_age'

SELECT AVG(age) AS average_teacher_age from teachers
WHERE email like '%@qq.com'

 MAX():(MIN()相同用法)

例:使用聚合函数 MAX(),从教师表 teachers 中,查询最年长的且国籍为中国的教师信息,并返回该教师的年龄,结果列名显示 max_age

SELECT MAX(age) AS max_age FROM teachers
where country = 'CN'

SUM()

 例:统计课程表 courses 中 teacher_id 为 3 的教师所教授的学生总数,并用select_student_sum 作为结果集列名。

SELECT SUM(student_count) as select_student_sum FROM courses
WHERE teacher_id = 3

round()

例:查询教师表 teachers 中,20 岁(不包含 20 岁)以上教师的平均年龄,返回的字段为 avg_teacher_age ,结果保留四舍五入后的整数。

SELECT round(AVG(age),0) as avg_teacher_age from teachers
where age > 20

ISNULL、IFNULL、COALESCE:

SELECT `name`, `email`, ISNULL(`email`) AS isnull_email
	, IFNULL(`email`, '0') AS ifnull_email
	, COALESCE(`email`, 0) AS coalesce_email
FROM `teachers`;

COUNT() 函数计数

统计教师表中年龄在 20 到 28 岁之间,且国籍为中国(对应的 country 值为 CN)或英国(对应的 country 值为 UK)的教师人数,最后返回统计值,结果列名显示为 teacher_count 。

SELECT count(*) as teacher_count from teachers
-- SELECT * from teachers
-- 以下两行代码效果相同
-- WHERE age between 20 and 28 and country in ('CN', 'UK')
WHERE age >= 20 and age <= 28 and country in ('CN', 'UK')

时间函数:

使用 NOW() 、 CURDATE()、CURTIME() 获取当前时间

例:向记录表 records 中插入当前的日期。表定义: records (记录表)

INSERT INTO records values(now(2))

 使用 DATE()、TIME() 函数提取日期和时间

例:使用 DATE() 、 TIME() 函数从课程表 courses 中查询课程的名字 name 和课程创建时间 created_at,从课程创建时间 created_at 中提取出创建课程的日期与时间,用 created_date 和 created_time 作为结果集列名。

SELECT `name`, `created_at`, 
	DATE_FORMAT(DATE(`created_at`),"%Y-%m-%d") AS `created_date`, 
	DATE_FORMAT(TIME(`created_at`),"%H:%i:%s") AS `created_time`
FROM `courses`;

结果: 

使用 EXTRACT() 函数提取指定的时间信息:

EXTRACT() 函数用于返回日期/时间的单独部分,如 YEAR (年)、MONTH (月)、DAY (日)、HOUR (小时)、MINUTE (分钟)、 SECOND (秒)。

例:从课程表 courses 中查询所有课程的课程名称( name )和课程创建时间( created_at )的小时数,将提取小时数的列名起别名为 created_hour。 

SELECT name, extract(hour FROM created_at) as created_hour FROM courses

结果:

 使用 DATE_FORMAT() 格式化输出日期:

DATE_FORMAT() 函数返回的是字符串格式。

%m 表示月份,%d 表示日期,%Y 表示年份,%w 表示星期

例:查询 courses 表,查询课程创建时间,按照 ’yyyy-MM-dd HH:mm:ss’ 的格式返回结果,返回列名显示为 DATE_FORMAT。

-- 注意'%Y-%m-%d %H:%i:%s'大小写,并且要加单引号,不要忘记
SELECT DATE_FORMAT(created_at, '%Y-%m-%d %H:%i:%s') as DATE_FORMAT FROM courses

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2273129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“AI智慧语言训练系统:让语言学习变得更简单有趣

大家好&#xff0c;我是你们的老朋友&#xff0c;一个热衷于探讨科技与教育结合的产品经理。今天&#xff0c;我想和大家聊聊一个让语言学习变得不再头疼的话题——AI智慧语言训练系统。这个系统可是我们语言学习者的福音&#xff0c;让我们一起来揭开它的神秘面纱吧&#xff0…

Postman接口测试05|实战项目笔记

目录 一、项目接口概况 二、单接口测试-登录接口&#xff1a;POST 1、正例 2、反例 ①姓名未注册 ②密码错误 ③姓名为空 ④多参 ⑤少参 ⑥无参 三、批量运行测试用例 四、生成测试报告 1、Postman界面生成 2、Newman命令行生成 五、token鉴权&#xff08;“…

使用Locust对MongoDB进行负载测试

1.安装环境 pip install pymongo locust 2.设置测试环境 开启MongoDB服务 打开Navicat&#xff0c;新建MongoDB连接 新建test数据库和sample集合 3.编写脚本 load_mongo.py # codingutf-8 from locust import User, task, between, events from pymongo import MongoClie…

【微服务】3、配置管理

微服务配置管理 已掌握的微服务组件及配置管理问题引出 已掌握注册中心、Openfan、远程调用、负载均衡、网关等组件&#xff0c;具备微服务开发能力&#xff0c;但仍存在其他问题待解决。微服务和网关存在大量配置文件&#xff0c;其中包含很多重复配置&#xff0c;如数据库、日…

【Notepad++】Notepad++如何删除包含某个字符串所在的行

Notepad如何删除包含某个字符串所在的行 一&#xff0c;简介二&#xff0c;操作方法三&#xff0c;总结 一&#xff0c;简介 在使用beyoundcompare软件进行对比的时候&#xff0c;常常会出现一些无关紧要的地方&#xff0c;且所在行的内容是变化的&#xff0c;不方便进行比较&…

计算机网络——期末复习(7)期末试卷样例3

一、辨析题&#xff08;共4小题&#xff0c;每小题5分&#xff0c;共20分&#xff09; 1.差错检测是保障网络正常通信的一项重要措施&#xff0c;有多种差错检测算法&#xff08;技术&#xff09;&#xff0c; &#xff08;1&#xff09;以太网和IP协议各自采用的差错校验算法…

STM32-笔记34-4G遥控灯

4G接线 一、项目需求 服务器通过4G模块远程遥控开关灯。 二、项目实现 复制项目文件夹38-wifi控制风扇项目 重命名为39-4G遥控点灯 打开项目文件 加载文件 main.c #include "sys.h" #include "delay.h" #include "led.h" #include "ua…

游戏引擎学习第77天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾昨天的 bug 今天我们继续开发进度&#xff0c;进行调试昨天代码的问题&#xff0c;主要是关于如何跟踪玩家和敌人在世界中的高度位置。虽然我们做的是一款 2D 游戏&#xff0c;但我们希望能够处理多层的房间&#xff0c;玩家…

STM32完全学习——使用定时器1精确延时

一、定时器的相关配置 首先一定要是递减定时器&#xff0c;递增的不太行&#xff0c;控制的不够准确&#xff0c;其次在大于10微秒的延时是非常准确的&#xff0c;小于的话&#xff0c;就没有那没准&#xff0c;但是凑合能用。误差都在一个微秒以内。使用高级定时器也就是时钟…

aardio —— 虚表 —— 模拟属性框

写了个简单的属性框例程&#xff0c;抛砖引玉&#xff0c;期待你做出更丰富强大的功能。 本例演示&#xff1a;折叠子行、选择框、输入文本、输入数值、下拉选择、选择图片、选择颜色、选择字体等功能。 只有想不到&#xff0c;没有做不到&#xff0c;发挥你的想象力吧。 imp…

[微服务]redis主从集群搭建与优化

搭建主从集群 单节点Redis的并发能力是有上限的&#xff0c;要进一步提高Redis的并发能力&#xff0c;就需要搭建主从集群&#xff0c;实现读写分离。 1. 主从集群结构 下图就是一个简单的Redis主从集群结构&#xff1a; 如图所示&#xff0c;集群中有一个master节点、两个s…

设计模式 行为型 观察者模式(Observer Pattern)与 常见技术框架应用 解析

观察者模式&#xff08;Observer Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时&#xff0c;会通知所有观察者对象&#xff0c;使它们能够自动更新。 一…

《Opencv》图像的旋转

一、使用numpy库实现 np.rot90(img,-1) 后面的参数为-1时事顺时针旋转&#xff0c;为1时是逆时针旋转。 import cv2 import numpy as np img cv2.imread(./images/kele.png) """方法一""" # 顺时针90度 rot_1 np.rot90(img,-1) # 逆时针90度…

Android Studio 安装配置(个人笔记)

Android studio安装的前提是必须保证安装了jdk1.8版本以上 一、查看是否安装jdk cmd打开命令行&#xff0c;输入java -version 最后是一个关键点 输入 javac &#xff0c;看看有没有相关信息 没有就下载jdk Android studio安装的前提是必须保证安装了jdk1.8版本以上 可以到…

spicy.signal 报错解决

报错&#xff1a; ImportError: cannot import name ‘kaiser’ from ‘scipy.signal’ 解决办法 找到import的位置&#xff1a;将 from scipy.signal import kaiser 修改为 from scipy.signal.windows import kaiser

学习threejs,导入AWD格式的模型

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.AWDLoader AWD模型加…

【Dify】Dify自定义模型设置 | 对接DMXAPI使用打折 Openai GPT 或 Claude3.5系列模型方法详解

一、Dify & DMXAPI 1、Dify DIFY&#xff08;Do It For You&#xff09;是一种自动化工具或服务&#xff0c;旨在帮助用户简化操作&#xff0c;减少繁琐的手动操作&#xff0c;提升工作效率。通过DIFY&#xff0c;用户能够快速完成任务、获取所需数据&#xff0c;并且可以…

5. CSS引入方式

5.1 CSS的三种样式 按照 CSS 样式书写的位置(或者引入的方式)&#xff0c;CSS样式表可以分为三大类&#xff1a; 1.行内样式表&#xff08;行内式&#xff09; 2.内部样式表&#xff08;嵌入式&#xff09; 3. 外部样式表&#xff08;链接式&#xff09; 5.2 内部样式表 …

大型语言模型(LLM)中的tokens是什么

大型语言模型(LLM)中的tokens是什么 在大型语言模型(LLM)中,tokens是文本处理的基本单位,它可以是一个单词、一个字符、一个标点符号,或者是一个特殊的标记。以下是关于tokens的详细介绍及举例: 一、tokens的定义和作用 定义:tokens是将文本分割成的一个个有意义的…

计算机网络 (29)网络地址转换NAT

前言 网络地址转换&#xff08;Network Address Translation&#xff0c;NAT&#xff09;是计算机网络中的一种重要协议&#xff0c;它主要用于将私有IP地址转换为公共IP地址&#xff0c;以实现内部网络与外部网络之间的通信。 一、基本概念 NAT是一种在局域网&#xff08;LAN&…