MySQL 查询语句_笔记

1.别名

select ename 员工姓名,sal 工资收入,comm 奖金收入,sal*6+(sal+sal*0.2)*6+comm 总收入 from emp

2.distinct应用

  • 查询员工表中一共有哪几种岗位类型

select distinct job from emp

distinct:将job相同的记为一行

3.where应用

where+查询条件

select * from emp where deptno=10

  • 查询1987年6月1日之后入职的员工信息

select * from emp where hiredate>'1987-06-01

  • 查询查询1985年12月31日之前入职的员工姓名及入职日期

select ename,hiredate from emp where hiredate<'1985-12-31'

4.and or not 应用

  • 查询薪水1000到1500员工

select * from emp where sal>=1000 and sal<=1500

select * from emp where sal between 1000 and 1500

  • 查询job 为 SALESMAN或者MANAGER的员工信息

select * from emp where job='SALESMAN' or 'MANAGER'

select * from emp where job in('SALESMAN','MANAGER')

  • 查询奖金为空的员工信息

select * from emp where comm is null

  • 查询奖金不为空的员工信息

select * from emp where comm is not null

  • 查询职位是SALESMAN或者是PRESIDENT 并且薪水>1500

select ename, job, sal from emp where (job='SALESMAN' or job='PRESIDENT') and sal>1500

  • 查询职位是PRESIDENT并且薪水>1500 或者 职位是SALESMAN

select ename, job, sal from emp where job='SALESMAN' or (job='PRESIDENT' and sal>1500)

5.模糊查询

  • 查询姓名首字母为W的员工信息

select * from emp where ename like 'W%'

  • 查询姓名以S结尾的员工信息

select * from emp where ename like '%S'

  • 查询姓名第二个字母是L的员工

select * from emp where ename like '_L%'    

(注释:其中 _ 为一个占位符,因为第二字母是L,第一字母未知,所以用_充当一个字母)

  • 查询员工姓名倒数第二个字母为T的员工信息

select * from emp where ename like '%T_'

(注释:其中 _ 为一个占位符 )

  • 查询姓名第三个字母是_的员工

select * from emp where ename like '__\_%'

select * from emp where ename like '__@_%' escape '@'

(注释:其中@标记后面紧跟的_表示 字母是_,而不是占位符,即第三个字母为_ ;@前的_为两个占位符)

 

补充:

关键字 LIKE 可用于实现模糊查询,常见于搜索功能中。

和 LIKE 联用的通常还有通配符,代表未知字符。SQL中的通配符是 _ 和 % 。其中 _ 代表一个未指定字符,% 代表不定个未指定字符

比如,要只记得电话号码前四位数为1101,而后两位忘记了,则可以用两个 _ 通配符代替:

SELECT name,age,phone FROM employee WHERE phone LIKE '1101__';

6.排序 order by    (asc 升序 desc降序   默认asc)

select * from emp order by sal desc,empno

  • 查询薪水最高的5个员工

select * from emp order by sal desc limit 5

  • 查询薪水最高的从第4个员工开始查询7个

select * from emp order by sal desc limit 3,7

  • 按照每页显示5条记录,分别查询第1页,第2页,第3页

第一页

select * from emp order by empno limit 0,5

第二页

select * from emp order by empno limit 5,5

补充:

如果后面不加 DESC 或 ASC 将默认按照升序排列。应用场景博客系统中按时间先后顺序显示博文

 

练习:

1.查询入职日期在1982年至1985年的员工信息

select * from emp where year(hiredate) between 1982 and 1985

2. 查询部门编号为10或者20的员工信息

select * from emp where deptno in(10,20)

 

 

 

<think>好的,我现在需要帮助用户查找关于MySQL查询语句的总结、笔记示例。首先,根据用户提供的引用内容,引用1、3、4都涉及SELECT语句的使用基础操作。引用2提到MySQL在Linux下区分大小写,这点可能在查询时需要注意,但用户主要关心的是查询语句的总结,所以可能暂时不需要深讨论大小写问题。 接下来,我需要整理用户提供的引用内容中的相关信息。引用3详细介绍了SELECT语句的语法结构,包括字段列表、FROM子句、WHERE条件、GROUP BY、HAVING、ORDER BYLIMIT。这些都是查询语句的核心部分,需要重点归纳。引用1提到了SELECT语句的常见操作,如排序、限制数量、聚合计算,这些可以作为示例部分的内容。引用4虽然主要讲基础操作,但其中也提到数据查询更新,可能对WHERE子句的使用有帮助。 用户的需求是总结、笔记示例,所以应该分模块整理。例如,语法结构、常用子句、示例部分。需要注意每个部分的信息来源,正确标注引用。同时,用户可能希望看到具体的例子,比如如何写一个带WHERE条件的查询,如何使用聚合函数等。 在组织内容时,应保持结构清晰,逐步从基础到高级。比如先介绍SELECT的基本语法,然后各个子句的作用,接着给出示例,最后注意事项。这样用户能够循序渐进地理解。同时,要确保所有示例符合LaTeX格式要求,数学表达式使用$...$,独立公式用$$...$$,但在这个问题中可能涉及较少数学公式,更多是代码示例,所以需要注意代码块的格式是否正确,比如使用反引号包裹。 可能还需要检查是否有遗漏的部分,比如JOIN操作或子查询,但根据引用内容,用户提供的资料中没有详细提到这些高级内容,所以可能暂时不包含。但如果有相关引用,需要补充。此外,用户的问题中引用了四个来源,需要确保每个引用的信息正确对应,比如引用3中的语法结构,引用1中的常见操作等。 最后,生成相关问题,这些问题应该围绕用户的需求展开,比如优化查询、聚合函数的使用、分页技巧等,确保问题与之前的总结内容相关,并且能够帮助用户进一步学习。</think>### MySQL 查询语句总结与示例 #### 一、基本语法结构 MySQL 查询语句的核心是 `SELECT`,其完整语法格式为: $$ SELECT \ 字段列表|* \ FROM \ 表名 \ [WHERE \ 搜索条件] \ [GROUP BY \ 分组字段 \ [HAVING \ 分组条件]] \ [ORDER BY \ 排序字段 \ 排序规则] \ [LIMIT \ 分页参数] $$ (引用[3]) #### 二、常用子句详解 1. **基础查询** - 查询所有列: ```sql SELECT * FROM 表名; ``` - 指定字段查询: ```sql SELECT 字段1, 字段2 FROM 表名; ``` 2. **WHERE 条件过滤** 支持逻辑运算符(`AND`/`OR`)比较运算符(`=`, `>`, `LIKE` 等): ```sql SELECT * FROM 表名 WHERE 字段1 > 100 AND 字段2 LIKE '%abc%'; ``` (引用[3]) 3. **聚合与分组** - 使用 `COUNT`, `SUM`, `AVG` 等聚合函数: ```sql SELECT 字段, COUNT(*) FROM 表名 GROUP BY 字段; ``` - `HAVING` 过滤分组结果: ```sql SELECT 字段, AVG(数值) FROM 表名 GROUP BY 字段 HAVING AVG(数值) > 50; ``` 4. **排序与分页** - `ORDER BY` 排序(默认升序,`DESC` 降序): ```sql SELECT * FROM 表名 ORDER BY 字段 DESC; ``` - `LIMIT` 限制返回行数(常用于分页): ```sql SELECT * FROM 表名 LIMIT 10 OFFSET 20; -- 跳过前20条,取10条 ``` (引用[1]) #### 三、示例场景 1. **条件查询与排序** ```sql SELECT 姓名, 成绩 FROM 学生表 WHERE 学科 = '数学' AND 成绩 >= 90 ORDER BY 成绩 DESC LIMIT 5; ``` 2. **分组统计** ```sql SELECT 部门, AVG(工资) AS 平均工资 FROM 员工表 GROUP BY 部门 HAVING 平均工资 > 10000; ``` #### 四、注意事项 1. 在 Linux 系统下,MySQL 对表名字段名**区分大小写**,需保持语句与定义一致(引用[2])。 2. 避免使用 `SELECT *`,明确列出所需字段以提升性能(引用[4])。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值