MySQL:DQL的基本作用

本文详细介绍了SQL的基本查询语句,包括DQL(数据查询语言)的使用,如查询所有列、指定列、列别名、字符串操作、去重、表结构显示、过滤及查询、分组、多表查询等内容,适合初学者快速掌握SQL查询技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、DQL(数据查询语言)

1.基本语句:
	查询所有列:select * from 表名,但是不推荐使用。如果想要查询全部列的话,需要在select后列出所有列段名。
	查询指定列:select 列段名 from 表名。
	列的别名:重命名一个列,便于下次使用,写在列名后面用空格隔开,也可以用 as “别名”。
	字符串:字符串可以是select列表的一个字符,数字,日期。字符串中的+号只用于运算,不用于连接。
	如何去重:select distinct 列名 from 表名

在这里插入图片描述

	显示表结构: desc 表名;

在这里插入图片描述

2.过滤及查询
语法:select * from 表名 where 条件 (Boolean表达式);将不满足条件的行过滤掉。
运算符筛选:比如在员工表中选出工资大于12000的员工

在这里插入图片描述

逻辑筛选: 
	逻辑运算符:&& || !    and  or   not
	&&和and:两个条件都为true,结果为true,反之为false
	||或or: 只要有一个条件为true,结果为true,反之为false
	!或not: 如果连接的条件本身为false,结果为true,反之为false
比如:查询部门编号是在90到110之间,或者工资高于15000的员工信息

在这里插入图片描述

模糊查询:
	关键字:like,	between  and,in,is null
	like:一般和通配符搭配使用,通配符的%代表任意多个字符,_代表任意单个字符
	如果要查询员工中包含a字符的员工信息的话

在这里插入图片描述

	又或者需要查询员工名中第三个字符为e的话将like后面的判断语句更改成‘__n%’即可

在这里插入图片描述

	between and 是查询两个临界值中的数据,临界值从小到大不要调换顺序,范围包含临界值本身
比如:要查询员工表中编号是100-120的员工:

在这里插入图片描述

	in:用于判断某个字段的值是否属于in列表中的某一项(in 中不支持通配符,值类型必须一致或者兼容)
比如:要查询员工的工种编号是。。。 。。。中的一个:

在这里插入图片描述

	is null: =或者是<>不能用于判断null值只能用is null 或is not null
安全等于:
	可以替代一些不能用=来判断的地方
3.分组
group by 列名 having 条件 (boolean条件)
可以按照某个列名将一个表分为n组
比如:将部门编号大于90的员工信息降序输出:

在这里插入图片描述

组函数:
	有sum、avg、max.min.count计数
	sum.avg一般用于处理数值型,max、min、count可以处理任何类型
	都忽略null型,可以和distinct搭配实现去重运算

在这里插入图片描述

	分组查询 group by:
		和分组函数一同查询的字段必须是group by后出现的字段
		筛选分为两类:分组前筛选和分组后筛选
		分组前筛选是针对原始表,在group by前连接wheree关键字
		分组后筛选是针对group by的结果集 关键字在group by后面 having
4.多表查询
笛卡尔积:
	笛卡尔积在省略连接条件、连接条件无效、所有表中的所有行互相连接等情况下会产生。会产生出两个表的乘积,性能非常差,在写sql语句时一定要避免出现笛卡尔积。为了避免笛卡尔积,可以在where加入有效的连接条件。
	链表查询涉及的表,需要避免重复列的出现,一般需要添加表别名实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值