Documente Academic
Documente Profesional
Documente Cultură
Titulacin de IngenieraInformtica
PRACTICUM 3.1
Entregable2:
2017
1 SQL contexto y definiciones (mximo una hoja)
El SQL (Structure Query Lenguage), es un lenguaje de consulta estructurado establecido
claramente como el lenguaje de alto nivel estndar para sistemas de bases de datos
relacionales. Los responsables de publicar este lenguaje como estndar, fueron
precisamente los encargados de publicar estndar de la ANSI y la ISO por lo cual este
lenguaje lo vas a encontrar en cualquiera de los DBMS relacionales que existen en la
actualidad.
Todos los principales SGBDR incorporan un motor SQL en el Servidor de Base Datos,
as como herramientas de cliente que permiten enviar comandos SQL para que sean
procesadas por el motor del servidor. De esta forma, todas las tareas de gestin de la Base
de Datos (BD) pueden realizarse utilizando sentencias SQL.
CREATE TABLE
Define el nombre de la tabla, las columnas con su tipo de datos, las ligaduras de integridad
que vigilan el valor que se guarde como dato en las columnas o atributos sean llaves o
no.
SINTAXIS
Entonces, si debemos crear una tabla para el cliente tal como se especifica anteriormente,
ingresaramos
CONSTRAINT
Puede colocar restricciones para limitar el tipo de dato que puede ingresarse en una tabla.
Dichas restricciones pueden especificarse cuando la tabla se crea por primera vez a travs
de la instruccin CREATE TABLE, o luego de crear la tabla a travs de la
instruccin ALTER TABLE.
- NOT NULL
- UNIQUE
- CHECK
- Clave primaria
- Clave externa
NOT NULL
En forma predeterminada, una columna puede ser NULL. Si no desea permitir un valor
NULL en una columna, querr colocar una restriccin en esta columna especificando que
NULL no es ahora un valor permitido.
UNIQUE
La restriccin UNIQUE asegura que todos los valores en una columna sean distintos.
Por favor note que una columna que se especifica como clave primaria tambin puede ser
nica. Al mismo tiempo, una columna que es nica puede o no ser clave primaria.
CHECK
La restriccin CHECK asegura que todos los valores en una columna cumplan ciertas
condiciones.
Por favor note que la restriccin CHECK no sea ejecutada por MySQL en este momento.
CLAVE PRIMARIA
La clave primaria se utiliza para identificar en forma nica cada lnea en la tabla. Puede
ser parte de un registro real, o puede ser un campo artificial (uno que no tiene nada que
ver con el registro real). Una clave primaria puede consistir en uno o ms campos en una
tabla. Cuando se utilizan mltiples campos como clave primaria, se los denomina claves
compuestas.
Las claves primarias pueden especificarse cuando se crea la tabla (utilizando CREATE
TABLE) o cambiando la estructura existente de la tabla (utilizando ALTER TABLE).
MySQL:
Oracle:
SQL Server:
CREATE TABLE Customer
(SID integer PRIMARY KEY,
Last_Name varchar(30),
First_Name varchar(30));
MySQL:
Oracle:
SQL Server:
Nota: Antes de utilizar el comando ALTER TABLE para agregar una clave primaria,
necesitar asegurarse de que el campo est definido como 'NOT NULL' -- en otras
palabras, NULL no puede aceptarse como valor para ese campo.
CLAVE EXTERNA
Una clave externa es un campo (o campos) que seala la clave primaria de otra tabla. El
propsito de la clave externa es asegurar la integridad referencial de los datos. En otras
palabras, slo se permiten los valores que se esperan que aparezcan en la base de datos.
Por ejemplo, digamos que tenemos dos tablas, una tabla CUSTOMER que incluye todos
los datos del CUSTOMER, y la tabla ORDERS que incluye los pedidos
del CUSTOMER. La restriccin aqu es que todos los pedidos deben asociarse con
un CUSTOMER que ya se encuentra en la tabla CUSTOMER. En este caso, colocaremos
una clave externa en la tabla ORDERS y la relacionaremos con la clave primaria de la
tabla CUSTOMER. De esta forma, nos aseguramos que todos los pedidos en la
tabla ORDERS estn relacionadas con un CUSTOMER en la tabla CUSTOMER. En
otras palabras, la tabla ORDERS no puede contener informacin de un CUSTOMER que
no se encuentre en la tabla CUSTOMER.
Tabla CUSTOMER
Nombre de Columna Caracterstica
SID Clave Primaria
Last_Name
First_Name
Tabla ORDERS
MySQL:
Oracle:
SQL Server:
MySQL:
Oracle:
SQL Server:
CREATE VIEW
Las vistas pueden considerarse como tablas virtuales. Generalmente hablando, una tabla
tiene un conjunto de definiciones, y almacena datos fsicamente. Una vista tambin tiene
un conjunto de definiciones, que se construye en la parte superior de la(s) tabla(s) u otra(s)
vista(s), y no almacena datos fsicamente.
La Instruccin SQL puede ser cualquiera de las instrucciones SQL que hemos descripto
en esta gua de referencia.
Utilicemos un ejemplo simple para ilustrar. Supongamos que tenemos la siguiente tabla:
Tabla Customer
View V_Customer
Podemos utilizar tambin una vista para aplicar uniones a dos tablas. En este caso, los
usuarios slo ven una vista en vez de dos tablas, y la instruccin SQL que los usuarios
necesitan emitir se vuelve mucho ms simple. Digamos que tenemos las siguientes dos
tablas:
Tabla Store_Information
Tabla Geography
Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego
y deseamos construir una vista que tenga ventas organizadas segn la regin.
Colocaramos la siguiente instruccin SQL:
Resultado:
REGION SALES
East 700
West 2050
CREATE INDEX
Los ndices nos ayudan a obtener datos de las tablas en forma ms rpida. Utilicemos un
ejemplo para ilustrar este punto: Digamos que estamos interesados en leer en un libro de
jardinera acerca de cmo cultivar pimientos. En vez de leer el libro desde el comienzo
hasta que encontremos una seccin sobre pimientos, es mucho ms rpido para nosotros
ir a la seccin ndice al final del libro, ubicar qu pginas contienen la informacin sobre
pimientos, y luego dirigirnos a esas pginas directamente. Al dirigirnos al ndice primero
ahorramos tiempo y seguramente es el mtodo ms eficiente para ubicar la informacin
que necesitamos.
El mismo principio se aplica para la obtencin de datos desde una tabla de base de datos.
Sin un ndice, el sistema de base de datos lee a travs de toda la tabla (este proceso se
denomina escaneo de tabla) para localizar la informacin deseada. Con el ndice
correcto en su lugar, el sistema de base de datos puede entonces primero dirigirse al ndice
para encontrar de dnde obtener los datos, y luego dirigirse a dichas ubicaciones para
obtener los datos necesarios. Esto es mucho ms rpido.
Por lo tanto, generalmente se recomienda crear ndices en tablas. Un ndice puede cubrir
una o ms columnas. La sintaxis general para la creacin de un ndice es:
Tabla Customer
No hay una regla estricta respecto de cmo nombrar un ndice. El mtodo generalmente
aceptado es colocar un prefijo, tal como IDX_, antes del nombre de un ndice para
evitar la confusin con otros objetos de la base de datos. Tambin es una buena idea
brindar informacin sobre qu tabla y columna(s) se utilizar el ndice.
Por favor note que la sintaxis exacta para CREATE INDEX puede ser distinta segn las
diferentes bases de datos. Debera consultar con su manual de referencia de base de datos
para obtener la sintaxis precisa.
ALTER TABLE
Una vez que se crea la tabla en la base de datos, hay muchas ocasiones donde uno puede
desear cambiar la estructura de la tabla. Los casos tpicos incluyen los siguientes:
Por favor note que lo anterior no es una lista exhaustiva. Hay otras instancias
donde ALTER TABLE se utiliza para cambiar la estructura de la tabla, tales como
cambiar la especificacin de la clave primaria o agregar una restriccin nica para una
columna.
Tabla Customer
Primero, deseamos agregar una columna denominada Gender a esta tabla. Para hacerlo,
ingresamos,
Table Customer
Table customer
Luego, lo que queremos es cambiar el tipo de datos para Addr a 30 caracteres. Para
hacerlo, ingresamos,
Table Customer
Table Customer
DROP TABLE
A veces podemos decidir que necesitamos eliminar una tabla en la base de datos por
alguna razn. De hecho, sera problemtico si no podemos hacerlo ya que esto creara una
pesadilla de mantenimiento para DBA. Afortunadamente, SQL nos permite hacerlo, ya
que podemos utilizar el comando DROP TABLE. La sintaxis para DROP TABLE es
TRUNCATE TABLE
A veces deseamos eliminar los datos en una tabla. Una forma de hacer esto es con DROP
TABLE, que vimos en la ltima seccin Pero Si deseamos simplemente deshacernos
de los datos pero no de la tabla en s? Para esto, podemos utilizar el
comando TRUNCATE TABLE. La sintaxis para TRUNCATE TABLE es
Entonces, si deseamos truncar una tabla denominada cliente que creamos en SQL
CREATE TABLE, simplemente ingresamos
INSERT INTO
En las secciones anteriores, hemos visto cmo obtener informacin de tablas. Pero Cmo
se ingresan estas filas de datos en estas tablas en primer lugar? Esto es lo que se trata en
esta seccin, que explica la instruccin INSERT, y en la siguiente seccin, que explica
la instruccin UPDATE.
En SQL, hay fundamental y bsicamente dos formas para INSRER datos en una tabla:
Una es insertar una fila por vez, y la otra es insertar filas mltiples por vez. Primero
observemos como podemos INSRER datos a travs de una fila por vez:
La sintaxis para insertar datos en una tabla mediante una fila por vez es la siguiente:
Tabla Store_Information
y ahora deseamos insertar una fila adicional en la tabla que represente los datos de ventas
para Los ngeles el 10 de enero de 1999. En ese da, este negocio tena $900 dlares
estadounidenses en ventas. Por lo tanto, utilizaremos la siguiente escritura SQL:
El segundo tipo de INSERT INTO nos permite insertar filas mltiples en una tabla. A
diferencia del ejemplo anterior, donde insertamos una nica fila al especificar sus valores
para todas las columnas, ahora utilizamos la instruccin SELECT para especificar los
datos que deseamos insertar en la tabla. Si est pensando si esto significa que est
utilizando informacin de otra tabla, est en lo correcto. La sintaxis es la siguiente:
Note que esta es la forma ms simple. La instruccin entera puede contener fcilmente
clusulas WHERE, GROUP BY, y HAVING, as como tambin uniones y alias.
Entonces por ejemplo, si deseamos tener una tabla Store_Information, que recolecte la
informacin de ventas para el ao 1998, y ya conoce en donde reside la fuente de datos
en tabala Sales_Information, ingresaremos:
Aqu hemos utilizado la sintaxis de Servidor SQL para extraer la informacin anual por
medio de una fecha. Otras bases de datos relacionales pueden tener sintaxis diferentes.
Por ejemplo, en Oracle, utilizar TO_CHAR (Txn_Date, 'yyyy') = 1998.
UPDATE
Una vez que hay datos en la tabla, podramos tener la necesidad de modificar los mismos.
Para hacerlo, utilizamos el comando UPDATE. La sintaxis para esto es,
UPDATE "nombre_tabla"
SET "columna_1" = [nuevo valor]
WHERE "condicin";
Tabla Store_Information
y notamos que las ventas para Los Angeles el 08/01/1999 es realmente de 500 en vez de
300 dlares estadounidenses, y que esa entrada en particular necesita actualizarse. Para
hacerlo, utilizamos el siguiente SQL:
UPDATE Store_Information
SET Sales = 500
WHERE Store_Name = 'Los Angeles'
AND Txn_Date = '08-Jan-1999';
Tabla Store_Information
En este caso, hay slo una fila que satisface la condicin en la clusula WHERE. Si hay
mltiples filas que satisfacen la condicin, todas ellas se modificarn.
UPDATE "nombre_tabla"
SET colonne 1 = [[valor1], colonne 2 = [valor2]
WHERE "condicin";
DELETE FROM
A veces podemos desear deshacernos de los registros de una tabla. Para ello, utilizamos
el comando DELETE FROM. La sintaxis para esto es,
Tabla Store_Information
y decidimos no mantener ninguna informacin sobre Los ngeles en esta tabla. Para
lograrlo, ingresamos el siguiente SQL:
Tabla Store_Information
SELECT
Obtiene filas de la base de datos y permite realizar la seleccin de una o varias filas o
columnas de una o varias tablas
Con esta sentencia se puede realizar todas las operaciones de algebra relacional
SINTAXIS:
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
Resultado:
Store_Name
Los Angeles
San Diego
Los Angeles
Boston
DISTINCT
La palabra clave SELECT nos permite tomar toda la informacin de una columna (o
columnas) en una tabla. Esto, obviamente, significa necesariamente que habr
redundancias. Todo lo que necesitamos hacer es agregar DISTINCT luego de SELECT
para seleccionar cada elemento.
SINTAXIS:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
Resultado:
Store_Name
Los Angeles
San Diego
Boston
WHERE
SINTAXIS:
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "condicin";
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
Para seleccionar todos los negocios con ventas mayores a 1000 dlares estadounidenses
en la Tabla
SELECT Store_Name
FROM Store_Information
WHERE Sales > 1000;
Resultado:
Store_Name
Los Angeles
AND u OR
SINTAXIS:
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "condicin simple"
{[AND|OR] "condicin simple"}+;
{}+ significa que la expresin dentro de las llaves ocurrir una o ms veces. Note
que AND u OR pueden utilizarse indistintamente. Adems, podemos utilizar el smbolo
parntesis ( ) para indicar el orden de la condicin.
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
Podemos desear seleccionar todos los negocios con ventas mayores a 1000 dlares
estadounidenses o todos los negocios con ventas menores a 500 dlares estadounidenses
pero mayores a 275 dlares estadounidenses en la Tabla
SELECT Store_Name
FROM Store_Information
WHERE Sales > 1000
OR (Sales < 500 AND Sales > 275);
Resultado:
Store_Name
Los Angeles
San Francisco
IN
En SQL, hay dos usos de la palabra clave IN, y esta seccin introduce aqul relacionado
con la clusula WHERE. Cuando se lo utiliza en este contexto, sabemos exactamente el
valor de los valores regresados que deseamos ver para al menos una de las columnas
SINTAXIS:
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" IN (''valor1', ''valor2', ...);
El nmero de valores en los parntesis pueden ser uno o ms, con cada valor separado
por comas. Los valores pueden ser nmeros o caracteres. Si hay slo un valor dentro del
parntesis, este comando es equivalente a:
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
Podramos desear seleccionar todos los registros para los negocios de Los ngeles y San
Diego en la Tabla
SELECT *
FROM Store_Information
WHERE Store_Name IN ('Los Angeles', 'San Diego');
Resultado:
BETWEEN
SINTAXIS:
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" BETWEEN 'valor1' AND 'valor2';
Esto seleccionar todas las filas cuya columna tenga un valor entre 'valor1' y 'valor2'.
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
SELECT *
FROM Store_Information
WHERE Txn_Date BETWEEN '06-Jan-1999' AND '10-Jan-1999';
Resultado:
LIKE
SELECT "nombre_columna"
FROM "nombre_tabla"
WHERE "nombre_columna" LIKE {patrn};
'A_Z': Toda lnea que comience con 'A', otro carcter y termine con 'Z'. Por
ejemplo, 'ABZ' y 'A2Z' deberan satisfacer la condicin, mientras 'AKKZ' no
debera (debido a que hay dos caracteres entre A y Z en vez de uno).
'ABC%': Todas las lneas que comienzan con 'ABC'. Por ejemplo, 'ABCD' y
'ABCABC' ambas deberan satisfacer la condicin.
'%XYZ': Todas las lneas que terminan con 'XYZ'. Por ejemplo, 'WXYZ' y
'ZZXYZ' ambas deberan satisfacer la condicin.
'%AN%': : Todas las lneas que contienen el patrn 'AN' en cualquier lado. Por
ejemplo, 'LOS ANGELES' y 'SAN FRANCISCO' ambos deberan satisfacer la
condicin.
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
Deseamos encontrar todos los negocios cuyos nombres contengan AN. Para hacerlo,
ingresamos,
SELECT *
FROM Store_Information
WHERE Store_Name LIKE '%AN%';
Resultado:
Esto podra ser en orden ascendente, en orden descendente, o podra basarse en valores
numricos o de texto
SINTAXIS:
SELECT "nombre_columna"
FROM "nombre_tabla"
[WHERE "condicin"]
ORDER BY "nombre_columna" [ASC, DESC];
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
FUNCIONES
AVG
COUNT
MAX
MIN
SUM
SINTAXIS:
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Resultado:
SUM(Sales)
2750
COUNT
Esto nos permite COUNT el nmero de filas en una tabla determinada
SINTAXIS:
SELECT COUNT("nombre_columna")
FROM "nombre_columna";
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Resultado:
COUNT (Store_Name)
4
COUNT y DISTINCT pueden utilizarse juntos en una instruccin para determinar el
nmero de las distintas entradas en una tabla. Por ejemplo, si deseamos saber el nmero
de los distintos negocios, ingresaramos,
Resultado:
GROUP BY
Esta clausula permitir agrupar un conjunto de columnas con valores repetidos y utilizar
las funciones de agregacin sobre las columnas con valores no repetidos.
SINTAXIS:
SELECT "nombre1_columna", SUM("nombre2_columna")
FROM "nombre_tabla"
GROUP BY "nombre1-columna";
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Deseamos saber las ventas totales para cada negocio. Para hacerlo, ingresaramos,
Resultado:
Store_Name SUM(Sales)
Los Angeles 1800
San Diego 250
Boston 700
HAVING
SINTAXIS:
EJEMPLO:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Resultado:
Store_Name SUM(Sales)
Los Angeles 1800
ALIAS
Nos concentraremos ahora en el uso de alias. Hay dos tipos de alias que se utilizan con
mayor frecuencia. Alias de columna y alias de tabla.
Resumiendo, los alias de columna existen para ayudar en la organizacin del resultado.
En el ejemplo anterior, cualquiera sea el momento en que vemos las ventas totales, se
enumeran como SUM(Sales). Mientras esto es comprensible, podemos ver casos donde
el ttulo de la columna pueden complicarse (especialmente si incluye varias operaciones
aritmticas). El uso de un alias de columna hara el resultado mucho ms legible.
SINTAXIS:
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Resultado:
JOIN
Ahora miremos las uniones. Para realizar uniones en SQL se requieren mucho de los
elementos que ya hemos presentado. Digamos que tenemos las siguientes dos tablas:
Tabla Store_Information
Tabla Geography
Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego
y queremos saber las ventas por regin. Vemos que la tabla Geography incluye
informacin sobre regiones y negocios, y la tabla Store_Information contiene
informacin de ventas para cada negocio. Para obtener la informacin de ventas por
regin, debemos combinar la informacin de las dos tablas. Al examinar las dos tablas,
encontramos que estn enlazadas a travs del campo comn nombre_negocio Primero
presentaremos la instruccin SQL y explicaremos el uso de cada segmento despus:
SINTAXIS
Resultado:
REGION SALES
East 700
West 2050
Las primeras dos lneas le indican a SQL que seleccione dos campos, el primero es el
campo "Region_Name" de la tabla Geography(denominado REGION), y el segundo es
la suma del campo "Sales" de la tabla Store_Information (denominado SALES). Note
como se utilizan los alias de tabla aqu: Geography se denomina A1,
e Store_Information se denomina A2. Sin los alias, la primera lnea sera
La sintaxis para realizar una unin externa en SQL depende de la base de datos. Por
ejemplo, en Oracle, colocaremos un "(+)" en la clusula WHERE del otro lado de la tabla
para la que queremos incluir todas las filas.
Tabla Store_Information
Tabla Geography
Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego
y queremos saber la suma de las ventas de todos los negocios. Si realizamos una unin
regular, no podramos obtener lo que deseamos debido a que habramos omitido New
York" ya que no aparece en la tabla Store_Information. Por lo tanto, necesitamos
realizar una unin externa respecto de las dos tablas anteriores:
SINTAXIS
Note que en este caso, estamos utilizando la sintaxis Oracle para unin externa.
Resultado:
Store_Name SALES
Boston 700
New York
Los Angeles 1800
San Diego 250
CONCATENAR
MySQL: CONCAT( )
Oracle: CONCAT( ), ||
SQL Server: +
SINTAXIS
Concatenar cad1, cad2, cad3, y cualquier otra cadena juntas. Por favor note que la funcin
CONCAT( ) de Oracle slo permite dos argumentos slo dos cadenas pueden colocarse
juntas al mismo tiempo utilizando esta funcin. Sin embargo, es posible concatenar ms
de dos cadenas al mismo tiempo en Oracle utilizando '||'.
Tabla Geography
Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego
Ejemplo 1
MySQL/Oracle:
Resultado:
'EastBoston'
Ejemplo 2
Oracle:
Resultado:
'East Boston'
Ejemplo 3
SQL Server:
Resultado:
'East Boston'
SUBSTRING
La funcin de subcadena en SQL se utiliza para tomar una parte de los datos almacenados.
Esta funcin tiene diferentes nombres segn las diferentes bases de datos:
Oracle: SUBSTR( )
Selecciona todos los caracteres de <str> comenzando con posicin <pos>. Note que esta
sintaxis no es compatible en SQL Server.
Comienza con el carcter <pos> en la cadena <str> y selecciona los siguientes caracteres
<len>.
Tabla Geography
Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego
Ejemplo 1
Resultado:
's Angeles'
Ejemplo 2
Resultado:
'an D'
TRIM
La funcin TRIM en SQL se utiliza para eliminar un prefijo o sufijo determinado de una
cadena. El patrn ms comn a eliminarse son los espacios en blanco. Esta funcin tiene
diferentes nombres segn las diferentes bases de datos:
RTRIM (str): Elimina todos los espacios en blanco del final de la cadena.
Ejemplo 1
Resultado:
'Sample'
Ejemplo 2
Resultado:
'Sample '
Ejemplo 3
Resultado:
' Sample'
UNION
Es combinar los resultados de dos consultas juntas. En este sentido, UNION es parecido
a Join, ya que los dos se utilizan para informacin relacionada en mltiples tablas. Una
restriccin de UNION es que todas las columnas correspondientes necesitan ser del
mismo tipo de datos.
SINTAXIS
[Instruccin SQL 1]
UNION
[Instruccin SQL 2];
Tabla Store_Information
Tabla Internet_Sales
Txn_Date Sales
07-Jan-1999 250
10-Jan-1999 535
11-Jan-1999 320
12-Jan-1999 750
y deseamos saber de todas las fechas donde hay una operacin de venta
Resultado:
Txn_Date
05-Jan-1999
07-Jan-1999
08-Jan-1999
10-Jan-1999
11-Jan-1999
12-Jan-1999
UNION ALL
SINTAXIS
[Instruccin SQL 1]
UNION ALL
[Instruccin SQL 2];
Tabla Internet_Sales
Txn_Date Sales
07-Jan-1999 250
10-Jan-1999 535
11-Jan-1999 320
12-Jan-1999 750
y deseamos encontrar las fechas en donde se realiz una operacin de venta en un negocio
como as tambin las fechas donde hay una venta a travs de Internet. Para hacerlo,
utilizamos la siguiente instruccin SQL:
Resultado:
Txn_Date
05-Jan-1999
07-Jan-1999
08-Jan-1999
08-Jan-1999
07-Jan-1999
10-Jan-1999
11-Jan-1999
12-Jan-1999
INTERSECT
Tambin opera en dos instrucciones SQL. La diferencia es que, mientras UNION acta
fundamentalmente como un operador OR (O) (el valor se selecciona si aparece en la
primera o la segunda instruccin), el comando INTERSECT acta como un
operador AND (Y) (el valor se selecciona si aparece en ambas instrucciones).
SINTAXIS
[Instruccin SQL 1]
INTERSECT
[Instruccin SQL 2];
Tabla Store_Information
Tabla Internet_Sales
Txn_Date Sales
07-Jan-1999 250
10-Jan-1999 535
11-Jan-1999 320
12-Jan-1999 750
y deseamos encontrar todas las fechas donde hay ventas tanto en el negocio como en
Internet. Para hacerlo, utilizamos la siguiente instruccin SQL:
Resultado:
Txn_Date
07-Jan-1999
MINUS
Opera en dos instrucciones SQL. Toma todos los resultados de la primera instruccin
SQL, y luego sustrae aquellos que se encuentran presentes en la segunda instruccin SQL
para obtener una respuesta final. Si la segunda instruccin SQL incluye resultados que no
estn presentes en la primera instruccin SQL, dichos resultados se ignoran.
SINTAXIS
[Instruccin SQL 1]
MINUS
[Instruccin SQL 2];
EJEMPLO:
Tabla Store_Information
Tabla Internet_Sales
Txn_Date Sales
07-Jan-1999 250
10-Jan-1999 535
11-Jan-1999 320
12-Jan-1999 750
y deseamos encontrar todas las fechas donde hay ventas en el negocio, pero no aquellas
realizadas por Internet. Para hacerlo, utilizamos la siguiente instruccin SQL:
Resultado:
Txn_Date
05-Jan-1999
08-Jan-1999
'05-Jan-1999', '07-Jan-1999',et '08-Jan-1999' son los valores distintivos arrojados
desde SELECT Txn_Date FROM Store_Information. Tambin se arroja '07-Jan-1999'
de la segunda instruccin SQL, SELECT Txn_Date FROM Internet_Sales, de este
modo se lo excluye del conjunto final de resultados.
Por favor note que el comando MINUS slo arrojar valores distintos.
Algunas bases de datos pueden utilizar EXCEPT en vez de MINUS. Por favor verifique
la documentacin para su base de datos especfica para el uso apropiado.
SUBCONSULTA
Es posible incorporar una instruccin SQL dentro de otra. Cuando esto se hace en las
instrucciones WHERE o HAVING, tenemos una construccin de subconsulta.
SINTAXIS
SELECT "nombre1_columna"
FROM "nombre1_tabla"
WHERE "nombre2_columna" [Operador de Comparacin]
(SELECT "nombre3_columna"
FROM "nombre2_tabla"
WHERE "Condicin");
[Operador de Comparacin] podran ser operadores de igualdad tales como =, >, <, >=,
<=. Tambin puede ser un operador textual como "LIKE". La parte en rojo se considera
como la "consulta interna", mientras que la parte en verde se considera como la "consulta
externa".
EJEMPLO:
Table Store_Information
Table Geography
Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego
Resultado:
SUM(Sales)
2050
EXISTS
SINTAXIS
SELECT "nombre1_columna"
FROM "nombre1_tabla"
WHERE EXISTS
(SELECT *
FROM "nombre2_tabla"
WHERE "Condicin");
EJEMPLO
Tabla Store_Information
Table Geography
Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego
CASE
SINTAXIS
EJEMPLO
Tabla Store_Information
Store_Name Sales Txn_Date
Los Angeles 1500 05-Jan-1999
San Diego 250 07-Jan-1999
Los Angeles 300 08-Jan-1999
Boston 700 08-Jan-1999
si deseamos multiplicar las sumas de ventas de 'Los Angeles' por 2 y las sumas de ventas
de 'San Diego' por 1,5, ingresamos,
Resultado:
3 Referencias Bibliogrficas
Recuperado de http://www.choucairtesting.com/Media/Default/Prepararse-para-
aplicar/manual-practico-sql.pdf
Recuperado de https://desarrolloweb.com/articulos/262.php
Recuperado de http://www.cartagena99.com/recursos/alumnos/apuntes/Manual-
SQL1.pdf
Recuperado de https://www.1keydata.com/es/sql/sql-select.php