兩個SQL語言練習題一、有兩張表USER(uid,name,te
1。
SQL-Server的SQL select * from USER where uid in(select top 2 uid from KEYWORDS group by uid order by sum(keyword) desc) 2。 A select * from student where sno in(select sno from SC group by sno,cno having avg(Grade) > (select avg(Grade) from SC group by sno,cno having sno=001)) B原理同A select * from student where sno in(select cno from Course group by cno having sum(Ccredit) > (select sum(Ccredit) from Course group by cno having cno=001)) 。
您還有SQL語句的練習題目 嗎
簡單的有幾個:作業二(4.1)一.創建數據庫teaching,并在該數據庫中建立以下數據表:student:列名 數據類型 允許空 備注SNO char(4) 否 主鍵SNAME nchar(10) 否 SEX char(1) 是 'M' 或'F'AGE smallint 是 18--25course:列名 數據類型 允許空 備注CNO char(4) 否 主鍵CNAME char(10) 否 CREDIT smallint 是 0--10S_C:列名 數據類型 允許空 備注SNO char(4) 否 主鍵(外鍵)CNO char(4) 否 主鍵(外鍵)GRADE smallint 是 0--100二.打開表,輸入數據。
student:s1 wang f 20s2 li m 20s3 zhang f 21s4 zhao m 19s5 liu m 21course:c1 os 4c2 db 5c3 maths 5c4 english 6s_c:s1 c1 56s1 c2 75s1 c3 73s2 c1 80s2 c2 74s3 c1 82s3 c3 43s4 c2 81三.寫出以下查詢語句:1. 查詢選修了c1這門課的學生的學號,姓名,課程名和成績。2. 查詢選修了c1這門課的學生的學號,姓名,課程名。
3. 查詢“wang”的學號,所選課程號和成績。4. 查詢所有成績之和。
5. 查詢每一個學生的學號和總成績。6. 查詢課程平均分在80分以上的課程號和平均分。
7. 查詢平均分不低于90分的學生的學號及其平均成績。8. 統計每門課程的學生選修人數。
要求輸出人數超過10人的課程號和選修人數,查詢結果按人數降序排列,若人數相同,按課程號升序排列。
SQL的練習,求答案
有一些類似的題看看吧 一定有幫助實驗一練習1、請查詢表DEPT中所有部門的情況。
select * from dept;練習2、查詢表DEPT中的部門號、部門名稱兩個字段的所有信息。select deptno,dname from dept;練習3、請從表EMP中查詢10號部門工作的雇員姓名和工資。
select ename,sal from emp where deptno=10;練習4、請從表EMP中查找工種是職員CLERK或經理MANAGER的雇員姓名、工資。select ename,sal from emp where job='CLERK' or job='MANAGER';練習5、請在EMP表中查找部門號在10-30之間的雇員的姓名、部門號、工資、工作。
select ename,deptno,sal,job from emp where deptno between 10 and 30;練習6、請從表EMP中查找姓名以J開頭所有雇員的姓名、工資、職位。select ename,sal,job from emp where ename like 'J%';練習7、請從表EMP中查找工資低于2000的雇員的姓名、工作、工資,并按工資降序排列。
select ename,job,sal from emp where sal<=2000 order by sal desc;練習8、請從表中查詢工作是CLERK的所有人的姓名、工資、部門號、部門名稱以及部門地址的信息。select ename,sal,*,dname,loc from emp,dept where *=* and job='CLERK';練習9、查詢表EMP中所有的工資大于等于2000的雇員姓名和他的經理的名字。
select *,* from emp a,emp b where *=*(+) and *>=2000;練習10、在表EMP中查詢所有工資高于JONES的所有雇員姓名、工作和工資。select ename,job,sal from emp where sal>(select sal from emp where ename='JONES');練習11、列出沒有對應部門表信息的所有雇員的姓名、工作以及部門號。
select ename,job,deptno from emp where deptno not in (select deptno from dept);練習12、查找工資在1000~3000之間的雇員所在部門的所有人員信息select * from emp where deptno in (select distinct deptno from emp where sal between 1000 and 3000);練習13、雇員中誰的工資最高。select ename from emp where sal=(select max(sal) from emp);select ename from (select * from emp order by sal desc) where rownum<=1;*練習14、雇員中誰的工資第二高(考慮并列第一的情況,如何處理)。
select ename,sal from (select ename ,sal from emp where sal<(select max(sal) from emp) order by sal desc) where rownum<=1;實驗二1. 查詢所有雇員的姓名、SAL與COMM之和。select ename,sal+nvl(comm,0) “sal-and-comm” from emp;2. 查詢所有81年7月1日以前來的員工姓名、工資、所屬部門的名字select ename,sal,dname from emp,dept where *=* and hiredate<=to_date('1981-07-01','yyyy-mm-dd');3. 查詢各部門中81年1月1日以后來的員工數select deptno,count(*) from emp where hiredate>=to_date('1981-01-01','yyyy-mm-dd') group by deptno;4. 查詢所有在CHICAGO工作的經理MANAGER和銷售員SALESMAN的姓名、工資select ename,sal from emp where (job='MANAGER' or job='SALES') and deptno in (select deptno from dept where loc='CHICAGO');5. 查詢列出來公司就職時間超過24年的員工名單select ename from emp where hiredate<=add_months(sysdate,-288);6. 查詢于81年來公司所有員工的總收入(SAL和COMM)select sum(sal+nvl(comm,0)) from emp where to_char(hiredate,'yyyy')='1981';7. 查詢顯示每個雇員加入公司的準確時間,按****年**月**日 時分秒顯示。
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;8. 查詢公司中按年份月份統計各地的錄用職工數量select to_char(hiredate,'yyyy-mm'),loc,count(*) from emp,dept where *=* group by to_char(hiredate,'yyyy-mm'),loc;9. 查詢列出各部門的部門名和部門經理名字select dname,ename from emp,dept where *=* and job='MANAGER';10. 查詢部門平均工資最高的部門名稱和最低的部門名稱select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) ) where rownum<=1) union all select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) desc ) where rownum<=1);11. *查詢與雇員號為7521員工的最接近的在其后進入公司的員工姓名select ename from (select ename from (select ename from emp where hiredate>(select hiredate from emp where empno=7521) order by hiredate ) where rownum<=1)。
數據庫SQL語言習題求助
select *,*,* from sc inner join s on *=* select *,*,sum(*) from sc inner join s on *=* where *>=60 group by *,* having count(*)>=4 order by sum(*) descselect *,*,* from sc inner join s on *=* inner join c on *=*re *='計算機' and *='女'。