Servidor SQL 03

 


1. Creación y eliminación de índices

 

1. Crea un índice

❖ El propósito de la indexación (ÍNDICE): acelerar la consulta

 

❖ Índices comunes en el sistema de gestión de bases de datos relacionales:

◼ Índice de archivos secuenciales

◼ Índice de árbol B +

◼ Índice hash

◼ Índice de mapa de bits

 

❖Formato de la oración

CREAR [ÚNICO] [CLÚSTER] ÍNDICE <nombre de índice>

 ON <nombre de tabla> (<nombre de columna> [<orden> [, <nombre de columna> [<orden>]] ...);

<nombre de la tabla>: el nombre de la tabla básica que se indexará

 Índice: se puede construir en una o más columnas de la tabla, y cada nombre de columna está separado por una coma

<Order>: especifique el orden de los valores del índice, orden ascendente: ASC, orden descendente: DESC. Valor predeterminado: ASC

 ÚNICO: Cada valor de índice de este índice solo corresponde a un registro de datos único

CLUSTER: Indica que el índice que se creará es un índice agrupado Una introducción al sistema de base de datos

 

[Ejemplo 3.13] Cree índices para las tablas Student, Course y SC en la base de datos de cursos de estudiantes.

CREATE UNIQUE INDEX Stusno ON Student(Sno);
--学号默认升序
CREATE UNIQUE INDEX Coucno ON Course(Cno);
--课程号默认升序
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);
--学号升序 ,学号若相同则按照课程号降序排列

2. Modificar el índice

❖ALTER INDEX <nombre de índice antiguo> CAMBIAR EL NOMBRE POR <nombre de índice nuevo>

◼ [Ejemplo 3.14] Cambie el nombre de índice SCno de la tabla SC a SCSno

ALTER INDEX SCno RENAME TO SCSno

Sin embargo, alter no puede cambiar el nombre del índice. Si cambia el nombre del índice, debe llamar a un procedimiento almacenado.

La forma correcta es  

 Cambiar el nombre de SQL Server

EXEC sp_rename 'SC.SCno','SCSno','INDEX';


 

 

3. Eliminar el índice

❖DROP INDEX <nombre de índice>;

Al eliminar un índice, el sistema elimina la descripción del índice del diccionario de datos.

[Ejemplo 3.15] Elimina el índice Stusname de la tabla Student

DROP INDEX Stusname

Informar un error

 

Para

DROP INDEX Stusno on Student;

 

Diccionario de datos

❖ El diccionario de datos es un conjunto de tablas del sistema dentro de RDBMS, que registra toda la información de definición en la base de datos:

◼ Definición de esquema relacional ◼ Definición de vista ◼ Definición de índice ◼ Definición de restricción de integridad ◼ La autoridad de operación de varios usuarios en la base de datos ◼ Estadísticas, etc.

❖ Cuando el RDBMS ejecuta la declaración de definición de datos SQL, en realidad está actualizando la información correspondiente en la tabla del diccionario de datos.

 

2. Actualización de datos

1. Insertar datos

❖Dos formas de insertar datos

◼ Insertar tupla

◼ Insertar resultado de subconsulta

Puede insertar varias tuplas a la vez

 

1. Inserta una tupla

 Formato de declaración 

INSERTAR

INTO <nombre de la tabla> [(<columna de atributo 1> [, <columna de atributo 2>)]

VALORES (<constante 1> [, <constante 2>] ...);

 

❖ Función

 Insertar una nueva tupla en la tabla especificada

 

Introducción a la declaración

❖ Cláusula INTO

◼ Especifique el nombre de la tabla y la columna de atributos de los datos que se insertarán

◼ El orden de las columnas de atributos puede ser inconsistente con el orden en la definición de la tabla.

◼ No se especifica ninguna columna de atributo: significa que se debe insertar una tupla completa y que los atributos de la columna de atributo están en el mismo orden que en la definición de la tabla

◼ Especifique algunas columnas de atributos: la tupla insertada toma valores nulos en las columnas de atributos restantes

 

❖ Cláusula VALORES

◼ El valor proporcionado debe coincidir con la cláusula INTO

    Numero de valores

   Tipo de valor Introducción al sistema de base de datos

 

 

[Ejemplo 3.69] Inserte una nueva tupla de estudiante (número de estudiante: 201215128; nombre: Chen Dong; género: masculino; departamento: IS; edad: 18 años) en la tabla de Estudiantes.

INSERT
INTO Student (Sno,Sname,Ssex,Sdept,Sage)
VALUES ('201215128','陈冬','男','IS',18);

 

 El mismo método, al insertar en la tabla del curso

 Porque cuando estamos construyendo la mesa

Entonces, Cpno es nulo o igual al valor del código principal de una tupla en Course

Dado que esta es la primera inserción

Para que podamos

INSERT
INTO Course(Cno,Cname,Cpno,Ccredit)
VALUES ('1','数据库',NULL,4);

 

[Ejemplo 3.70] Inserte la información del estudiante Zhang Chengmin en la tabla de Estudiantes. (El nombre del atributo no está escrito en la cláusula INTO)

INSERT
INTO Student
VALUES ('201215126','张成民','男',18,'CS');

  [Ejemplo 3.71] Inserte un registro de selección de curso ('200215128', '1').
 

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

El sistema de administración de la base de datos relacional asignará automáticamente un valor nulo a la columna Calificación del registro recién insertado.

 

 

Tres, consulta de datos

1. Consulta la columna especificada (proyección en álgebra relacional)

[Ejemplo 3.16] Consultar la identificación del estudiante y el nombre de todos los estudiantes.

SELECT Sno,Sname FROM Student;

[Ejemplo 3.17] Consultar el nombre, el número de alumno y el departamento de todos los alumnos.

SELECT Sname,Sno,Sdept FROM Student;

 

❖ Consultar todas las columnas

◼ Seleccione todas las columnas de atributos:

Enumere todos los nombres de columna después de la palabra clave SELECT

Especifique << expresión de la columna de destino> como *

[Ejemplo 3.18] Consultar los registros detallados de todos los estudiantes

SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student; 

SELECT *
FROM Student;

 

❖ Consultar valor calculado

◼ La cláusula SELECT << expresión de la columna de destino> no solo puede ser una columna de atributo en la tabla, sino también una expresión

[Ejemplo 3.19] Verifique los nombres de todos los estudiantes y su año de nacimiento.

SELECT Sname,2016-Sage /*假设当时为2016年*/
FROM Student;

 

[Ejemplo 3.20] Consultar el nombre, año de nacimiento y departamento de todos los estudiantes Se requieren letras minúsculas para indicar el nombre del departamento.

SELECT Sname,
'Year of Birth: '
,2014-Sage,LOWER(Sdept)
FROM Student;

 

 

❖Utilice alias de columna para cambiar los encabezados de columna de los resultados de la consulta
 

SELECT Sname NAME,'Year of Birth:' BIRTH, 2014-Sage BIRTHDAY,LOWER(Sdept) DEPARTMENT FROM Student;

 

 

❖Eliminar filas con valores duplicados. Si no se especifica la palabra clave DISTINCT, el valor predeterminado es ALL

[Ejemplo 3.21] Consultar el ID de alumno del alumno que ha realizado el curso electivo.

SELECT Sno FROM SC;
--等价于:
SELECT ALL Sno FROM SC

❖Especifique la palabra clave DISTINCT para eliminar filas duplicadas en la tabla

SELECCIONE Sno DISTINTO DE SC;

 

Continuará. . . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/bibiobi/article/details/115245507
Recomendado
Clasificación