[MySQL笔记]05.DQL查询表中数据(一)

这篇博客介绍了MySQL中DQL查询数据的基本操作,包括简单查询的全部和指定字段查询,详细讲解了如as、date_format()等常用API的用法,并深入探讨了条件查询的比较和逻辑运算符,以及模糊查询like的通配符使用和转译功能。
摘要由CSDN通过智能技术生成


DQL查询表中的数据(一)

简单查询

1.查询全部
select * from emp;

注意:"*" 在执行时会解析成字段名,非常消耗资源

2.指定字段查询
select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;
select empno,ename from emp;
3.常用API
方法作用传入参数
as起别名ename as name
distinct()清除重复值distinct(ename)
concat()拼接字符concat(ename,’,’,job,’,’,sal)
round()四舍五入round(sal,2)取小数点后两位
ifnull()是否为空ifnull(sal,0)如果是null取0
length()长度length(name)
lpad()在sal左边添加$,处理到15输出lpad (sal,‘15’,’$’)
datediff()输出两个时间相减的天数datediff (now(),hiredate)
date_format()格式化时间,按照自定义格式输出date_format(hiredate,’%Y-%m-%d’)
1.as
-- 查询的字段可以直接计算, 字段起别名[as] 
select ename, sal*12 as salary from emp;
select ename, sal*12 salary from emp;
2.date_format()
-- 时间相关,格式化时间
select ename, date_format(hiredate, '%Y年%m月%d日') from emp;
SELECT DATE_FORMAT(now(), '%Y年%m月%d日');
3.distinct()
-- 显示出职员表中的不重复的职位;
select distinct job from emp;
4.concat()
-- 连接职员表中的职员名字、职位、薪⽔,列之间⽤逗号连接,列头显示成 OUT_PUT
select concat(ename,',',job,',',sal) as 'OUT_PUT' from emp;
5.round()
-- 查询职员表 emp 中员⼯号、姓名、⼯资,以及⼯资提⾼百分之 20%后的结果,元为单位进⾏四舍五⼊
select empno,ename,sal,concat(round(sal * 1.2),'元') as result from emp;
6.ifnull()
-- 查询职员表的工资   工资=薪资+绩效*0.8,如果绩效为null,则表示绩效为0
select ename, sal + ifnull (comm * 0.8,0) from emp;
7.length()
-- 查询名字长度是4的人
select ename form where length(name)=4;
8.lpad()
-- 拼接max
select ename,lpad (sal,'15','$') as salary from emp
9.datediff()
-- 查询各员⼯的姓名 ename,并显示出各员⼯在公司⼯作的⽉份数.
select ename,round(datediff (now(),hiredate ) / 30 )from emp;

条件查询where

语法:

SELECT 字段名 FROM 表名 WHERE 条件;
# 流程: 取出表中的每条数据,满⾜条件的记录就返回,不满⾜条件的记录不返回
比较运算符
⽐较运算符说明
,> , <, <=, >=, =,<><> 在 SQL 中表示不等于,在 mysql 中也可以使⽤!=,没有==
BETWEEN…AND在⼀个范围之内,如: between 100 and 200相当于条件在 100 到 200 之间,包头⼜包尾
IN(集合)集合表示多个值,使⽤逗号分隔
IS NULL查询某⼀列为 NULL 的值,注:不能写=NULL
select ename, sal from emp
where sal > 2000;
select ename, sal from emp
where sal <> 3000;
-- sal>=2000 and sal<=3000
select ename, sal from emp where sal between 2000 and 3000;
-- null 表示无穷大或者无穷小, 不能判断范围, 也不能计算
-- is null - 是null值     is not null - 不是null值
select ename from emp where mgr is null;
逻辑运算符
逻辑运算符说明
and 或 &&与, SQL 中建议使⽤前者,后者并不通⽤。
or 或 II
not 或 !
-- 条件 并且:and  或者:or
select ename, sal from emp where sal > 2000 and sal < 3000;
select ename, sal from emp where sal < 2000 or sal > 3000;
-- 在部门20的人
select ename, deptno from emp where deptno = 20;
-- 不在部门20和30的人
select ename, deptno from emp where deptno = 20 or deptno=30;
select ename, deptno from emp where deptno not in (20,30);

模糊查询like

通配符 %和 _

"%"代表任意字符任意长度
"_"代表一个任意字符

-- 名字是 SMITH 的人
select ename from emp where ename = 'SMITH';
-- 首字母是 S 的人 like-模糊查询
select ename from emp where ename like 'S%';
-- 第二个字母是A的人
select ename from emp where ename like '_A%';
-- 名字包含A的人
select ename from emp where ename like '%A%';
转译

ESCAPE ‘*’ 转义

SELECT ENAME FROM EMP WHERE ENAME LIKE 'A*_SMITH' ESCAPE '*';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值