数据库学习(3)------DQL(查询表中数据和查询语句)

本文详细介绍了SQL查询的基本语法,包括选择特定列、去除重复值、进行字段运算、条件筛选以及使用LIKE和IN关键字进行模糊查询。此外,还讲解了排序、聚合函数、分组和LIMIT语句的运用,以及ANY和EVERY的用法。通过对这些概念的掌握,读者能够熟练地对数据库进行高效查询和操作。
摘要由CSDN通过智能技术生成

一丶查询表中数据

1.简单查询

-- * 表示所以行和列 
select * from 表名; -- * 在执行时会解析成字段名,消耗资源
-- 查询指定列的数据, 多个列之间以逗号分隔
select 字段名 1, 字段名 2, 字段名 3, ... from表名;


-- 对列指定别名
select 字段名 1 as 别名, 字段名 2 as 别名... from 表名;-- as 可以省略
-- 对列和表同时指定别名
select 字段名 1 as 别名, 字段名 2 as 别名... from 表名 as 表别名;

2.查询时清除重复值

select distinct 字段名 from 表名;

3.查询字段参与运算

select 列名 1 + 固定值 from 表名;-- +  -  *  /

4.条件查询

--条件筛选 where
select 字段名 from 表名 where 条件;

5.运算符的使用

(1.)比较运算符:

-- in 关键字
select 字段名 from 表名 where 字段 in (数据 1, 数据 2...);
-- like 关键字
select * from 表名 where 字段名 like'通配符字符串';


(2.) 逻辑运算符:

 

(3). 通配符字符串

% 匹配任意多个字符串   _  匹配一个字符串

-- like-模糊查询
-- 查询首字母是 S 的人 
select ename from emp where ename like 'S%';
-- 查询第二个字母是 S的人
select ename from emp where ename like '_S%';
-- 查询名字里有包含S的人
select ename from emp where ename like '%S%';

6.any和every的用法

-- sal > 2000,3000,4000中的任意一个值
select ename, sal from emp where sal > any(2000,3000,4000);
-- sal > 2000,3000,4000中的每一个值
select ename, sal from emp where sal > every(2000,3000,4000);

二丶DQL查询语句

1.排序

-- 结果排序 order by [数值\时间\字符串]
-- 默认 asc 升序
-- desc 降序
select 字段名 form 表名 where 字段=值 order by 字段名 [asc|desc];

(1)单列排序

-- 只按某⼀个字段进⾏排序,称为单列排序
select * from 表名 order by 字段名 desc;

(2).组合排序

-- 组合排序:同时对多个字段进⾏排序,如果第 1 个字段相等,则按第 2 个字段排序,依次类推。
select * from 表名 where 字段=值 order by 字段名 1 [ASC|DESC],字段名 2 [ASC|DESC];

2.聚合函数

selece 聚合函数(列名) from 表名;

 3.分组

# 分组查询是指使⽤ group by语句对查询信息进⾏分组,相同数据作为⼀组
select 字段 1,字段 2... from 表名 group by 分组字段 [having 条件];

 having和where的区别

注:以组函数结果作为条件, 需要使用 having 子句, 比较消耗资源, 建议少用

分组函数, 聚合函数 - 操作多行计算, 会自动忽略null值。
mysql组函数不能嵌套组函数使用。

 4.limit语句

作用:限制查询记录的条数。

select *  from 表名 [where ⼦句][group by ⼦句][having ⼦句]
 [order by ⼦句] [limit ⼦句]; -- 即放在最后

linit offset, length;
# offset: 起始⾏数,从 0 开始计数,如果省略,默认就是 0
# length: 返回的⾏数

 3.常用的函数

-- distinct 去除重复
-- ifnull(num,0) 当值为null时为0,否则为num
-- if(null,0,1) 当值为null时为0,否则为1
-- round(35.14,-1)四舍五入 前面为数组,后面为保留位数,当为负数时继续向前保留,如题为40

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值