12、MySQL練習

在這裏插入圖片描述
在這裏插入圖片描述

-- 3.查詢student表的所有記錄
-- SELECT * FROM student;

-- 4.查詢student表的第2條到4條記錄
-- SELECT * FROM student WHERE id BETWEEN 902 AND 904;
-- SELECT * FROM student LIMIT 1,3;

-- 5.從student表查詢所有學生的學號(id)、姓名(name)和院系(department)的信息
-- SELECT id,name,department FROM student;

-- 6.從student表中查詢計算機系和英語系的學生的信息
-- SELECT * FROM student WHERE department = '計算機系' OR department = '英語系';

-- 7.從student表中查詢年齡1985~1990年份的學生信息
-- SELECT * FROM student WHERE birth BETWEEN 1985 AND 1990;

-- 8.從student表中查詢每個院系有多少人
-- SELECT department,COUNT(id) FROM student GROUP BY department;

-- 9.從score表中查詢每個科目的最高分
-- SELECT c_name '科目',MAX(grade) '最高分' FROM score GROUP BY c_name;

-- 10.查詢李四的考試科目(c_name)和考試成績(grade)
-- SELECT t.id,t.`name`,e.c_name,e.grade
-- FROM student t,score e WHERE t.id = e.stu_id AND t.`name`='李四';

-- 11.用連接的方式查詢所有學生的信息和考試信息
-- SELECT t.*,e.*
-- FROM student t,score e WHERE t.id = e.stu_id;

-- 12.計算每個學生的總成績
-- SELECT t.`name` '學生姓名',SUM(grade) '總成績'
-- FROM student t,score e WHERE t.id = e.stu_id GROUP BY e.stu_id;
-- 
-- 13.計算每個考試科目的平均成績
-- SELECT c_name,AVG(grade) FROM score GROUP BY c_name;

-- 14.查詢計算機成績低於95的學生信息
-- SELECT t.*,e.c_name,e.grade
-- FROM student t,score e where t.id = e.stu_id AND e.c_name = '計算機' AND e.grade <95;
-- 
-- 15.將計算機考試成績按從高到低進行排序
-- SELECT t.*,e.c_name,e.grade
-- FROM student t,score e where t.id = e.stu_id AND e.c_name = '計算機' ORDER BY e.grade DESC;

-- 16.查詢姓張或者姓王的同學的姓名、院系和考試科目及成績
-- SELECT t.`name`,t.department,e.c_name,e.grade
-- FROM student t,score e WHERE t.id = e.stu_id AND t.`name` like '張%' OR t.`name` LIKE '王%';
-- 
-- 17.查詢都是北京的學生的姓名、年齡、院系和考試科目及成績
SELECT t.`name`,YEAR(NOW())-t.birth '年齡',t.department,t.address,e.c_name,e.grade
FROM student t,score e WHERE t.id = e.stu_id AND t.address LIKE "%北京%";

在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

-- 1. 查出至少有一個員工的部門。顯示部門編號、部門名稱、部門位置、部門人數。
-- SELECT d.*,COUNT(e.empno)
-- FROM dept d,emp e WHERE d.deptno = e.deptno GROUP BY e.deptno;

-- 2. 列出所有員工的姓名及其直接上級的姓名。
-- SELECT e1.empno,e1.ename,e1.mgr,e2.empno,e2.ename
-- FROM emp e1 LEFT JOIN emp e2 ON e1.mgr = e2.empno;

-- 3. 列出受僱日期早於直接上級的所有員工的編號、姓名、部門名稱。
-- SELECT e1.ename '員工',e1.hiredate,e2.ename '上司',e2.hiredate,d.dname
-- FROM emp e1,emp e2,dept d WHERE e1.mgr = e2.empno AND e1.deptno = d.deptno AND e1.hiredate < e2.hiredate;
-- 
-- 4. 列出部門名稱和這些部門的員工信息,同時列出那些沒有員工的部門。
-- SELECT d.dname,e.*
-- FROM dept d LEFT JOIN emp e ON d.deptno = e.deptno ORDER BY d.deptno;

-- 5. 列出最低薪金大於15000的各種工作及從事此工作的員工人數。
-- SELECT e.job,COUNT(e.job)
-- FROM emp e WHERE e.sal > 15000 GROUP BY e.job;

-- 6. 列出在銷售部工作的員工的姓名,假定不知道銷售部的部門編號。
-- SELECT e.ename,e.job,d.dname
-- FROM emp e,dept d WHERE e.deptno = d.deptno AND d.dname = '銷售部';

-- 7. 列出薪金高於公司平均薪金的所有員工信息,所在部門名稱,上級領導,工資等級。
-- SELECT e1.ename,e1.job,e1.sal,e2.ename '上司',d.dname,s.GRADE
-- FROM salgrade s,emp e1 LEFT JOIN dept d ON e1.deptno = d.deptno 
-- LEFT JOIN emp e2 ON e1.mgr = e2.empno 
-- WHERE (e1.sal BETWEEN s.LOwSAL AND s.HISAL) AND e1.sal > (SELECT AVG(sal) FROM emp);

-- 8.列出與龐統從事相同工作的所有員工及部門名稱。
-- SELECT e.empno,e.ename,e.job,d.dname,d.loc
-- FROM emp e LEFT JOIN dept d ON e.deptno = d.deptno WHERE e.job = (SELECT job FROM emp WHERE ename = '龐統');

-- 9.列出薪金高於在部門30工作的所有員工的薪金 的員工姓名和薪金、部門名稱。
-- SELECT e.ename,e.job,e.sal,d.dname
-- FROM emp e LEFT JOIN dept d ON e.deptno = d.deptno 
-- WHERE e.sal > (SELECT MAX(sal) FROM emp WHERE deptno = 30); 

-- 10.查出年份、利潤、年度增長比。 
SELECT p1.* ,CONCAT(((p1.zz - p2.zz)/p2.zz)*100,'%') '年度增長比'
FROM profit p1 LEFT JOIN profit p2 ON p1.`year` = p2.`year`+1 ORDER BY p1.`year`;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章