INSTITUTO TECNOLOGICO
PRIVADO
«JUAN MEJIA BACA»
NOMBRES: STHEFANY CUBAS
ZAMORA
ISAAC JANAMPA TARRILLO
LA SENTEncia SELECT
DEFINICIÓN
La sentencia SELECT nos permite consultar los datos
almacenados en una tabla de la base de datos.
CONSULTAS
 EJEMPLO 1: Selección de Todas las Columnas y filas de la tabla EMPLEADO. * SELECT
FROM EMPLEADOS.
 EJEMPLO 2: Selección del nombre del Proyecto (PROJNAME), la Fecha de inicio
(PRSTDATE) y La Fecha de finalización (PRENDATE) de la tabla PROYECTO. Ordenación
de la tabla Resultante Por la Fecha de finalización con las Fechas Más Recientes Primero.
SELECT PROJNAME, PRSTDATE, PRENDATE DE PROYECTO ORDER BY PRENDATE
DESC.
 Ejemplo 3: Selección del número de departamento (WORKDEPT) y el salario medio del
departamento (SALARY) para todos los departamentos de la tabla EMPLOYEE. Ordenación
la tabla resultante por orden ascendente por el salario medio del departamento. SELECT
WORKDEPT, AVG(SALARY) FROM EMPLOYEE GROUP BY WORKDEPT ORDER BY 2
 Ejemplo 4: Declaración de un cursor llamado UP_CUR para utilizarlo en un programa C para
actualizar las columnas de fecha de inicio (PRSTDATE) y de fecha de finalización
(PRENDATE) en la tabla PROJECT. El programa debe recibir los dos valores junto con el
valor de número del proyecto (PROJNO) para cada fila. EXEC SQL DECLARE UP_CUR
CURSOR FOR SELECT PROJNO, PRSTDATE, PRENDATE FROM PROJECT FOR
UPDATE OF PRSTDATE, PRENDATE;
 Ejemplo 5: Este ejemplo denomina a la expresión SAL+BONUS+COMM como TOTAL_PAY
SELECT SALARY+BONUS+COMM AS TOTAL_PAY FROM EMPLOYEE ORDER BY
TOTAL_PAY.
 Ejemplo 6: Determinación del número de empleado y el salario de los representantes de
ventas junto con el salario medio y el número total de empleados de sus departamentos.
También, listado del salario medio del departamento con el salario medio más alto.La
utilización de una expresión de tabla común para este caso ahorra los recursos de proceso
que implica la creación de la vista DIFO como una vista normal. Durante la preparación de la
sentencia, se evita el acceso al catálogo para la vista y, debido al contexto del resto de la
selección completa, la vista sólo considera las filas para el departamento de representantes
de ventas. WITH DINFO (DEPTNO, AVGSALARY, EMPCOUNT) AS (SELECT
OTHERS.WORKDEPT, AVG(OTHERS.SALARY), COUNT(*) FROM EMPLOYEE OTHERS
GROUP BY OTHERS.WORKDEPT ), DINFOMAX AS (SELECT MAX(AVGSALARY) AS
AVGMAX FROM DINFO) SELECT THIS_EMP.EMPNO, THIS_EMP.SALARY,
DINFO.AVGSALARY, DINFO.EMPCOUNT, DINFOMAX.AVGMAX FROM EMPLOYEE
THIS_EMP, DINFO, DINFOMAX WHERE THIS_EMP.JOB = 'SALESREP' AND
THIS_EMP.WORKDEPT = DINFO.DEPTNO.
 Ejemplo 7: Dadas dos tablas, EMPLOYEE y PROJECT, sustitución del empleado SALLY por
el nuevo empleado GEORGE, asignación de todos los proyectos controlados por SALLY a
GEORGE y devolución de los nombres de los proyectos actualizados. WITH NEWEMP AS
(SELECT EMPNO FROM NEW TABLE (INSERT INTO EMPLOYEE(EMPNO, FIRSTNME)
VALUES(NEXT VALUE FOR EMPNO_SEQ, 'GEORGE'))), OLDEMP AS (SELECT EMPNO
FROM EMPLOYEE WHERE FIRSTNME = 'SALLY'), UPPROJ AS (SELECT PROJNAME
FROM NEW TABLE (UPDATE PROJECT SET RESPEMP = (SELECT EMPNO FROM
NEWEMP) WHERE RESPEMP = (SELECT EMPNO FROM OLDEMP))), DELEMP AS
(SELECT EMPNO FROM OLD TABLE (DELETE FROM EMPLOYEE WHERE EMPNO =
(SELECT EMPNO FROM OLDEMP))) SELECT PROJNAME FROM UPPROJ;
 Ejemplo 8: Recuperación de los datos de la tabla DEPT. Esos datos se actualizarán
posteriormente con una actualización buscada, y estarán bloqueados cuando se ejecute la
consulta. SELECT DEPTNO, DEPTNAME, MGRNO FROM DEPT WHERE ADMRDEPT
='A00' FOR READ ONLY WITH RS USE AND KEEP EXCLUSIVE LOCKS.
 Ejemplo 9: Seleccione todas las columnas y filas de la tabla EMPLOYEE. Si otra transacción
está actualizando, suprimiendo o insertando datos de forma simultánea en la tabla
EMPLOYEE, la operación select esperará hasta que se complete la otra transacción para
obtener los datos. SELECT * FROM EMPLOYEE WAIT FOR OUTCOME .
Las consultas de resumen introducen dos nuevas cláusulas a la sentencia SELECT, la cláusula
GROUP BY y la cláusula HAVING, son cláusulas que sólose pueden utilizar en una consulta de
resumen, se tienen que escribir entre la cláusula WHERE y la cláusula ORDER BY y tienen la
siguiente sintaxis:
RESUMEN
SELECT: Se utiliza para extraer información de la base de
datos, de una tabla o varias.
FROM: Para indicar de que tabla proviene la información.
DISTINTIC: Fuerza que solo se muestren los registros con
valores distintos (suprime las repeticiones).
Filtros
La palabra clave para realizar filtros es WHERE . Se filtra
para indicar una condición o condiciones que deben
satisfacer los registros para ser seleccionados.
Ejemplo: Select * from vehículos where marca='seat'
(Muestra todos los vehículos cuya marca es seat.)
RECOMENDACIONES
EN SELECT
• No utilizar un SELECT *, y esto más que buena práctica debería ser regla
• No use la cláusula into nombre de tabla (“SELECT… INTO”). Esto bloqueará mientras se
ejecuta la consulta las tablas del sistema. En su lugar cree primero las tablas y luego re-
escribe la sentencia como INSERT INTO tabla_name SELECT.
• Si usa el operador UNION y existe la seguridad de que ambos select NO tienen registros
duplicados, entonces es mejor usar UNION ALL, para evitar que implícitamente se haga uso
del operador DISTINCT el cual puede requerir que se almacenen todos los datos de salida
en una tabla temporal para que luego se reordenen y se filtren los datos duplicados, lo cual
aumenta considerablemente el costo de la consulta.
• Es recomendable usar joins a un subquery.
EN WHERE
• Las columnas filtro TIENEN QUE SER del mismo tipo de la columna que existe en
la tabla (para evitar conversiones al momento de ejecución)
• No usar funciones sobre columnas que están en el Where dado que SQL no tiene
índices basados en funciones por lo que tendría que recorrer toda la tabla.
• No usar concatenaciones de cadenas
• Si se usa LIKE en la cláusula WHERE, se debe evitar el uso del operador “%” al
principio de la cadena a buscar dado que originaria que se tienen que leer todos
los datos de la tabla para poder responder dicha consulta, adicionalmente es
recomendable que existan (como mínimo) 3 caracteres antes del operador “%”.
CONCLUSIONES
En conclusión las 4 instrucciones importantes en la «sentencia
select» son:
• INSERT: Inserta filas en una tabla. Se corresponde con la “C” de CRUD.
• SELECT: muestra información sobre los datos almacenados en la base de
datos. Dicha información puede pertenecer a una o varias tablas. Es la
“R”.
• UPDATE: Actualiza información de una tabla. Es, obviamente, la “U”.
• DELETE: Borra filas de una tabla. Se corresponde con la “D”.
APRECIACION DEL EQUIPO
Claramente es importante esta aplicación como en otras aplicaciones
para base de datos que nos sirve para hacer arreglos y modificaciones
como son diseños para una base de datos, con instrucciones
importantes como son: select, delete, insert y update.
GLOSARIO DE TÉRMINOS
a- CREATE CREAR create table nom_table: con este comando creamos una tabla.
b- DATABASE BASE DE DATOS create database nom_database: para crear una base de datos en
workbench.
c- SELECT SELECCIONAR select * from: lo utilizamos para hacer consultas en los campos de la tabla.
d- CLEAR LIMPIAR clear nom_table: limpia o borra los campos de una tabla o al ejecutar la ventana
donde se captura los datos por cada consulta se limpia la pantalla.
e- WHERE DONDE where edad_alumno: where es un filtro para utilizar un determinado campo en una
tabla, en el ejemplo se escoge campo edad del alumno para hacer un filtro en los registros.
f- DROP SUPRIMIR drop nom_table: para eliminar campos o registros en la tabla.
g- SHOW MOSTRAR show tables: Mostrar la tabla que utilizaremos.
h- DELETE ELIMINAR delete from nom_table: eliminar un campo en la tabla.
i- INSERT INSERTAR insert into nom_table values: insertar nueva informacion en la tabla.
LINKOGRAFIA
 http://www.campusmvp.es/recursos/post/Fundamentos-de-SQL-Como-
realizar-consultas-simples-con-SELECT.aspx
 http://www.ibm.com/support/knowledgecenter/es/SSEPGG_10.5.0/com.ib
m.db2.luw.sql.ref.doc/doc/r0059224.html
 http://www.campusmvp.es/recursos/post/Fundamentos-de-SQL-Consultas-
SELECT-multi-tabla-JOIN.aspx

Sentencia select

  • 1.
    INSTITUTO TECNOLOGICO PRIVADO «JUAN MEJIABACA» NOMBRES: STHEFANY CUBAS ZAMORA ISAAC JANAMPA TARRILLO
  • 2.
  • 3.
    DEFINICIÓN La sentencia SELECTnos permite consultar los datos almacenados en una tabla de la base de datos.
  • 4.
    CONSULTAS  EJEMPLO 1:Selección de Todas las Columnas y filas de la tabla EMPLEADO. * SELECT FROM EMPLEADOS.  EJEMPLO 2: Selección del nombre del Proyecto (PROJNAME), la Fecha de inicio (PRSTDATE) y La Fecha de finalización (PRENDATE) de la tabla PROYECTO. Ordenación de la tabla Resultante Por la Fecha de finalización con las Fechas Más Recientes Primero. SELECT PROJNAME, PRSTDATE, PRENDATE DE PROYECTO ORDER BY PRENDATE DESC.  Ejemplo 3: Selección del número de departamento (WORKDEPT) y el salario medio del departamento (SALARY) para todos los departamentos de la tabla EMPLOYEE. Ordenación la tabla resultante por orden ascendente por el salario medio del departamento. SELECT WORKDEPT, AVG(SALARY) FROM EMPLOYEE GROUP BY WORKDEPT ORDER BY 2  Ejemplo 4: Declaración de un cursor llamado UP_CUR para utilizarlo en un programa C para actualizar las columnas de fecha de inicio (PRSTDATE) y de fecha de finalización (PRENDATE) en la tabla PROJECT. El programa debe recibir los dos valores junto con el valor de número del proyecto (PROJNO) para cada fila. EXEC SQL DECLARE UP_CUR CURSOR FOR SELECT PROJNO, PRSTDATE, PRENDATE FROM PROJECT FOR UPDATE OF PRSTDATE, PRENDATE;
  • 5.
     Ejemplo 5:Este ejemplo denomina a la expresión SAL+BONUS+COMM como TOTAL_PAY SELECT SALARY+BONUS+COMM AS TOTAL_PAY FROM EMPLOYEE ORDER BY TOTAL_PAY.  Ejemplo 6: Determinación del número de empleado y el salario de los representantes de ventas junto con el salario medio y el número total de empleados de sus departamentos. También, listado del salario medio del departamento con el salario medio más alto.La utilización de una expresión de tabla común para este caso ahorra los recursos de proceso que implica la creación de la vista DIFO como una vista normal. Durante la preparación de la sentencia, se evita el acceso al catálogo para la vista y, debido al contexto del resto de la selección completa, la vista sólo considera las filas para el departamento de representantes de ventas. WITH DINFO (DEPTNO, AVGSALARY, EMPCOUNT) AS (SELECT OTHERS.WORKDEPT, AVG(OTHERS.SALARY), COUNT(*) FROM EMPLOYEE OTHERS GROUP BY OTHERS.WORKDEPT ), DINFOMAX AS (SELECT MAX(AVGSALARY) AS AVGMAX FROM DINFO) SELECT THIS_EMP.EMPNO, THIS_EMP.SALARY, DINFO.AVGSALARY, DINFO.EMPCOUNT, DINFOMAX.AVGMAX FROM EMPLOYEE THIS_EMP, DINFO, DINFOMAX WHERE THIS_EMP.JOB = 'SALESREP' AND THIS_EMP.WORKDEPT = DINFO.DEPTNO.
  • 6.
     Ejemplo 7:Dadas dos tablas, EMPLOYEE y PROJECT, sustitución del empleado SALLY por el nuevo empleado GEORGE, asignación de todos los proyectos controlados por SALLY a GEORGE y devolución de los nombres de los proyectos actualizados. WITH NEWEMP AS (SELECT EMPNO FROM NEW TABLE (INSERT INTO EMPLOYEE(EMPNO, FIRSTNME) VALUES(NEXT VALUE FOR EMPNO_SEQ, 'GEORGE'))), OLDEMP AS (SELECT EMPNO FROM EMPLOYEE WHERE FIRSTNME = 'SALLY'), UPPROJ AS (SELECT PROJNAME FROM NEW TABLE (UPDATE PROJECT SET RESPEMP = (SELECT EMPNO FROM NEWEMP) WHERE RESPEMP = (SELECT EMPNO FROM OLDEMP))), DELEMP AS (SELECT EMPNO FROM OLD TABLE (DELETE FROM EMPLOYEE WHERE EMPNO = (SELECT EMPNO FROM OLDEMP))) SELECT PROJNAME FROM UPPROJ;  Ejemplo 8: Recuperación de los datos de la tabla DEPT. Esos datos se actualizarán posteriormente con una actualización buscada, y estarán bloqueados cuando se ejecute la consulta. SELECT DEPTNO, DEPTNAME, MGRNO FROM DEPT WHERE ADMRDEPT ='A00' FOR READ ONLY WITH RS USE AND KEEP EXCLUSIVE LOCKS.  Ejemplo 9: Seleccione todas las columnas y filas de la tabla EMPLOYEE. Si otra transacción está actualizando, suprimiendo o insertando datos de forma simultánea en la tabla EMPLOYEE, la operación select esperará hasta que se complete la otra transacción para obtener los datos. SELECT * FROM EMPLOYEE WAIT FOR OUTCOME .
  • 7.
    Las consultas deresumen introducen dos nuevas cláusulas a la sentencia SELECT, la cláusula GROUP BY y la cláusula HAVING, son cláusulas que sólose pueden utilizar en una consulta de resumen, se tienen que escribir entre la cláusula WHERE y la cláusula ORDER BY y tienen la siguiente sintaxis:
  • 8.
    RESUMEN SELECT: Se utilizapara extraer información de la base de datos, de una tabla o varias. FROM: Para indicar de que tabla proviene la información. DISTINTIC: Fuerza que solo se muestren los registros con valores distintos (suprime las repeticiones). Filtros La palabra clave para realizar filtros es WHERE . Se filtra para indicar una condición o condiciones que deben satisfacer los registros para ser seleccionados. Ejemplo: Select * from vehículos where marca='seat' (Muestra todos los vehículos cuya marca es seat.)
  • 9.
    RECOMENDACIONES EN SELECT • Noutilizar un SELECT *, y esto más que buena práctica debería ser regla • No use la cláusula into nombre de tabla (“SELECT… INTO”). Esto bloqueará mientras se ejecuta la consulta las tablas del sistema. En su lugar cree primero las tablas y luego re- escribe la sentencia como INSERT INTO tabla_name SELECT. • Si usa el operador UNION y existe la seguridad de que ambos select NO tienen registros duplicados, entonces es mejor usar UNION ALL, para evitar que implícitamente se haga uso del operador DISTINCT el cual puede requerir que se almacenen todos los datos de salida en una tabla temporal para que luego se reordenen y se filtren los datos duplicados, lo cual aumenta considerablemente el costo de la consulta. • Es recomendable usar joins a un subquery.
  • 10.
    EN WHERE • Lascolumnas filtro TIENEN QUE SER del mismo tipo de la columna que existe en la tabla (para evitar conversiones al momento de ejecución) • No usar funciones sobre columnas que están en el Where dado que SQL no tiene índices basados en funciones por lo que tendría que recorrer toda la tabla. • No usar concatenaciones de cadenas • Si se usa LIKE en la cláusula WHERE, se debe evitar el uso del operador “%” al principio de la cadena a buscar dado que originaria que se tienen que leer todos los datos de la tabla para poder responder dicha consulta, adicionalmente es recomendable que existan (como mínimo) 3 caracteres antes del operador “%”.
  • 11.
    CONCLUSIONES En conclusión las4 instrucciones importantes en la «sentencia select» son: • INSERT: Inserta filas en una tabla. Se corresponde con la “C” de CRUD. • SELECT: muestra información sobre los datos almacenados en la base de datos. Dicha información puede pertenecer a una o varias tablas. Es la “R”. • UPDATE: Actualiza información de una tabla. Es, obviamente, la “U”. • DELETE: Borra filas de una tabla. Se corresponde con la “D”.
  • 12.
    APRECIACION DEL EQUIPO Claramentees importante esta aplicación como en otras aplicaciones para base de datos que nos sirve para hacer arreglos y modificaciones como son diseños para una base de datos, con instrucciones importantes como son: select, delete, insert y update.
  • 13.
    GLOSARIO DE TÉRMINOS a-CREATE CREAR create table nom_table: con este comando creamos una tabla. b- DATABASE BASE DE DATOS create database nom_database: para crear una base de datos en workbench. c- SELECT SELECCIONAR select * from: lo utilizamos para hacer consultas en los campos de la tabla. d- CLEAR LIMPIAR clear nom_table: limpia o borra los campos de una tabla o al ejecutar la ventana donde se captura los datos por cada consulta se limpia la pantalla. e- WHERE DONDE where edad_alumno: where es un filtro para utilizar un determinado campo en una tabla, en el ejemplo se escoge campo edad del alumno para hacer un filtro en los registros. f- DROP SUPRIMIR drop nom_table: para eliminar campos o registros en la tabla. g- SHOW MOSTRAR show tables: Mostrar la tabla que utilizaremos. h- DELETE ELIMINAR delete from nom_table: eliminar un campo en la tabla. i- INSERT INSERTAR insert into nom_table values: insertar nueva informacion en la tabla.
  • 14.