SQL
(Structured Query
Language) Lenguaje de
consulta estructurado
SQL: Lenguaje formado por
comandos/sentencias, operadores, tipos de
datos, funciones predefinidas, clusulas, etc.
SQL: Lenguaje declarativo de acceso a
bases de datos relacionales que permite
especificar diversos tipos de operaciones
sobre las mismas.
SQL
Numricos: INTEGER, SMALLINT, DECIMAL, FLOAT.
Fecha: DATE, DATETIME, TIME.
Cadena de caracteres: CHAR(N), VARCHAR(N), TEXT,
MEMO.
Cadenas binarias: BINARY, BLOB.
NOTA: No existe el tipo BOOLEAN.
SQL: Tipos de datos
Es compatible con cualquier tipo, NULL
puede indicar: No aplicable, Desconocido.
Para preguntar si un valor es Null,
generalmente se provee la forma especial IS
NULL o IS NOT NULL (en vez de = Null o
<> Null)
SQL: el valor NULL
SQL tiene dos sub-lenguajes de comandos:
DDL (Data Definition Language): contiene los
comandos usados para crear y destruir objetos de
la base de datos, estos comandos son: CREATE,
DROP, ALTER.
DML (Data Manipulation Language): contiene los
comandos para manipular los datos, estos
comandos son: SELECT, INSERT, UPDATE,
DELETE.
SQL: comandos/sentencias
SELECT lista de expresiones TOP n 6
FROMlista de tablas 1
WHERE lista de condiciones 2
GROUP BY lista de campos de agrupamiento 3
HAVING lista de condicones que deben cumplir los grupos 4
ORDER BY lista de criterios de ordenamiento 5
UNION ALL
Cada lnea se llama clusula. El SELECT y el FROM
son obligatorias, las dems son opcionales.
SQL: Sintaxis general
CURSO = (COD_CURSO, NOMBRE, DESCRIPCIN, COSTO, DURACIN)
PRERREQUISITO = (COD_CURSO, COD_CURSO_REQ, MODO)
EDICIN = (COD_CURSO, FEC_INICIO, COD_EMPLEADO, FECHA_FIN,
HORARIOS)
EMPLEADO = (COD_EMPLEADO, CUIL, APYN, SEXO, FEC_NAC,
SALARIO, CAPACITADO, COD_DTO, F_DESDE, CALLE, NUMERO, PISO,
DTO, LOCALIDAD, CP, TEL, F_INGRESO)
DEPARTAMENTO = (COD_DTO, NOMBRE, TECNICO)
ASISTIO = (COD_CURSO, FEC_INICIO, COD_EMPLEADO)
HISTORIAL_EMPLEADO_DTO = (COD_EMPLEADO, COD_DTO,
F_DESDE, F_HASTA)
Esquema de relaciones
b) Listar el nombre y costo de los cursos cuya duracin sea
menor de 30 horas.
a) Si quiero listar toda la informacin de todos los cursos.
SELECT *
FROM CURSO
SELECT NOMBRE, COSTO
FROM CURSO
WHERE (DURACION < 30)
SQL: Consultas Simples
c) Listar el cdigo de aquellos empleados que
efectivamente dictaron algn curso.
SELECT DISTINCT (COD_EMPLEADO) as cdigo
FROM EDICION
Si hay un empleado que dict ms de una edicin de
un curso aparecera ms de una vez. Entonces, para
que no se repitan utilizamos la clusula DISTINCT.
SQL: Consultas Simples
d) Listar el apellido, nombre y salario de todos los
empleados, adems para cada empleado detallar el sueldo
aumentado en un 10%.
SELECT APYN, SALARIO,( ((SALARIO * 10) / 100)
+ SALARIO) AS SALARIO_AUMENTADO
FROM EMPLEADO
SQL: Consultas Simples
CASE valor WHEN op1 THEN resultado 1
WHEN op2 THEN resultado 2