#去重操作,不重复显示 SELECT DISTINCT ename FROM emp #查询年龄大于20 SELECT * FROM emp WHERE age>20 #模糊查询,查询所有名字开头为J的信息 #%代表通配符,匹配任意内容 SELECT * FROM emp WHERE ename LIKE 'j%' #模糊查询,查询所有名字结尾为k的信息 SELECT * FROM emp WHERE ename LIKE '%k' #模糊查询,查询所有名字中包含a的信息 SELECT * FROM emp WHERE ename LIKE '%a%' #模糊查询,查询所有名字开头为J,后面包含三个字母的信息 #_代表站位符,匹配任意内容 SELECT * FROM emp WHERE ename LIKE 'j___' #排序操作 ##查询emp表所有记录,根据eid进行排序ASC升序,DESC降序 SELECT * FROM emp ORDER BY eid DESC #查询区间范围的值 #查询emp表年龄30-50范围 SELECT * FROM emp WHERE age>=30 AND age<=50 SELECT * FROM emp WHERE age BETWEEN 30 AND 50 #查询emp表年龄是20 40 60 SELECT * FROM emp WHERE age IN(20,40,60) #分页查询 #关键字limit,只能用在mysql中,不是标准sql #limit后面两个参数,第一个参数 查询数据开始位置;第二个参数 每页显示多少条记录 SELECT * FROM emp LIMIT 0,3 SELECT * FROM emp LIMIT 3,3 #分组查询GROUP BY #查询每个edid有多少个人 SELECT COUNT(*) AS num,edid FROM emp GROUP BY edid #GROUP BY 加上having操作 ##统计每个部门的最高工资#一对多关系 #编写emp和salary内连接查询 ##得到最高工资max ##部门分组group by SELECT MAX(salarystid) ,emp.edid FROM emp,salary WHERE emp.`stid`=salary.`stid` GROUP BY emp.`edid` # 获取最高工资大于5000的部门,having后可以加函数where后不能 #在分组之上做筛选 SELECT MAX(salarystand),emp.edid FROM emp,salary WHERE emp.stid=salary.stid GROUP BY emp.edid HAVING MAX(salarystand)>5000