Está en la página 1de 12
Goo. Consultas de Seleccién iB ivo General Conociendo la estructura de una tabla, poder construir consultas Ml. Conter a. Comando Select b. Consultas Simples c. Ordenamiento de registros d. Consultas con predicado e. Alias 1. Comando Select Como dijimos en el capitulo 1, el comando Select es uno de los SQL, y se utiliza para consultar datos de los registros de las tables ‘andes intemos de Una sentencia Select es un lectura a la tabla de datos; las consults de selecoién se utilizan para indicar el motor de datos que devuelva informacion bases de datos, esta informacién es devuelta en forma de conjunto de registros. 2. Consultas Simples La sintaxis basica de una consulta de seleccién es la siguient= SELECT Campos FROM Tabla; Donde campos es la lista de campos que se deseen recuperar y tabla es el origen de los mismos; para mostrar algunos ejemplos del uso de la sentencia select mostraremos, la estructura de una tabla. Nombre deTabla: Empleados - oa. tngnidetoan Esta tabla esta disponible en la base de datos que le serviré como laborato‘o, por tanto mostraremos la salida o parte ella en cada ejemplo de sentencia Select. Conociendo los campos de la tabla empleados, hagamos algunos ejemplos del uso de la seniencia Select, Select Nombre, Telefono From Empleados [2324141 WANLELOOS SANTOS [amet MANUEL OFONTES ——(oszanél = SOFAMELARA (saath ARID ZONIGA aia JORGE ALBERTO GIRON [2774006 [GERARDO ALMENOAREZ (9677505 |PABIO JUNIOR 224000 PABLO ESGUVEL 3A MARIA ALMENDAREZ iat ULC BONILLA [aaah [ROSA ALCANTARA aN Figura 22 Esta consulta devuelve un arreglo de dos columnas con el campo nombre y telefono de le tabla de Empleados 3. Ordenamionto de registros Adicionalmente se puede especificar el orden en que se desean recuperar los regisivos de las tablas mediante la clausula ORDER BY lista de campos. En donde lisia de campos: representa los campos a ordenar. Miremos el siguiente ejemplo : SELECT Codigopostal, Nombre, telefono FROM Emploados ORDER BY Nombre; ‘CARLOS CONTRERAS azAtel 2 (Carlos LUIS ACOSTA ate 12 (CARMEN MENDOZA ‘aaoatat 10 DORIS MARTINEZ [232-414 23465 ot ELMER LOPEZ |GERARDO ALMENDAREZ GERARDO LOPEZ (7358866 ot JONATAN FALOPE [ess iz NORGE ALBERTO GRON [2274506 or JJOSELOPEZCACERES [2354556 jo% =. [JOSE LUIS ORTEGA, lasoasar | io JOSELINA VALLE seater 2 VAN LORENZANA eatat Figura 2.3 Esta consulta devuelve los campos Codigopostal, Nombre, telefono de la tabla Empleados cordenados por el campo Nombre. Se pueden ordenar los registros por mas de un campo; cuando se ordena por ejemplo por dos campos debe tomarse en cuenta que el ordenamiento del segundo campo inicia en cada cambio de grupo en relacién con el primer campo. SQL no tiene limites en cuanto al No. de campos por los cuales se desea ordenar una tabla de datos. Analicemos el siguiente ejemplo SELECT CodigoPostal, Nombre, telefono FROM Empleados ORDER BY CodigoPostal, Nombre; [CARLOS CONTRERAS east ELMER LOPEZ 2246 at (GERARDO ALMENDAREZ [9677585 ot (GERARDO LOPEZ | 350866 jot [JONATANFALOPE [2365665 or JOSE LOPEZ CACERES (2364505 et [JOSE LUIS ORTEGA 2524867 ot JU BONILLA [2aa-atat at ROSA PENA LOPEZ [esata [oz [Carlos LUIS ACOSTA [ S ea MANUEL CIF Figura 2.4 sat gees regomis Note que si se ordena por mas de un campo deben ir separados por coma ()) y el titime camao no tiene coma () incluso se puede especificar el orden de los registros, ya sea ascendente mediante la cléusula ASC 0 descendente mediante la cléusula DESC. Si no se especificala forma de! ‘ordenamiento se asume Ascendentemente (ASC). ‘Agreguemos a la consulta anterior el concepto de ordemaiento Asc y Desc: SELECT CodigoPostal, Nombre, telefono FROM Empleados ORDER 8Y CodigoPostal DESC, Nombre ASC; JORGE ALBERTO GRON [JUAN LORENZANA, \WULIO SAVALA ROSA ALCANTARA TSOFIAWELARA [JOSELINA VALLE uISAACOSTA = (zaTat IMARCELA VALE zat MARIO VARGAS. Figura 2.5 En esta consulta se mostraria el codigopostal de mayor a menor, mientras que el nombre ‘se mostraria de menor (comenzando con la A si hubiera un nombre que empiece con esta letra) a mayor (hasta la Z si hubiera un nombre que empiece con esta letra). El ordenamiento del nombre inicia cada vez que cambia el dato del codigopostal; note el ejemplo de la salida 4, Consultas con Predicado El predicado es un agregado que le indica a SQL que debe considerar ciettas variantes cualquier predicado se incluye antes de describir la lista de campos; entre los posibles predicados a usar tenemos los siguientes: *(asterisco) Se usa para decir que queremos mostrar todos los campos de Ia tabla: este predicado s= usa en vez de describir la lista de campos. No es conveniente abusar de ests presicado ( ya que obligamos al motor de la base de datos a analizar la estructura de la tabla para Reriguar los campos que contiene; es mucho mas rapido indicar el listado de campos, deseados. Miremos el siguiente ejemplo: Select* from Empleados; n ose eco EET {panTEL Dos exros —EEUEGALPR Tae FONT’ coc. S10 [SOFA MELARA [KLIHSDUKFH ao TIN con wi WORGE ALBERTO GIRON__[INTERAMERICANA ea Cou is cemeo oR PASO ESCUNEL a TorEN NORE —TEOUGCATPA |SOUO BONILLA (COL LOPEZ, — ite aoatan orc Dose US aTieca [Orc eaewet eioorK [eo re ANREuANA OLA Nuestra todos los campos de la tabla empleados con todos sus datos Top Devuelve un detenminado No. de registtos de la tabla; Supongamos que queremos recuperar los nombres de los 25 primeros de Ie tabla EMPLEADOS: SELECT TOP 25 Nombre, Direceién FROM Empleados ORDER BY Nombre DESC; DISTINCT Omite fos registros que contiene datos duplicados en los campos seleccionados. Por ejemplo, varios empleados listados en la tabla Empleados pueden tenet el mismo Nombre, Si dos registros contienen el mismo dato en el campo Nombre, la siguiente instruccién SQL devuelve un Gnico registro: ‘SELECT DISTINCT Nombre FROM Empleados; | La cléusula Distinct es de gran utlidad para saber datos inicos dentro de la tabla de datos: recuerde que si hay un dato repetido entre los registros, solo se devuelve un dato inioo, Para el caso se desea saber cudles son los diferentes cédigos postales de los templeados; [a instruccién Select que nos da esta informacian seria la siguiente: sansmpeietresnnain QQ Solect distinct codigopostal from empleados Figura 2.7 Ei departamento de Recursos Humanos ha solicitado al departamento de cSmputo una lista de las diferentes fechas de nacimiento de los empleados, para celebrar los cumpleatios de los empleados. La instruccién Select que nos da esta informacion seria la siguiente: Select distinct Fechanac from empleados am DaUTri98e ‘ovTigeg a1 i869 aT 965 1208/1965] a EB aesrar ara | 1302973] | zansna73} | 12017975] 18077975] Figura 2.8 Empleados que tenga la misma fecha de nacimiento son considerados como un solo registro; solo apareceran las fechas de nacimiento inicas La Gerencia ha solctado al departamento de cémputo una lista de los diferertes suekios cue la empresa paga. La instruccién Select que nos da esta informacion seria a siguiente Select distinct Sueldo from empleados Note que la cléusula Distinct debe ir antes del nombre del campo al cual se apicars: jos resultados de la instruccién anterior serian los siguientes: Oise cnc S50 Figura 2.10 Hay campos en la tabla de datos a los cuales no tiene sentido aplicarle la cléusula Distinet; para el caso miremos la siguiente instruccién: Select distinct codigo from empleados ‘Sabemos que en una tabla de empleados el codigo de! empleado no se pusde repetir, ast que la dausula Distinct esté demas Note la siguiente instruccién: Select distinct sexo from empleados i ‘Sabemos que solo hay dos sexo: F y M, asi que la cldusula Distinct esta demas | 5. Alias En determinadas circunstancias es necesario asignar un nombre a una columna en fa salida como resultado de una sentenca Select, en cualquier sentencia select, ol nombre | que aparece en cada columna es el nombre del campo, pademos cambiar esto usando la Giausula As, quien nos proporciona un Alias. Miremos la siguiente instruccion SELECT CODIGO, NOMBRE AS Empleado FROM CMPLEADOS EI nombre de! campo que tiene el nombre del empieado es NOMBRE, pero en el caso de {a instruccién anterior aparecera en lugar de la palabra NOMBRE la palabra Emploado, pues lo estamos indicando con la clausula As. | El Alias (As) es de gran uso en los casos cuando estamos tratando con tablas con tablas donde los nombres de los campos no describen su contenido; imagineso usted que el campo NOMBRE se llamara CMP02; muchos analistas ocultan de esta manera los nombres de! campo, para proteccién de los datos segiin ellos. Los resultados del ejercicio anterior serian los siguientes: nn [Carlos LUIS ACOSTA MANUEL DOS SANTOS |SOFIAMELARA TMARIO ZUNIGA ‘JORGE ALBERTO GIRON ~_|GERAROO ALMENDAREZ PABLO JUNIOR PABLO ESGUNEL [MARIA ALMENDAREZ [SUG BONILLA ep ee PSS Figura 2.11 En la columna del nombre aparecera la palabra Empleado, y no Nombre que es el nombre del campo. Si el Alias es una oracién de varias palabras, debe agruparse con los caracterés [ ] (dentro de las llaves angulares [ ] no debe ir un punto) ‘SELECT CODIGO, NOMBRE AS [Nombre del Empleado] FROM EMPLEADOS [Carlos LUIS ACOSTA ion [MANUEL DOS SANTOS fa IMANUEL CIFONTES: [oe [SOFIA MELARA, on MARIO ZUNIGA, ta (JORGE ALBERTO GIRON |GERARDO ALMENDAREZ [PABLO JUNIOR (oos [PABLO ESQUIVEL ota (MARIA ALMENDAREZ lon (JUUO BONILLA loi2 _|ROSAALCANTARA _ ora “JOSE LUIS ORTEGA lore [CARMEN MENDOZA Figura 2.10 En la columna del nombre aparecera la palabra Nombre del Empleado, y no Nombre que es el nombre del campo. Ala hora de indicar qué Alias queremos designar debemos considerar dos aspectos: scare sions a. No podemos asignar como Alias el mismo nombre del campo ‘SELECT CODIGO, NOMBRE AS nombre FROM EMPLEADOS b._ No podemos incluir el punto dentro de un Alias: SELECT CODIGO, NOMBRE AS [Nom. del Empleado] FROM EMPLEADOS SQL, Longuale de Programacién e@ Guia de trabajo Capitulo No. 2 ‘A continuacién se le presentan una serie de propuestas, de las cuales usted debe indicar ‘cual es la instruccién SELECT que la satisface. Estas respuestas debe ser comprobadas en su laboratorio e indicar cuantos registros le fueron devueltos por la instiucci6n Las siguientes preguntas serdn contestadas tomando en cuenta la siguiente tabla: Nombre de tabla: Facturas. [enna Figura 2.11 1, week en de factura, fecha y totalneto Selech Fackuwn p FECA sElelelrete No. de registros —— t = Toon Factsto) 2. Mostrar los datos de Factura, Fecha, Cliente y Vendedor ordenado por Cliente: No. de tos, deleck : ae 3, Mostrar los datos de Factura, Fecha, Cliente, Vendedor y Totalneto ordenado descendentemente por Vendedor y ascendentemente por Totalneto: No. de registros, 4, Mostrar todos los campos de la tabla de Facturas: No. de registros_ 5. Mosirar los primeros 20 registros de la tabla Facturas; mostrar solo los datos Factura, Fecha y Cliente ordenado por Factura: No. de registros, 6. Mostrar en forma nica (distinct) los diferentes clientes a quienes se les ha facturado: No. de registros, 7. Mostrar en forma tinica las diferentes fechas en que se ha facturado: No. de registros. 8. Mostrar en forma tinica las diferentes fechas en que se ha habido vertas: No. de registros_ ——— 9, Mostrar los datos de Factura, Fecha, Cliente, Vendedor y Totalneto con los siguientes Alias: No. De Factura Fecha CodCliente Cod Vendedor Monto Factura No. de registros_ 40. Mostrar todos los campos de la tabla de Facturas ordenados por Fecha, Vendedor y ag No. de registros_ 411. Mostrar en forma tinica los diferentes clientes @ quienes se les ha facturado: No: de registros_ Las siguientes preguntas serén contestadas tomando en cuenta la siguiente tabla: 42. Mostrar los datos de Codell, Nomell, Direccion y Creditomax con los siguientes Alias: Codigo Nombre del Cliente” Direccién de casa Crédito Maximo No. de registros. 13, Mostrar todos los campos o informacion de la tabla No. de registros 414, Mostrer los datos Codali, Nome! Direccion, telefono, ordenado en forma descendente por Creditomax No. de registros_ 48. Mostrar en forma Unica los diferentes creditos maximos No, de registros__ 46. Mostrar los datos de Codeli, Nomeli, Direccion y Creditomax ordenado por Credito maximo en forma descendente, y por nombre ascendentemente en la misma instrucci6n No. de registros. soimennaregnms 17. Qué errores encuentra en las siguientes instrucciones: a. Select Nombre, Telefono, From Empleados: b. SELECT Codigopostal, Nombre, telefono FROM Empleados ORDER Nombre ¢.SELECT Codigo Postal, Nombreempleado, telefono FROM Empleados ORDER BY CodigoPostal Nombre; d.SELECT CodigoPostal, Nombre, telefono as telefono FROM Empleado ORDER: CodigoPostal DESC, Nombre ASC; SELECT * TOP 25 Nombre, Direccion FROM Empleados ORDER BY Nombre DESC; {SELECT DISTINTC Nombre FROM Empleados; g.SELECT CODIGO as copdigo del empleado, NOMBRE AS [Nom, del Empleado] FROM EMPLEADOS 48. La siguiente tabla se llama: APORTACIONES:

También podría gustarte