Colección de citas famosas - Frases motivadoras - Lenguaje SQL de base de datos

Lenguaje SQL de base de datos

Ejercicios de SQL

Una base de datos de cursos de estudiantes

1 Consulta el número de estudiante del curso No. 7 sin resultados de exámenes.

Seleccione sno de sc, donde cno='7' y la calificación está vacía.

2 Consulta el número de estudiantes con 90 puntos o menos o 60 puntos o menos en el curso. No 7.

Seleccione sno de sc, donde grado gt90 o grado lt60

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

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

4. Consulte el puntaje promedio de todos los cursos para cada estudiante y genere el número de estudiante y el puntaje promedio.

Presione sno para seleccionar sno del grupo sc, avg(grade)

5. Consulte el número de materias optativas para cada curso y genere 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, el nombre y el sexo de los estudiantes que toman el curso optativo 7.

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

7 pregunta la edad promedio de los estudiantes que toman el curso optativo 7 .

Seleccione avg(sage) de s,sc donde s.sno=sc.sno,cno = '7 '

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

Seleccione sno del grupo sc por cno con count(*) gt; 30

9 Consulta los números de identificación de los estudiantes que no han reprobado el examen hasta el momento.

Respuesta: Seleccione sno de s, donde sno no está presente (seleccione sno de sc, donde el nivel es lt60)

b: Seleccione sno del grupo sc, sno tiene min (nivel ) >=60

Dos

1 Utilice el número de curso opcional C2 para consultar el número de estudiante y las calificaciones del estudiante.

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

Descubra el nombre del número de estudiante y el número de curso optativo C4.

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

Encuentre el número de estudiante y el número del curso electivo llamado matemáticas nombre.

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

Donde s.sno=sc.sno, c.cno=sc.cno, cname='Matemáticas'< / p>

Descubre el número de alumno de C2 o C4.

Seleccione un sno diferente de sc donde está cno ('C2','C4')

O: seleccione un SnO diferente desde donde cno='C2' o cno= 'C4' 5Conozca el número de alumnos que cursan cursos C2 y C4.

Seleccione SnO de donde CNO ='C4') Nombre y 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')

Busque los nombres de todos los estudiantes que han tomado cursos de bases de datos. (Igual que 3)

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

Donde s.sno = sc.sno, c.cno = sc.cno, cname = 'database'

8Descubre los nombres de las chicas que reprobaron el curso de base de datos.

Anidación:

Seleccione serpiente de donde ssex = 'hembra' y snoin (seleccione sno de donde grado

Conectar:

Seleccione nombre de s, sc, c

donde s.sno = sc.sno, c.cno = sc.cno, ssex = 'female', cname = 'base de datos' y calificación

Seleccione cname, avg (calificación) de sc, donde c . cno = sc . cno agrupa por sc . cno 10. Encuentre el puntaje promedio de cada estudiante y genere el nombre y el puntaje promedio del estudiante

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

seleccione cname de c donde cno in(seleccione cno del grupo sc por cno con recuento(*) gt;=30)

12 Encuentre los nombres de los estudiantes que han tomado al menos 3 cursos

p >

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

13 Encuentre todos los estudiantes cuyas calificaciones no sean inferiores a 90 puntos Nombre.

seleccione sname de s donde SnO no está (seleccione SnO de sc donde calificación lt; 90)

14*Encuentre las calificaciones del curso en la base de datos que no sean inferiores a la puntuación promedio de este curso Nombre del estudiante

Seleccione sname de s donde sno in(

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

Calificación gt(seleccione avg (calificación) de sc, donde sc.cno = c.cno, cname =' base de datos '

15 Encuentre la edad promedio y el número de niños y niñas en. cada 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 el nombre del estudiante con el promedio de calificaciones más alto en el curso.

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

Agrupe por número de serie con valor promedio (nivel)

p>

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

Agrupar por sc. sno ordenar por avg (grade) desc ) Las tres bases de datos de productos de clientes incluyen tres tablas: KH, FP e ywy.

1 Consulta los nombres y números de oficina de vendedores masculinos con salarios de entre 1.000 y 3.000 yuanes.

Seleccione yname, Ono de ywy, donde el salario está entre 1000 y 3000, ysex = 'male'

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

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

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' y '2002 5'

Agrupar por Kno

4. Consultar todos los números de clientes que compraron más de 5 veces en mayo de 2002 y ordenarlos por número de cliente en orden ascendente.

seleccione Kno de FP donde fdate entre '2002 5 1' y '2002 5'

Agrupar por Kno con conteo)>cinco

< p. >Ordenar por Kno ASC

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

Presione Ono, Ysex seleccione Ono, Ysex, promedio (salario) del grupo YWY

6 Consulte el número de cliente de los productos comprados al vendedor Wang Hailiang en mayo de 2002. Cliente. nombre, número de contacto.

Seleccione Kno, Kname, teléfono de KH donde Kno in(

seleccione kno de FP donde fdate entre '2002 . 5 . 1 ' y ' 2002 . 5 . 31 '

YNO = (Seleccione YNO de YWY donde YNAME = 'Wang Hailiang') 7 Consulte el número, nombre y salario de todos los vendedores cuyo salario sea superior a NO 1538.

Seleccione yno, Yname, salario de YWY donde salario gt

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

8. misma oficina que el vendedor 1538

Seleccione Yno, Yname de YWY donde Yno lt gt1538 'y Ono in (

Seleccione Ono de YWY, donde Yno='1538 ')

9 Consultar el número de vendedor con mayores ventas totales.

Por Yno Tener suma(Fmoney) = Seleccionar Yno del grupo FP

(Seleccione la 1 suma superior(Fmoney)del grupo FP POR Yno ORDENAR POR suma(Fmoney)desc)

10 Consulta el número, nombre, salario y otro salario promedio de todos los vendedores cuyo salario es superior al suyo.

Usar autounión

Seleccione y1. Síno,y1. Yname, y1.salario, promedio(y2.salario) de YWY y1, YWY y2

donde y1. Sí, gty2. Yno e y1.salary

Agrupar por y1. Yno

Sin salario sin 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 la Escuela Secundaria No. 4:

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

p>

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

Nota: Cada estudiante lleva un registro de calificaciones de cada materia, incluyendo "Chino", "Matemáticas" y "Lengua Extranjera". 1 Descubra 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 hasta BJDM

2 Descubra 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(*), suma(CJ) de SC

Agrupar por BNXH

Genere una tabla con un registro para cada estudiante. incluyendo: código de clase, nombre, puntajes de chino, puntajes de matemáticas, puntajes de idiomas extranjeros.

Método 1: Usar vistas

Crear vista v1 (bjdm, xsxm, yw, sx, wy) como

Seleccione bjdm,xsxm,CJ,0, 0 de sc donde km =' Chino '

Alianza

Seleccione bjdm, xsxm, 0, CJ, 0 de sc donde km =' matemáticas '

Alianza

Seleccione bjdm, xsxm, 0, 0, CJ de sc donde km = 'idioma extranjero' Seleccione bjdm, xsxm, sum(yw) del grupo v1 de bjdm, xsxm como idioma, sum(sx) como matemáticas, suma(wy) como lengua extranjera.

Método 2: Autoconexión

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

Donde a.bjdm=b.bjdm, a.bnxh= b.bnxh, b.bjdm=c.bjdm, b.bnxh= c.bnxh

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

Generar una tabla : A cada estudiante con una puntuación inferior a 60 le corresponde 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 grado lt; 60 agrupando por bjdm, xsxm5 genera una tabla: cada estudiante con una puntuación inferior a 60 corresponde a un registro, incluidos los campos: código de clase, nombre, puntuación más alta, puntuación media. .

Obtener la nota media: Crear vista v1 (bjdm, bnxh, avg_cj) para.

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

donde sc.bjdm =v1.bjdm y sc.bnxh=V1.bnxh y cj lt60

Agrupado por sc.bjdm, sc.xsxm6 genera una tabla: cada estudiante con una puntuación no menor a 60 corresponde a un registro, incluyendo campos: código de clase, nombre, calificación promedio Seleccione bjdm, xsxm, avg(cj) de sc

donde sno no está presente (seleccione sno de sc, donde la calificación es lt60)

Agrupar por bjdm, xsxm7 genera una tabla: cada estudiante corresponde a un registro, incluidos los campos: código de clase, nombre, puntaje promedio después de eliminar el puntaje más bajo

Método 1:

Obtener puntuación mínima de cada uno de los estudiantes:

Crear vista V1 (bjdm, bnxh, min_cj) como

Seleccionar bjdm, bnxh, min(cj) del grupo sc por bjdm, bnxh Seleccionar sc. .bjdm, sc.xsxm, avg(cj) in sc, v1

Donde sc.bjdm=v1.bjdm y sc.bnxh=v1.bnxh y sc.cj lt gtv1.min_cj

p>

Agrupar por bjdm, bnxh método 2:

seleccione sc.bjdm, sc.xsxm, (sum(CJ)-min(CJ))/count(*)from sc

Agrupar por bjdm, bnxh8 genera una tabla: cada tema corresponde a un registro, incluidos los campos: tema, puntaje promedio después de eliminar el puntaje más bajo

Método 1:

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

Crear vista V1(km,min_cj) como

Seleccionar km,min(cj) del grupo sc por km

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

Donde sc.km=v1.km, sc.cj lt gtv1.min_cj

Presione sc.km Grouping

Método 2:

seleccione km, (suma(CJ)–min(CJ))/contar(*)desde sc

agrupe por km Suplemento 9: Formulario de salida : Cada materia corresponde a un registro, que incluye los campos: materia, puntuación media después de eliminar la puntuación más baja y la puntuación más alta.

Seleccione km de sc, (suma(CJ)–min(CJ)–max(CJ))/count(*)

La base de datos agrupar por km cinco almacena una determinada universidad La situación de los exámenes CET-4 y CET-6 desde 1990 y estipula:

1 Los exámenes CET-4 y CET-6 se realizan dos veces al año, en junio y febrero respectivamente.

Los estudiantes que no hayan superado el CET-4 no pueden presentarse al CET-6.

3 Siempre que no superen un determinado nivel, podrán volver a realizar la prueba.

>

4 Una vez que hayan superado un determinado nivel, una vez que apruebes el examen, ya no podrás postularte para ese nivel de examen;

Puedes registrarte, pero no puedes realizar 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 el código principal.

Formato de examen: E (Sno, año, mes, grado, grado), número de estudiante, año, mes, grado, 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 cuentan los que se inscribieron pero no participaron).

Seleccionar año, mes, nivel, conteo (*), promedio (nivel)

Agrupar por año, mes, nivel 2. Conoce el departamento con mayor puntuación media en cada examen CET-4 (no se contabilizan los que se apuntaron pero no se presentaron al examen).

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

donde nivel=4

Agrupar por sdept

Hay una calificación promedio gt=all(

Seleccione avg(grade) de s,e donde s.sno=e.sno donde nivel = 4 Agrupar por departamento)B: Seleccione el 1 mejor departamento de s, e donde s . SnO = e . SnO

donde nivel=4

Agrupar por sdept

Ordenar por (promedio (nivel) desc

3 Encuentre el número de estudiante, el nombre y el sexo de los estudiantes que aprobaron el examen CET-6 (usando el método de conexión)

Seleccione s.sno, sname, ssex de s, e<. p>Donde s.sno=e.sno, nivel=6, grado gt=60

4 Descubra el número de estudiantes que tomaron el examen de inglés universitario Banda 4 y 6 en. el mismo año

1) Seleccione sno de E

donde (nivel=4, nivel_gt=60) o nivel=6

Agrupar por año con recuento ( *) gt;= 22) Seleccione sno de E 5. Descubra el número de estudiantes que han aprobado CET-6 solo una vez.

Seleccione sno de E

donde nivel=6

Agrupar por sno

Conteo (*)=1 error. ¿Por qué? 1) Seleccione sno de E

donde grado=6

Agrupar por sno

Con recuento(*)=1 y máximo(grado)>=602) Seleccione sno de E donde nivel=6, grado gt=60 y sno en (

Seleccione sno de E donde nivel=6 está agrupado por sno con recuento (*)=1)

p>

6. Descubra el número de estudiantes que no han aprobado el examen CET-4 hasta el momento (incluidos aquellos que aún no han realizado el examen o aquellos que lo han realizado pero no aprobaron ambos).

Seleccione sno de E donde nivel=4

Agrupar por sno

Con valor máximo (nivel) lt60

Alianza

Seleccione sno de s, donde sno no está incluido (seleccione sno de E)

7. Encuentre el año y mes del examen con el menor número de personas calificadas para el examen CET-6 (si Si hay un empate, utilice Listado en una frase SQL).

Seleccione año y mes de E

Donde nivel = 6, grado gt=60

Agrupar por año y mes

Sí cuenta (*) lt;=all

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

Suplemento: consultar Revisar la tasa de aprobación de cada curso.

1 Obtener el número de optativas para cada curso 2 Obtener el número de personas calificadas para cada curso 3 Obtener el número de personas calificadas para cada curso/1 Crear una vista v_all (cno, CNT) como select cno , cuenta (*) del grupo sc por cno.

2 Crear vista v_pass(cno, cnt_pass) como seleccionar cno, contar(*) desde sc donde calificación gt;=60

Agrupar por cno

3 seleccione cno, CNT_pass * 1.0/CNT de v_all, v_pass donde v_all.cno = v_pass.cno