SQL是一种数据库语言。可以用于存取数据以及查询、更新和管理关系型数据库系统。作为数据分析四大必备工具之一,SQL的重要性不言而喻。而SQL查询语句(SELECT检索语句)则是SQL最基础、最常用的语句,主要的用途是从一个或者多个表中检索信息。
SQL查询语句每一个数据分析师在工作中都会用到的工具,那么下面我们就为大家整理了一些SQL常用的查询语句,希望可以帮助大家更好地掌握数据分析的技能,提升工作效率。
一、查询所有列的数据
SELECT * FROM emp;
二、查询指定列的数据
SELECT empmo, ename, mgr FROM emp;
SELECT DISTINCT mgr FROM emp; 只显示结果不同的项
三、查询指定行的数据
SELECT * FROM emp WHERE job='CLERK';
四、查询前5行数据
SELECT * FROM table1 limit 5;
五、求总数
例:查询登录系统学总数
SELECT COUNT(*) FROM StudentBindPaperTypeEntity
六、求指定列的最大值
例:查询表格中最大的编号
SELECT MAX(StudentID) FROM StudentBindPaperTypeEntity
七、求指定列的最小值
查询表格中最小的编号
SELECT MIN(StudentID) FROM StudentBindPaperTypeEntity
八、求和
例:查询学生在线人数(IsUse=0表示未在线,1表示在线)
SELECT SUM(IsUse) FROM StudentBindPaperTypeEntity
九、求指定列的平均值
例:查询编号平均值
SELECT AVG(StudentID) FROM StudentBindPaperTypeEntity
十、from(表)+连接查询
1.内连接:Inner join
2.左连接:Left join
3.右连接:Right join
十一、 使用like操作符(%,_)
%表示一个或多个字符,_表示一个字符,[charlist]表示字符列中的任何单一字符,[^charlist]或者[!charlist]不在字符列中的任何单一字符。
SELECT * FROM emp WHERE ename like 'S__T%';
十二、在where条件中使用In
SELECT * FROM emp WHERE job IN ('CLERK','ANALYST');
十三、查询字段内容为空/非空的语句
SELECT * FROM emp WHERE mgr IS/IS NOT NULL;
十四、使用逻辑操作符号
SELECT * FROM emp WHERE (sal>500 or job='MANAGE') and ename like 'J%';
十五、数据分组(max,min,avg,sum,count)
SELECT MAX(sal),MIN(age),AVG(sal),SUM(sal) from emp;
SELECT * FROM emp where sal=(SELECT MAX(sal) from emp));
SELEC COUNT(*) FROM emp;
十六、group by(用于对查询结果的分组统计) 和 having子句(用于限制分组显示结果)
SELECT deptno,MAX(sal),AVG(sal) FROM emp GROUP BY deptno;
SELECT deptno, job, AVG(sal),MIN(sal) FROM emp group by deptno,job having AVG(sal)<2000;
十七、自连接(指同一张表的连接查询)
SELECT er.ename, ee.ename mgr_name from emp er, emp ee where er.mgr=ee.empno;
十八、多表查询
SELECT还可以从多张表同时查询数据,多表查询的语法是:
SELECT * FROM <表1> <表2>。
例如我们可以同时查询student,和sc两张表
SELECT * FROM student,scoure;
那如果我们想要某一个表当中的特定的列呢?比如student表当中的name和age,以及source表当中的cno列,这可以这样表达:
SELECT s.NAME, s.age, c.cno FROM student s, scoure c;
十九、模糊查询
模糊查询 like 通配符(% 任意多个字符 _单个字符),
比如在班级名单表格中查询出所有姓张的同学:
SELECT * FROM student WHERE name like '张%';
查询姓李且名字只有两个字的学生:
SELECT * FROM student WHERE name like '李_';
查询出所有含有玉字的同学的名称:
SELECT * FROM student WHERE name like '%玉%';
二十、去重查询
SELECT DISTINCT sex from student
熟记并且掌握上面的所有SQL查询语句,不仅能让你的更好地掌握SQL的技能,也能极大地提供工作效率,让你的工作变得更加轻松,也能得到更多的摸鱼时间。所以,还在等什么,赶紧记下来吧。