最基本的SELECT...FROM结构

第0种:最基本的查询语句

SELECT 字段名,字段名 FROM 表名

SELECT 1;

SELECT 1+1,3*2;

FROM

SELECT 1+1,3*2 FROM DUAL;#dual:伪表 我们可以用它来保持一个平衡

这里我们的值不需要在任何一个表里,所以我们可以用dual来表示表

这里的*号代表的就是所有内容.这里的字段前面是id,后面是名,后面的是姓.邮箱,号码,雇佣时间,部门id,工资,奖金比例,管理者id,部门id

比如我们想查询一下员工的id

SELECT employee_id,last_name,salary FROM employees;

就会出现下面的结果

最后一列记得不要加逗号.加了就会出错,前面要加逗号,不加就变成字段别名了,

列的别名:

别名是怎么回事呢,其实就是一个外号.给他起另一个名字,

大家尽量熟悉熟悉这个 表的内容 ,我们之后都会用这个表

SELECT employee_id,last_name,department_id FROM emplyees;

我们用navicat运行代码之后,就会出现一个表在下面,这个被叫做结果集,结果集的名字就是我们表里的名字,能不能不一致呢,是可以的,我们可以在字段名的后面加一个空格,在写我们希望他叫的名字.比如 我们想给emplyee_id叫emp_id就可以这样写

SELECT emplyees_id emp_id,last_name,department_id FROM employees;

这里就会发现我们结果集的名字变成了emp_id,也就是我们起的别名

我们还能写上AS,它是ALIAS的缩写翻译也就是别名,是可以省略的,如图.

别名可以使用一对""引起来

大家可能会奇怪为什么要加一个"",这不是很鸡肋吗,其实在有一些场景下就不能不去了

比如我们这个代码SELECT employee_id,last_name,salary*2 annual sala FROM employees;我们希望他叫annual sala

大家可能看到这个报错,就害怕,其实不用,因为如果不报错信息,让你自己的去找,短句还好,长一点不得要你的命.就像医生,明明有精确的仪器,你硬要望闻问切,那是不是就不合适了.

SELECT employee_id,last_name,salary*2 "annual sala" FROM employees;

这样是不是就不报错了

可能大家会疑惑单引号可不可以,我们也试一试

也可以,注意我们强调我们是要用""引起来,不要用'',因为mysql的自语言不太标准,如果安装SQL标准ANSI里的要求就是"",大家开发的时候不要用'',太不专业了会被人笑话.单引号在字符串和日期的变量的时候使用也是可以的..

这里还是那个问题,字符串在sql语言的ANSI规范里要求用单引号,但是mysql不是太严谨,如果我们用的是oracle这里就会报错.我们还是要严谨一点.养成好习惯

去重重复行

我们要看看一共有多少个部门在我们的表里,这个述求是不是合情合理啊.

错误的:SELECT department_id FROM employees;

比如现在领导让我们列一下我们一共有哪些部门,如果我们打印这个是不是就不太合适,如果有1000个员工就要打印1000条出来,我们是不是要去掉重复值阿.

我们就在前面加一个关键词DISTINCT

正确的:SELECT DISTINCT department_id FROM employees;

错误的:SELECT salary,DISTINCT department_id FROM employees;

大家觉得这么写是正确的吗,

当然是错误的,如果没有DISTINCT的话肯定是没问题的,但是因为我们有了DISTINCT,肯定是不能执行的,因为salary有107条,但是你把部门去重了可能只有12个部门,那一个字段107条一个字段12条,这样肯定不行,那如果我们把DISTINCTdepartment_id放在前面呢,这样靠谱吗,那你可能会觉得前面12条后面107条那不是还是不对吗,其实这里是这样解释的,因为DISTINCT它不仅仅考虑了部门id的去重还考虑了salary去重,代表就是不同部门里的不同工资的情况.

它仅仅是没有报错,但是没有实际意义

SELECT DISTINCT department_id,salary FROM employees;

查了个寂寞.

空值是什么,是否参与运算

,就是我们刚才NULL那个字段的记录值,我们奖金率这个字段就有很多员工是空值.那么我们考虑一个事情

空值是否参与运算,null和0和''这个有什么关系我们要知道null是不等同的.就像我们有一个字段员工id是null,代表的就是不知道他的id,如果你写了0,那么就把这个人仍到部门,null代表的是不清楚,不是0.空值如果参与运算会是什么效果呢.那我们算一下员工的年工资.

SELECT employees_id,salary "月工资",salary*(1+commission_pct)*12 AS "年工资" FROM employees;

这里我们发现没有报错,但是明明有月工资却年工资是空的,就感觉不太对,有些字段就有值,有些就没值.

这是为什么,我们把奖金率也加入大家就找到原因了

我们会发现奖金率是空的时候,年工资也是空的,所以只要空值加入运算,结果就是空值,另外大家可能想把奖金率当成0来计算,这就陷入陷阱了,我们说空不等于0.,我们想做这种运算那就要用到一个函数ifnull,这个我们后面再说22.28

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

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

相关文章

基于Spring的单点登录SSO实现(redis+JWT+SpringSecurity)

本文介绍了基于Spring的单点登录SSO实现(redisJWTSpringSecurity) 方法。 一、应用场景 平台包含多个系统应用的,实现只要在一个应用登录一次,就可以访问其他相互信任的应用。常用于多应用平台中,此时常常建立门户网站…

JVM中的GC过程

堆内存结构:在详细讨论GC过程之前,需要了解JVM堆内存的结构。JVM堆内存通常被分为新生代(Young Generation)和老年代(Old Generation),其中新生代又进一步细分为Eden区(Eden Space&a…

9、类和对象

9.1 封装 9.1.1 封装的例子 class Student { public:string name;int age; public:void setName(string name_) {name name_;} }; int main() {Student s1;s1.setName("zhangsan");return 0; }类中的行为都叫做成员,例如成员属性,成员变量&…

Spring Cloud全解析:负载均衡算法

负载均衡算法 集中式负载均衡 在服务的消费方和提供方之间使用独立的LB设施(可以是硬件,如F5,也可以是软件,如Nginx),由该设施负责把访问请求通过某种策略转发至服务的提供方 进程内负载均衡 将LB逻辑集成到消费方&#xff0c…

Redis篇 - 深入了解查询缓存与缓存带来的问题

引言 在现代Web应用程序中,为了提高数据访问速度和减轻数据库的压力,缓存技术变得越来越重要。Redis作为一款高性能的键值存储系统,在缓存领域有着广泛的应用。然而,随着缓存的引入,一系列新的挑战也随之而来。本文将…

飞速(FS)S5800-48T4S:如何使用MLAG?

MLAG(多机箱链路聚合组)可实现无缝故障转移并优化带宽利用率,从而增强网络冗余和提高可扩展性。它允许多台交换机作为一个统一实体运行,从而降低停机风险并确保网络运行不中断。飞速(FS)S5800-48T4S是一款支…

IP学习——Fiveday

设备排错 [R1]display ip interface brief 查看路由器接口的IP地址信息 [R1]display current-configuration int g0/0/1.10 查看路由器接口的IP地址信息 TG---> trunk查看vlan指令:displayvan其中UT--->accessc.vlan确认完成后 即链路层配置完成排查网络层错误 排查终端主…

二维高斯函数的两种形式

第一种形式很常见 多元正态分布 多元正态分布(Multivariate Normal Distribution),也称为多变量正态分布或多维正态分布,是统计学中一种重要的概率分布,用于描述多个随机变量的联合分布。 假设有 n n n 个随机变量…

Monkey日志ANR、CRASH、空指针异常及其他异常数据分析

引言 在Android开发过程中,monkey测试是一种常用的随机测试手段,用于模拟用户的各种操作来发现应用中的稳定性问题。通过monkey测试生成的日志文件包含了丰富的信息,包括应用程序崩溃(Crash)、无响应(ANR&…

【LabVIEW学习篇 - 18】:人机界面交互设计02

文章目录 错误处理函数简单错误处理器通用错误处理器清楚错误合并错误错误代码至错误簇转换查找第一个错误 鼠标指针 错误处理函数 在LabVIEW中,是通过错误输入簇和错误输出簇来传递错误信息,可以将底层错误信息传递到上层VI。设计人员需要对不同程度的…

2024 数学建模高教社杯 国赛(C题)| 农作物的种植策略 | 建模秘籍文章代码思路大全

铛铛!小秘籍来咯! 小秘籍团队独辟蹊径,运用等多目标规划等强大工具,构建了这一题的详细解答哦! 为大家量身打造创新解决方案。小秘籍团队,始终引领着建模问题求解的风潮。 抓紧小秘籍,我们出发…

过滤器(Filter)和拦截器(Interceptor)

在Web开发中,过滤器(Filter)和拦截器(Interceptor)都是重要的组件,它们都可以对HTTP请求进行预处理、后处理以及一些额外的操作。然而,它们之间在多个方面存在明显的区别 1. 运行位置 过滤器&…

在python项目的docker镜像里使用pdm管理依赖

前言 在 DjangoStarter 项目中,我已经使用 pdm 作为默认的包管理器,不再直接使用 pip 所以部署的时候 dockerfile 和 docker-compose 配置也得修改一下。 dockerfile 首先修改一下 dockerfile ARG PYTHON_BASE3.11FROM python:$PYTHON_BASE# 设置 pytho…

高并发内存池(一):项目介绍与定长内存池的实现

目录​​​​​​​ 项目介绍 池化技术 内存池 内存碎片 malloc工作原理 定长内存池 申请内存 释放内存 定位new VirtualAlloc函数 封装VirtualAlloc 定长内存池的最终代码 项目介绍 项目原型:goole的开源项目tcmalloc(Thread-Caching Mal…

9.5 面试题

1、多继承下,地址转换问题: 在 C 中,如果类 C 是多继承自 A 和 B,在执行强制类型转换时,地址值是否发生改变,取决于内存布局和继承方式。具体来说: 1. 标准布局下(无虚继承&#x…

CIOE中国光博会&电巢科技即将联办“智能消费电子创新发展论坛”

在科技浪潮汹涌澎湃的当下,从通信领域的高速光传输,到消费电子中的高清显示与先进成像技术,光电技术的应用范围不断拓展且日益深化。而AIGC 凭借其丰富的内容供给与个性化反馈能力,正为新一代消费电子及智能穿戴产品开辟崭新的发展…

前端请求的路径baseURL怎么来的 ?nodejs解决cors问题的一种方法

背景:后端使用node.js搭建,用的是express 前端请求的路径baseURL怎么来的 ? 前后端都在同一台电脑上运行,后端的域名就是localhost,如果使用的是http协议,后端监听的端口号为3000,那么前端请求…

#include <iostream>介绍

在C编程中&#xff0c;#include <iostream> 是一个非常重要的预处理指令&#xff0c;用于引入输入输出流库。以下是对 #include <iostream> 的详细介绍&#xff1a; 1. 作用 #include <iostream> 指令的主要作用是使程序能够使用标准输入输出流的功能。它包…

S3C2440开发板:时钟,PWM定时器控制蜂鸣器发声

时钟 时钟和电源管理模块由三部分组成&#xff1a;时钟控制&#xff0c;USB 控制和电源控制。 S3C2440A 中的时钟控制逻辑可以产生必须的时钟信号&#xff0c;包括 CPU 的 FCLK&#xff0c;AHB 总线外设的 HCLK 以及 APB 总线外设的 PCLK。S3C2440A 包含两个锁相环&#xff08…

VBA进行excel坐标转换

在Excel里利用坐标绘图时&#xff0c;可以比较容易想到采用数据透视表&#xff0c;但是数据透视表生成的图不可更改&#xff0c;因此本案例采用VBA进行坐标变换而不改变原始值来转换图像&#xff0c;即实现图像的左右翻转和上下翻转&#xff0c;如下图所示&#xff0c;选择map的…