Anda di halaman 1dari 5

¿Que es SQL?

SQL significa Structured Query Language o (Lenguage Estructurado de Peticiones).

Según el ANSI, es un lenguaje estándar para los manejadores de bases de datos relacionales (RDBMS).
Los comandos SQL se utilizan para realizar tareas tales como insertar, actualizar o recuperar datos de una base de datos.
Algunos manejadores de bases de datos relacionales que utilizan el SQL son: Interbase, Oracle, Sybase, Microsoft SQL Server, DB2,
mySQL, MS Access, Informix, etc.

Aunque la mayoría de ellos utilizan SQL, también tienen sus propios comandos que generalmente solo se utilizan en sus bases de
datos. Sin embargo, los comandos estándares del SQL tales como "Select", "Insert", "Update", "Delete", "Create", y "Drop" se puede
utilizar para realizar casi todas las tareas necesarias en una base de datos.

Tablas
Una bases de datos relacional contiene unos o más objetos llamados las Tablas. Los datos o la información de la base de datos se
almacenan en estas tablas, las cualse son identificadas únicamente por su nombre y estan formadas de columnas y renglones. Las
columnas contienen las caracteristicas (nombre, tipo, tamaño, etc) y los renglones contienen los datos o informacion.

Comando SELECT :
Indica al servidor que la petición es para seleccionar, traer o recuperar información de una o varias tablas.

Sintaxis o formato de un comando select simple:

SELECT "columna1", "columna2" [, "columna3", etc ]


from "tabla_nombre"
[where "condición"];

[ ] = opcional

Los nombres despues de la palabra SELECT, determinan qué columnas serán regresadas en el resultado. Se pueden seleccionar las
columnas una por una, separadas por coma, o se puede utilizar "*" para seleccionar todas las columnas.

SELECT * from "tabla_nombre"

El nombre despues de la palabra FROM, especifica la tabla o tablas a la cual se le harán las peticionnes.

La cláusula WHERE (opcional) especifica las condiciones que deberan de cumplir los registros que serán regresados.

SELECT * from "tabla_nombre"


WHERE "columna1" = ‘GRSA’

Operadores condicionales utilizados en la cláusula where :


= Igual que
> Mayor que
< Menor que
>= Mayor o Igual que
<= Menor o Igual que
<> Diferente que
LIKE Parecido a
BETWEEN Entre dos valores
IS NULL Esta vacio
NOT Para negar

Comando INSERT:
Indica al servidor que la petición es para insertar o agregar información a una tabla.
Para insertar registros indicamos el nombre de la tabla seguido por una lista de columnas y una lista de valores.

Los valores seran almacenados en la tabla segun la columna correspondiente. Los valores tipo texto y fecha deben ir entre apóstrofes
( ' ) o comillas(“), y los numericos no.

sintaxis:

INSERT into
"tabla_nombre"(columna1, columna2, ... ,ultima_column)
values (“valor1”, valor2, ... ,”ultimo_valor”)
Comando UPDATE :
Indica al servidor que la petición es para actualizar o modificar la información de una tabla.
Esto se debe realizar construyendo cuidadosamente la cláusula WHERE.

sintaxis:

UPDATE "tabla_nombre"
set "columna_nombre" = "nuevo_valor"
[,"siguiente_columna" = "nuevo_valor"...]
where "columna_nombre" OPERATOR "valor"
[and | or "columna_nombre" OPERATOR "valor"]

[] = optional

Comando DELETE :
Indica al servidor que la petición es para borrar información de una tabla.
No se requieren los nombres de las columnas entre la palabra DELETE y FROM, pero al igual que el update se debe construir
cuidadosamente la cláusula where, de no ser asi se borrará todo el contenido de la tabla.

sintaxis:

DELETE from "tabla_nombre"


where "columna_nombre" OPERATOR "valor"
[ and | or "columna_nombre" OPERATOR "valor" ]

[ ] = optional

El comando SELECT es la base del SQL, y es probable que la mayoría de nuestras consultas o peticiones a una base de datos sean
comandos SELECT.

Este comando tiene cinco cláusulas principales a utilizar, aunque, FROM es la única cláusula requerida. Cada una de las cláusulas
tiene una selección extensa de opciones, parámetros, etc.

La sintaxis o formato de un comando select completo es :

SELECT [DISTINCT] columna1[, columna2][, operacion][, funcion_agregada]


FROM tabla1[,tabla2][ join tabla3]
[WHERE "condiciones"]
[GROUP BY "lista-de-columnas"]
[HAVING "condiciones]
[ORDER BY "lista-de-columnas" [ASC | DESC] ]

DISTINCT ( distintos ) es una palabra clave usada para eliminar los registros duplicados en el resultado de su peticion.

Clausula FORM (de), sirve para indicar de que tabla o tablas se van a extraer los registros.

Sintaxis:
SELECT columna1[, columna2]
FROM tabla1[,tabla2 | join tabla3]
(join = Union entre tablas)

LEFT JOIN (lo que esta de lado izq. y que puede o no estar de lado derecho) Factura Elementos
FROM FACTIMPORT LEFT JOIN ELEMFACTIMP ON (EI_NFACTIMP = IM_NFACTIMP)
FROM FACTEXPORT LEFT JOIN ELEMFACTEXP ON (EE_NFACTEXP = EX_NFACTEXP)

INNER JOIN (lo que esta de lado izq. y también de lado derecho)
FROM FACTIMPORT INNER JOIN ELEMFACTIMP ON (EI_NFACTIMP = IM_NFACTIMP)
FROM FACTEXPORT INNER JOIN ELEMFACTEXP ON (EE_NFACTEXP = EX_NFACTEXP)

RIGHT JOIN (lo que esta de lado derecho y que puede o no estar de lado izq.)
FROM FACTIMPORT RIGHT JOIN ELEMFACTIMP ON (EI_NFACTIMP = IM_NFACTIMP)
FROM FACTEXPORT RIGHT JOIN ELEMFACTEXP ON (EE_NFACTEXP = EX_NFACTEXP)
FROM (PEDIMENTOIMP
LEFT JOIN FACTIMPORT ON (IM_PEDIMENTOIMP = PI_PEDIMENTOIMP)) Facturas
LEFT JOIN ELEMFACTIMP ON (EI_NFACTIMP = IM_NFACTIMP)
Pedimentos
FROM (PEDIMENTOEXP
LEFT JOIN FACTEXPORT ON (EX_PEDIMENTOEXP =PE_PEDIMENTOEXP))
LEFT JOIN ELEMFACTEXP ON (EE_NFACTEXP = EX_NFACTEXP)

Elementos

Clausula WHERE (donde), sirve para limitar, restringir o condicionar la cantidad de registros que el SELECT debe regresar.

sintaxis:

SELECT columnas FROM "tabla"


WHERE Columna Operador “Valor”

Para agregar mas de una condición podemos utilizar (AND, OR, NOT)

SELECT columna1, columna2 FROM "tabla"


WHERE (columna1 = “Valor1” and columna2 <> “Valor2”) or (columna1 > “Valor2” and columna2 <= “Valor1”)

Cláusula GROUP BY (agrupado por), agrupa o totaliza los registros que contienen los mismos datos en las columnas especificadas.

sintaxis:

SELECT columna1, columna2, SUM(columna3)


FROM " tabla"
GROUP BY columna1, columna2

Funciones Agregadas
Las funciones agregadas se utilizan para realizar ciertos calculos sobre las "columna retornadas" en el SELECT.
Aunque son requieridas cuando se usa la cláusula "GROUP BY", estas funciones se pueden utilizar sin la cláusula "GROUP BY".

Select SUM(columna1 * columna2)


From "lista-de-tablas"

MIN Calcula el valor más pequeño de una columna dada.


MAX Calcula el valor más grande de una columna dada.
SUM Calcula la suma de los valores numéricos en una columna dada.
AVG Calcula el valor promedio de una columna dada.
COUNT Cuenta el número total de datos en una columna dada.
COUNT(*) Cuenta el número total de registros de una tabla.

Nota :

Cuando incluimos columnas, en el SELECT, que no llevan funciones agregadas, estas deben de incluirse en la cláusula GROUP BY .

SELECT columna1, columna2, SUM(columna3)


FROM " tabla"
GROUP BY columna1, columna2
Cláusula HAVING (Teniendo), nos permite especificar condiciones en cada grupo o total - es decir, los registros que seran
seleccionado, será basado en las condiciones aplicadas al total. Si la cláusula Having va a ser utilizada, esta debe presedir a la
cláusula GROUP BY.

sintaxis:

SELECT columna1, columna2, SUM(columna3)


FROM " tabla"
GROUP BY columna1, columna2
HAVING SUM(columna3) > 1000

Cláusula ORDER BY (ordenado por), nos permite mostrar los resultados ordenados (ASC=ascendentes o DESC=descendentes) por
una o mas columnas especificadas. ASC es el orden por default.

sintaxis:

SELECT columna1, columna2


FROM "tablas"
ORDER BY "lista-de-columnas" [ASC | DESC];

- Utilización de Alias en tablas:


Cuando seleccionamos columnas de una o varias tablas, podemos utilizar Alias para abreviar los nombres de las tablas o para tener
una referencia a cual tabla pertenece:

SELECT A.columna1, A.columna2


FROM "Tabla_con_el_nombre_muy_grande" A

SELECT A.columna1, B.columna1


FROM "Tabla_Nombre1" A , "Tabla_Nombre2" B

SELECT
FI.IM_NFACTIMP,
FI.IM_FACTFECHA,
ELI.EI_NPARTE,
ELI.EI_CANTMATERIAL,
FROM FACTIMPORT FI LEFT JOIN ELEMFACTIMP ELI
ON ( FI.IM_NFACTIMP = ELI.EI_NFACTIMP)

- Utilización de Alias en Columnas:


Podemos utilizar también Alias para renombrar las columnas o el resultado de operaciones, usando el prefijo AS.

SELECT
IM_NFACTIMP AS FACTURA_IMPORT,
IM_TCAMBIO AS TIPO_CAMBIO,
(IM_TCAMBIO *IM_TCAMBIO ) AS OPERACION
FROM FACTIMPORT

Ejemplo1:
Mostrar NoFactura, Fecha, Clave Ped, T.Cambio, NoParte, Cantidad y Valor Unit, de las importaciones temporales
de materiales hechas en diciembre del 2001.

SELECT IM_NFACTIMP, IM_FACTFECHA, IM_CLVOPERACION, IM_TCAMBIO, EI_NPARTE, EI_CANTMATERIAL, EI_VALORUNIT


FROM FACTIMPORT LEFT JOIN ELEMFACTIMP ON (IM_NFACTIMP = EI_NFACTIMP)
WHERE (IM_PEDIMENTOIMP IS NOT NULL) AND (IM_FACTFECHA BETWEEN '12/01/2001' AND '12/31/2001') AND
(IM_CLVOPERACION IN ('H2'))
ORDER BY IM_FACTFECHA

Ejemplo2:
Mostrar NoFactura, Fecha, Clave Ped, NoParte, Cantidad y Valor Unit, Tipo de Tasa, de las importaciones temporales
de materiales hechas entre Ene 2001 y Dic 2002, con tasa PROSEC.

SELECT IM_NFACTIMP, IM_FACTFECHA, IM_CLVOPERACION, EI_NPARTE, EI_CANTMATERIAL, EI_VALORUNIT,


EI_TIPOTASA
FROM FACTIMPORT LEFT JOIN ELEMFACTIMP ON (IM_NFACTIMP = EI_NFACTIMP)
WHERE (IM_PEDIMENTOIMP IS NOT NULL) AND (IM_FACTFECHA BETWEEN '01/01/2001' AND '12/31/2002')
AND (IM_CLVOPERACION ='H2') AND ( EI_TIPOTASA = 'PROSEC' )
ORDER BY IM_FACTFECHA
Ejemplo3:
Mostrar NoFactura, Fecha, Clave Ped, T.Cambio, NoParte, Cantidad, Exportado Como, de las materias primas retornadas, en el año
2001, y que la factura no sea de RETORNO.

SELECT EX_NFACTEXP, EX_FACTFECHA, EX_CLVPEDIMENTO, EX_TCAMBIO, EE_NPARTE, EE_TIPOMATEXP


FROM FACTEXPORT LEFT JOIN ELEMFACTEXP ON (EE_NFACTEXP = EX_NFACTEXP)
WHERE (EX_FACTFECHA BETWEEN '01/01/2001' AND '12/31/2001') AND (EE_TIPOMATEXP = 'Mismo Estado') AND
(EX_CLVPEDIMENTO <>'H1')
ORDER BY EX_FACTFECHA

Ejemplo4:
Mostrar NoFactura, Fecha, Peso Neto Total, Peso Bruto Total, de las Facturas de Importación de Diciembre del 2001.

SELECT IM_NFACTIMP AS FACTURA_IMP, IM_FACTFECHA AS FECHA, SUM(EI_PESONETO) AS PESO_NETO,


SUM(EI_PESOBRUTO) AS PESO_BRUTO
FROM FACTIMPORT LEFT JOIN ELEMFACTIMP ON (EI_NFACTIMP=IM_NFACTIMP)
WHERE (IM_FACTFECHA BETWEEN '12/01/2001' AND '12/31/2001')
GROUP BY IM_NFACTIMP, IM_FACTFECHA

Ejemplo5:
Mostrar NoFactura, Fecha, Cantidad Total, Balance Total, Inventario Total en Dólares, Inventario Total en Pesos, de las
Facturas de Importación de Diciembre del 2001.

SELECT IM_NFACTIMP AS FACTURA_IMP, IM_FACTFECHA AS FECHA, SUM(EI_CANTMATERIAL) AS CANTIDAD,


SUM(EI_BALANCE) AS BALANCE,
SUM(EI_VALORUNIT * EI_BALANCE) AS INVENTARIO_DLLS, SUM(EI_VALORUNIT * EI_BALANCE *IM_TCAMBIO) AS
INVENTARIO_PESOS
FROM FACTIMPORT LEFT JOIN ELEMFACTIMP ON (EI_NFACTIMP=IM_NFACTIMP)
WHERE (IM_FACTFECHA BETWEEN '12/01/2001' AND '12/31/2001')
GROUP BY IM_NFACTIMP, IM_FACTFECHA

SELECT IM_NFACTIMP AS FACTURA_IMP, IM_FACTFECHA AS FECHA, SUM(EI_CANTMATERIAL) AS CANTIDAD,


SUM(EI_BALANCE) AS BALANCE,
SUM(EI_VALORUNIT * EI_BALANCE) AS INVENTARIO_DLLS, SUM(EI_VALORUNIT * EI_BALANCE *IM_TCAMBIO) AS
INVENTARIO_PESOS
FROM FACTIMPORT LEFT JOIN ELEMFACTIMP ON (EI_NFACTIMP=IM_NFACTIMP)
WHERE (IM_FACTFECHA BETWEEN '12/01/2001' AND '12/31/2001')
GROUP BY IM_NFACTIMP, IM_FACTFECHA
HAVING SUM(EI_BALANCE) > 100

Las Funciones Agregadas: Solo se utilizan en el SELECT

SELECT IM_NFACTIMP, COUNT(EI_NPARTE) as Partidas, SUM(EI_CANTMATERIAL) as Total_Importado, MIN(EI_VALORUNIT) as


Costo_Minimo, MAX(EI_VALORUNIT) as Costo_Maximo, AVG(EI_VALORUNIT) as Costo_Promedio
FROM FACTIMPORT LEFT JOIN ELEMFACTIMP ON (IM_NFACTIMP = EI_NFACTIMP)
WHERE (IM_PEDIMENTOIMP IS NOT NULL) AND (IM_FACTFECHA BETWEEN '12/01/2001' AND '12/31/2001')
GROUP BY IM_NFACTIMP

Anda mungkin juga menyukai