Red de conocimiento informático - Aprendizaje de código fuente - Lenguaje SQL de base de datos

Lenguaje SQL de base de datos

Preguntas de práctica de SQL

Un estudiante - base de datos del curso

1 Consulta el número de estudiantes de los estudiantes que no tienen puntajes en los exámenes en el curso No. 7

seleccione sno de sc donde cno='7' y la calificación es nula

2 Consulta el número de estudiantes cuyas calificaciones en el curso No. 7 están por encima de 90 puntos o por debajo de 60 puntos

seleccione sno de sc donde gradegt;90 o gradelt;60

3 Consulte los números y nombres de los cursos de todos los cursos cuyos nombres de cursos comiencen con la palabra "datos".

Seleccione cno, cname de c donde cname como 'datos'

4 Consulta las calificaciones promedio de todos los cursos para cada estudiante y genera el número de estudiante y la calificación promedio

seleccione sno, avg(grade) del grupo sc por sno

5 Consulta el número de materias optativas para cada curso y genera el número de curso y la cantidad de materias optativas.

Seleccione cno, count(*) del grupo sc por cno

6 Consulta el número de estudiante, nombre y sexo de los estudiantes que tomaron el curso N°7.

Selecciona s.sno, sname, ssex de s, sc donde s.sno=sc.sno y cno= '7'

7 Consulta la edad promedio de los estudiantes que toman el curso No 7 .

Seleccione avg(sage) de s, sc donde s.sno=sc.sno y cno = ‘7’

8 Consulta los números de cursos tomados por más de 30 estudiantes.

Seleccione sno del grupo sc al tener cno count(*)gt 30

9 Consulta el número de estudiantes que no han reprobado el examen hasta el momento

>a: seleccione sno de s donde sno no esté (seleccione sno de sc donde gradelt; 60)

b: seleccione sno del grupo sc teniendo sno que tenga min(grade)gt;=60

1 Encuentre el número de estudiante y las calificaciones del estudiante cuyo número de curso optativo es C2.

Seleccione sno, calificación de sc donde cno=’C2’

2 Encuentre el número de estudiante y el nombre del estudiante cuyo número de curso electivo es C4.

Seleccione s.sno, sname de s, sc donde s.sno=sc.sno y cno='C4'

3 Encuentre el número de estudiante del curso electivo llamado Matemáticas con nombre.

Selecciona s.sno, sname de s, sc, c

donde s.sno=sc.sno y c.cno=sc.cno y cname='Maths'

p>

4 Encuentre el número de estudiante del curso optativo número C2 o C4.

Seleccione sno distinto de sc donde cno in ('C2', 'C4')

O: seleccione sno distinto de sc donde cno='C2' o cno ='C4' 5 Encuentre el número de estudiantes con los números de cursos electivos C2 y C4.

Seleccione sno de sc donde cno ='C2' y sno in (

seleccione sno de sc donde cno = 'C4')6 Encuentre los nombres y nombres de los estudiantes que no tomando el curso C2 Edad

seleccione sname, sage de s donde sno no está (seleccione sno de sc donde cno='C2')

o:

seleccione sname, sage de s donde no existe (seleccione * de sc donde sc.sno=s.sno y cno='C2')

7 Encuentre los nombres de todos los estudiantes que tomaron el curso de base de datos. (Igual que 3)

Seleccione s.sno, sname de s, sc, c

donde s.sno=sc.sno y c.cno=sc.cno y cname = 'Base de datos'

8 Descubra los nombres de las chicas que reprobaron el curso de bases de datos

Anidamiento:

seleccione sname de s donde ssex = 'female' y sno in (seleccione sno de sc donde gradelt; 60 y cno in (seleccione cno de c donde cname='database'))

Conexión:

Seleccione sname de s,sc,c

donde s.sno=sc.sno y c.cno=sc.cno y ssex='female' y cname = 'database' y gradelt 609 Encuentre la calificación promedio de cada curso, genere el curso; nombre y calificación promedio

seleccione cname, avg(calificación) de sc, c donde c.cno =sc.cno grupo por sc.cno10 Encuentre la calificación promedio de cada estudiante y genere el nombre del estudiante y la calificación promedio

seleccione sname , avg(grade) from s , sc donde s.sno=sc.sno grupo por sc.sno

11 Encuentre el nombre del curso tomado por al menos 30 estudiantes

seleccione cname de c donde cno está (seleccione cno del grupo sc por cno teniendo count(*)gt;=30)

12 Encuentre los nombres de los estudiantes que no han tomado Menos de 3 cursos.

Seleccione sname de s donde está sno (seleccione sno del grupo sc por sno con recuento(*)gt;=3)

13 Descubra que las puntuaciones en cada curso no son bajo Nombres de estudiantes con una puntuación de 90 o superior.

Seleccione sname de s donde sno no está (seleccione sno de sc donde gradelt; 90)

14* Encuentre los nombres de los estudiantes cuyas calificaciones en el curso de la base de datos no sean inferiores a las puntuación media del curso.

Seleccione sname de s donde sno in (

Seleccione sno de sc , c donde sc.cno=c.cno y cname='database' y

Grado gt; (Seleccione avg(grado) de sc , c donde sc.cno=c.cno y cname='database' ) )

15 Encuentre la edad promedio y el número de estudiantes masculinos y femeninos en cada uno. departamento.

Seleccione sdept, ssex, avg(sage), count(*) de s

Agrupar por sdept, ssex

16 Descubra el Departamento de Informática (JSJ) El número de estudiante y nombre del estudiante con el promedio más alto del curso.

Seleccione sc.sno, sname de s, sc donde s.sno=sc.sno y sdept='JSJ'

Agrupe por sc.sno Teniendo promedio(calificación) =

( Seleccione el promedio superior (calificación) de sc, s donde s.sno=sc.sno y sdept='JSJ'

agrupe por sc.sno ordene por promedio(calificación) DESC) Tres clientes: la base de datos del producto incluye 3 tablas: KH, FP, YWY

1 Consulta el nombre y el número de oficina de un vendedor con un salario de entre 1000 y 3000 yuanes.

Seleccione Yname, Ono de YWY donde el salario es entre 1000 y 3000 e Ysex='Male'

2 Consulte el número de vendedores en cada oficina y genere el número de oficina y el número correspondiente de gente.

Seleccione Ono, cuente (*) del grupo YWY por Ono

3 Consulte el monto total comprado por cada cliente en mayo de 2002 y genere el número de cliente y el monto total correspondiente.

Seleccione Kno, suma(Fmoney) de FP donde fdate entre '2002.5.1' y '2002.5.31'

Agrupar por Kno

4 Consulta 2002 Todos los números de clientes con más de 5 compras en mayo, ordenados por número de cliente en orden ascendente.

Seleccione Kno de FP donde fdate entre '2002.5.1' y '2002.5.31'

Agrupe por Kno con recuento (*)gt; Realizar pedido por Kno ASC

5 Consulta el salario medio de los vendedores y vendedoras de cada oficina.

Seleccione Ono, Ysex, promedio (salario) del grupo YWY por Ono, Ysex

6 Consulte los números de clientes y los clientes que compraron productos al vendedor Wang Hailiang en mayo de 2002 Nombre, contacto número.

Seleccione Kno, Kname, teléfono de KH donde Kno está (

Seleccione kno de FP donde fdate entre '2002.5.1' y '2002.5.31' y

Yno=(seleccione Yno de YWY donde Yname = 'Wang Hailiang') 7 Consulta los números, nombres y salarios de todos los vendedores cuyo salario es superior al del vendedor número 1538.

Seleccione yno , Yname, salario de YWY donde salario gt;

(Seleccione salario de YWY donde Yno='1538' )

8 Consulta los números de todos los demás vendedores en la misma oficina que vendedor No. 1538, Nombre

Seleccione Yno , Yname de YWY donde Ynolt;gt;'1538' y Ono en (

Seleccione Ono de YWY donde Yno='1538' )

9 Consulta el número del vendedor con el mayor monto total de ventas

Selecciona Yno del grupo FP por Yno Teniendo suma(Fmoney) =

(Selecciona arriba 1 sum(Fmoney) from. FP group by Yno ORDER BY sum(Fmoney) DESC)

10 Consulta el número, nombre, salario de todos los vendedores y el salario promedio de otros vendedores con salarios más altos que él

Usar autoconexión

Seleccione y1.Yno, y1.Yname, y1.salary, avg(y2. salario) de YWY y1, YWY y2

Dónde y1.Ynolt;gt;y2 .Yno y y1.salary lt; y2.salary

Agrupar por y1.Yno

Sno salario sno salario

1 100 1 100

2 120 2 120

3 90 3 90

4 110 4 110 Hay una tabla en la base de datos de una determinada escuela secundaria:

Tabla de selección de cursos de estudiantes: consta de cinco atributos: tablero y código, número de estudiante de la clase, nombre, materia y grado. El modelo de relación es

SC(BJDM, BNXH, XSXM,. KM, CJ), entre los cuales (BJDM, BNXH) es el código principal.

Descripción: Cada alumno almacena un registro por cada materia. Hay tres materias: "Chino", "Matemáticas" y "Lengua Extranjera". 1 Encuentre el código de clase, el número de estudiantes y la calificación promedio de cada clase.

Seleccione BJDM, recuento (*), promedio (CJ) del grupo SC por BJDM

2 Encuentre el código de clase de cada estudiante, el nombre del estudiante, el número de materias del examen y la puntuación total.

Seleccione BJDM, XSXM, count(*), sum(CJ) de SC

Agrupe por BNXH

3 Genere una tabla correspondiente a cada estudiante A. El registro incluye: código de clase, nombre, puntajes de chino, puntajes de matemáticas y puntajes de idiomas extranjeros.

Método 1: Usar vista

crear vista v1 (bjdm, xsxm, yw, sx, wy) AS

seleccionar bjdm, xsxm, cj, 0, 0 de sc donde km='Chino'

unión

select bjdm , xsxm , 0 , cj , 0 de sc donde km='matemáticas'

unión

seleccione bjdm, xsxm, 0, 0, cj de sc donde km='idioma extranjero'seleccione bjdm, xsxm, suma(yw) como chino, suma(sx) como matemáticas, suma(wy) como idioma extranjero del grupo v1 por bjdm, xsxm

Método 2: Autoconexión

seleccione a.bjdm, a.xsxm, a.km, a.cj, b.km, b.cj , c.km, c.cj de sc a , sc b , sc c

donde a.bjdm=b.bjdm y a.bnxh= b.bnxh y b.bjdm=c. bjdm and b .bnxh= c.bnxh

and a.km='Chinese' and b.km='Mathematics' and c.km='Foreign Language' Método 3: Usar procedimientos almacenados (omitido)

4 Genere una tabla: cada estudiante con una puntuación inferior a 60 puntos corresponde a un registro, que incluye los campos: código de clase, nombre y puntuación más baja. Seleccione bjdm, xsxm, min(CJ) de sc donde gradelt; 60 grupo por bjdm, xsxm5 genera una tabla: un registro correspondiente a cada estudiante cuya puntuación sea inferior a 60 puntos, incluidos los campos: código de clase, nombre, calificación más alta, promedio. calificación.

Obtenga la puntuación promedio: cree la vista V1 (bjdm, bnxh, avg_cj) AS

seleccione bjdm, bnxh, avg(cj) desde sc donde bjdm, bnxh seleccione sc.bjdm, sc xsxm, max(cj), avg_cj de sc, V1

donde sc.bjdm=v1.bjdm y sc.bnxh=V1.bnxh y cjlt; bjdm, sc.xsxm6 genera una tabla: un registro para cada estudiante con una puntuación de no menos de 60 puntos, incluidos los campos: código de clase, nombre, calificación promedio. seleccione bjdm, xsxm, avg(cj) de sc

donde sno no está (seleccione sno de sc donde gradelt; 60)

agrupe por bjdm, xsxm7 genera una tabla: cada uno estudiante corresponde a un registro, incluyendo los campos: código de clase, nombre y calificación promedio después de eliminar la puntuación más baja.

Método 1:

Obtener la puntuación más baja de cada estudiante:

crear la vista V1 (bjdm, bnxh, min_cj) como

seleccione bjdm, bnxh, min(cj) de sc grupo por bjdm, bnxhselect sc.bjdm, sc.xsxm, avg(cj) de sc, v1

donde sc.bjdm=v1.bjdm y sc. bnxh=v1.bnxh y sc.cj lt;gt; v1.min_cj

Agrupar por bjdm, método dos de bnxh:

seleccione sc.bjdm, sc.xsxm, (sum( cj) – min(cj) ) / count(*) de sc

grupo por bjdm, bnxh8 genera una tabla: cada materia corresponde a un registro, incluidos los campos: materia, después de eliminar la puntuación más baja Calificación promedio .

Método 1:

Obtenga la puntuación más baja para cada recorrido:

cree la vista V1 (km, min_cj) como

seleccione km , min(cj) de sc grupo por km

seleccione sc.km , avg(cj) de sc , v1

donde sc.km=v1.km y sc.cj lt ;gt; v1.min_cj

agrupar por sc.km

Método 2:

seleccionar km, (suma(cj) – min(cj))/ count(*) from sc

grupo por km Suplemento 9: Tabla de salida: Cada materia corresponde a un registro, que incluye campos: materia, puntuación promedio después de eliminar una puntuación mínima y una puntuación máxima.

seleccione km, (suma(cj) – min(cj) – max(cj) )/count(*) de sc

agrupe por km Las cinco bases de datos almacenan la década de 1990 de una determinada universidad La situación de los exámenes de inglés CET-4 y CET-6 desde 2018, y la normativa es la siguiente:

1 Los exámenes CET-4 y CET-6 se realizan dos veces al año en el mes de junio y diciembre respectivamente;

2 CET-4 Los estudiantes que no hayan aprobado no pueden solicitar el CET-6;

3 Siempre que no aprueben un determinado nivel de examen, pueden realizar la prueba nuevamente;

4. Una vez que aprueban un determinado nivel de examen, no pueden volver a postularse para el mismo nivel;

5 Se permite registrarse pero no presentarse. el examen.

Hay dos tablas en la base de datos y los patrones de relación correspondientes son los siguientes:

Tabla de estudiantes: S (Sno, Sname, Ssex, Sage, Sdept), donde Sno es la clave principal.

Mesa de examen: E (Sno, Año, Mes, Nivel, Grado), número de alumno, año, mes, nivel, grado.

Entre ellos (Sno, Año, Mes) se encuentra el código principal. 1. Conoce el número de referencias y puntuaciones medias de cada examen CET-4 y CET-6 (no se contabilizarán los que se inscribieron pero no realizaron el examen)

selecciona año, mes, nivel , count(*), avg (nota)

grupo por año, mes, nivel2. Encuentra el departamento con mayor puntuación media en cada examen CET-4 (los que se inscribieron pero no realizaron el examen). no se contabilizarán).

A: Seleccione sdept de s, e donde s.sno=e.sno

Donde nivel=4

Agrupar por sdept

Tener promedio(calificación)gt;=ALL(

Seleccione promedio(calificación) de s, e donde s.sno=e.sno donde nivel=4 Agrupar por departamento)B: Seleccione el 1 departamento superior de s , e donde s.sno=e.sno

Donde nivel=4

Agrupar por sdept

Ordenar por (avg(grade) desc

3. Conoce el número de alumno, nombre y sexo de los alumnos que han superado el CET-6 (mediante el método de conexión)

selecciona s.sno, sname, ssex de s, e

p>

donde s.sno=e.sno y nivel=6 y gradogt;=60

4 Descubra el número de estudiantes que tomaron tanto el Nivel 4 como el Nivel 6. exámenes en el mismo año

1) seleccione sno de E

donde (nivel=4 y calificación;=60) o nivel=6

grupo por año con recuento(*) gt;=22) seleccione sno de E )5 Descubra el número de estudiantes que aprobaron el examen CET-6 después de realizar solo un examen

seleccione sno de E

donde nivel=6

agrupar por sno

tener recuento(*)=1 está mal, ¿piensa por qué? 1) seleccione sno de E

donde nivel=6

grupo por sno

con recuento(*)=1 y máximo(grado)gt;=602 ) seleccione sno de E donde nivel=6 y gradogt;=60 y sno en (

seleccione sno de E donde nivel=6 grupo por sno que tenga recuento(*)=1)

6. Conoce el número de alumnos que no han superado el examen CET-4 hasta el momento (debe incluir a los que aún no lo han hecho o a los que lo han hecho pero no lo han superado)

seleccione sno de E donde nivel =4

grupo por sno

teniendo max(grado)lt;60

Unión

Seleccione sno de s donde sno no esté (seleccione sno de E)

7. Encuentre el año y mes del examen con la menor cantidad de personas calificadas en el examen CET-6 (si hay paralelos, enumere todos). utilizar una declaración SQL).

Seleccione año, mes de E

Donde nivel = 6 y calificacióngt;=60

Agrupe por año, mes

Teniendo recuento (*) lt;=all

(Seleccione recuento (*) de E donde nivel=6 y notagt;=60 grupo por año, mes)

Suplemento: Consulta de cada pase de curso tasa.

1 Obtener el número de materias optativas para cada curso 2 Obtener el número de personas que aprobaron cada curso 3 El número de personas que aprobaron cada curso/el número de materias optativas para cada curso 1create view v_all( cno , cnt ) como seleccionar cno, contar(*) desde sc grupo por cno

2crear vista v_pass(cno, cnt_pass) como seleccionar cno, contar(*) desde sc donde gradegt;=60

agrupar por cno

3 seleccione cno, cnt_pass*1.0 / cnt de v_all, v_pass donde v_all.cno = v_pass.cno