¿Cuáles son las declaraciones SQL comúnmente utilizadas en las bases de datos?
¿Cuáles son las sentencias SQL comúnmente utilizadas en las bases de datos?
¿Cuáles son las sentencias SQL? Hay muchos tipos y cantidades de declaraciones SQL, y a menudo se utilizan muchas declaraciones. A continuación, compartiré con usted las declaraciones SQL más utilizadas, ¡solo como referencia!
50 declaraciones SQL de uso común
Tabla de estudiantes Student(S#,Sname,Sage,Ssex)
Tabla de cursos Course(C#,Cname,T#)
Tabla de puntuación SC(S#,C#,score)
Tabla de profesor(T#,Tname) Profesor
Pregunta:
1. Consultar el número de estudiantes de todos los estudiantes cuyas calificaciones en el curso ?001? son más altas que las del curso ?002?
seleccione a.S# de (seleccione s#,puntuación de SC donde C#=; '001') a, (seleccione s#,score
de SC donde C#='002') b
donde a.score>b.score y a.s#=b.s#
2.Consulte el número de estudiantes y las calificaciones promedio de los estudiantes cuyo puntaje promedio sea superior a 60 puntos
seleccione S#,avg(score)
; del grupo sc
por S# con promedio (puntuación) >60
3. Consulta el número de estudiante, el nombre, la cantidad de cursos tomados y la puntuación total de todos los estudiantes <; /p>
seleccione Student.S#,Student .Sname,count(SC.C#),sum(score)
desde Student left Outer join SC en Student.S#=SC.S#
agrupar por Student.S# ,Sname
4. Consultar el número de profesores con el apellido ?Li?
select count(distinct(Tname); ))
de Profesor
Donde Tname como '李%'
5. Consulta el número de estudiante y el nombre de los estudiantes que no han tomado la clase de Ye Ping.
seleccione Student.S# ,Student.Sname
de Student
donde S# no está en (seleccione distinto (SC.S#) de SC, Curso, Profesor donde SC.C#=Course.C# and Teacher .T#=Course.T# and Teacher.Tname='Ye Ping'
6. Consulta el número de estudiante y el nombre de los estudiantes. que han estudiado ?001? y también estudiaron el curso número ?002
seleccione Student.S#,Student.Sname de Student,SC donde Student.S#=SC.S# y SC.C#; ='001'y existe (Seleccione * de SC como SC_2 donde SC_2 .S#=SC.S# y SC_2.C#='002');
7. que han estudiado todas las clases impartidas por el profesor Ye Ping
p>
select;
S#,Nombre
de Estudiante
donde S# en (seleccione S# de SC, Curso, Profesor donde SC.C#=Curso.C# y Profesor.T#=Curso. T# y Teacher.Tname='Ye Ping' se agrupan por S# teniendo count(SC.C#)=(seleccione count(C#) del curso, Teacher donde Teacher.T#=Course.T# y Tname='Ye Ping' ));
8. Consultar los números de estudiantes y los nombres de todos los estudiantes cuyas calificaciones en el curso número?002?son inferiores a las del curso número?001?. S#,Nombre de (seleccione Estudiante.S#,Estudiante.Nombre,puntuación,(seleccione puntuación de SC SC_2 donde SC_2.S#=Estudiante.S# y SC_2.C#='002') puntuación2
from Student,SC donde Student.S#=SC.S# y C#='001') S_2 donde puntuación2 9. Consulta el número de estudiante y el nombre de todos los estudiantes cuyos puntajes de curso son; menos de 60 puntos seleccione S#,Nombre de Estudiante donde S# no está (seleccione Student.S# de Estudiante,SC donde S.S; #=SC.S# y puntuación >60); 10. Consulta el número de estudiante y el nombre de los estudiantes que no han completado todos los cursos selecciona Student.S#,Student; .Sname de Student,SC donde Student.S#=SC.S# agrupa por Student.S#,Student.Sname teniendo count(C#) <(select count( C#) del Curso); 11. Consultar los números de estudiantes y los nombres de los estudiantes que tienen al menos un curso que es el mismo que el estudiante cuyo número de estudiante es ?1001?; >seleccione S#,Sname de Student,SC donde S#=SC.S# y C# en seleccione C# de SC donde S#='1001' 12. Consulte a todos los demás estudiantes que tengan. estudió al menos un curso con el número de estudiante?001 Número y nombre seleccione SC.S#,Nombre distinto de Estudiante,SC dónde; Student.S#=SC.S# y C# en (seleccione C# de SC donde S#='001' 13. Cambie las calificaciones de la clase impartida por el profesor Ye Ping en la tabla SC. a la calificación promedio de este curso p> actualizar SC set score=(select avg(SC_2.score) from SC SC_2 donde SC_2.C#=SC.C# ) del curso, profesor donde C ourse.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='Ye Ping' 14. El curso estudiado por la consulta es exactamente el mismo que el de el compañero de clase No. 1002 Los números de estudiantes y los nombres de otros estudiantes seleccione S# de SC donde C# está (seleccione C# de SC donde S#='1002') grupo; por S# teniendo count( *)=(select count(*) from SC donde S#='1002' 15. Elimina el registro de la tabla SC de la clase de Ye Ping
del curso, Profesor
donde Curso.C#=SC.C# y Curso.T#= Profesor.T# y Tname='Ye Ping' ; p>
16. Insertar algunos registros en la tabla SC. Estos registros deben cumplir con las siguientes condiciones: el número de estudiantes que no han tomado el curso No. 003, y la calificación promedio del curso No. 2.
Insertar SC seleccione S#,'002',(Seleccione promedio(puntuación)
de SC donde C#='002') de Estudiante donde. S# no está (Seleccione S# de SC donde C#='002');
17. Muestre los resultados de la base de datos de todos los estudiantes, gestión empresarial y cursos de inglés de mayor a menor según el promedio. puntuación y mostrarlos en el siguiente formato: ID de estudiante, base de datos, gestión empresarial, inglés, número de curso válido, puntuación media válida
SELECCIONE S# como ID de estudiante
,( SELECCIONE la puntuación DE SC DONDE SC.S#= t.S# AND C#='004') COMO base de datos
, (SELECCIONE la puntuación DE SC DONDE SC.S#=t.S# AND C#='001') COMO gestión empresarial
, (SELECCIONE puntuación DE SC DONDE SC.S#=t.S# AND C#='006') AS Inglés
,COUNT(*) AS Número de cursos válidos, AVG(t.score) AS Puntuación media
p>DESDE SC AS t
GRUPO POR S#
ORDENAR POR avg(t.score) p>
18. Consulte la puntuación más alta en cada materia y la puntuación más baja: se muestra en el siguiente formulario: ID del curso, puntuación más alta, puntuación más baja
SELECCIONE L.C# como ID del curso, L.score AS puntuación más alta, R.score AS puntuación más baja
FROM SC L ,SC AS R
WHERE L.C# = R.C# y
L.score = ( SELECCIONE MAX(IL.score)
DE SC COMO IL,Estudiante COMO IM
DONDE L.C# = IL.C# y IM.S#=IL.S#
GRUPO POR IL.C#)
Y
R.Score = (SELECT MIN(IR.score) <
/p>
DESDE SC COMO IR
DONDE R.C# = IR.C#
GRUPO POR IR.C#
19 Ordene por el puntaje promedio de cada materia de menor a mayor y el porcentaje de tasa de aprobación de mayor a menor
SELECCIONE t.C# AS número de curso, max (curso.Cname) AS nombre del curso, isnull (AVG (puntuación),0) COMO puntuación promedio
,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) COMO porcentaje de aprobación
DESDE SC T,Curso
donde t.C#=curso.C#
GRUPAR POR t.C#
ORDENAR POR 100 * SUMA(CASO WHEN isnull( score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC
20. Consulta el puntaje promedio y el porcentaje de aprobación de los siguientes cursos (se muestran con "1 fila" ): Gestión empresarial (001), Marx (002), OO&UML (003), base de datos (004)
SELECCIONE SUM(CASE WHEN C# ='001' THEN puntuación ELSE 0 END)/SUM(CASE C# CUANDO '001' ENTONCES 1 MÁS 0 FINAL) COMO puntuación promedio de gestión empresarial
,100 * SUM(CASE WHEN C# = '001' AND puntuación >= 60 ENTONCES 1 ELSE 0 FINAL)/SUM(CASE CUANDO C# = '001' ENTONCES 1 ELSE 0 END) COMO porcentaje de aprobación de la gestión empresarial
,SUM(CASE WHEN C# = '002' THEN puntuación ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) COMO puntuación promedio de Marx
,100 * SUM(CASE WHEN C# = '002' AND Score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) COMO porcentaje de aprobación de Marx
,SUM(CASE WHEN C# = '003' THEN puntuación ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) COMO puntuación promedio de UML
,100 * SUM(CASE WHEN C# = '003' AND Score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) COMO porcentaje de aprobación de UML
,SUM(CASE WHEN C# = '004' THEN puntuación ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) COMO puntuación promedio de la base de datos
, 100 * SUMA(CASO CUANDO C# = '004' Y puntuación >= 60 ENTONCES 1 MÁS 0 EN
D)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) COMO porcentaje de aprobación de la base de datos
FROM SC
21. Consulta las puntuaciones promedio de diferentes cursos impartidos por diferentes profesores de visualización alta a baja
SELECCIONE max(Z.T#) COMO ID de maestro, MAX(Z.Tname) COMO nombre de maestro, C.C# COMO ID de curso, MAX(C.Cname) COMO nombre de curso, AVG (Puntuación) Nota promedio AS
DE SC AS T,Curso AS C,Profesor AS Z
donde T.C#=C.C# y C.T#=Z.T#
GRUPO POR C.C#
ORDENAR POR AVG(Puntuación) DESC
22. Consultar los expedientes académicos de los estudiantes clasificados del 3º al 6º en los siguientes cursos: Gestión Empresarial (001), Marx ( 002), UML (003), base de datos (004)
[ID del estudiante], [Nombre del estudiante], Gestión Empresarial, Marx, UML, Base de datos, Calificación promedio
SELECT DISTINCT arriba 3
SC.S# Como número de estudiante,
Student.Sname COMO nombre de estudiante,
T1.score COMO gestión empresarial,
> T2.score AS Marx,
T3.score AS UML,
T4.score AS base de datos,
ISNULL(T1.score,0) + ISNULL (T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) como puntuación total
FROM Student,SC LEFT JOIN SC AS T1
EN SC.S# = T1.S# Y T1.C# = '001'
LEFT JOIN SC COMO T2
EN SC.S# = T2.S# Y T2 .C# = '002'
UNIRSE A LA IZQUIERDA SC COMO T3
ON SC.S# = T3.S# AND T3.C# = '003'
IZQUIERDA UNIRSE A SC COMO T4
ON SC.S# = T4.S# AND T4.C# = '004'
DONDE estudiante.S#=SC.S# y
p>
ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)
NO EN
(SELECT
DISTINCT
TOP 15 CON EMPATES
ISNULL(T1.score,0) + ISNULL(T2.score, 0 ) + ISNULL(T3.score,0) + ISNULL(T4.score,0)
FROM sc
LEFT JOIN sc COMO T1
ON sc . S# = T1.S# Y T1.C# = 'k1'
>
UNIR IZQUIERDA pb COMO T2
ON sc.S# = T2.S# AND T2.C# = 'k2'
UNIR IZQUIERDA pb COMO T3
ON sc.S# = T3.S# AND T3.C# = 'k3'
UNIRSE IZQUIERDA sc COMO T4
ON sc.S# = T4.S# AND T4.C# = 'k4'
ORDENAR POR ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score, 0) DESC);
23. Imprime estadísticamente los puntajes de cada materia, el número de personas en cada grado: ID del curso, nombre del curso, [100-85], [85-70], [70]. -60], [ <60]
SELECCIONE SC.C# como ID del curso, Cname como nombre del curso
,SUM(CASO CUANDO la puntuación ENTRE 85 Y 100 ENTONCES 1 MÁS 0 FINAL) AS [100 - 85]
,SUM(CASO CUANDO puntuación ENTRE 70 Y 85 ENTONCES 1 MÁS 0 FINAL) COMO [85 - 70]
,SUM(CASO CUANDO puntuación ENTRE 60 Y 70 ENTONCES 1 MÁS 0 FINAL) COMO [70 - 60]
,SUM(CASO CUANDO puntuación < 60 ENTONCES 1 MÁS 0 FINAL) COMO [60 -]
DESDE SC, Curso
donde SC.C#=Course.C#
GROUP BY SC.C#,Cname
24. Consultar la puntuación promedio y la clasificación de los estudiantes
p>SELECCIONE 1+(SELECT COUNT(puntuación promedio distinta)
FROM (SELECT S#,AVG(score) AS puntuación promedio
FROM SC
GRUPO POR S#
) COMO T1
DONDE calificación promedio> T2. calificación promedio) como ranking,
S# como número de estudiante, calificación promedio
DESDE (SELECCIONE S#,AVG(puntuación) puntuación promedio
DESDE SC
GRUPO POR S#
) COMO T2
ORDENAR POR puntuación promedio desc;
25. Consulta los registros de las tres puntuaciones más altas en cada materia: (independientemente de las puntuaciones empatadas)
SELECT t1.S # como ID de estudiante, t1.C# como ID de curso, Puntuación como puntuación
FROM SC t1
DÓNDE la puntuación (SELECCIONA LAS 3 PRINCIPALES puntuaciones
FROM SC
DONDE t1.C#= C#
ORDENAR POR puntuación DESC
)
ORDENAR POR t1.C#;
p> 26. Consulta el número de estudiantes seleccionados para cada curso
select c#,count(S#) from sc group by C#
27. Consulta solo un curso electivo Números de estudiantes; y nombres de todos los estudiantes en el curso
seleccione SC.S#,Student.Sname,count(C#) AS número de selecciones de cursos
de SC,Student
Donde SC.S#=Student.S# agrupa por SC.S#, Student.Sname tiene recuento (C#)=1
28. Consulta el número de niños y niñas
;Seleccione count(Ssex) como el número de niños del grupo de estudiantes por Ssex que tienen Ssex='male'
Seleccione count(Ssex) como el número de estudiantes del grupo de estudiantes por Ssex que tienen Ssex; ='female';
29. ¿Consultar la lista de estudiantes cuyo apellido es Zhang?
SELECT Sname FROM Student WHERE Sname like 'Zhang%'; 30. Consulta la lista de estudiantes con el mismo nombre y el mismo sexo, y cuenta el número de personas con el mismo nombre
selecciona Sname,count(*) del grupo de estudiantes por Sname que tiene recuento(*)> 1;;
31. Lista de estudiantes nacidos en 1981 (Nota: Estudiante El tipo de columna Sage en la tabla es fecha y hora)
seleccione Nombre, CONVERTIR(char (11), DATEPART(año,Sage)) como edad
del estudiante
donde CONVERT(char(11),DATEPART(año,Sage))='1981'; p> 32. Consulta el puntaje promedio de cada curso. Los resultados se organizan en orden ascendente según el puntaje promedio. Cuando los puntajes promedio son iguales, Ordene por número de curso en orden descendente.
Seleccione C#,Avg. (puntuación) del grupo SC por C# ordenar por Avg(score),C# DESC
33. Consultar todos los cursos con una puntuación media superior a 85 Número de estudiante, nombre y nota media
seleccione Nombre,SC.S#, promedio(puntuación)
de Estudiante,SC
donde Estudiante.S #=SC.S# agrupa por SC.S#, Sname tiene promedio (puntuación)>85
34. Consulta los nombres y puntuaciones de los estudiantes cuyo nombre del curso es "base de datos" y cuyas puntuaciones son inferiores a 60
Seleccione Sname, es nulo. (puntuación,0)
de Estudiante,SC,Curso
donde SC.S#=Estudiante.S# y SC.C#= Curso.C# y Curso.Cname='base de datos 'y puntuación <60;
35. Consulta el estado de selección de cursos de todos los estudiantes
SELECT SC.S#,SC.C#,Sname ,Cname
DESDE SC,Estudiante,Curso <
/p>
Donde SC.S#=Student.S# y SC.C#=Course.C#
36. SELECCIONE estudiante distinto.S#,estudiante.Nombre,SC.C#,SC.score
DE estudiante,Sc
DONDE SC.score> =70 Y SC.S#=estudiante .S#;
37. Consulta los cursos reprobados y organízalos de mayor a menor por número de curso
selecciona c# de sc donde puntúa <60 ordena por C#; >
38. Consultar el número de estudiantes y los nombres de los estudiantes cuyo número de curso es 003 y cuyas calificaciones son superiores a 80 puntos
seleccione SC.S#,Estudiante .Nombre de SC,Estudiante donde SC. S#=Student.S# and Score>80 and C#='003';
39. Encuentra el número de estudiantes que han elegido el curso
selecciona count(*) de sc;
40. Consulta el nombre y la puntuación del estudiante con la puntuación más alta entre los estudiantes que tomaron el curso impartido por el Sr. Ye Ping
selecciona Student.Sname,score <. /p>
de Estudiante,SC,Curso C,Profesor
donde Estudiante.S#=SC.S# y SC.C#=C.C# y C.T#=Profesor.T# y Profesor. Tname='Ye Ping' y SC.score=(select max(score)from SC donde C#=C.C#
Consulta cada curso y el número correspondiente de asignaturas optativas
42.Consulta el número de estudiante, el número de curso y la calificación de los estudiantes con las mismas calificaciones en diferentes cursos
seleccione distinto A.S#, B.score de SC A, SC B donde A.Score=B.Score y A.C# <>B.C#
43. Consulta los dos primeros con las mejores puntuaciones en cada habilidad; p>
SELECCIONE t1.S# como ID de estudiante, t1.C# como ID de curso, Puntuación como puntuación
DESDE SC t1
DÓNDE ENTRAR la puntuación (SELECCIONE las 2 mejores puntuaciones
DESDE SC
DONDE t1.C#= C#
ORDENAR POR puntuación DESC
)
ORDENAR POR t1 .C# ;
44. Cuente el número de estudiantes que toman cada curso (solo se contarán los cursos con más de 10 estudiantes).
Se requiere generar el número de curso y el número de estudiantes optativos. Los resultados de la consulta se ordenan en orden descendente por el número de personas. Si el número de personas es el mismo, se ordenan en orden ascendente por el número de curso. /p>
Seleccione C# como número de curso, contar(*) como número de personas
de sc
agrupar por C#
ordenar por recuento( *) desc,c#
45. Busque al menos dos cursos electivos número de estudiante
seleccione S#
del grupo sc
por s#
con recuento (*) > = 2
46 Consulta el número de curso y el nombre del curso de los cursos tomados por todos los estudiantes
selecciona C#. ,Cname
del curso
donde C# en (seleccione c# del grupo sc por c#)
Consulta los nombres de los estudiantes que no han estudiado ningún curso. impartido por el maestro Ye Ping
seleccione Sname de Student donde S # no está (seleccione S# de Course,Teacher,SC donde Course.T#=Teacher.T# y SC.C#=course.C# y Tname='Ye Ping');
48. Consulta el número de estudiantes y las puntuaciones promedio de los estudiantes que reprobaron dos o más cursos.
seleccione S#,avg(isnull(score,0). )) de SC donde S# en (seleccione S# de SC donde puntuación <60 agrupar por S# teniendo recuento(*)>2)grupo por S#
49. ¿Buscar?004?El curso; las puntuaciones son inferiores a 60 y los números de estudiantes están ordenados en orden descendente por puntuaciones
seleccione S# de SC donde C#='004'y obtenga <60 orden por descripción de puntuación
50. Eliminar las calificaciones de la clase 001 de la clase 002
eliminar de Sc donde S#='001'y C#='001' ;