SQL 400
SQL 400
SQL 400
1. ¿Que es el SQL?
2. Consultas básicas
3. Consultas avanzadas
4. Funciones
5. Agrupamientos
7. Actualización
8. Borrar
9. Insertar
Autor: DANIEL HUGO ENRIQUEZ LEIVAS 1
Publicado en http://www.recursos-as400.com con la autorización del autor
¿Que es el SQL?
• Palabras predefinidas
• Nombres de objetos
!" Tablas
!" Campos
• Constantes
• Signos
SELECT
CODS 5 N 0
SECD 30 A
CODS SECD
10 SECTOR TECNOLOGÍAS
20 SECTOR CONSUMO
30 SECTOR FARMACEUTICO
CODS SECD
10 SECTOR TECNOLOGÍAS
20 SECTOR CONSUMO
30 SECTOR FARMACEUTICO
CODS SECD
20 SECTOR CONSUMO
30 SECTOR FARMACEUTICO
CODAT 5 N 0
CODST 5 N 0
DESAT 35 A
PAIS 3 A
Observamos que queremos realizar una consulta que nos muestre las
acciones de empresas españolas y para eso hemos condicionado la
búsqueda por medio del campo PAIS = ‘ES’ . Considérese que ES es
una constante alfanumérica y por lo tanto debe ir entre comillas.
Autor: DANIEL HUGO ENRIQUEZ LEIVAS 7
Publicado en http://www.recursos-as400.com con la autorización del autor
CODAT DESAT PAIS
10 BBVA TELECOMUNICACIONES ES
15 RENTA 4 TECNOLOGIA ES
45 BANKPYME MULTISALUD ES
70 BCH INTERNET ES
20 BAWESTO SECTOR CONSUMO ES
30 FONDOESPACE FINANCIERO ES
SELECT CODAT, DESAT FROM ACCION WHERE PAIS = ‘ES’ AND CODS =
10
CODAT DESAT
10 BBVA TELECOMUNICACIONES
15 RENTA 4 TECNOLOGIA
70 BCH INTERNET
40 FINSBURY TECHNOLOGY TE
Ahora queremos visualizar todos los registros del archivo que no sean
acciones de empresas de España.
CODAT DESAT
25 CARMINAGNAC
TECHNOLOGIES
35 BBL INVT. FOOD & DEVE
50 FRAMLINGTON FINANCIAL
40 FINSBURY TECHNOLOGY TR
CODAA 5 N 0
CODSS 5 N 0
FECT 8 N 0
PCU 9 N 2
CANC 9 N 0
IMPC 11 N 2
PVU 9 N 2
CANV 9 N 0
IMPV 11 N 2
CC 9 N 2
CV 9 N 2
EST 1 A
CODAA CODS FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
10 10 20020424 10 1000 9880 12 1000 11860 120 140 V
50 20 20020428 15 500 7410 16 500 7890 90 110 V
10 10 20020428 11 1000 10860 13 1000 12830 140 170 V
70 10 20020428 8 3000 23730 270 C
35 30 20020428 12 1000 11820 14 1000 13780 180 220 V
45 30 20020428 9 1000 8860 140 C
10 10 20020505 11 1000 10860 13 1000 12830 140 170 V
20 20 20020505 6 2000 11870 130 C
70 10 20020510 9 1000 8920 80 C
20 20 20020510 6 1000 5935 65 C
Se nos pide realizar una consulta para visualizar las acciones de BBVA
Telecomunicaciones que se han vendido
CODAA COD FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
S
10 10 20020424 10 1000 9880 12 1000 11860 120 140 V
10 10 20020428 11 1000 10860 13 1000 12830 140 170 V
10 10 20020210 11 1000 10860 13 1000 12830 140 170 V
CODAA CODS FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
S
10 10 20020424 10 1000 9880 12 1000 11860 120 140 V
50 20 20020428 15 500 7500 16 500 7890 90 110 V
10 10 20020428 11 1000 10860 13 1000 12830 140 170 V
70 10 20020428 8 3000 23730 270 C
35 30 20020428 12 1000 11820 14 1000 13780 180 220 V
45 30 20020428 9 1000 8860 140 C
CODAA CODS FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
10 10 20020424 10 1000 9880 12 1000 11860 120 140 V
10 10 20020428 11 1000 10860 13 1000 12830 140 170 V
70 10 20020428 8 3000 23730 270 C
50 20 20020428 15 500 7410 16 500 7890 90 110 V
35 30 20020428 12 1000 11820 14 1000 13780 180 220 V
45 30 20020428 9 1000 8860 140 C
Como vemos hemos seleccionado las acciones vendidas por medio del
campo EST para garantizarnos que al efectuar los cálculos el campo
importe de venta contuviese valores distintos de cero pero también
podríamos usar el predicado IS (NOT ) NULL.
SELECT CODAA, IMPC, IMPV, ((( IMPV – IMPC) * 0.90 ) / IMPC + CC)
* 100 FROM MOVIA WHERE IMPV IS NOT NULL ORDER BY CODA
SELECT CODAA, IMPC, IMPV, ((( IMPV – IMPC) * 0.90 ) / IMPC + CC)
* 100 FROM MOVIA WHERE IMPV IS NOT NULL AND FECT
BETWEEN 20020420 AND 20020425 ORDER BY CODA
El resultado es el siguiente:
28/04/2002 Y 05/05/2002
Función LENGHT
FUNCION SUBSTR
CODAT DESAT
20 BAWESTO SE
35 BBL INVT. FO
10 BBVA TELEC
25 CARMINAGNA
40 FINSBURY T
30 FONDOESPAC
50 FRAMLINGTO
Función SUM
Con esta función podemos sumar los campos numéricos dentro de una
tabla. Supongamos que necesitamos saber
Función MAX
Función MIN
Función COUNT
CODAA CODS FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
10 10 20020424 10 1000 9880 12 1000 11860 120 140 V
50 20 20020428 15 500 7410 16 500 7890 90 110 V
10 10 20020428 11 1000 10860 13 1000 12830 140 170 V
70 10 20020428 8 3000 23730 270 C
35 30 20020428 12 1000 11820 14 1000 13780 180 220 V
45 30 20020428 9 1000 8860 140 C
10 10 20020505 11 1000 10860 13 1000 12830 140 170 V
20 20 20020505 6 2000 11870 130 C
70 10 20020510 9 1000 8920 80 C
20 20 20020510 6 1000 5935 65 C
El resultado sera
CODAA CODS FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
10 10 20020424 10 1000 9880 12 1000 11860 120 140 V
50 20 20020428 15 500 7410 16 500 7890 90 110 V
10 10 20020428 11 1000 10860 13 1000 12830 140 170 V
70 10 20020428 8 3000 23730 270 C
35 30 20020428 12 1000 11820 14 1000 13780 180 220 V
45 30 20020428 9 1000 8860 140 C
10 10 20020505 11 1000 10860 13 1000 12830 140 170 V
20 20 20020505 6 2000 11870 130 C
70 10 20020510 9 1000 8920 80 C
20 20 20020510 6 1000 5935 65 C
CODAA CODS FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
10 10 20020424 10 1000 9880 12 1000 11860 120 140 V
50 20 20020428 15 500 7410 16 500 7890 90 110 V
10 10 20020428 11 1000 10860 13 1000 12830 140 170 V
70 10 20020428 8 3000 23730 270 C
35 30 20020428 12 1000 11820 14 1000 13780 180 220 V
45 30 20020428 9 1000 8860 140 C
10 10 20020505 11 1000 10860 13 1000 12830 140 170 V
20 20 20020505 6 2000 11870 8 2000 15850 130 150 V
70 10 20020510 9 1000 8920 80 C
20 20 20020510 6 1000 5935 65 C
CODAA COD FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
S
10 10 20020424 10 1000 9880 12 1000 11860 120 140 V
50 20 20020428 15 500 7410 16 500 7890 90 110 V
10 10 20020428 11 1000 10860 13 1000 12830 140 170 V
70 10 20020428 8 3000 23730 270 C
35 30 20020428 12 1000 11820 14 1000 13780 180 220 V
45 30 20020428 9 1000 8860 140 C
10 10 20020505 11 1000 10860 13 1000 12830 140 170 V
20 20 20020505 6 2000 11870 8 2000 15850 130 150 V
70 10 20020510 9 1000 8920 80 C
20 20 20020510 6 1000 5935 8 1000 7920 65 80 V
CODAA COD FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
SS
10 10 20020424 10 1000 9880 12 1000 11860 120 140 V
50 20 20020428 15 500 7410 16 500 7890 90 110 V
10 10 20020428 11 1000 10860 13 1000 12830 140 170 V
70 10 20020428 8 3000 23730 270 C
35 30 20020428 12 1000 11820 14 1000 13780 180 220 V
45 30 20020428 9 1000 8860 140 C
10 10 20020505 11 1000 10860 13 1000 12830 140 170 V
20 20 20020505 6 2000 11870 130 C
70 10 20020510 9 1000 8920 80 C
20 20 20020510 6 1000 5935 65 C
DELETE FROM MOVIA WHERE EST = ‘V’ AND FECT < 20020501
CODAA COD FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
SS
70 10 20020428 8 3000 23730 270 C
45 30 20020428 9 1000 8860 140 C
10 10 20020505 11 1000 10860 13 1000 12830 140 170 V
20 20 20020505 6 2000 11870 130 C
70 10 20020510 9 1000 8920 80 C
20 20 20020510 6 1000 5935 65 C
Nos había quedado la tabla MOVIA con los siguientes datos luego de
realizar la ultima sentencia DELETE
CODAA COD FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
SS
70 10 20020428 8 3000 23730 270 C
45 30 20020428 9 1000 8860 140 C
10 10 20020505 11 1000 10860 13 1000 12830 140 170 V
20 20 20020505 6 2000 11870 130 C
70 10 20020510 9 1000 8920 80 C
20 20 20020510 6 1000 5935 65 C
INSERT INTO MOVIA VALUES ( 70, 20, 20020610, 10, 1000, 9800,
0, 0, 0, 200, 0, ’C’ )
En resultado es el siguiente:
CODAA COD FECT PCU CANC IMPC PVU CANV IMPV CC CV EST
S
70 10 20020428 8 3000 23730 270 C
45 30 20020428 9 1000 8860 140 C
10 10 20020505 11 1000 10860 13 1000 12830 140 170 V
20 20 20020505 6 2000 11870 130 C
70 10 20020510 9 1000 8920 80 C
20 20 20020510 6 1000 5935 65 C
70 20 20020610 10 1000 9800 200 C