[Principio de base de datos] SQL de lenguaje estándar de bases de datos relacionales y sistema de gestión de bases de datos relacionales SQL Server (7)

Ver.

Cuando presenté algunos conceptos básicos de SQL en el lenguaje estándar de la base de datos relacional SQL y el sistema de administración de base de datos relacional SQL Server (1 ), se mencionaron las vistas. La vista es una tabla de datos virtual cuyo contenido está definido por la consulta. Desde el punto de vista del usuario, la tabla real se ve a través de diferentes rutas durante la vista, al igual que una ventana. Puede ver los edificios altos afuera a través de la ventana Diferentes partes del edificio de gran altura, ya través de la vista se puede ver el contenido de interés para el usuario en la base de datos.
Al igual que la tabla básica, la vista contiene una serie de datos de filas y columnas con nombre, pero la vista no existe en la base de datos como un conjunto de almacenamiento de valores de datos, a menos que sea una vista indexada. Los datos de filas y columnas de la vista provienen de la tabla básica a la que hace referencia la consulta que define la vista y se generan dinámicamente cuando se hace referencia a la vista. Las vistas se utilizan generalmente para centralizar, simplificar y personalizar la comprensión diferente de la base de datos de cada usuario. Las vistas se pueden utilizar como mecanismo de seguridad al permitir que los usuarios accedan a los datos a través de la vista sin otorgarles acceso directo a las tablas básicas asociadas con la vista.

Crea una vista.

Antes de dar un formato gramatical completo para crear vistas, primero tengamos una comprensión intuitiva de este tipo de declaración a través de algunos ejemplos.

[Ejemplo] Cree una vista Sub_T de los profesores del departamento de informática.

CREATE VIEW Sub_T
AS SELECT TNo,TN,Prof
   FROM T
   WHERE Dept='计算机'

En el código anterior, el nombre de la vista es Sub_T, que se compone de las tres columnas TNo, TN y Prof en la subconsulta. Una vez creada la vista, el acceso del usuario a la misma queda restringido al "sistema informático", pudiendo ver únicamente el contenido de los tres campos TNo, TN y Prof, logrando así el propósito de confidencialidad de los datos.
Cabe señalar que después de que se crea la vista, solo la definición de la vista se almacena en el diccionario de datos y la instrucción de subconsulta en el código anterior no se ejecuta. Cuando el usuario opera en la vista, los datos correspondientes se sacan de la tabla básica de acuerdo con la definición de la vista.

[Ejemplo] Cree una vista de estado de estudiante S_SC_C (incluida la identificación del estudiante, el nombre, el nombre del curso y las calificaciones).

CREATE VIEW S_SC_C(SNo,SN,CN,Score)
AS SELECT S.SNo,SN,CN,Score
   FROM S,C,SC
   WHERE S.SNo=SC.SNo AND SC.CNo=C.CNo

Esta vista se obtiene conectando tres tablas S, C y SC. S No existe ninguna columna en las tablas S y SC, por lo que debe especificar el nombre de la columna de la vista.

[Ejemplo] Cree una vista de puntaje promedio de estudiante S_Avg.

CREATE VIEW S_Avg(SNo,Avg)
AS SELECT SNo,Avg(Score)
   FROM SC
   GROUP BY SNo

El promedio de una de las columnas de la vista es el resultado del cálculo de la función de biblioteca, por lo que el nombre de la columna debe especificarse al definirla.
Habiendo visto los tres ejemplos anteriores, daremos CREATE VIEWel formato de sintaxis de la declaración:

CREATE VIEW NAME (Col_1,Col_2,...,Col_n)
AS select_statement
  • NAME, El nombre de la vista.
  • Col_i, El nombre de la columna de la vista, necesitamos especificar el nombre de la columna de la vista cuando y solo cuando ocurren las siguientes situaciones: ①La columna de atributo existente se deriva de una expresión aritmética, función o constante; ②Múltiples columnas pueden tener el mismo nombre ( Debido a la conexión); ③El usuario quiere que el nombre especificado de una columna en la vista sea diferente del nombre de su columna de origen (en resumen, la columna de atributo se puede nombrar personalizada).
  • select_statement, La SELECTdeclaración que define la vista , la declaración puede utilizar varias tablas y otras vistas.

Modifica la vista.

SQL proporciona ALTER VIEWdeclaraciones para modificar la vista.

[Ejemplo] Modifique la vista de estado de estudiante creada S_SC_C, elimine la columna de atributo de número de estudiante, es decir, solo mantenga el nombre, el nombre del curso y la calificación.

ALTER VIEW S_SC_C (SN,CN,Score)
AS SELECT SN,CN,Score
   FROM S,C,SC
   WHERE S.SNo=SC.SNo AND SC.CNo=C.CNo

Elimina la vista.

SQL proporciona declaraciones DROP VIEWpara eliminar vistas.

[Ejemplo] Eliminar Sub_T.

DROP VIEW Sub_T

Tenga en cuenta que después de eliminar la vista, solo se elimina la definición de la vista en el DD (de hecho, solo se guarda la definición), y la tabla básica de la que se deriva la vista no se verá afectada. Pero los otros puntos de vista derivados de este punto de vista han perdido su significado, aunque sus definiciones aún se conservan.

Vista de consulta.

Dijimos que una vista es como una tabla virtual y que las operaciones de consulta para la vista son exactamente las mismas que para la tabla básica.

[Ejemplo] Consultar el número del profesor y el nombre del profesor en la sub_T de la vista de situación del profesor del departamento de informática.

SELECT TNo,TN
FROM Sub_T
WHERE Prof='教授'

El proceso de ejecución de esta consulta primero es que el sistema encuentra la definición de Sub_T de DD (Diccionario de datos), y luego combina la definición con la consulta del usuario para convertirla en una operación equivalente en la tabla básica. Este proceso de conversión se llama Ver resolución Ver resolución. El código anterior equivale a ejecutar la siguiente consulta:

SELECT TNo,TN
FROM T
WHERE Prof='教授' AND Dept=计算机''

Actualiza la vista.

Dado que la vista es una tabla virtual, todas nuestras operaciones de actualización en la vista:

  • Agregar INSERT
  • Modificar ACTUALIZAR
  • Eliminar ELIMINAR

Se convertirá a la operación de la tabla básica, y todas las operaciones de actualización de la sintaxis y la tabla básica son exactamente iguales, puede consultar el lenguaje estándar de la base de datos relacional SQL y el sistema de administración de base de datos relacional SQL Server (6) . Algunas actualizaciones no son factibles en teoría, y algunas son difíciles de implementar. Solo consideramos aquellas actualizaciones que se pueden realizar.

[Ejemplo] Agregue un registro (ID de maestro: T6, Nombre: Li Dan, Título: Profesor asociado) a la vista de situación del maestro del Departamento de Ciencias de la Computación.

INSERT INTO Sub_T (TNo,TN,Prof)
VALUES ('T6','李丹','副教授')

Al igual que la operación de consulta anterior, el sistema primero encontrará la definición de Sub_T de DD, y luego combinará la definición con la operación que realizará el usuario y la transformará en una operación en la tabla básica.

Supongo que te gusta

Origin blog.csdn.net/weixin_44246009/article/details/108065492
Recomendado
Clasificación