67 lines
1.8 KiB
SQL
67 lines
1.8 KiB
SQL
#去重操作,不重复显示
|
||
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
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|