文前附sql語句學習連結
https://www.w3cschool.cn/sql/
一、基礎語句
1.找出工資是800的員工
select ename,sal from emp where sal=800;
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yM1cjMxEzM4kTMiJGNxIjNzYzX5UjN1QTMyAzLcFTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
2.找出叫Smith的人
select ename,sal from emp where ename='smith';
3.找出工資大于1500的員工
select ename,sal from emp where sal>1500;
4.找出工資小于1000的員工
select ename,sal from emp where sal<1000;
5.找出工資大于1000的和小于2900的員工
mysql> select ename,sal from emp where sal>1000 and sal<2900;
6.between語句
mysql> select ename,sal from emp where sal between 1100 and 3000;
7.查找工種為salesman的工資在1000和3000之間的員工
由于有優先級順序,故後面的語句用括号括起來
select ename,job,sal from emp where job='salesman'and(sal>1000 or sal<3000);
8.查找工種為salesman和clerk的員工
select ename,job from emp where job='salesman'or job='clerk';
二、like模糊查詢 *
1.查找名字中包含字母t的員工
select ename from emp where ename like '%t%';
2.查找名字中第二個字母是l的員工
select ename from emp where ename like '_l%';
**
3.查找以a,j,b開頭的員工
由于版本不支援,暫時此語句無法運作,無截圖;
select ename frome emp where ename like '[ajb]%';
三、多行函數,聚合函數
**:輸入多行,産出一行。自動忽略NULL值。不參與運算。
count 統計
max 最大值
min 最小值
sum 總和
avg 平均值
NULL此處的值不存在,不是空,’'不是0
1.計算員工一年所得
select ename,(sal+comm)*12 from emp;
null和任何數值運算,結果為NULL;
ifnull()函數,使為null的值為0;
select ename,(sal+ifnull(comm,0))*12 from emp;
2.找出沒有津貼的員工
select ename,comm from emp where comm is null;
3.找出有津貼的員工津貼的和
select sum(comm) from emp;
四、分組group by
分組:一般情況是和聚合函數一起用:
select
參與分組的列名,聚合函數,
from
…
group by
分組的列名;
1.計算每個工種的工資的平均值
select avg(sal) from emp group by job;
2.部門的工資總和
select deptno,sum(sal) from emp group by deptno;
3.部門中不同工種的最高工資
select deptno,job,max(sal) from emp group by deptno,job;
五、order by 排序。
asc是指定列按升序排列,desc則是指定列按降序排列。
預設升序
1.,
select ename,sal from emp order by sal desc;
select ename,sal from emp order by sal,ename asc;