Questions pratiques sur la base de données 4 - Requête simple SQL (y compris les réponses)

À des fins expérimentales
1. Maîtriser la grammaire de base de l'instruction SELECT et la méthode d'expression
des conditions de requête ; 2. Maîtriser les expressions de condition de requête et les méthodes d'utilisation;
3. Maîtriser les fonctions et les méthodes d'utilisation de la clause GROUP BY;
4. Maîtriser les fonctions et l'utilisation de la clause HAVING Méthode
5. Saisissez la fonction et l'utilisation de la clause ORDER BY.

1. Énumérez tous les élèves dont le nom de famille n'est pas Liu;

select *
from student
where sname not like '刘%'

2. Dressez la liste des élèves dont le nom de famille est "Shen" et dont le nom complet est composé de 3 caractères chinois;

select *
from student
where sname  like '沈%' and LEN(sname)=3

3. Afficher les informations de base des élèves nés après 1985;

select * from student
where year(getdate())-sage>1985

4. Recherchez les informations de base de tous les cours dont le nom de cours contient la chaîne "data";

select * from course
where cname like '数据%'

5. Montrez la carte d'étudiant, le nom, le sexe, l'âge et le département de l'étudiant dont le huitième ou le neuvième chiffre est 1, 2, 3, 4 ou 9;

select * from student
where sno like '_______[12349]%' 
and sno like '________[12349]%'

6. Dressez la liste des élèves qui ont suivi le cours «1», par ordre décroissant de notes;

select sno,grade from sc
where cno='1'
order by grade desc

7. Indiquez le nombre d'étudiants de tous les étudiants qui ont suivi les cours «1» et «2» en même temps;

select sno from sc
where cno ='1' and 
sno in(select sno from sc where cno='2')

8. Dressez la liste de toutes les informations dans le calendrier des cours, classées par ordre croissant des cours préalables;

select * from course 
order by cpno asc

9. Dressez la liste de tous les élèves dont l'âge est supérieur à la moyenne, par ordre décroissant d'âge;

select * from student
where sage>(select AVG(sage)from student)
order by sage desc

10. Affichez la carte d'étudiant, le nom, le sexe, l'année de naissance et le département de tous les étudiants par ordre croissant d'année de naissance, et spécifiez les en-têtes de colonne dans le jeu de résultats comme "ID étudiant, nom, sexe, année de naissance, département";

select sno 学号,sname 姓名,ssex 性别,
YEAR(GETDATE ())-sage 出生年份,
sdept 院系 
from student
order by YEAR(GETDATE ())-sage asc

11. Afficher le numéro d'étudiant, le numéro de cours et les notes des étudiants dont les notes de cours sont comprises entre 70 et 80 par ordre décroissant de numéro de cours et de note;

select * from sc
where grade>=70 and grade<80
order by cno desc,grade desc

12. Affichez le nombre total d'étudiants et l'âge moyen dans le tableau d'information sur les étudiants. Les en-têtes de colonne de l'ensemble de résultats sont désignés comme «nombre total d'étudiants, âge moyen»;

select COUNT(sno)学生总人数,
		AVG(sage)平均年龄
from student

13. Indiquer le nombre de cours au choix pour chaque étudiant dont le nombre de cours au choix est supérieur à 3;

select Sno,COUNT(sno)
from sc
group by sno having COUNT(sno)>3

14. Afficher le nombre total de cours au choix, le score le plus élevé, le score le plus bas et le score moyen par ordre décroissant du numéro du cours;

select cno,COUNT(*),MAX(grade),
MIN(grade),AVG(grade)
from sc
group by cno
order by cno desc

15. Indiquer le nombre d'élèves et la note moyenne de chaque élève dont la note moyenne est supérieure à la note moyenne des élèves «200515001»;

select sno,AVG(grade)
from sc
group by sno
having AVG(grade)>(select AVG(grade) 
from sc where sno='200515001')

16. Affiche le nombre et le taux de réussite de chaque cours optionnel;

select COUNT(case when grade>=60 
then 1 end)各课程及格人数,
CAST(count(case when grade>=60 
then 1 end)/count(*)as float)及格比率
from sc
group by cno

17. Indiquer le nombre d'étudiants avec le plus grand nombre de cours au choix et le nombre d'étudiants avec le moins de cours au choix;

select sno 学号,COUNT(cno)选修课程数
from sc
group by sno
having COUNT(cno)>=all (select COUNT(cno)
from sc
group by sno)
or COUNT(cno)<=all(select COUNT(cno)
from sc
group by sno)

18. Affichez le nombre d'étudiants et d'étudiants de chaque faculté, et les en-têtes de colonne de l'ensemble de résultats sont désignés par «Nom du département, nombre de garçons, nombre de filles»;

select sdept as 院系名称,
COUNT(ssex) as 男生人数
from student
where ssex='男'
group by sdept

19. Énumérez le nombre d'étudiants et les notes moyennes des étudiants qui ont échoué à deux cours ou plus (dont deux);

select sno,AVG(grade)
from sc
where grade<60
group by sno
having COUNT (cno)>=2

Je suppose que tu aimes

Origine blog.csdn.net/ssdssa/article/details/108985057
conseillé
Classement