Sentencias Select
Click here to load reader
-
Upload
esacre -
Category
Technology
-
view
17.973 -
download
0
Transcript of Sentencias Select
Erik SacreBases de Datos
MANIPULACION DE DATOS
• En una Base de Datos Relacional, los datos se manipulan con las siguientes sentencias:
• Insert: Permite insertar registros o tuplas
• Delete: Permite eliminar registros o tuplas
• Update: Permite modificar registros o tuplas
• Select: Permite consultar registros o tuplas.
Erik SacreBases de Datos
Sentencia SELECT
• Es la sentencia nativa de SQL para recuperar datos de una base de datos relacional. Es una sentencia muy poderosa y depende su efectividad de una correcta definición de las tablas de la Base de Datos.
Erik SacreBases de Datos
SELECT
Sentencia “SELECT” ResultadoTable_2
T2_a1T2_a2
<pk>
Table_3
T3_a1T3_a2
<pk>
Table_1
T1_a1T1_a2
<pk>
T1_a1
T3_a2
T2_a2
Erik SacreBases de Datos
Algunas propiedades
(Proyección): Permite escoger algunas columnas de la tabla indicada. Se eliminan las tuplas duplicadas. El resultado tiene k columnas.
(Selección): Permite seleccionar sólo algunas filas de una tabla; c es una expresión (condición).
k1 a,..,a
)R(
)R(c
Erik SacreBases de Datos
Aplicación de SELECTA_C
TenerCorresponder
ALUMNOS
ALU_CODIGOALU_NOMBRE
<pi> Characters (10)Variable characters (20)
<M><M>
Identifier_1 <pi>
CARRERAS
CAR_CODIGOCAR_NOMBRE
<pi> Characters (5)Variable characters (25)
<M><M>
Identifier_1 <pi>
FK_ALUMNOS_RELATIONS_CARRERAS
Corresponder
Tener
ALUMNOS
ALU_CODIGOALU_CARALU_NOMBRE
CHAR(10)CHAR(5)VARCHAR2(20)
<pk><fk>
CARRERAS
CAR_CODIGOCAR_NOMBRE
CHAR(5)VARCHAR2(25)
<pk>
CARRERASCar_codigo Car_Nombre
101 Civil102 Ejecución301 Comercial302 Educación
ALUMNOSAlu_Codigo Alu_Nombre Alu_Car
1 Pedro 1012 Juan 3013 Diego 1024 María 1025 Carla 302
Erik SacreBases de Datos
Create Table del ejemplocreate table ALUMNOS ( ALU_CODIGO CHAR(10) not null, ALU_CAR CHAR(5) not null, ALU_NOMBRE VARCHAR2(20) not null, constraint PK_ALUMNOS primary key (ALU_CODIGO));create table CARRERAS ( CAR_CODIGO CHAR(5) not null, CAR_NOMBRE VARCHAR2(25) not null, constraint PK_CARRERAS primary key (CAR_CODIGO));alter table ALUMNOS add constraint FK_ALUMNOS_RELATIONS_CARRERAS foreign
key (ALU_CAR) references CARRERAS (CAR_CODIGO);
Erik SacreBases de Datos
Sentencia Básica SELECT
SELECT <Campos a desplegar>FROM <Tablas involucradas>WHERE <Condición de enlace de tablas y criterio de selección>GROUP BY <Criterio de agrupación>HAVING <Criterio de selección de los resultados del Select>ORDER BY <Criterio de orden de los resultados>;
nombre
alumnos
Rut_alumno = ’11.123.234-K’
No corresponde, Rut = PK
No corresponde, Rut = PK
No corresponde, Rut = PK
Erik SacreBases de Datos
Sentencia Básica SELECT
SELECT <Campos a desplegar>FROM <Tablas involucradas>WHERE <Condición de enlace de tablas y criterio de selección>GROUP BY <Criterio de agrupación>HAVING <Criterio de selección de los resultados del Select>ORDER BY <Criterio de orden de los resultados>;
Edad, count(*) as cantidad
alumnos
Edad > 18 and edad <21
edad
Cantidad > 1
edad
Erik SacreBases de Datos
CARRERASCar_codigo Car_Nombre
101 Civil102 Ejecución301 Comercial302 Educación
ALUMNOSAlu_Codigo Alu_Nombre Alu_Car
1 Pedro 1012 Juan 3013 Diego 1024 María 1025 Carla 302
Query1Alu_Nombre Car_NombrePedro CivilJuan ComercialDiego EjecuciónMaría EjecuciónCarla Educación
EJEMPLO GRAFICO 1
Tablas
SELECT ...
RESULTADO
SELECT Carreras.Car_Nombre, Alumnos.Alu_NombreFROM Carreras, AlumnosWHERE Carreras.Car_Codigo = Alumnos.Alu_Car
Erik SacreBases de Datos
Query2Car_Nombre CantidadCivil 1Comercial 1Educación 1Ejecución 2
CARRERASCar_codigo Car_Nombre
101 Civil102 Ejecución301 Comercial302 Educación
ALUMNOSAlu_Codigo Alu_Nombre Alu_Car
1 Pedro 1012 Juan 3013 Diego 1024 María 1025 Carla 302
Tablas
SELECT ...SELECT Carreras.Car_Nombre, Count(*) as CantidadFROM Carreras, AlumnosWHERE Carreras.Car_Codigo = Alumnos.Alu_CarGROUP BY Carreras.Car_NombreORDER BY Carreras.Car_Nombre;
EJEMPLO GRAFICO 2
Erik SacreBases de Datos
Consideraciones
• Para referenciar a todos los registros de una tabla, se usa el símbolo *.
• Para referenciar un campo de una tabla se usa la sintáxis: tabla.campo (ejemplo: alumnos.rut).
• Para recopilar datos provenientes de dos o más tablas, no necesariamente debe existir una relación entre las tablas.