SQL TOPLa sentencia SQL TOP se utiliza para especificar el número de filas a mostrar en el resultado. Esta cláusula SQL TOP es útil en tablas con muchos registros, para limitar el número de filas a mostrar en la consulta, y así sea más rápida la consulta, consumiendo también menos recursos en el sistema.Esta cláusula se especifica de forma diferente según el sistema de bases de datos utilizado.
Slide 3
Cláusula SQL TOP para SQL SERVER * SELECT TOP número | PERCENT nombre_columna FROM nombre_tablaCláusula SQL TOP para MySQL * SELECT columna(s) FROM tabla LIMIT númerofilasCláusula SQL TOP para ORACLE * SELECT columna(s) FROM tabla WHERE ROWNUM<= númerofilas
BD Y SQL - AVANZADO - (top)
BD Y SQL - AVANZADO - (top)
Slide 4
BD Y SQL - AVANZADO - (like)
El operador LIKE se utiliza en la cláusula WHERE para buscar por un patrón.
Sintaxis de SQL LIKE:
SELECT columna(s) FROM tabla WHERE columna LIKE ‘%patron%’
Slide 5
Ejemplos del uso de SQL LIKEDada la siguiente tabla ‘personas’
nombre apellido1 apellido2
======== ======== =======
ANTONIO PEREZ GOMEZ
ANTONIO GARCIA RODRIGUEZ
PEDRO RUIZ GONZALEZ
Si quiero seleccionar los nombres que empiezan por ‘AN’ en la tabla ‘personas’, ejecutaría el comando
siguiente:SELECT * FROM personas WHERE nombre LIKE ‘AN%’
BD Y SQL - AVANZADO - (like)
Slide 6
El character ‘%’ es un comodín, que sirve para uno o más caracteres.Este es el resultado
nombre apellido1 apellido2
======== ======== =======
ANTONIO PEREZ GOMEZANTONIO GARCIA RODRIGUEZ
BD Y SQL - AVANZADO - (like)
Slide 7
BD Y SQL - AVANZADO - (Wildcards)
Los caracteres Wildcards (comodines) son caracteres especiales que se utilizan para realizar búsquedas especiales, como por ejemplo, buscar palabras que empiecen por una letra determinada (letra%) o quecontengan la letra a (%a%), o que contengan alguna vocal ([aeiou]), etc.
Slide 8
Los caracteres Wildcards se utilizan con el operador SQL LIKE en una sentencia SELECT.Los caracteresWildcards son :
% sustituye a cero o más caracteres
_ sustituye a 1 carácter cualquiera
[lista] sustituye a cualquier carácter de la lista [^lista] o [!lista] sustituye a cualquier carácter excepto los caracteres de la lista
BD Y SQL - AVANZADO - (Wildcards)
Slide 9
Ejemplos WildcardsSeleccionar las personas cuyo nombre contenga una ‘R’ - SELECT * FROM personas WHERE nombre LIKE ‘%R%’
Resultado:
nombre apellido1 apellido2
======== ======== =======PEDRO RUIZ GONZALEZ
BD Y SQL - AVANZADO - (Wildcards)
Slide 10
Seleccionar las personas cuyo apellido1 empiece por ‘GA’ - SELECT * FROM personas WHERE apellido1 LIKE ‘PE_EZ’
Resultado:
nombre apellido1 apellido2
======== ======== =======ANTONIO PEREZ GOMEZ
BD Y SQL - AVANZADO - (Wildcards)
Slide 11
Seleccionar las personas cuyo apellido1 empiece por P o G
- SELECT * FROM personas WHERE apellido1 LIKE ‘[PG]%’
Resultado:
nombre apellido1 apellido2
======== ======== =======
ANTONIO PEREZ GOMEZANTONIO GARCIA RODRIGUEZ
BD Y SQL - AVANZADO - (Wildcards)
Slide 12
BD Y SQL - AVANZADO - (In)
El operador IN permite seleccionar múltiples valores en una cláusula WHERESintaxis SQL INSELECT columna FROM tabla WHERE columna IN (valor1, valor2, valor3, …)
Slide 13
BD Y SQL - AVANZADO - (In)
Ejemplo SQL INDada la siguiente tabla ‘personas’
nombre apellido1 apellido2
======== ======== =======
ANTONIO PEREZ GOMEZ
ANTONIO GARCIA RODRIGUEZ
PEDRO RUIZ GONZALEZ
Queremos seleccionar a las personas cuyo apellido1 sea ‘PEREZ’ o ‘RUIZ’SELECT * FROM personas WHERE apellido1 IN (‘PEREZ’,’RUIZ’)
nombre apellido1 apellido2
======== ======== =======
ANTONIO PEREZ GOMEZPEDRO RUIZ GONZALEZ
Slide 14
BD Y SQL - AVANZADO - (Between)
El operador BETWEEN se utiliza en la cláusula WHERE para seleccionar valores entre un rango dedatos.
Sintaxis de SQL BETWEEN
- SELECT columna FROM tabla WHERE columna BETWEEN valor1 AND valor2
Slide 15
Ejemplo de SQL BETWEENDada la siguiente tabla ‘personas’
nombre apellido1 apellido2
======== ======== =======
ANTONIO PEREZ GOMEZ
ANTONIO GARCIA RODRIGUEZ
PEDRO RUIZ GONZALEZ
Seleccionar personas cuyo apellido1 esté entre ‘FERNANDEZ y ‘HUERTAS’
SELECT * FROM personas WHERE apellido1 BETWEEN ‘FERNANDEZ’ AND ‘HUERTAS’nombre apellido1 apellido2
======== ======== =======ANTONIO GARCIA RODRIGUEZ
BD Y SQL - AVANZADO - (Between)
Slide 16
Seleccionar personas cuyo apellido1 noe sté entre ‘FERNANDEZ y ‘HUERTAS’SELECT * FROM personas WHERE apellido1 NOT BETWEEN ‘FERNANDEZ’ AND ‘HUERTAS’nombre apellido1 apellido2
======== ======== =======
ANTONIO PEREZ GOMEZ
PEDRO RUIZ GONZALEZ
BD Y SQL - AVANZADO - (Between)
Slide 17
BD Y SQL - AVANZADO - (joins)
La sentencia SQL JOIN permite consultar datos de 2 o más tablas.Dichas tablas estarán relacionadas entre ellas de alguna forma, a través de alguna de sus columnas.
Existen 3 tipos de JOINS: JOIN interno, JOIN externo y JOIN cruzado.
Una clave primaria es una columna con un valor único para cada registro de una tabla.
El propósito del JOIN es unir información de diferentes tablas, para no tener que repetir datos endiferentes tablas.
Ejemplo:Si tenemos las siguientes tablas
Tabla personas, con la clave primaria “cppersona “
cppersona nombre apellido1 apellido2 cpdepartamento
======== ======== ======== ======= ===========
1 ANTONIO PEREZ GOMEZ 1
2 ANTONIO GARCIA RODRIGUEZ 2
3 PEDRO RUIZ GONZALEZ 2
Tabla “departamentos”, con la clave primaria “cpdepartamento”
cpdepartamento departamento
============ ====================
1 ADMINISTRACION
2 INFORMATICA 3 COMERCIAL
BD Y SQL - AVANZADO - (joins)
Slide 20
BD Y SQL - AVANZADO - (inner join)
La sentencia INNERJOIN es el sentencia JOIN por defecto, y consiste en combinar cada fila de una tabla con cada fila de la otra tabla, seleccionado aquellas filas que cumplan una determinada condición. - SELECT * FROM tabla1 INNER JOIN tabla2 ON tabla1.columna1 = tabla2.columna1
La sentencia LEFTJOIN combina los valores de la primera tabla con los valores de la segunda tabla.
Siempre devolverá las filas de la primera tabla, incluso aunque no cumplan la condición.
- SELECT * FROM tabla1 LEFT JOIN tabla2 ON tabla1.columna1 = tabla2.columna1
La sentencia RIGHT JOIN combina los valores de la primera tabla con los valores de la segunda tabla.
Siempre devolverá las filas de la segunda tabla, incluso aunque no cumplan la condición.
En algunas bases de datos, la sentencia RIGHT JOIN es igual a RIGHT OUTERJOIN
- SELECT * FROM tabla1 RIGHT JOIN tabla2 ON tabla1.columna1 = tabla2.columna1
BD Y SQL - AVANZADO - (right join)
Slide 25
Ejemplo SQL Right Join:Tabla personas, con la clave primaria “cppersona “cppersona nombre apellido1 apellido2 cpdepartamento
======== ======== ======== ======= ===========
1 ANTONIO PEREZ GOMEZ 1
2 ANTONIO GARCIA RODRIGUEZ 2
3 PEDRO RUIZ GONZALEZ 4
Tabla “departamentos”, con la clave primaria “cpdepartamento”
cpdepartamento departamento
============ ====================
1 ADMINISTRACION
2 INFORMATICA 3 COMERCIAL
BD Y SQL - AVANZADO - (right join)
Slide 26
BD Y SQL - AVANZADO - (right join)
SELECT nombre, apellido1, departamentoFROM personas RIGHTJOIN departamentos
WHERE personas.cpdepartamento = departamentos.cpdepartamento
nombre apellido1 departamento
======== ======== ================
ANTONIO PEREZ ADMINISTRACION
ANTONIO GARCIA INFORMATICA
null null COMERCIAL
Aunque no exista ninguna persona del departamento ‘COMERCIAL’ (3), esta fila aparecerá con las otras columnas en blanco.