8 SQL capacitación para el trabajo de base de datos elegidos (consulta anidada existe, colección, basada consulta una tabla derivada)

predicado EXISTS

  • cuantificador existencial

Con el predicado EXISTS subconsulta no devuelve ningún dato, sólo produjo un verdadero valor lógico "verdadero" o lógicamente falso valor "falso".
Si el resultado de la consulta interna no está vacía, entonces la capa exterior de la cláusula WHERE de la consulta interna devuelve un valor verdadero si el resultado está vacío, la capa externa de la cláusula DONDE vuelve falsa

EXISTE subconsulta por los clientes potenciales, con la expresión de columna meta menudo utilizado *, porque la subconsulta con sólo existe regresar valor verdadero o falso, dado el nombre de la columna discutible.

NO EXISTE predicado

Si el resultado de la consulta interna no está vacía, entonces la capa exterior de la cláusula WHERE retornos falsos
si el resultado de la consulta interna está vacía, la capa externa de la cláusula WHERE devuelve un valor verdadero

[Ejemplo 3.60] Nº 1 consulta para todos los nombres de cursos electivos.


SELECT Sname  
FROM Student   
 WHERE EXISTS
(SELECT *
 FROM SC
WHERE Sno=Student.Sno AND Cno= ' 1 ');

Nombre [Ejemplo 3.61] del estudiante de consulta no es el número 1 cursos electivos.

 SELECT Sname
 FROM     Student
 WHERE NOT EXISTS
 (SELECT *
 FROM SC
 WHERE Sno = Student.Sno AND Cno='1');

[Ejemplo 3.62] consulta inscrito en un curso completo de nombres de los estudiantes.

SELECT Sname
FROM Student
WHERE NOT EXISTS
(SELECT *
FROM Course
WHERE NOT EXISTS
(SELECT *
 FROM SC
 WHERE Sno= Student.Sno
  AND Cno= Course.Cno
 )
);
  • Con EXISTE / NO EXISTE aplicar implicación lógica

lenguaje SQL no contiene ninguna operación lógica se puede utilizar para convertir el cálculo de predicados lógica de predicados implicación equivalente a:
Aquí Insertar imagen Descripción

[Ejemplo 3.63] consulta menor número de estudiantes inscritos en un curso completo de 201.215.122 de elección de los estudiantes.
NO EXISTE predicado está representado por:

SELECT DISTINCT Sno
   FROM SC SCX
   WHERE NOT EXISTS
   (SELECT *
   FROM SC SCY
   WHERE SCY.Sno = ' 201215122 '  AND
   NOT EXISTS
   (SELECT *
   FROM SC SCZ
   WHERE SCZ.Sno=SCX.Sno AND
   SCZ.Cno=SCY.Cno));

[Ejemplo 3.64] Departamento de investigación estudiante de informática y ningún estudiante mayor de 19 años de edad.

SELECT *
FROM Student
WHERE Sdept= 'CS'
UNION
SELECT *
FROM Student
WHERE Sage<=19;

UNION: una pluralidad de resultados de la consulta cuando se combinan, el sistema elimina automáticamente tuplas duplicadas UNIÓN ALL: cuando una pluralidad de resultados de la consulta combinada, que se repite reserva tupla

[Ejemplo 3.65] consulta cursos electivos 1 o 2 de los estudiantes cursos electivos.

    SELECT Sno
    FROM SC
    WHERE Cno=' 1 '
    UNION
    SELECT Sno
    FROM SC
    WHERE Cno= ' 2 ';

[Ejemplo 3.66] es en realidad un estudiantes de consulta no mayores de 19 años en el Departamento de Ciencias de la Computación.

	    SELECT *
    	FROM Student
    	WHERE Sdept= 'CS' AND  Sage<=19;

[Ejemplo 3.67] consulta ambos cursos electivos 1 y 2 de los estudiantes de cursos electivos.

 SELECT Sno
FROM SC
WHERE Cno=' 1 ' 
INTERSECT
SELECT Sno
FROM SC
WHERE Cno='2 ';

[Ejemplo 3.67] se puede expresar como una consulta anidada:

     SELECT Sno
      FROM    SC
      WHERE Cno=' 1 ' AND Sno IN
      (SELECT Sno
      FROM SC
      WHERE Cno=' 2 ');

[Ejemplo 3.68] Departamento de Ciencias de la Computación alumnos la investigación y la edad no más de 19 años de edad, estudiante de diferencia de conjuntos.

SELECT *
FROM Student
WHERE Sdept='CS'
EXCEPT
SELECT  *
FROM Student
WHERE Sage <=19;

Subconsulta no sólo aparecen en la cláusula WHERE,
también pueden aparecer en la cláusula FROM,
objetivo temporal entonces la tabla subconsulta derivado generado de la consulta principal consulta.

[Ejemplo 3.57 cambiar] número para identificar a cada estudiante a lo largo de su promedio de calificaciones de cursos electivos

SELECT Sno, Cno
FROM SC, (SELECT  Sno, Avg(Grade) 
                    FROM   SC 
		           GROUP BY   Sno)
                    AS   Avg_sc(avg_sno,avg_grade)
WHERE SC.Sno = Avg_sc.avg_sno
                    and SC.Grade >=Avg_sc.avg_grade

[Ejemplo 60 modificado] Buscar todos los cursos Nº 1 el nombre del estudiante electiva, puede utilizar la siguiente consulta se ha completado:

SELECT Sname
FROM     Student,  
(SELECT Sno FROM SC WHERE Cno=' 1 ') AS SC1
WHERE  Student.Sno=SC1.Sno;

cláusula SELECT:
DISTINCT: eliminar valores de fila duplicados. Si no se especifica la palabra clave DISTINCT, el valor predeterminado es TODO.
expresión de columna de destino: las columnas de atributos especificada para mostrar. columna de todas las consultas
(). Puede ser una expresión aritmética, las constantes de cadena, funciones, y así sucesivamente.
Cláusula FROM: especificando objeto de consulta.
Sobre la base de la consulta de tabla derivada según
la cláusula WHERE: Especificar los criterios de consulta. Los operadores lógicos AND y OR se conectan una pluralidad de condiciones de consulta. Comparación de tamaño, para determinar el alcance (entre Y), determinar un conjunto de la IN (), el carácter correspondiente ([NO] similares).
Consulta de combinación: Cuando se utilicen condiciones de la Cláusula de conectar las dos tablas, el formato: [<nombre de la tabla 1>] <nombre de la columna 1> <operador de comparación> <nombre de la columna 2> [<Nombre de la tabla 2>.]. Desde la conexión propia debe utilizar el "alias".
Cláusula GROUP BY: consulta resultados por el paquete de columna especificada, igual a la tuplas valor de la propiedad como un grupo de filas. función Típicamente agregada en cada función.
frase que tiene: sólo cumplen los criterios especificados se estableció a ser la salida.
función de agregado sólo se puede utilizar en la cláusula SELECT y el GRUPO POR cláusula HAVING cláusula. Si no hay resultados de la consulta de agrupación, funciones de agregado se aplicarán a la totalidad de los resultados de la consulta. Después de los resultados del paquete de consulta, las funciones de agregado se aplican a cada grupo. valor especificado o más columnas de un paquete, un conjunto de valores es igual.
Cláusula WHERE que tiene una diferencia frase: el papel de objetos de diferentes
cláusula WHERE se aplica a la tabla de base o punto de vista, que satisface la condición de tuplas seleccionados;
que tienen grupos de frases actuación, y seleccionar el grupo para satisfacer las condiciones.
consulta anidada: Un bloque de consulta anidado en el WHERE o HAVING cláusula de la frase. (Con predicado IN con un operador de comparación, con la sub-consultas predicados cualquiera o todos)
*

cláusula POR ORDEN: sólo los resultados finales de la consulta por uno o más atributos de columna. El valor por defecto de la ASC ASC; descendente DESC.

Publicado 11 artículos originales · ganado elogios 6 · vistas 2708

Supongo que te gusta

Origin blog.csdn.net/lrx359641708/article/details/105028115
Recomendado
Clasificación