mysql分页合并同类项_数据库的简单查询

本文介绍了如何使用MySQL进行高效的数据查询,包括选择特定列、别名设定、去除重复记录、计算字段、排序、条件查询、模糊匹配以及分页查询。重点讲解了使用DISTINCT、ORDER BY、WHERE、LIKE、BETWEEN、IN和NOT IN等操作符进行数据筛选,并给出了多例分页查询的示例。
摘要由CSDN通过智能技术生成

(1)只查询特定的列

示例:查询员工的姓名,工资,生日

SELECT ename,salary,birthday FROM emp;

(2)查询所有的列

SELECT * FROM emp;

(3)给列取别名-AS或空格

示例:查询员工的姓名、生日、收入,并取别名

SELECT ename AS 姓名,birthday AS 生日,salary AS 收入 FROM emp;

SELECT ename 姓名,birthday 生日,salary 收入 FROM emp;

(4)只显示不同的记录-合并同类项DISTINCT

示例:查询哪些部门编号下有员工

SELECT DISTINCT deptId FROM emp;

(5)在查询时执行计算

示例:计算每个员工的年薪

SELECT ename 姓名,salary*12 年薪 FROM emp;

(6)查询结果集的排序-order by 列名 asc

示例1:查询所有员工,结果按照工资由低到高(升序)

SELECT * FROM emp ORDER BY salary ASC; #ascendant 升序

示例2:查询所有员工,结果按照工资由高到低(降序)

SELECT * FROM emp ORDER BY salary DESC; #descendant降序

示例3:查询所有员工,结果按照年龄由大到小

SELECT * FROM emp ORDER BY birthday ASC;

示例3:查询所有员工,结果按照生日由小到大排序,如果生日相同,再按姓名由小到大排序

SELECT * FROM emp ORDER BY birthday ASC,ename ASC;

PS:默认按照升序排列

(7)条件查询

示例1:查询编号为5的员工所有信息

SELECT * FROM emp WHERE eid=5;

示例2:查询姓名为KING的员工的编号、工资、生日

SELECT eid,salary,birthday FROM emp WHERE ename=’KING’;

示例3:查询1991-1-1之后出生的员工信息

SELECT * FROM emp WHERE birthday>’1991-1-1’;

示例4:查询不在10号部门的所有员工信息

SELECT * FROM emp WHERE deptId!=10 AND deptId IS NOT NULL;

示例5:查询明确部门的员工信息

SELECT * FROM emp WHERE deptId IS NOT NULL;

示例6:查询工资在5000~5999的员工信息

SELECT * FROM emp WHERE salary>=5000 AND salary<=5999;

SELECT * FROM emp WHERE salary BETWEEN 5000 AND 5999;

示例7:查询部门在10和30的员工信息

SELECT * FROM emp WHERE deptId IN(10,30);

示例8:查询部门不在10和30的员工信息

SELECT * FROM emp WHERE deptId NOT IN(10,30);

(8)模糊条件查询

示例1:查询姓名中包含字母E的员工所有信息

SELECT * FROM emp WHERE ename LIKE ‘%E%’;

示例2:查询姓名中最后一个字母为E的员工所有信息

SELECT * FROM emp WHERE ename LIKE ‘%E’;

示例3:查询姓名中倒数第二个字母为E的员工所有信息

SELECT * FROM emp WHERE ename LIKE ‘%E__’;

(9)分页查询-先WHERE 后ORDER BY

示例1:查询所有的男员工,对查询的结果集,按照工资升序排列

SELECT * FROM emp WHERE sex=1 ORDER BY salary ASC;

分页显示:查询的结果集记录太多,一次显示不完,可一页一页显示。分页查询语句在不同的数据库中实现方法不一样,MYSQL是最简单的。

SELECT * FROM emp LIMIT start,count;

start:从结果集中开始读取的值

count:指定读取的最多行数

第一页:SELECT * FROM emp LIMIT 0,5;

第二页:SELECT * FROM emp LIMIT 5,5;

第三页:SELECT * FROM emp LIMIT 10,5;

第n页:SELECT * FROM emp LIMIT count*(n-1),count;

PS:NULL和任何值都不能进行相等/不等判定,可以使用IS NULL/IS NOT NULL;

LIMIT后边的两个值不能添加引号

> >= < <= = !=

AND:并

OR:或

BETWEEN AND:在...之间

IN:并集

NOT IN:不在该并集内

LIKE '':模糊查询的适配符

%: 可以匹配任意多个字符,>=0

_: 可以匹配任意一个字符 =1

上述两个符号不能和=连用,只能使用LIKE连用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值