当前位置: 首页 > news >正文

SQL SELECT 语句怎么用?COMPANY 表查询案例(含条件 / 模糊 / 分页)

在 SQL 操作中,SELECT语句是数据检索的核心,通过它可以从表中精准提取所需信息。本文基于COMPANY表,通过具体案例详解SELECT的常用用法,包括逻辑运算、模糊查询、范围筛选等,覆盖从简单到复杂的查询场景。

一、基础准备:表结构与测试数据

首先创建COMPANY表并插入测试数据,作为后续查询的基础:

1. 表结构设计

sql

CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL,  -- 员工ID(主键,非空)NAME TEXT NOT NULL,           -- 员工姓名(非空)AGE INT NOT NULL,             -- 年龄(非空)ADDRESS CHAR(50),             -- 地址(可空)SALARY REAL                   -- 薪资(可空,浮点型)
);

2. 插入测试数据

sql

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 ),(2, 'Allen', 25, 'Texas', 15000.00 ),(3, 'Teddy', 23, 'Norway', 20000.00 ),(4, 'Mark', 25, 'Rich-Mond ', 65000.00 ),(5, 'David', 27, 'Texas', 85000.00 ),(6, 'Kim', 22, 'South-Hall', 45000.00 ),(7, 'James', 24, 'Houston', 10000.00 );

3. 查看全表数据

执行基础查询,确认数据插入成功:

sql

select * from COMPANY;  -- "*" 表示查询所有字段

查询结果(7 条记录):

IDNAMEAGEADDRESSSALARY
1Paul32California20000.0
2Allen25Texas15000.0
3Teddy23Norway20000.0
4Mark25Rich-Mond65000.0
5David27Texas85000.0
6Kim22South-Hall45000.0
7James24Houston10000.0

二、条件筛选:逻辑运算符的应用

通过WHERE子句结合逻辑运算符,可实现多条件的数据过滤,常用运算符包括ANDOR等。

1. AND:同时满足多个条件

案例:找出年龄≥25  薪资≥65000 的员工

sql

select * from company where age >= 25 and salary >= 65000;

结果(同时满足两个条件的记录):

IDNAMEAGEADDRESSSALARY
4Mark25Rich-Mond65000.0
5David27Texas85000.0

2. OR:满足任意一个条件

案例:找出年龄≥25 或者 薪资≥65000 的员工

sql

select * from company where age >= 25 or salary >= 65000;

结果(满足任一条件的记录):

IDNAMEAGEADDRESSSALARY
1Paul32California20000.0(年龄≥25)
2Allen25Texas15000.0(年龄≥25)
4Mark25Rich-Mond65000.0(两者均满足)
5David27Texas85000.0(两者均满足)

三、特殊值处理:NULL判断

NULL表示 “未知值”(非空字符串或 0),需用IS NULLIS NOT NULL判断,不可直接用=!=

案例:找出age字段不为空的员工(本案例中age均非空,故返回全表)

sql

select * from company where age is not null;

说明:若表中存在ageNULL的记录(如INSERT INTO COMPANY VALUES (8, 'Lisa', NULL, 'NY', 50000);),则该记录会被排除。

四、模糊查询:LIKE匹配字符串

LIKE用于按模式匹配字符串,支持两个通配符:

  • %:匹配任意长度的字符(包括 0 个)
  • _:匹配单个字符

1. 匹配前缀

案例:找出name以 “Pa” 开头的员工

sql

select * from company where name like 'Pa%';  -- "Pa%" 表示以Pa开头,后面任意字符

结果

IDNAMEAGEADDRESSSALARY
1Paul32California20000.0

2. 数值类型的模糊匹配(PostgreSQL 特殊处理)

LIKE仅支持字符串匹配,若需对数值字段(如SALARY)进行模糊查询,需先转换为字符串(PostgreSQL 用::text)。

案例:找出salary以 “20” 开头的员工

sql

select * from company where salary::text like '20%';  -- 将salary转为文本后匹配

结果

IDNAMEAGEADDRESSSALARY
1Paul32California20000.0
3Teddy23Norway20000.0

五、集合筛选:INNOT IN

IN用于判断字段值是否在指定集合中,NOT IN则相反。

1. IN:匹配集合中的任意值

案例:找出年龄为 25 或 27 的员工

sql

select * from company where age in (25, 27);  -- age是25或27

结果

IDNAMEAGEADDRESSSALARY
2Allen25Texas15000.0
4Mark25Rich-Mond65000.0
5David27Texas85000.0

2. NOT IN:排除集合中的值

案例:找出年龄不为 25 且不为 27 的员工

sql

select * from company where age not in (25, 27);  -- age不是25也不是27

结果

IDNAMEAGEADDRESSSALARY
1Paul32California20000.0
3Teddy23Norway20000.0
6Kim22South-Hall45000.0
7James24Houston10000.0

六、范围查询:BETWEEN

BETWEEN用于匹配 “某个范围内的值”,包含边界值(等价于>=<=)。

案例:找出年龄在 25 到 27 之间的员工(包括 25 和 27)

sql

select * from company where age between 25 and 27;  -- 等价于 age >=25 and age <=27

结果

IDNAMEAGEADDRESSSALARY
2Allen25Texas15000.0
4Mark25Rich-Mond65000.0
5David27Texas85000.0

七、结果限制:LIMITOFFSET

LIMIT用于限制返回的记录数,OFFSET用于指定从第几条记录开始(默认从 0 开始),常用于分页查询。

1. LIMIT:取前 N 条记录

案例:列出表中前 3 条记录

sql

select * from company limit 3;

结果(前 3 条):

IDNAMEAGEADDRESSSALARY
1Paul32California20000.0
2Allen25Texas15000.0
3Teddy23Norway20000.0

2. LIMIT + OFFSET:分页查询

案例:列出表中第 4-7 条记录(从第 3 条后开始,取 4 条)

sql

select * from company limit 4 offset 3;  -- OFFSET 3 表示跳过前3条,LIMIT 4 表示取4条

结果(第 4-7 条):

IDNAMEAGEADDRESSSALARY
4Mark25Rich-Mond65000.0
5David27Texas85000.0
6Kim22South-Hall45000.0
7James24Houston10000.0

总结:SELECT 检索核心用法速查表

需求场景关键字 / 语法示例
多条件同时满足ANDwhere age>=25 and salary>=65000
多条件满足其一ORwhere age>=25 or salary>=65000
判断非空值IS NOT NULLwhere age is not null
模糊匹配(字符串)LIKE + %/_where name like 'Pa%'
匹配集合中的值INwhere age in (25,27)
排除集合中的值NOT INwhere age not in (25,27)
范围查询(包含边界)BETWEEN ... AND ...where age between 25 and 27
限制返回记录数LIMITlimit 3
分页查询(跳过前 N 条)LIMIT ... OFFSET ...limit 4 offset 3

通过上述案例,可掌握SELECT检索的核心技巧。实际应用中,可根据业务需求组合多种条件,实现精准的数据提取。

http://www.dtcms.com/a/407688.html

相关文章:

  • 北京网站建设公司降龙手机创建个人网站 免费
  • 朝阳企业网站建设方案高端办公室装修公司
  • 写网站开发代码注册公司地址可以是住宅吗
  • 网站 底部网站建设做得好
  • 老字号传承,达尔优AE6电竞鼠标!熟悉的味道,时代的配方
  • 通过你的自有服务器代理网址
  • 智能手机背面缺陷检测数据集VOC+YOLO格式5203张5类别
  • 太乙笔记全文
  • 成功网站管理系统个人网页设计硬件需求
  • 淄博网站排名优化公司网站建设进度总结
  • 想建设一个网站济南建站
  • 网站地区词优化智能网站推广优化
  • python做网站的多吗企业做网站价格
  • Unity-动画2D混合
  • 时间序列分析新视角论文分享:周期金字塔周期强度门控
  • 网站添加百度商桥甘肃网站建设专业定制
  • AI 时代火山引擎对象存储:为数据松绑,让算力起飞
  • 局域网网站建设协议自己搭建云服务平台
  • 职高网站建设知识点温州 网站
  • 老板让我做网站负责人wordpress上传图片教程
  • 江科大STM32,BKP备份寄存器RTC实时时钟,学习笔记
  • 哈尔滨创意网站建设企业+网站+wordpress
  • 做网站会什么软件山东装饰公司网站建设公司
  • leetcode orb slam3 5/99--> LeetCode 2: Add Two Numbers
  • 电子商务网站建设的教案教育类网站设计
  • Null值的几种处理方式
  • php电商网站开发网站模板建站教程
  • 什么是ECN?它是如何解决网络拥塞问题的?
  • 网站不在首页显示出来wordpress的归档
  • 【HDFS实战】HADOOP 机架感知能力-HDFS