Mysql梳理3——基本的SELECT语句

news/2024/9/18 12:38:55/ 标签: mysql, 数据库

3.1  SELECT

SELECT 1;  #没有任何子句
SELECT 9/2  #没有任何子句

3.2  SELECT...FROM

语法:

SELECT  标识选择哪些列  FROM  标识从哪个表选择

选择全部列:

SELECT *  FROM  departments;

注意:一般情况下,除非需要使用表中所有的字段数据,最好不要使用通配符‘*’。使用通配符虽然可以节约输入层查询语句的时间,但是获取不需要的列数据通常会降低查询和所使用的应用程序的效率。通配符的优势是,当不知道列的名称是,可以通过它获取他们。

3.2 列的别名

作用:重命名一个列

便于计算紧跟列名,也可以在列名和别名之间加入关键字AS,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。 AS 可以省略,建议别名简短,见名知意

举例 SELECT department_id, location_id FROM departments;

SELECT last_name AS name, commission_pct comm FROM employees; 

3.3 去除重复行

默认情况下,查询会返回全部行,包括重复行。

  

SELECT DISTINCT department_id,salary FROM employees; 

1. DISTINCT 需要放到所有列名的前面,如果写成

SELECT salary, DISTINCT department_id FROM employees

会报错。

2. DISTINCT 其实是对后面所有列名的组合进行去重,你能看到最后的结果是 74 条,因为这 74 个部门id不同,都有 salary 这个属性值。

SELECT DISTINCT department_id FROM employees; 

能消除重复记录,但只能取一个字段,现在要同时取id,name这2个字段的值。

SELECT DISTINCT department_id,salary  FROM employees;

可以取多个字段,但只能消除这2个字段值全部相同的记录
所以用distinct达不到想要的效果,用group by可以解决这个问题

如果你想要看都有哪些不同的部门(department_id),只需要写DISTINCT department_id即可,后面不需要再加其他的列名了。

3.4 空值参与运算

所有运算符或列值遇到null值,运算的结果都为null

SELECT employee_id,salary,commission_pct, 
12 * salary * (1 + commission_pct) "annual_sal" FROM employees;

这里你一定要注意,在 MySQL 里面, 空值不等于空字符串。一个空字符串的长度是 0,而一个空值的长 度是空。而且,在 MySQL 里面,空值是占用空间的。

3.5  着重号

mysql> select * from order;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order' at line 1

mysql> select * from `order`;
+----------+------------+
| order_id | order_name |
+----------+------------+
|        1 | shkstart   |
|        2 | tomcat     |
|        3 | dubbo      |
+----------+------------+
3 rows in set (0.00 sec)

mysql> select * from `ORDER`;
+----------+------------+
| order_id | order_name |
+----------+------------+
|        1 | shkstart   |
|        2 | tomcat     |
|        3 | dubbo      |
+----------+------------+
3 rows in set (0.00 sec)

查询成功,我们需要保证表中的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在 SQL语句中使用一对``(着重号)引起来。

3.6  查询常数

SELECT 查询还可以对常数进行查询。

对的,就是在 SELECT 查询结果中增加一列固定的常数列。这列的取值是我们指定的,而不是从数据表中动态取出的。

你可能会问为什么我们还要对常数进行查询呢?

SQL 中的 SELECT 语法的确提供了这个功能,一般来说我们只从一个表中查询数据,通常不需要增加一个固定的常数列,但如果我们想整合不同的数据源,用常数列作为这个表的标记,就需要查询常数。

比如说,我们想对 employees 数据表中的员工姓名进行查询,同时增加一列字段 corporation ,这个 字段固定值为“尚硅谷”,可以这样写:

4. 显示表结构 使用DESCRIBE 或 DESC 命令,表示表结构。 其中,各个字段的含义分别解释如下:

Field:表示字段名称。

Type:表示字段类型,这里 barcode、goodsname 是文本型的,price 是整数类型的。

Null:表示该列是否可以存储NULL值。

Key:表示该列是否已编制索引。PRI表示该列是表主键的一部分;UNI表示该列是UNIQUE索引的一 部分;MUL表示在列中某个给定值允许出现多次。

Default:表示该列是否有默认值,如果有,那么值是多少。 Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

SELECT  '尚硅谷'  as corporation, last_name FROM employees;

SELECT 字段1,字段2

FROM 表名

WHERE 过滤条件

使用WHERE 子句,将不满足条件的行过滤掉

WHERE子句紧随 FROM子句

SELECT employee_id, last_name, job_id, department_idFROM employeesWHERE department_id = 90 ;

http://www.ppmy.cn/news/1525010.html

相关文章

新能源汽车安全问题如何解决?细看“保护罩”连接器的守护使命

「当前市场上绝大部分电池的安全系数远远不够」。 在一场世界动力电池大会上,宁德时代的董事长曾毓群这样犀利直言。 从汽车开始向电动化转型升级那天起,动力电池的安全隐患就一直是个老生常谈的话题了。曾毓群的这句话,直接点明了行业的发展…

ubuntu24.04 为什么扬声器没有声音,但是戴上耳机有声音

扬声器在 Ubuntu 24.04 下没有声音,但耳机有声音,可能是由于以下几个原因造成的: 1. 输出设备设置问题 系统可能将默认输出设备设置为耳机,而非扬声器。你可以检查或更改音频输出设备: 打开“设置” -> “声音”…

InternVL2- dockerfile环境变量持久化使用`ENV`而不是`RUN export`来设置环境变量,以确保环境变量在容器运行时仍然可用

在Dockerfile中使用RUN export命令设置环境变量并不是一种持久化的方式。当你在Dockerfile中使用export命令时,它只会在当前构建阶段生效,并不会被持久化到生成的镜像中。这是因为export命令实际上是在shell环境中设置环境变量,而Docker构建过…

推荐7款可以写论文的AI免费工具,原创一键生成神器!

在当今学术研究和写作领域,AI技术的应用越来越广泛,特别是在论文写作方面。为了帮助学生和研究人员提高写作效率和质量,以下推荐7款可以写论文的AI免费工具,这些工具均具备一键生成高质量论文的功能,是原创写作的神器。…

HarmonyOS应用开发( Beta5.0)一杯冰美式的时间“拿捏Grid组件”

常见情形 在很多手机商城的页面中会出现类似网格状一样的情况,例如: 京东 ​这里呢是采用Grid组件中的控制滚动,里面的rowsTemplate属性为一行且不对列的行数属性进行操作,这样的话就可以控制水平滑动了。 2.淘宝 ​ 这里就是极其简单的2*…

vscode spring boot项目编辑yaml不自动提示补全如何解决

文章目录 properties能够自动弹出提示但是YAML文件就不会自动弹出提示ctrl空格不出提示的解决办法 properties能够自动弹出提示 但是YAML文件就不会自动弹出提示 只是不会自动弹出来而已,按ctrl空格即可解决 ctrl空格不出提示的解决办法 如果按ctrl空格没有用 …

Python计算机视觉第九章-图像分割

目录 9.1 图割(Graph Cut) 9.1.1 从图像创建图 9.1.2 用户交互式分割 9.2 利用聚类进行分割 9.3 变分法 9.1 图割(Graph Cut) 图论中的图(graph)是由若干节点&#xff0…

Go语言 管道1

本篇文章主要介绍Go语言 无缓冲管道和有缓冲管道概念,特点及其使用示例。 目录 无缓冲通道 有缓冲的管道 语法 特点 代码示例 未分配空间示例 读取次数不一致示例 For-range遍历 总结 无缓冲通道 sync.RWMutex{} 当涉及到多go程时,c语言使用互…

Vue3实现打印功能

1、安装插件 npm i vue3-print-nb --save 2、main.js全局配置 import print from vue3-print-nb app.use(print) 3、设置打印区域 为打印区域设置 id 选择器 <div id"printData"><el-table border :data"tableData" style"width: 100%…

[DCVRP] 基于复杂网络的k-opt算法解空间表示(五)

基于复杂网络的k-opt算法解空间表示 如果想提高算法,了解解空间结构是一个很好的突破口。使用 节点表示可行解,边表示可行解之间的领域关系。然后通过计算法复杂网络的基本指标分析算法解空间结构,其目的是得出优秀算法的解空间结构所呈现的特征,基于分析结论设计一个算法…

Python——贪吃蛇

以下是一个简单的贪吃蛇游戏的Python代码示例&#xff1a; import pygame import time import random# 初始化 Pygame pygame.init()# 定义颜色 BLACK (0, 0, 0) WHITE (255, 255, 255) RED (255, 0, 0) GREEN (0, 255, 0) BLUE (0, 0, 255)# 设置屏幕尺寸 screen_width …

[000-01-008].第05节:OpenFeign高级特性-超时控制

我的后端学习大纲 SpringCloud学习大纲 1.1.OpenFeign超时的情况&#xff1a; 在Spring Cloud微服务架构中&#xff0c;大部分公司都是利用OpenFeign进行服务间的调用&#xff0c;而比较简单的业务使用默认配置是不会有多大问题的&#xff0c;但是如果是业务比较复杂&#xff…

【系统架构设计师-2017年真题】案例分析-答案及详解

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 【材料1】问题1问题2【材料2】问题1问题2问题3【材料3】问题1问题2问题3【材料4】问题1问题2问题3【材料5】问题1问题2问题3【材料1】 阅读以下关于软件架构评估的叙述,在答题纸上回答问题1和问题2。 【说明】某单位…

SpringMVC基于注解使用:上传下载

01-文件下载 基于servlet api的文件下载 注意一点content-disposition是以文件下载的方式打开意思是客户端地址栏不会改变&#xff0c; 如果注销了那句话就会跳转到下载图片的图片里面去&#xff0c;就在网页中显示了 基于spring ResponseEntity的文件下载 不支持缓冲区 一次…

【C++】Linux平台C++实现简单socket通信

Unix 域套接字 Unix 域套接字非常适合在同一台机器上的不同进程之间进行高效的通信。由于它们不需要网络协议栈&#xff0c;因此在性能上通常优于 TCP/IP 套接字。 Socket server端 StartSocketServer.cpp源代码&#xff1a; #include <iostream> #include <unist…

【HTML】Html标签

目录 结构盒子div 标签语义化标签 文本p 段落标签h 标题标签span 行内标签a 超链接标签br 换行标签、hr水平线标签sub 下标字、sup 上标字strong 或 b 加粗、em 或 i 斜体、del 或 s 删除线、ins 或 u 下划线marquee 滚动标签 列表ul 无序列表ol 有序列表dl 自定义列表列表嵌套…

Android 车联网——CarProperty使用实例(二十三)

在熟悉了 Car 下的相关 Manager 和 Service 后,这里我们通过需求来实现 CarProperty 的使用实例。 一、使用实例 1、需求分析 假如有这样一个需求,需要封装一个 SDK 为 APP 提供车辆信息、空调状态以及驾驶信息等相关属性的值及变化情况。这里我们首先需要确认各种属性对应…

取消Cursor的注释斜体字风格

1. 打开settings.json 2. 添加如下代码 "editor.tokenColorCustomizations": {"textMateRules": [{"name": "Comment","scope": ["comment","comment.block","comment.block.documentation"…

Qt5.4.1连接odbc驱动操作达梦数据库

Qt5.4.1连接odbc驱动操作达梦数据库 1 环境介绍2 Qt5.4.1 安装2.1 图形化界面安装Qt5.4.12.2 配置Qt5.4.1 环境变量2.3 Qt5.4.1 生成 libqsqlodbc.so 并配置2.3.1 生成Makefile2.3.2 查看 libqsqlodbc.so 文件并配置 3 配置Qt测试用例4 达梦数据库学习使用列表 1 环境介绍 CPU…

【Elasticsearch】-7.17.24版本接入

官网 https://www.elastic.co/cn/downloads/elasticsearch 本项目基于windows环境下&#xff0c;其他环境操作类似 1、初始化配置 打开config/elasticsearch.yaml 添加如下配置 cluster.name: dams_clusternetwork.host: 127.0.0.1 http.port: 9200# 不开启geo数据库 inge…