数据库的简单查询

一、检索一列或多列1.检索单独一列

select 列名 from 表名;

select order_num from orders;

2.检索多列数据

select 列 1,列 2... from 表名;

select order_num,order_date from orders; select order_date,order_num from orders;

3.查询所有字段

select * from 表名; select * from orders;

注:在生产环境中,坚决不允许使用 select *

二、去除查询结果中的重复值

1.select distinct 列 1,列 2... from 表名;

select distinct vend_id,prod_price from products;

注:distinct 关键对它后面跟的所有列都生效

三、使用 limit 子句控制显示结果条目数

1.select 列 1,列 2... from 表名 limit 需要显示的行数;

select prod_name from products limit 5;

2.select 列 1,列 2... from 表名 limit x,y;

注:1)x 是从第几行开始显示(包括 x),y 是显示的行数

  1. MariaDB 的行数是从第 0 行开始的

select prod_name from products limit 3,4;

  1. select 列 1,列 2... from 表名 limit 4 offset 3;

select prod_name from products limit 4 offset 3;

四、完全限定表名、列名

select 表名.列名 from 数据库名.表名;

 select orders.order_num from test.orders;

注:完全限定列名可以避免歧义(多个表中含有相同列)

完全限定表名可以实现跨数据库查询

五、注释三种形式:--、#、/* */

注:--后面与注释内容之间至少有一个空格

六、使用 order by 子句对查询结果进行排序(默认正序)desc降序

1.针对单独列进行排序 select 列名 from 表名 order by 列名按照此列进行排序;

select prod_name from products order by prod_name;

或 select 列名 1 from 表名 order by 列名 2;

select prod_name,prod_price from products order by prod_price;

注:通常 order by 子句中使用的列就是需要显示的列,然而用非检索的列排序也是完全合法的

2.针对多列进行排序按第一列排序如果第一列有重复指按第二列排

1)select 列 1,列 2 from 表名 order by 列 1,列 2;

select prod_id,prod_name,prod_price from products order by prod_price,prod_name;

2)select 列 1,列 2 from 表名 order by 1,2;按第1列排序,有重复按第2列排

select prod_id,prod_name,prod_price from products order by 3,2;

 3)降序排序(desc)

select 列 1,列 2 from 表名 order by 列 1 desc,列 2;

select prod_name,prod_price from products order by prod_price desc,prod_name;

注:desc 仅对其前面的列有效,其他后面没有 desc 的列仍然以正序排序

七、使用 order by 子句和 limit 子句显示最大/最小值1.显示最小值

select 列 1 from 表名 order by 列 1 limit 1;

select prod_price from products order by prod_price limit 1;

2.显示最大值 select 列 1 from 表名 order by 列 1 desc limit 1;

select prod_price from products order by prod_price desc limit 1;

八、where 子句

1.使用=操作符查询 select 列 1,列 2... from 表名 where 列 1='值';

select prod_name,prod_price from products where prod_name='fuses';

2.使用<操作符查询 select 列 1,列 2... from 表名 where 列 1<'值';

select prod_name,prod_price from products where prod_price < '10';

3.使用<>或!=操作符查询 select 列 1,列 2... from 表名 where 列 1<>'值';

select vend_id,prod_name from products where vend_id <> '1003';

select 列 1,列 2... from 表名 where 列 1!='值';

select vend_id,prod_name from products where vend_id != '1003';

 4.使用 between 操作符查询

select 列 1,列 2... from 表名 where 列 between 值 1 and 值 2;

select prod_name,prod_price from products where prod_price between 5 and 10;

注:between 和 and 为闭区间(即包含两边的值)

  1. 检索空值与非空值

1)检索空值

select 列 1,列 2... from 表名 where 列 is null;

select cust_id,cust_email from customers where cust_email is null;

2)检索非空值 select 列 1,列 2... from 表名 where 列 is not null;

select cust_id,cust_email from customers where cust_email is not null;

  1. 使用 and 和 or 操作符查询

1)使用 and 操作符(

select 列 1,列 2... from 表名 where 限定条件 1 and 限定条件 2 select vend_id,prod_id,prod_name,prod_price from products where vend_id=1003 and prod_price <=10;

 2)使用 or 操作符(或)

select 列 1,列 2... from 表名 where 限定条件 1 or 限定条件 2 select vend_id,prod_name,prod_price from products where vend_id=1002 or vend_id=1003;

3)and 要比 or 的优先级高

select vend_id,prod_name,prod_price from products where vend_id=1002 or vend_id=1003 and prod_price >= 10;

select vend_id,prod_name,prod_price from products where (vend_id=1002 or vend_id=1003) and prod_price >= 10;

7.使用 in 操作符查询

select 列 1,列 2 from 表名 where 列 in (值 1,值 2,值 3...); select vend_id,prod_name,prod_price from products where vend_id in (1002,1003);1002或1003

select vend_id,prod_name,prod_price from products where vend_id in (1002,1003) and prod_price >=10;

注:当你使用很长的值列表选项时,IN 操作符语法更清晰易读更容易管理优先级顺序比一系列 or 操作符执行的快可以创建较为动态的 where 子句

  1. 使用 not 操作符查询 select vend_id,prod_name,prod_price from products where vend_id not in (1002,1003);

  • 使用 like 操作符配合通配符查询

select 列 1,列 2 from 表名 where 列 like '关键字与通配符';

select prod_id,prod_name from products where prod_name like 'jet%';

select prod_id,prod_name from products where prod_name like '_ ton anvil';

%:匹配多个字符

—:匹配一个字符

十、使用 regexp 操作符配合正则表达式查询

select 列 1,列 2... from 表名 where 列 regexp '关键字与正则表达式';

1.使用.进行匹配匹配多个字符

select prod_id,prod_name from products where prod_name regexp '.000';

2.如果想要强制区分大小写,可以使用关键字 binary select prod_id,prod_name from products where prod_name regexp binary 'JetPack .000';

3.执行 or 匹配| 或

select prod_id,prod_name from products where prod_name regexp '1000|2000|3000';

  1. 使用字符集匹配 []从中选中一个

select prod_id,prod_name from products where prod_name regexp '[1235] ton';

5.匹配特殊字符“.”

select vend_name from vendors where vend_name regexp '\\.';

注:使用\\转义符,去掉了.的特殊含义(匹配任意一个字符)

  1. 使用元字符匹配查询 select prod_name from products where prod_name regexp '\\([0-9] sticks?\\)';TNT  (?匹配前一个字符0次或者多次

+ 匹配前一个字符一次或多次)

select prod_name from products where prod_name regexp '[[:digit:]]{4}';

注:上述 sql 语句等同于 select prod_name from products where prod_name regexp '[0-9][0-9][0-9][0-9]';

select prod_name from products where prod_name regexp '^[0-9\\.]'

十一、子查询

多个表间的 select 语句的嵌套查询例:检索所有订单包含物品 TNT2 的客户信息customers  orders  ordersitems

1.不使用子查询时

1)先查询所有包含物品 TNT2 的订单的订单号

select order_num,prod_id from orderitems where prod_id='TNT2';

2)再查询上述订单号的订单是哪个客户下的

select cust_id,order_num from orders where order_num in(20005,20007);

 3)最后查询上述客户的详细信息

select cust_id,cust_name,cust_contact from customers where cust_id in (10001,10004);

2.使用子查询(嵌套查询)

select cust_id,cust_name,cust_contact from customers where cust_id in (select cust_id from orders where order_num in(select order_num from orderitems where prod_id='TNT2'));

:子查询最多不超过 15 级,一般使用时不超过 2 级

大多数子查询都可以更改为连接查询

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

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

相关文章

SQL注入---POST注入

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一. POST提交概述 在Webshell文章中介绍过post提交和get提交的区别&#xff0c;这里不再赘述 post提交和get提交的区别&#xff1a; get方式提交URL中的参数信息&#xff0c;post方式则是将信…

博客部署001-centos安装docker

1、安装docker 1.1 卸载旧版本的 Docker sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine1.2 设置 Docker 仓库 安装 Docker Engine 之前&#xff0c;首先需要设置…

幕译--本地字幕生成与翻译--Whisper客户端

幕译–本地字幕生成与翻译–Whisper客户端 本地离线的字幕生成与翻译&#xff0c;支持显卡加速。可免费试用&#xff0c;无次数限制 基于Whisper&#xff0c;希望做最好的Whisper客户端 功能介绍 本地离线&#xff0c;不用担心隐私问题支持显卡&#xff08;CUDA&#xff09;…

重读Java设计模式: 适配器模式解析

引言 在软件开发中&#xff0c;经常会遇到不同接口之间的兼容性问题。当需要使用一个已有的类&#xff0c;但其接口与我们所需的不兼容时&#xff0c;我们可以通过适配器模式来解决这一问题。适配器模式是一种结构型设计模式&#xff0c;它允许接口不兼容的类之间进行合作。本…

C++设计模式:装饰器模式(四)

1、定义与动机 装饰器模式定义&#xff1a;动态&#xff08;组合&#xff09;地给一个对象增加一些额外的职责。就增加功能而言&#xff0c;Decorator模式比生成子类&#xff08;继承&#xff09;更为灵活&#xff08;消除重复代码 & 减少子类个数&#xff09;。 在某些情…

c++的STL(8) -- queue

queue容器概述 queue容器实现了实现了和队列相同结构的容器。 如图&#xff0c;队列这种结构有两端: 队首和队尾。 对于队列&#xff0c;我们添加数据只能从队尾添加&#xff0c;删除数据只能从队首删除。是一种先进先出的结构。 -- 当然读取数据也只能从队首或者队尾读取。…

Python TensorFlow 2.6 获取 MNIST 数据

Python TensorFlow 2.6 获取 MNIST 数据 2 Python TensorFlow 2.6 获取 MNIST 数据1.1 获取 MNIST 数据1.2 检查 MNIST 数据 2 Python 将npz数据保存为txt3 Java 获取数据并使用SVM训练4 Python 测试SVM准确度 2 Python TensorFlow 2.6 获取 MNIST 数据 1.1 获取 MNIST 数据 …

【数据结构】考研真题攻克与重点知识点剖析 - 第 3 篇:栈、队列和数组

前言 本文基础知识部分来自于b站&#xff1a;分享笔记的好人儿的思维导图与王道考研课程&#xff0c;感谢大佬的开源精神&#xff0c;习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析&#xff0c;本人技术…

IP地址证书

IP地址证书是一种专为公网IP地址颁发的数字证书&#xff0c;它通过建立安全的HTTPS连接来确保数据传输的加密保护。 具体来说&#xff0c;IP地址证书有以下功能&#xff1a; 1.验证身份&#xff1a;IP地址证书可以证明您是与特定IP地址相关的合法用户或组织。这有助于防止网络…

使用 msys2 sshd为 windows 搭建 ssh 服务器

文章目录 概要整体架构流程技术名词解释MSYS2openSSH服务器 技术细节安装 MSYS2 环境安装openSSH配置、启动SSH 小结和扩展 概要 SSH服务器在Linux下的搭建一般的文章讨论的比较多了。在Windows下&#xff0c;我们常用Windows的Linux子系统来搭建ssh服务器。那有没有更好更简洁…

数据挖掘|关联分析与Apriori算法详解

数据挖掘|关联分析与Apriori算法 1. 关联分析2. 关联规则相关概念2.1 项目2.2 事务2.3 项目集2.4 频繁项目集2.5 支持度2.6 置信度2.7 提升度2.8 强关联规则2.9 关联规则的分类 3. Apriori算法3.1 Apriori算法的Python实现3.2 基于mlxtend库的Apriori算法的Python实现 1. 关联分…

京东云服务器4核8G主机租用价格418元一年,1899元3年

京东云轻量云主机4核8G服务器租用价格418元一年&#xff0c;1899元3年&#xff0c;配置为&#xff1a;轻量云主机4C8G-180G SSD系统盘-5M带宽-500G月流量&#xff0c;京东云主机优惠活动 yunfuwuqiba.com/go/jd 可以查看京东云服务器详细配置和精准报价单&#xff0c;活动打开如…

idea开发 java web 酒店推荐系统bootstrap框架开发协同过滤算法web结构java编程计算机网页

一、源码特点 java 酒店推荐推荐系统是一套完善的完整信息系统&#xff0c;结合java web开发和bootstrap UI框架完成本系统 采用协同过滤算法进行推荐 &#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式…

(西部数码)-域名注册购买实名流程

1&#xff0c;进入西部数码官网 输入网址 https://www.west.cn/services/domain/ 注册域名 &#xff0c;域名推荐com&#xff08;国际顶级域名&#xff09; &#xff0c;cn&#xff08;国内顶级域名&#xff09;。其中cn价钱比com便宜。 特别提醒&#xff1a; &#xff08;…

【C++】引用

目录 ​编辑 1.引用概念 2.引用特性 2.1一个变量可以取多个别名&#xff0c;别名还可以取别名 2.2一个别名不可以对应多个变量。 ​编辑2.3 别名的地址一样&#xff1a; 2.4引用必须初始化&#xff0c;必须有个引用实体 2.5 引用不能改变指向 3 .引用的价值和意义 3.1.做参数 …

关于 QSound播放wav音频文件,播放失败“using null output device, none available” 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/137264493 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

【简单讲解下epoll】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

LabVIEW深度学习

目录 一、配置环境1.1、显卡选择1.2、下载显卡驱动1.3、下载并安装Anaconda1.4、配置Anaconda软件包下载服务器1.5、配置虚拟环境tf_gpu1.6、安装vscode1.7、安装tensorflow1.8、下载安装Git1.9、安装TensorFlow Object Detection API框架1.10、安装依赖的python软件包1.11、配…

包子凑数【蓝桥杯】/完全背包

包子凑数 完全背包 完全背包问题和01背包的区别就是&#xff0c;完全背包问题每一个物品能取无限次。 思路&#xff1a;当n个数的最大公约数不为1&#xff0c;即不互质时&#xff0c;有无限多个凑不出来的&#xff0c;即n个数都可以表示成kn&#xff0c;k为常数且不为1。当n个…

Vue关键知识点

watch侦听器 Vue.js 中的侦听器&#xff08;Watcher&#xff09;是 Vue提供的一种响应式系统的核心机制之一。 监听数据的变化&#xff0c;并在数据发生变化时执行相应的回调函数。 目的:数据变化能够自动更新到视图中 原理&#xff1a; Vue 的侦听器通过观察对象的属性&#…