La práctica del idioma base de datos 6 - INSERT / UPDATE / DELETE / NULL / VISTA

Insertos resultados

INSERT 
INTO <表名>  [(<属性列1> [,<属性列2>)]
子查询;

[3.72] casos para cada sistema, busque el promedio de edad de los estudiantes, y los resultados almacenados en la base de datos
de este paso se puede dividir en dos pasos
Primer paso: Crear tabla

CREATE  TABLE  Dept_age
	(Sdept CHAR(15)        
    Avg_age SMALLINT);   

Paso dos:
en la mesa de Stduent promediando el sistema de grupo de edad, y se almacena en tablas

INSERT INTO Dept_age(Sdept,Avg_age)
SELECT   Sdept,AVG(Sage)
FROM     Student
GROUP BY Sdept;

Aquí Insertar imagen Descripción
Modificar los datos

UPDATE  <表名>
SET     <列名>=<表达式>[,<列名>=<表达式>][WHERE  <条件>];

[3.74] estudiantes 201 215 121 casos de edad fue cambiado a 22 años.

UPDATE  Student
SET     Sage=22
WHERE   Sno='201215121';

[3.74] casos se incrementarán para todos los alumnos de 1 año de edad.

UPDATE Student
SET    Sage=Sage+1;

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
[3.75] Los departamentos de ciencias informáticas ejemplo todos los grados de los estudiantes cero.

UPDATE  SC
SET     Grade=0
WHERE   Sno  IN
		(SELECT Sno
        FROM   Student
        WHERE  Sdept='CS');

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Borrar datos

DELETE
FROM   <表名>
[WHERE <条件>];

[Ejemplo] 3,76 número de estudiante de eliminación del estudiante registra 201215128.

DELETE
FROM Student
WHERE Sno=201215128;

Aquí Insertar imagen Descripción
Al eliminar una nota reglas de integridad, la solución del blog para ver.
Aquí Insertar imagen Descripción
[3.77] para eliminar todos los casos de registro de inscripción de los estudiantes.

DELETE
FROM SC;

Aquí Insertar imagen Descripción
[3,78 casos] Departamento de Ciencias de la Computación electiva registros de eliminación de todos los estudiantes.

DELETE
FROM   SC
WHERE  Sno  IN(
	SELECT  Sno
	FROM    Student
	WHERE   Sdept='CS');

[3.79] casos insertan en la tabla SC en una tupla, número de estudiante es "201215125", número del curso es "1", el resultado está vacía.

INSERT INTO SC(Sno,Cno,Grade)
VALUES('201215125','1',NULL);

o

INSERT INTO SC(Sno,Cno)
VALUES('201215125','1'); 

Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
[Ejemplo] El Departamento de la Tabla de estudiantes Número de estudiantes de la escuela 3,80 "201 215 123" pertenecen los estudiantes cambia a un valor nulo.

UPDATE Student
SET    Sdept = NULL
WHERE  Sno='201215123';

Aquí Insertar imagen Descripción
[3.81] para encontrar ejemplos de datos de información del estudiante que le falta a la Tabla de alumnos.

SELECT  *
FROM  Student
WHERE Sname IS NULL OR Ssex IS NULL OR Sage IS NULL OR Sdept IS NULL;

Aquí Insertar imagen Descripción
[3.82] para identificar los casos de cursos electivos Nº 1 estudiante que ha fallado.

SELECT Sno
FROM SC
WHERE Grade < 60 AND Cno='1';

No se incluyen los estudiantes ausentes.
[3.83] pacientes que no los estudiantes a elegir cursos electivos No. 1 y los estudiantes ausentes.

SELECT Sno
FROM SC
WHERE Grade < 60 AND Cno='1'
UNION
SELECT Sno
FROM SC
WHERE Grade IS NULL AND Cno='1'

o

SELECT Sno
FROM SC
WHERE Cno='1' AND (Grade<60 OR Grade IS NULL);

Aquí Insertar imagen Descripción
Establecimiento de vista

CREATE  VIEW <视图名>  [(<列名>  [,<列名>])]
AS           <子查询>
[WITH  CHECK  OPTION];

[3.84] casos establecidos estudiante de vista de información.

CREATE VIEW IS_Student
AS 
SELECT  Sno,Sname,Sage
FROM    Student
WHERE   Sdept= 'IS';

Todavía tienen que asegurar que los estudiantes ver la información sólo cuando el Departamento de [3.85] para establecer los casos de vista de la información del estudiante y modificar los requisitos y las operaciones de inserción.

CREATE VIEW IS_Student
AS 
SELECT Sno,Sname,Sage
FROM   Student
WHERE  Sdept= 'IS'
WITH CHECK OPTION;

Cuando se combina con la cláusula CHECK OPTION, después de que el fin de insertar, modificar y operaciones de borrado, sistema de gestión de base de datos relacional agrega automáticamente Sdept = 'es' condiciones.
[3.86] pacientes que participaron estudiantes establecen un número 1 curso en el sistema de información (incluyendo el número, nombre, resultados).

CREATE VIEW IS_S1(Sno,Sname,Grade)
AS 
SELECT Student.Sno,Sname,Grade
FROM   Student,SC
WHERE  Sdept='IS' AND Student.Sno=SC.Sno AND SC.Cno='1';

Ver puede basarse no sólo en una o más tablas de base pueden estar establecidos en uno o más definidas en una visión buena, o en base a tablas de base y puntos de vista.
[3.87] casos establecer un sistema de información y cursos electivos Nº 1 rendimiento de los estudiantes en la vista de 90 puntos o más.

CREATE VIEW IS_S2
AS
SELECT Sno,Sname,Grade
FROM   IS_S1
WHERE  Grade>=90;

[3.88] casos definidos reflejan años del nacimiento de vista de un estudiante.

CREATE  VIEW BT_S(Sno,Sname,Sbirth)
AS 
SELECT Sno,Sname,2020-Sage
FROM   Student;

Aquí Insertar imagen Descripción
[3.89] Los casos de la escuela número de estudiantes y la puntuación media se define como una vista.

CREATE  VIEW S_G(Sno,Gavg)
AS  
SELECT   Sno,AVG(Grade)
FROM     SC
GROUP BY Sno;

Aquí Insertar imagen Descripción
3,90 [Ejemplo] La tabla de Student registra todas las chicas definidos como una vista.

CREATE VIEW F_Student(F_Sno,name,sex,age,dept)
AS
SELECT  *
FROM  Student
WHERE Ssex='女';

Ver borrado

DROP  VIEW  <视图名>[CASCADE];

Si el punto de vista también exportar el otro punto de vista, utilizar el Cascade instrucciones delete a la vista y todos los puntos de vista derivados de ella elimina juntos.
[Ejemplo] 3.91 vista delete BT_S y IS_S1;

DROP VIEW BT_S;	/*成功执行*/
DROP VIEW IS_S1;/*拒绝执行*/

IS_S2 necesidad de usar eliminaciones en cascada

DROP VIEW IS_S1 CASCADE;  

Al igual que el caso anterior, SQL Sever no admite la palabra clave CASCADE.
[3.92] para identificar a los pacientes menores de 20 años de edad Ver información del estudiante del estudiante del sistema.

SELECT  Sno,Sage
FROM    IS_Student
WHERE   Sage<20;

sistema de gestión de base de datos relacional al realizar consultas en la vista, en primer lugar la comprobación de los controles de validez que participan en las tablas de consultas, vistas, y así existe. Si está presente, se retira de la definición del diccionario de datos de la vista, la definición de sub-consultas y consultas al usuario combinar, convertida en una consulta equivalente contra la mesa de base, y luego realizar la consulta corregido. Este proceso de conversión se denomina vista digestión .
La consulta convertido:

SELECT  Sno,Sage       
FROM    Student
WHERE   Sdept='IS' AND Sage<20;

[Ejemplo] promedio de 3,94 grado en S_E vista de consulta el número de estudiante y la puntuación media de 90 puntos o más

SELECT *
FROM   S_G
WHERE  Gavg>=90;

Consulta y ver las definiciones S_E combinación consulta palabra:

SELECT Sno,AVG(Grade)
FROM     SC
WHERE  AVG(Grade)>=90
GROUP BY Sno;

Debido a la cláusula WHERE no es una expresión, por lo que la aplicación de la sintaxis de la consulta de error después de esta corrección aparecerá como condición para utilizar las funciones de agregado.
HAVING conversión uso

SELECT  Sno,AVG(Grade)
FROM  SC
GROUP BY Sno
HAVING AVG(Grade)>=90;

También se puede hacer uso de la consulta tabla derivada

SELECT *
FROM  (SELECT Sno,AVG(Grade)
	   FROM   SC 
	   GROUP BY Sno) AS S_G(Sno,Gavg)
WHERE Gavg>=90;

[3.95] casos verán IS_Student la escuela secundaria número de información del estudiante "201 215 122" nombres de los estudiantes leen "Liu Chen."

UPDATE  IS_Student
SET     Sname='刘辰'
WHERE   Sno='201215122';

Después de la conversión:

UPDATE  Student
SET     Sname='刘辰'
WHERE   Sno='201215122' AND Sdept='IS';

Aquí Insertar imagen Descripción
[Ejemplo 3.96] para insertar un nuevo sistema de información del estudiante a los estudiantes grabar una vista IS_S, donde el número de estudiante como "201 215 129", el nombre es "Zhao", de 20 años de edad.

INSERT
INTO   IS_Student
VALUES('201215129','赵新',20);

Actualización convierte al cuadro básico:

INSERT
INTO   Student(Sno,Sname,Sage,Sdept)
VALUES('200215129','赵新',20,'IS' );

[Ejemplo] 3.97 borrar la información del estudiante registro secundaria vista IS_Student para el número "201 215 129" de

DELETE
FROM  IS_Student
WHERE Sno= '201215129';

Actualización convierte al cuadro básico:

DELETE
FROM  Student
WHERE Sno= '201215129' AND Sdept='IS';
Publicado 14 artículos originales · ganado elogios 10 · vistas 3834

Supongo que te gusta

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