DQL数据查询语言。文字不多,代码为主,自学用,谨慎借鉴,有错误请指正

14 篇文章 0 订阅

目录

查询基础语法

语法一

语法二

where子句

条件

1.等于 =

2.不等于 !=  或 <>

3.大于 >

4.小于 <

5.大于等于 >=

6.小于等于<=

多条件

条件1 and 条件2

条件1 or  条件2

between 条件1 and 条件2

模糊查询

对查询结果处理

计算列和别名

取消重复数据

排序

单列排序

多列排序

完整语法

以上语句的执行顺序

注意事项:



查询基础语法

数据表内容,查询结果就不展示了

语法一

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

查询表中指定列的记录

语法二

select * from 表名

查询表中所有记录,不推荐使用

where子句

select 列名1,列名2,......,列名n from 表名 where 条件

条件

用于将特定的记录筛选出来然后进行增删改查操作

1.等于 =

select stu_name from stus where stu_age = 10;

2.不等于 !=  或 <>

select stu_name from stus where stu_age != 10;

select stu_name from stus where stu_age <> 10;

3.大于 >

select stu_name from stus where stu_age > 10;

4.小于 <

select stu_name from stus where stu_age < 13;

5.大于等于 >=

select stu_name from stus where stu_age >= 10;

6.小于等于<=

select stu_name from stus where stu_age <= 13;

多条件

通过多个条件筛选数据

条件1 and 条件2

并且   筛选多个条件同时满足的记录

select stu_num,stu_name from stus where stu_age = 16 and stu_gender = '男';

条件1 or  条件2

或者   筛选多个条件至少满足一个的记录

select stu_num,stu_name from stus where stu_age = 16 or stu_gender = '男';

between 条件1 and 条件2

区间查询,左右条件1和2全都是闭区间

select stu_num,stu_name from stus where stu_age between 16 and 17;

模糊查询

like子句来实现模糊查询

select 列名1,列名2,......,列名n from 表名 where 条件 like 'reg';

like关键字后面的reg表达式中:

        1.% 表示任意多个字符【%a%:在该字段值得任意位置包含字母a】

        2._ 表示任意一个字符【_a%:在该字段值第二个字母为a】

#查询学生姓名包含a的学生信息
select * from stus where stu_name like '%a%';

#查询学生姓名最后一个是3的学生信息
select * from stus where stu_name like '%3';

#查询学生姓名第一个是张的学生信息
select * from stus where stu_name like '张%';

#查询学生姓名第二个是b的学生信息
select * from stus where stu_name like '_b%';

对查询结果处理

计算列和别名

别名:字段名后面可以直接加别名,或加as+别名

## 获取学生出生年份
select stu_name 姓名, 2021-stu_age as birYear from stus;

取消重复数据

从查询结果中取消重复记录:关键字distinct

select distinct stu_age from stus;

排序

单列排序

select 列名1,......,列名n from 表名 where 条件 order by + 列名 asc:升序(默认)

select 列名1,......,列名n from 表名 where 条件 order by + 列名 desc:降序

SELECT * FROM stus order by stu_gender;

SELECT * FROM stus order by stu_gender desc;

多列排序

select 列名1,......,列名n from 表名 where 条件 order by + 列名1 asc,列名2 desc

先满足第一个排序规则,当第一个排序的列的值相同时,在按照第二个列的规则排序

SELECT * FROM stus order by stu_gender asc ,stu_age desc;

完整语法


SELECT 查询列表 FROM 表名 WHERE 查询条件
GROUP BY 分组字段
HAVING 查询条件
ORDER BY 排序字段

以上语句的执行顺序


1.SELECT FROM查询出全部的数据
2.使用WHERE对查询结果进行过滤
3.过滤后的数据使用GROUP BY进行分组
4.分组后的数据使用HAVING再次过滤
5.再次过滤后的数据用ORDER BY排序

注意事项:


1.以上语句的顺序是固定的,不能改变.
2.对数据过滤的时候,优先使用WHERE进行过滤,这样的效率比较高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值