idioma base de datos de ejercicios 5 - SELECT (consulta anidada existe, colección, basada consulta una tabla derivada)

EXISTE representantes existencial ∃ cuantificador.
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 devuelve verdadero, de lo contrario retorna falso.
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.
Después de usar el cuantificador existencial NO existe, si el resultado de la consulta interna está vacía, la capa externa de la cláusula WHERE devuelve un valor verdadero, de lo contrario valor de retorno.
[3.60] para consultar todos los pacientes que participaron en el 1er nombres de los estudiantes del curso.

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

Encuentra Principio: Sno valor tomado por uno de Student, el valor Sno SC si está presente y que Cno = '1', el resultado no es artículo de vacío, es TRUE, pero esta entrada Student.Sname pantalla.
Aquí Insertar imagen Descripción
El nombre de [3,61] Ejemplo 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');

Aquí Insertar imagen Descripción
Todos los sub-consulta con el predicado IN, operadores de comparación, cualquier y todos los predicados predicado EXISTS se puede utilizar con sub-consultas de reemplazo equivalente.
[3.62] Los pacientes inscritos en un curso completo de nombres de consulta de los estudiantes.
lenguaje SQL no es cuantificador universal, predicado puede ser convertido con el cuantificador universal es equivalente al cuantificador existencial predicado:
(∀ x) P≡¬ (∃x (ap))
porque no hay cuantificadores completos, pueden estar sujetos significando convertido en una forma equivalente de los cuantificadores existenciales: consulta de dichos estudiantes, nadie curso electivo no lo hace. Su instrucción SQL es la siguiente:

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

Por lo tanto usando existe / no existen para poner en práctica la consulta con una palabra medida.
[3.63] Consulta de ejemplo menor número de estudiantes inscritos en un curso completo de 201.215.122 de elección de los estudiantes.
lenguaje SQL no contiene ninguna operación lógica
se puede utilizar para convertir el predicado cálculo de predicados implicación lógica equivalente a:
P → q≡¬p∨q

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

Aquí Insertar imagen Descripción
[3.64] Consultas de ejemplo Departamento de estudiantes de informática y la edad de los estudiantes no más de 19 años de edad.

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

Aquí Insertar imagen Descripción
[3,65] cursos electivos Ejemplo 1 de consulta o cursos electivos estudiantes 2.

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

Aquí Insertar imagen Descripción
[3.66] Ejemplo consultas Departamento de Ciencias de la Computación estudiantes la edad no es más de 19 años de edad, estudiante de intersección.

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

Aquí Insertar imagen Descripción
[3.67] de consulta tanto de los pacientes inscritos en los cursos 1 y 2 de los estudiantes de cursos electivos.

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

Aquí Insertar imagen Descripción
Por supuesto, la solución es más de una consulta anidada se puede lograr:

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

[3.68] Ejemplo consultas Departamento de Ciencias de la Computación estudiantes la edad no es 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;

Aquí Insertar imagen Descripción

Publicado 14 artículos originales · ganado elogios 10 · vistas 3836

Supongo que te gusta

Origin blog.csdn.net/jiesfriend/article/details/105033784
Recomendado
Clasificación