基础查询 — 投影、选择

news2024/11/28 2:34:02

准备

  • 数据查询操作均采用的是MySQL
  • 示例数据库采用的是northwind 示例数据库。
  • 数据库导入手册

关于northwind 示例数据库

  • 查询数据库中的表

    show tables;
    

    在这里插入图片描述

  • 查询表的表属性

    desc xxx(表名);
    

在这里插入图片描述

投影操作

1.语法
  • 投影运算:选择表中的全部或者部分列。

  • 语法

    select 字段列表
    from   表名;
    
2.特点
  • 查询列表可以是:表中的字段、常量值、表达式、函数。
  • 查询的结果是一个虚拟的表格。
3.实例
  • 查询常量值:查询helow world

    select 'hello world';
    
  • 查询表中单个、多个字段。

    # 在 employees 表中,查询 first_name 字段
    select first_name from employees;
    
    # 在 employees 表中,查询 first_name,last_name 和 salary 字段
    select first_name, last_name, salary
    from employees;
    
  • 查询表中所有字段:用 * 代替所有字段。

    select * from northwind.employees;
    
  • 使用as关键字起别名:将选择出的数据赋予新的列名。

    # 在 employees 表中,查询 employee_id, last_name 和 annual_salary 字段
    # 将月薪乘12作为年薪出现
    
    select employee_id, last_name, salary * 12 as annual_salary
    from employees;
    
  • 去重:使用distinct函数去重。

    # 查询 employees 表中的不同的 job_id
    select distinct job_id
    from northwind.employees;
    
  • 拼接操作:使用concat函数进行拼接。

    # 查询 employees 表的 first_name 和 last_name,拼接为 fullname,显示结果为 employee fullname
    
    select concat(first_name, ' ', last_name) as "employee fullname"
    from employees;
    

选择(筛选)操作

1.语法
  • 通过不同的筛选条件来选择到相应的字段

  • 语法结构

    select 字段列表
    from   表名
    where  筛选条件;
    
2.按条件表达式筛选
  • 简单条件运算:> < = != <> >= <=

  • 查询employees 表中,工资大于 12000 的员工信息

    select * 
    from employees
    where salary > 12000
    
  • 查询 employees 表中,部门编号不等于 90 的员工 last_name 和部门编号

    select last_name, department_id 
    from employees
    where department_id <> 90;
    或者
    select last_name, department_id 
    from employees
    where department_id != 90;
    
3.按逻辑表达式执行
  • 常用逻辑运算符:&& || ! and or not

  • 查询 employees 表中,工资在 10000 到 20000 之间的员工 last_name和工资

    select last_name, salary
    from employees
    where salary >= 10000 and salary <= 20000;
    或者
    select last_name, salary
    from employees
    where salary >= 10000 && salary <= 20000;
    
  • 查询 employees 表中,部门编号不在 90 到 110 之间,或者工资高于 15000 的员工信息

    select * 
    from employees
    where not(department_id >= 90 && department_id <= 110)
    	or salary > 15000;
    或者
    select * 
    from employees
    where (department_id < 90 || department_id > 110)
    	or salary > 15000;
    
4.模糊查询
  • 关键字:like, not like(一般和通配符搭配使用)

  • 通配符:

    • %代表示任意多个字符(包括0个字符)
    • 表示任意单个字符
  • 查询 employees 表中,员工 last_name 中包含字符 a 的员工信息

    select * 
    from employees
    where last_name like '%a%';
    
  • 查询 employees 表中,员工 job_id 中第三个字符为 _ 的员工 last_name 和 job_id

    select last_name, job_id
    from employees
    where job_id like '__\_%'; # 注意将下斜杠转义
    
5. between and not between and
  • 适当使用可以提高语句的简洁度,是包含临界值的。

  • 查询 employees 员工编号在 100 到 120 之间的员工信息

    select *
    from employees
    where employee_id >= 100 and employee_id <= 120;
    可简化为
    select *
    from employees
    where employee_id between 100 and 120;
    
6.in not in
  • 判断某字段的值是否属于in列表中的某一项

  • 查询 employees 表中,工种编号是 it_prog、ad_vp 中的员工 last_name 和工种编号

    select last_name, job_id
    from employees
    where job_id in ('it_prog', 'ad_vp', 'ad_pres');
    
7.is null is not null <=>
  • = <>不能用于判断 null 值而is nullis not null 可以判断 null 值。

  • is null仅仅可以判断 null 值,<=> 既可以判断 null 值,又可以判断普通的数值。、

  • 查询 employees 表中,没有提成的员工 last_name

    select last_name
    from employees
    where commission_pct <=> null;
    
  • 查询 employees 表中,工资为 12000 的员工 last_name 和工资

    select last_name, salary
    from employees
    where salary <=> 12000;
    

希望,带领我进入黑暗中,照亮苍穹。 ——达达乐队《苍穹》

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

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

相关文章

Jeston Orin Nano 离线烧写系统到NVME存储

大家好&#xff0c;我是虎哥&#xff0c;Jeston Orin nano 8G模块&#xff0c;我自己也玩了一段时间&#xff0c;在Orin 系列&#xff0c;官方提供了一种新的烧写方式&#xff0c;也就是离线烧写&#xff0c;就是你在主机&#xff0c;挂载存储后&#xff0c;直接烧写系统到这个…

Maven高级——继承与聚合——聚合实现

为什么要聚合 分模块开发之后一个项目会被拆分成多个模块。多个模块之间还会有依赖关系。 在一些大型项目中模块比较多&#xff0c;模块之间的依赖关系也会变得错综复杂。 并且在打包的时候还会有一个新的问题&#xff0c;在打包的时候我们要打包的是Springboot项目&#xf…

黑马Redis视频教程高级篇(一)

目录 分布式缓存 一、Redis持久化 1.1、RDB持久化 1.1.1、执行时机 1.1.2、RDB原理 1.1.3、小结 1.2、OF持久化 1.2.1、AOF原理 1.2.2、OF配置 1.2.3、AOF文件重写 1.3、RDB与AOF对比 二、Redis主从 2.1、搭建主从架构 2.1.1、集群结构 2.1.2、准备实例和配置 …

CBCGPRibbonBar 设置整个界面字体大小

在CMainFrame.h中添加成员变量&#xff1a;CFont m_fontCustom; 在onCreat()方法结束之前的任一个位置写下下测方法即可 方法1&#xff1a; { // Create custom font: LOGFONT lf; globalData.fontRegular.GetLogFont(&lf); lf.lfItalic TRUE; …

详解Spring Cloud版本问题

目录 1.让人头疼的多版本号体系 2.目录关系 3.为什么会有多个版本号体系 1.让人头疼的多版本号体系 由于历史原因&#xff0c;spring cloud分为了Alibaba和Netflix两个体系。 想要了解原因以及整个spring cloud体系的来龙去脉的同学可以去看我的另一篇文章&#xff1a; S…

MySQL脏读、不可重复读、幻读的区别与注意事项

目录 一、引入二、事务并发执行会遇到的问题1. 区别2. 注意 三、隔离级别四、参考资料 一、引入 MySQL的架构是 C/S 架构&#xff08;即 客户端/服务器 架构&#xff09;&#xff0c;一个服务器可能有多个客户端与之相连接&#xff0c;每个连接称之为会话&#xff08;Session&…

chatgpt赋能python:Python去掉分隔符:优化SEO效果的一种方法

Python去掉分隔符&#xff1a;优化SEO效果的一种方法 在现代的数字化时代&#xff0c;SEO已经成为了许多企业、个人和网站运营者最为关心的问题之一。SEO指的是搜索引擎优化&#xff0c;通过各种技术手段和优化方式&#xff0c;提高网站在搜索引擎结果页面上显示的排名。Pytho…

PageHelper使用

PageHelper &#xff1a; mybatis中的分页插件 文档 &#xff1a; https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md springboot使用PageHelper <dependency><groupId>com.github.pagehelper</groupId><artifactId…

利用DocsGPT快速搭建一个问答式的文档检索服务

docsGPT 示例 基于企业内部独有的知识库&#xff0c;进行智能的客服问答&#xff0c;毫无疑问是 ChatGPT 出圈以后&#xff0c;所有公司想要融入 ChatGPT 技术时的第一反应。可惜 ChatGPT 实际上是一个基于大语言模型实现的&#xff0c;包括很多其他功能的&#xff0c;完整的聊…

电力电子技术的论文

电力电子技术的论文范文一&#xff1a;Matlab电力电子技术应用 【文章摘要】信息技术的快速发展推动许多学科进一步完善&#xff0c;以电力电子技术为例&#xff0c;其本身具有较强的理论性、实践性等特征&#xff0c;涉及的波形图、电路图也较多&#xff0c;相关设计人员需掌握…

Hitcon 2016 SleepyHolder-fastbin_dup_consolidate.c

参考/题目下载&#xff1a; https://github.com/mehQQ/public_writeup/tree/master/hitcon2016/SleepyHolder https://blog.csdn.net/seaaseesa/article/details/105856878 1&#xff0c;三联 保护:基本都开了 功能&#xff1a; 0、唤醒功能&#xff1b; 1、创建-secret&#…

华为OD机试真题 Java 实现【猴子爬山】【2023 B卷 100分】,附详细解题思路

一、题目描述 一天一只顽猴想去从山脚爬到山顶&#xff0c;途中经过一个有个N个台阶的阶梯&#xff0c;但是这猴子有一个习惯&#xff1a; 每一次只能跳1步或跳3步&#xff0c;试问猴子通过这个阶梯有多少种不同的跳跃方式&#xff1f; 二、输入描述 输入只有一个整数N&…

Custom Frames插件:内置Web应用 | Obsidian实践

今天跟大家分享一个Obsidian插件&#xff1a;Custom Frames。 这个插件的美妙之处在于&#xff0c;可以将一个Obsidian外部的Web应用&#xff0c;内置到Obsidian内部来操作和使用。 这么说可能是有点儿抽象&#xff0c;就比方说吧&#xff0c;微信读书有个网页版&#xff08;后…

嵌入式开发——文件系统部署rz、sz命令

1、rz、sz命令源码下载 下载网址&#xff1a;https://ohse.de/uwe/software/lrzsz.html 2、源码编译 tar -zxvf lrzsz-0.12.20.tar.gz cd lrzsz-0.12.20 ./configure make CCaarch64-mix410-linux-gcc #指定芯片平台的交叉编译链3、源码编译遇到的问题 3.1、报错打印 (1)报错…

绝地求生可以这样制作 (Python 版)

一、概述 1.1 效果 总的来说&#xff0c;这种方式是通过图像识别来完成的&#xff0c;不侵入游戏&#xff0c;不读取内存&#xff0c;安全不被检测。 1.2 前置知识 游戏中有各种不同的枪械&#xff0c;不同的枪械后坐力不一样&#xff0c;射速也不同。相同的枪械&#xff0c;…

【Java】Java(四十八):日志

文章目录 1. 概述2. 日志体系结构和Log4J3. 入门案例4. 配置文件详解 1. 概述 程序中的日志可以用来记录程序在运行的时候点点滴滴。并可以进行永久存储。 日志与输出语句的区别 2. 日志体系结构和Log4J 体系结构 Log4J Log4j是Apache的一个开源项目。 通过使用Log4j&#…

vue实现导航栏功能的方法

在 Vue中实现导航栏功能&#xff0c;我们可以将导航栏作为一个单独的组件来实现。这样可以方便我们进行修改、定制&#xff0c;并有多种方式进行添加导航栏&#xff0c;如使用 Vue的 document. position属性或者使用vue-dialog-position属性来添加导航栏。在此&#xff0c;我们…

mac os终于成功安装MySQL

目录 PART 1. 下载MySQL PART 2. 安装MySQL PART 3. 启动MySQL 大家好&#xff0c;我是tin&#xff0c;一个热爱技术喜欢折腾的开发&#xff0c;欢迎阅读我的重磅肝文&#xff1a; 1. 面试官&#xff1a;你给我讲一讲&#xff0c;Dubbo暴力停机&#xff0c;消费者是如何感知…

机器学习知识经验分享之六:R语言绘图之小提琴图绘制

python语言用于深度学习较为广泛&#xff0c;R语言用于机器学习领域中的数据预测和数据处理算法较多&#xff0c;后续将更多分享机器学习数据预测相关知识的分享&#xff0c;有需要的朋友可持续关注&#xff0c;有疑问可以关注后私信留言。 文章目录 一、小提琴图 二、相关代…

node、node-sass和sass-loader版本错误问题 this.getOptions is not a function

安装node-sass和sass-loader后&#xff0c;使用npm run dev启动项目时一直报错。网上查明原因&#xff0c;是因为版本问题&#xff0c;但是修改node-sass和sass-loader版本后&#xff0c;又提示说node版本不兼容&#xff0c;我的node版本是18。随后又尝试了很多node-sass和sass…