La Red de Conocimientos Pedagógicos - Currículum vitae - Preguntas y respuestas de la entrevista de consulta SQL

Preguntas y respuestas de la entrevista de consulta SQL

Preguntas y respuestas de la entrevista de consulta SQL

El lenguaje SQL es un lenguaje de programación y consulta de bases de datos que se utiliza para acceder a datos y consultar, actualizar y administrar sistemas de bases de datos relacionales. También es una extensión de archivos de script de bases de datos. Las siguientes son mi colección de preguntas y respuestas de entrevistas de consultas SQL. Bienvenido a leer.

Entrevista y respuestas de consultas SQL 1 1. Una entrevista de declaración SQL, sobre el contenido del grupo por tabla:

Ganó el 9 de mayo de 2005

Ganó el 9 de mayo de 2005

Mayo de 2005 Desaparecido en mayo 9º

Desaparecido el 9 de mayo de 2005

Ganó el 10 de mayo de 2005

Negativo

Negativo

¿Cómo escribir una declaración SQL si desea generar los siguientes resultados?

Victoria y fracaso

2005-05-09 2 2

2005-05-10 1 2

-

Crear tabla #tmp(rq varchar(10), fusheng nchar(1))

Insertar en #tmpvalues('2005-05-09','Sheng')

Insertar en #tmpvalues('2005-05-09','Sheng')

Insertar en #tmpvalues('2005-05-09','Negative')

Insertar en #tmpvalues('2005-05-09','negative')

Insertar en #tmpvalues('2005-05-10','Sheng')

Insertar en # tmpvalues ​​​​('2005-05-10 ', 'número negativo')

Insertar en # tmpvalues ​​​​('2005-05-10 ', 'número negativo')

1) Seleccione rq, suma (Fu Sheng=' win 'luego 1 más 0 finaliza 'win'), suma (Fu Sheng=' negativo 'entonces 1 else 0 finaliza 'negativo') del grupo #tmp por rq.

2) Seleccione n.rq, n.win, m.negative de (

Seleccione rq, win =count(*) de #tmp donde Fu Sheng='win' grupo por rq)N unión interna.

(seleccione rq, negativo =count(*) de #tmpdonde Fu Sheng = 'negativo' grupo por rq)m en n rq = m

3)Seleccione un. .col001, a.a1 gana, b.b1 pierde.

(seleccione col 001, count(col 001)a 1 de temp 1 donde col 002 = ' ganar ' agrupar por col 001)a,

(seleccione col001, count(col 001)b 1 de temp 1 donde col 002 = 'negativo' grupo por col 001)b

Donde a.col001=b.col001

2. La declaración SQL de la entrevista plantea preguntas.

Hay tres columnas en la tabla, que se implementan mediante declaraciones SQL: cuando la columna A es mayor que la columna B, seleccione la columna A o la columna B cuando la columna B es mayor que la columna C, seleccione la columna B; o columna C..

p>

-

Seleccionar (cuando termina un gtb luego a else b),

(b gtc luego b esle c termina)

De la tabla Nombre

3. Pregunta de la entrevista: ¿Declaración SQL para determinar la fecha?

¿Elimine todos los registros de la tabla tb_send cuya fecha (campo de hora de envío) sea hoy? (El campo de hora de envío es fecha y hora, incluida la fecha y la hora).

-

seleccione * de tb donde dateiff(dd, SendTime, getdate())=0

4. , matemáticas, inglés. Hay tres registros que representan 70 puntos en chino, 80 puntos en matemáticas y 58 puntos en inglés. Utilice una declaración SQL para encontrar estos tres registros y mostrarlos de acuerdo con las siguientes condiciones (y escriba sus pensamientos):

Una puntuación de 80 o más representa excelencia, una puntuación de 60 o más representa aprobación , y una puntuación inferior a 60 representa aprobar Representa fracaso.

Formato de visualización:

Chino Inglés Matemático

Aprobado, aprobado, suspendido.

-

Selección

(Cuando el idioma > =80, es "excelente"

Cuando el chino > =60, entonces " pasar"

else'fail') como lenguaje,

(Cuando matemáticas > = 80, es "excelente"

Cuando matemáticas > = 60, entonces "Aprobar"

De lo contrario "Reprobar") como Matemáticas,

(Si inglés>=80, entonces "Excelente"

Cuando inglés> =60, entonces "pass"

else'fail') como inglés,

de la tabla

5. En sqlserver2000, utilice sql para crear una tabla temporal de usuario y Una tabla temporal del sistema contiene dos campos id e IDValues, ambos de tipo int, y explica la diferencia entre los dos.

-

Tabla temporal de usuario: createtable # xx (id int, idvalues ​​​​int)

Tabla temporal del sistema: crear tabla # # xx (id int , idvalues ​​int)

Diferencia:

Una tabla temporal de usuario solo es visible para la sesión del usuario que la creó, no para otros procesos.

Cuando el proceso que creó esta tabla temporal desaparezca, se eliminará automáticamente.

La tabla temporal global es visible para toda la instancia de SQL Server, pero se elimina automáticamente cuando todas las sesiones que acceden a ella desaparecen.

6.sqlserver2000 es una base de datos grande y su capacidad de almacenamiento solo está limitada por el medio de almacenamiento. ¿Cómo logra este mecanismo de capacidad ilimitada?

-

Todos sus datos se almacenan en archivos de datos (*.dbf), por lo que siempre que el archivo sea lo suficientemente grande, la capacidad de almacenamiento de SQL Server se puede ampliar.

Existen tres tipos de archivos en una base de datos SQL Server 2000:

Archivo de datos maestros

El archivo de datos maestros es el punto de partida de la base de datos y los puntos a otras partes de los archivos en la base de datos. Cada base de datos tiene un archivo de datos maestros. La extensión de archivo recomendada para archivos de datos maestros es . MDF.

Archivos de datos auxiliares

Los archivos de datos auxiliares contienen todos los archivos de datos excepto los archivos de datos primarios. Es posible que algunas bases de datos no tengan archivos de datos auxiliares, mientras que otras bases de datos pueden tener varios archivos de datos auxiliares. La extensión de archivo recomendada para archivos de datos auxiliares es . ndf.

Archivos de registro

Los archivos de registro contienen toda la información de registro necesaria para recuperar la base de datos.

Cada base de datos debe tener al menos un archivo de registro, pero puede haber más de uno. La extensión de archivo recomendada para los archivos de registro es . ldf.

7. Utilice sentencias SQL para obtener resultados.

Extraiga los datos en el formato enumerado en la Tabla 3 de la Tabla 1 y la Tabla 2. Tenga en cuenta que los datos y resultados proporcionados no son exactos, por lo que le consultaré sobre el formato.

Por ejemplo, utilizar procedimientos almacenados.

Tabla 1

Desempeño mensual del departamento yj

-

Enero 01 10

Enero 2 10

3, 5 de enero

2, 8 de febrero

9 de febrero de 2004

3 de marzo Día 8

Tabla 2

Nombre del Departamento

-

01 Negocio Nacional 1

02 Departamento de Negocio Nacional 2

03 Nacional Departamento de Negocios 3

04 Departamento de Negocios Internacionales

Tabla 3 (Resultados)

Adjunto de Departamento Enero 2 Mes Marzo

-

01 10 vacío

02 10 8 vacío

03 vacío 5 8

04 vacío 9

-

1)

Seleccione a. Nombre del departamento, b. El rendimiento yj es 'enero', c. El rendimiento yj es 'febrero', d.

De la Tabla 1 a, Tabla 2 b, Tabla 2 c, Tabla 2 d

Donde a Dep = B. Dep, B. Mes lun = 'Enero' y

A.dep = C y C. mes lun = 'Febrero' y

A.Dep = D. Dep y D . Mes lun = 'Marzo' y

2)

Seleccione a.dep,

sum(b . mon = 1 luego b . yjelse 0 caso final) es "enero",

sum(b . mon = 2 entonces b . yjelse 0 fin) es "febrero",

sum(b . mon = 3 entonces b . yjelse 0 fin) es 'marzo',

sum (b . mon = 4 entonces b . yjelse 0 final) es "abril",

suma(b . mon = 5 entonces b . yjelse 0 fin) es 'mayo',

suma (b . mon = 6 luego b . yjelse 0 final) es "junio",

suma(b . mon = 7 luego b . yjelse 0 final) es 'julio',

suma(b . mon = 8 luego b . yjelse 0 fin) es "agosto",

suma (b . mon = 9 luego b . yjelse 0 fin) es "septiembre",

La suma (cuando b.mon = 10 entonces b.yjelse0end) es "octubre",

la suma (cuando b.mon = 11 entonces b.yjelse0end) es "noviembre"”,

suma(b . mon = 12 luego b . yjelse 0 end) es “diciembre”,

Unir a la izquierda la tabla 1 b desde la tabla 2 a a.dep=b.dep

8. Una pregunta de entrevista de Huawei

Un ID en una tabla tiene múltiples registros. Encuentre todos los registros para esa identificación y muestre cuántos registros hay en * * * *.

-

seleccione id, Count(*)del grupo de TB por id que tenga Count(*) gt;

seleccione * from(select count(ID); )como recuento del grupo de tablas por ID)Tdonde T.count gt1

Preguntas y respuestas de la entrevista de consulta SQL II 1. Consulta las puntuaciones medias de diferentes cursos impartidos por diferentes profesores de mayor a menor.

Seleccione max(Z.T#) como ID del profesor, MAX(Z.Tname) como nombre del profesor, C.C# como ID del curso, MAX(C.Cname) como nombre del curso y AVG( Puntuación) como puntuación media.

De SC como T, curso como C, profesor como Z

Donde T.C#=C.C#, C.T#=Z.T#

Agrupar por C.C#

Ordenado por AVG (Música) DESC

2 Verifique 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 estudiante], [Nombre estudiante], gestión empresarial, Marx, UML, base de datos, nota promedio.

Seleccione los 3 primeros diferentes

Es decir, S# como número de estudiante,

estudiante. snamea nombre del estudiante,

T1.score como gestión empresarial,

T2.score como Marx,

T3.score como UML,

T4.Score como base de datos,

Esnull (t1.score, 0) isnull (t2.score, 0) isnull (t3.score, 0) isnull (t4.score, 0) como puntuación total .

Desde estudiante, SC dejó de unirse a SC como T1

En SC. S# = T1. S# y T1. C# = '001 '

Unirse a SC como T2

En SC. T2. S# y T2. C# = '002 '

Unir SC a la izquierda como T3

en SC. S# = T3. S# y T3. C# = '003 '

Unirse a SC como T4

En SC. T4. S# y T4. C# = '004 '

¿Dónde están los estudiantes? S#=SC. S# y

ISNULL(T1.score, 0) ISNULL(T2.score, 0) ISNULL(T3.score, 0) ISNULL(T4.score, 0)

No

(Seleccione

Obvio

Top 15 con empates

ISNULL(T1.score, 0) ISNULL(T2.score , 0 ) ISNULL(T3.score, 0) ISNULL(T4.score, 0)

desde sc

Unir sc a T1

en sc . = T1# = 'k1'

En pb# = ' k2 '

Unir pb a la izquierda como T3

en S# = 'k3 '.

en sc. Identidad unirse sc

En T4.

C# = 'k4 '

ORDENAR POR ISNULL(T1.score, 0) ISNULL(T2.score, 0) ISNULL(T3.score, 0) ISNULL(T4.score, 0)desc);

3. Imprima las calificaciones de todas las materias y el número de personas para cada grado: ID del curso, nombre del curso, [100-85], [85-70], [70-60], [

Seleccione SC. C# se utiliza como identificación del curso y cname se utiliza como nombre del curso.

, SUMA (caso de fracciones entre EN 85 y 100 ENTONCES 1 ELSE 0 FINAL) es [100 - 85]

, SUMA (entre EN 70 y 85 ENTONCES 65438 La fracción de 0 ELSE 0 END case) es [85 - 70]

, y la SUMA (la fracción de 0 ELSE 0 END case entre EN 60 y 70 THEN 65438) es [70 - 60]

p>

, SUMA (fracciones lt60 ENTONCES 1 ELSE 0 END) como [60 -]

por supuesto de SC

donde SC. c# = curso. C#

Agrupar por SC. C#, Cname

4. Consulta la puntuación promedio y la clasificación de los estudiantes.

Selecciona 1 (selecciona recuento).

Desde (seleccione S#, AVG(puntuación) como puntuación promedio.

Desde SC

Agrupar por S#

) como T1

Cuyo puntaje promedio > T2. Calificación promedio) como clasificación,

S# representa el número de estudiantes, calificación promedio

Seleccione S# de (, AVG (puntuación) calificación promedio.

Desde SC

Agrupar por S#

) como T2

Ordenar por descripción promedio;

Consulta los tres primeros en cada uno. Registro del asunto: (No se tendrán en cuenta los resultados empatados)

Seleccione t1. S# es el número de estudiante, t1. C# se utiliza como ID del curso y la puntuación es.

De SC t1

Dónde están las puntuaciones (seleccione las 3 mejores puntuaciones

De SC

Donde t1. C#= C#

p>

Ordenar por puntuación DESC

)

Ordenar por t1. c#;

6. Consultar el número de estudiantes seleccionados para cada curso.

Seleccione c# del grupo sc hasta C#, count(S#);

7. Descubra los números de estudiantes y los nombres de todos los estudiantes que solo han tomado una clase.

Seleccione sc.s#, estudiante.nombre, cuente (c#) como número de cursos.

De SC, estudiante

Cual SC. S# = estudiante. S# está agrupado por SC. S#, estudiante. Sname tiene count(c#)=1;

8. ¿Consultar el número del curso? ¿002? ¿La puntuación es mejor que el número del curso? 001?Los números de estudiantes y los nombres de todos los estudiantes de grados inferiores;

Seleccione S#, Nombre de (Seleccione estudiantes. S#, estudiantes. Nombre, puntaje, (Seleccione puntajes de SC SC_2, donde SC_2. S # = Estudiante. /p>

9. Consulta el número de estudiantes y los nombres de los estudiantes cuyas puntuaciones son inferiores a 60 puntos en todos los cursos;

Selecciona S#, Sname

>De estudiantes

donde S# no está presente (seleccione el estudiante.

S# de Student, SC donde S#=SCS# y puntuación gt60);

10. Consulta el número de estudiante y el nombre de los estudiantes que no han completado todos los cursos;

Selecciona estudiantes. . S#, estudiante. Nombre

Del estudiante, SC

¿Dónde está el estudiante? S#=SC. S# está agrupado por estudiantes. S#, estudiante. Sname tiene count(c#) lt; (Seleccione count(c#) del curso);

11. ¿Consultar al menos un curso y número de estudiante? 1001? El número de estudiante del estudiante y el nombre del mismo estudiante;

seleccione S#, Nombre de Estudiante, SC donde Estudiante. S#=SC. seleccione C# de S# y C# en SC, donde S# = ' 1001 ';

12 ¿Cuál es el número de estudiante que ha estudiado? 001?Números de estudiantes y nombres de otros estudiantes en todos los cursos;

Elija un SC diferente. S#, Nombre

Del estudiante, SC

¿Dónde está el estudiante? S#=SC. S# y C# en (seleccione C# de SC, donde S# = '001');

13, ¿poner? ¿CAROLINA DEL SUR? ¿En la mesa? ¿Y Ping? La calificación del curso impartido por el profesor se cambia a la calificación promedio de este curso;

Actualizar puntaje establecido SC = (seleccione promedio (SC_2.score))

Desde SC SC_2

donde sc_2.c#=sc.c#) de curso, profesor donde cursoc#=scc# y cursot#=profesort#. Ye Ping');

14, consulta y? El curso elegido por el estudiante No. 1002?6 tiene exactamente el mismo número de estudiante y nombre que los demás estudiantes;

seleccione S# de SC donde c# in(seleccione c# de SC donde S# = '1002')

agrupar por S # teniendo recuento(*)=(seleccione recuento(*)de SC donde S# = ' 1002 ');

15, ¿eliminar aprendizaje? ¿Y Ping? Registro de tabla SC de la clase del profesor;

Eliminar SC

Por supuesto, profesor

donde curso.c # = sc.c # y curso.t # = profesor .t #and tname = 'Yeping';

16. Inserte algunos registros en la tabla SC. Estos registros deben cumplir los siguientes criterios: ¿Sin numerar? 003?ID de estudiante, 2,

Puntuación promedio de la clase #;

Inserte SC y 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, muestra todos los estudiantes de mayor a menor de acuerdo con puntuación promedio? ¿base de datos? ,?Gestión empresarial? ,?¿Inglés? Los resultados de los tres cursos se muestran en el siguiente formato: número de estudiante, base de datos, gestión empresarial, inglés, número de cursos válidos y puntaje promedio válido.

Seleccione S# como ID del estudiante

, (seleccione la puntuación sc.s# = t.s#, c#='004') como base de datos.

, (seleccione fracción de donde sc.s# = t.s#, c#= '001') como gestión empresarial.

, (seleccione fracción donde sc.s# = t.s#, c#='006') para inglés.

, COUNT(*) es el número de cursos válidos y AVG(t.score) es la puntuación promedio.

De SC a t

Agrupar por S#

Ordenar por promedio (t.score)

18, consultar cada tema Más alto y puntuaciones más bajas: se muestra en el siguiente formato: ID del curso, puntuación más alta, puntuación más baja.

Seleccione la identificación del curso de L.C. # como, la puntuación más alta es L.Scoreas y la puntuación más baja es R.Scoreas.

De SC L, SC AS R

donde L.C# = R.C# y

L.score = (Seleccione Máximo(IL.score)

De SC a IL, de estudiante a IM

donde L.C# = IL C# y S#

Agrupar por IL.

R.Score = (Seleccione el puntaje más bajo)

De SC a IR

Donde R.C# = IR. C#

Agrupar por IR. C#

);

19, ordenados por la puntuación promedio de cada materia de menor a mayor y el porcentaje de aprobación de mayor a menor.

Seleccione t.C# como número del curso, max(curso.Cname) como nombre del curso e isnull(AVG(score), 0) como puntaje promedio.

, 100 * SUMA (caso cuando es nulo (puntuación, 0))>= 60 y luego 1, si no, 0 final)/cuenta (*) como porcentaje de aprobación

Por supuesto, de SC T

donde t . C# = curso. C#

Agrupar por número de cláusula

ORDER BY 100 * SUM(is null(score, 0))>= 60 th EN 1 ELSE 0 END)/COUNT(* )desc

20. Consulta el puntaje promedio y el porcentaje de aprobación de los siguientes cursos (que se muestran como "1 línea"): Gestión Empresarial (001), Marx (002), OO (003), base de datos (004); )

Seleccione suma (caso cuando c # =' 001 ' luego puntue en otro extremo 0)/suma (caso c # cuando ' 001 ' y luego 1 en otro extremo 0) como la puntuación media de la gestión empresarial.

, 100 * SUM (c# = '001' y puntuación gt = 60, luego 1 más 0 finaliza)/suma (c# = '001' luego 1 más 0 finaliza) como porcentaje de aprobación de la gestión empresarial.

, suma(caso cuando c# = ' 002 ' entonces la puntuación finaliza 0)/sum(caso c# ' cuando ' 002 ' entonces 1 finaliza 0) como puntuación promedio de Marx.

, 100 * SUM(c# = '002 ' y puntuación gt= 60 y luego 1 más 0 finaliza)/sum(c# = '002 ' luego 1 más 0 finaliza) como porcentaje máximo de aprobación.

, sum(c# = '003 ', luego puntuación else 0 end)/sum(c# '003 ', luego 1 else 0 end) como puntuación promedio de UML.

, 100 * SUM(c# = '003 ' y puntuación gt= 60 y luego 1 más 0 finaliza)/sum(c# = '003 ' luego 1 más 0 finaliza) como porcentaje de aprobación de UML.

La puntuación promedio, sum(c# = '004 ', luego puntuación else 0 end)/sum(c# '004 ', luego 1 else 0 end) se utiliza como base de datos.

, 100 * SUM(c# = '004 ' y puntaje gt= 60 luego 1 más 0 finaliza)/sum(c# = '004 ' luego 1 más 0 finaliza) como porcentaje de aprobación de la base de datos.

Desde SC

;