Unidad vi vii dml select copia

30
M.C. Daniel Esparza Soto 1 4.- Sentencia SELECT simple Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta en forma de conjunto de registros que se pueden almacenar en un objeto recordset. Hay tres componentes básicos : SELECT column_list FROM table_list [WHERE search_criteria]

Transcript of Unidad vi vii dml select copia

  • 1. 4.- Sentencia SELECT simpleLas consultas de seleccin se utilizan paraindicar al motor de datos que devuelvainformacin de las bases de datos, estainformacin es devuelta en forma de conjunto deregistros que se pueden almacenar en un objetorecordset.Hay tres componentes bsicos :SELECT column_listFROM table_list[WHERE search_criteria]M.C. Daniel Esparza Soto1

2. 4.- Sentencia SELECTSELECT [ALL | DISTINCT] column_list[INTO [nombre_tabla_nueva]][FROM{table_name | view_name}[(pista_optimizacin)][[,{table_name2| view_name2}[(pista_optimizacin)][...,{table_name16|view_name16}[(pista_optimizacin)]]][WHERE clause][GROUP BY clause][HAVING clause][ORDER BY clause][COMPUTE clause][FOR BROWSE]M.C. Daniel Esparza Soto2 3. 4.- Sentencia SELECTEjemplo bsico: con el comodn * muestra todaslas columnas de una tabla:SELECT * FROM employeeSe pueden listar algunas columnas de la tabla:SELECT employeeid , firstname FROMemployeeM.C. Daniel Esparza Soto 3 4. Cambiando el encabezado de lascolumnas de resultadosSe pueden utilizar alias en los nombres decolumnas para que sean los nombres masfamiliares.SELECT column_heading = column_nameFROM table_nameoSELECT column_name [AS] column_headingFROM table_nameEjemplo:SELECT Clave = employeeid , firstnameas Nombre FROM employeeM.C. Daniel Esparza Soto 4 5. Operadores aritmticosSe pueden usar operadores aritmticos en lossiguientes tipos de datos:int, smallint, tinyint, numeric, decimal,float, real, money y smallmoney.Estos operadores son :+ Suma.- Resta./ Divisin.* Multiplicacin.% Mdulo.M.C. Daniel Esparza Soto 5 6. FuncionesExisten los siguientes tipos de funciones:1.- Funciones matemticas.2.- Funciones para manejo de cadena decaracteres.3.- Funciones manejo de fechas.Su sintaxis es:SELECT Nombrefuncion(parametros)M.C. Daniel Esparza Soto 6 7. 1.- Funciones MatemticasABS(numeric_expr )CEILING(numeric_expr ) FLOOR(numeric_expr )EXP(float_expr )LOG10(float_expr ) LOG(float_expr )POWER(numeric_expr,y ) SQRT(float_expr )RAND([seed] )ROUND(numeric_expr,len )SIGN(numeric_expr )M.C. Daniel Esparza Soto7 8. 2.- Funciones de manejo de cadena decaracteres+(expression, expression)SUBSTRING(expression, start, length) RIGHT(char_expr, integer_expr)ASCII(char_expr) CHAR(integer_expr)STR(float_expr[,length[,decimal]])SPACE(integer_expr)DIFFERENCE(char_expr1, char_exr2)LOWER(char_expr) UPPER(char_expr)LTRIM(char_expr) RTRIM(char_expr)PATINDEX(`%pattern%, expression)CHARINDEX(pattern, expression)REPLICATE(char_expr, integer_expr)REVERSE(char_expr)SOUNDEX(char_expr)STUFF(char_expr1, start, length, char_expr2)LEN(Char_exp)M.C. Daniel Esparza Soto8 9. 3.- Funciones para manejo de fechasDATEADD( datepart , numero , Fecha )DATEDIFF( datepart , Fecha1 , Fecha2 )DATENAME( datepart , Fecha )DATEPART( datepart , Fecha )DAY( Fecha )MONTH( Fecha )YEAR( Fecha )GETDATE()GETUTCDATE()M.C. Daniel Esparza Soto 9 10. 3.- Funciones para manejo de fechasDatepart Abreviacin Valordayddene-31day of yeardy1-366hour hh0-23millisecondms0-999minute mi0-59monthmm01-dicquarterqq1-4second ss0-59week wk0-51weekdaydw1-7year yy1753-9999M.C. Daniel Esparza Soto 10 11. Operadores de comparacinSe pueden implementar condiciones debsqueda utilizando los siguientes operadores decomparacin. Se pueden seleccionar renglonescomparando los valores de una columna contraun valor o una expresin.Las expresiones pueden contener constantes,nombres de columnas, funciones osubconsultas.SELECT column_listFROM table_listWHERE nombre_columna OperadorComparacion expressionM.C. Daniel Esparza Soto11 12. Operadores de comparacin Operadores Description =igual >mayor que = mayor o igual que no mas grande que !< no menor que () orden de precedenciaM.C. Daniel Esparza Soto 12 13. RangosSe pueden obtener renglones en un rango devalores usando la palabra reservada BETWEEN.Se recomienda su uso para tipos de datosnumricos y de fecha.SELECT column_list FROM table_listWHEREnombre_columna [NOT] BETWEEN expressionAND expressionM.C. Daniel Esparza Soto 13 14. ListaSe pueden obtener registros que coincidan en unalista de valores usando la instruccin IN. Serecomienda para cualquier tipo de datos.SELECT column_listFROM table_listWHERE [NOT] nombre_columna[NOT] IN (Lista_Valores) M.C. Daniel Esparza Soto14 15. Manejo de Cadena de caracteres.Se pueden obtener registros basados en unaporcin de una cadena de carateres usando lapalabra reservada LIKE. Es utilizada en los tiposde datos char, varchar, text, datetime, andsmalldatetime. Se pueden utilizar caracterescomodines para formar una expresin regular.SELECT column_listFROM table_listWHERE nombre_columna[NOT] LIKE stringM.C. Daniel Esparza Soto15 16. Manejo de Cadena de caracteres.Comodines para el manejo de cadena decaracteres :%una cadena con cero o ms caracteres._Un solo caracter.[] Un caracter en un rango en especfico[^] Un caracter que no este contenido en unrango en especfico.M.C. Daniel Esparza Soto16 17. Usando multiples criterios de bsquedaHasta el momento se han hecho criterios deseleccin basados en valores especficos,rangos, listas , comparacin de cadenas yvalores desconocidos, a continuacin se usarnmultiples criterios de bsqueda usando losoperadores lgicos AND, OR, and NOT.Usando los peradores AND and OR podemosjuntar dos o ms expresiones.SELECT column_listFROM table_listWHERE [NOT] expression {AND|OR} [NOT]expressionM.C. Daniel Esparza Soto 17 18. Valores desconocidosUn valor desconocido es cuando el campo tienela propiedad NULL y al insertarse valores sepueden omitir datos para ese campo. No es lomismo que espacio en blanco con longitud ceropara tipos de datos char o valores 0 para valoresnumricos.SELECT column_listFROM table_listWHERE column_name IS [NOT] NULLM.C. Daniel Esparza Soto18 19. Ordenando datosSe pueden ordenar los datos de resultadosusando la clausula ORDER BY en la sentenciaSELECT.SELECT column_listFROM table_list[ORDER BY nom_columna|num_lista [ASC|DESC] ]M.C. Daniel Esparza Soto 19 20. Sentencia TOPEsta sentencia regresa los primeros n elementosde un conjunto de resultados. Su sintaxis es:SELECT TOP n lista_Columnas FROMNombre_tablaM.C. Daniel Esparza Soto20 21. Funciones de agregadoLas funciones de agregado puede retornarvalores sumatorios de un tabla completa o de ungrupo de registros de una tabla. Las funciones deagregado son usadas generalmente con laclusula GROUP BY y la clusula HAVING en ellistado de columnas de la sentencia select.M.C. Daniel Esparza Soto21 22. Funciones de agregadoFuncinResultadoAVG([ALL | DISTINCT] column_name ) Promedio del valor proporcionadoCOUNT(*) cuenta el numero de registrosCOUNT([ALL | DISTINCT] column_name ) cuenta todos los registros distintosMAX(column_name )Obtiene el valor mximo del registro.MIN(column_name )Obtienetodos o mnimo del registro.distintos suma el valor nada mas losSUM([ALL | DISTINCT] column_name ) valores del registro proporcionado. Regresa los n primerosvalores delTOP n [ PORCENTAJE ] resultado.M.C. Daniel Esparza Soto22 23. Clusula GROUP BY y HAVINGLa clusula GROUP BY agrupa datos quesatisfacen los criterios clsula WHERE para serdevueltos en una sola fila en un valor deresumen. La clusula HAVING establece loscriterios que determinan qu filas devolver laclusula GROUP BY.SELECT column_listFROM table_listWHERE search_criteria[GROUP BY [ALL] non_aggregate_expression(s)[HAVING] search_criteria]M.C. Daniel Esparza Soto23 24. Correlacin de datosLa correlacin de datos es la combinacin para recuperardatos de dos o ms tablas, hasta este momento se hanhecho consultas sobre una sola tabla. Los resultadosaparecern en una sola tabla con columnas de todas lastablas especificadas en la lista de columnas de lasentecia SELECT yque satisfagan el criterio debsqueda.Existen los siguientes tipos de combinaciones (JOIN):1.Cruzadas (Cross join).2.Internas (Inner Join).3.Externas (Outer Join).4.Autocombinaciones (Self join).M.C. Daniel Esparza Soto24 25. 1.- Combinaciones cruzadasEs una consulta donde intervienen 2 o mas tablas y tienela caracterstica de no contar con condiciones decombinacin, produciendo un conjunto de resultadosdonde el numero de columnas es igual a la suma decolumnas de las tablas que intervienen, y el numero derenglones es igual a la multiplicacin de de los renglonesde ambas columnas:Sintaxis ANSI:Select * from tabla1 cross join tabla2Sintaxis Transact-SQL:Select * from tabla1, tabla2M.C. Daniel Esparza Soto 25 26. 2.- Combinacin internaLas combinaciones conectan dos tablas conbase en una condicin de combinacinque da por resultado una nueva tabla con lasfilas que satisfacen dicha condicin. Lascombinaciones internas ofrecen informacincuando se encuentran en ambas tablasinformacin equivalente.Los tipos ms comunes son:1.- Las combinaciones equivalentes2.- Las combinaciones naturales.M.C. Daniel Esparza Soto 26 27. 2.- Combinacin internaSQL Server join sintaxis:SELECT *FROM table_name1 T1 , table_name2 T2Where t1.columnaA = t2.columnaBANSI join sintaxis:SELECT *FROM table_name1 T1INNER JOIN table_name2 T2ON t1.columnaA = t2.columnaBM.C. Daniel Esparza Soto 27 28. 3.- Combinaciones externas (outer join)Son combinaciones de dos tablas donde semuestran todos los registros de una tabla aunqueno exista ningn registro coincidente en la otratabla.La diferencia con una combinacin interna esque en la combinacin interna el registro debeexistir en ambas tablas para mostrarse en elconjunto de resultados, cosa que no sucede conla combinacin externa, ya que esa muestra losregistros aunque no exista un registrocoincidente en la otra tabla.M.C. Daniel Esparza Soto 28 29. 3.- Combinacin externa ( outer join)Existen 3 tipos de combinaciones externas:1.- Left outer join :Muestra todos los registros de la tabla que seencuentra a la izquierda de la consulta aunqueno tenga registros en la tabla de la derecha.2.- Right outer join :Muestra todos los registros de la tabla que seencuentra a la derecha de la consulta aunque notenga registros en la tabla de la izquierda.3.- Full outer join :Muestra todos los registros de ambas tablasaunque no haya registros que coincidan.M.C. Daniel Esparza Soto29 30. SubconsultasM.C. Daniel Esparza Soto 30