Red de conocimiento informático - Aprendizaje de código fuente - ¿Cuáles son las declaraciones SQL comúnmente utilizadas en las bases de datos?

¿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

<; p> Elimine SC

del curso, Profesor

donde Curso.C#=SC.C# y Curso.T#= Profesor.T# y Tname='Ye Ping'

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)

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

 select count(*) from sc group by C#;

 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

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' ;