En forma comercila existen diversos paquetes y/o
lenguajes mediante los cuales se puede construir un modelo relacional. El
lenguaje que se considera estandar para este tipo de aplicaciones es el
SQL(structured query languaje), este lenguaje de consulta estructurado
proporciona formatos y sintaxis para la manipulación y definición de los datos.
FORMATOS SQL
DDL
Crear Tablas
CREATE TABLE<nombre de la tabla>
(
<campo1> (<tipo>[,NO NULL]),
<campo2> (<tipo>[,NO NULL]),...
)
Tipos Validos
Crear Indices
- CHAR (<LONG>)[VAR]
- FLOAT
- INTEGER
- SMALLINT
CREATE [UNIQUE] INDEX <nom.indice> ON < nom>tabla>
(
<nomcampo1> [ASC/DES],
<nomcampo2> [ASC/DES],...
)
Modificar Tablas (expandirlas)
- EXPAND TABLE <nom.tabla>
- ADD FIELD <nom.campo> (<TIPO>[NO NULL])
Eliminar Tablas
- DROP TABLE <nom.tabla>
Borrar Indices
- DROP <nom>indice>
Tablas
CREATE TABLE persona
(
nombre(CHAR(40) VAR, NO NULL),
edad(SMALLINT, NONULL),
estatura(FLOAT, NO NULL),
telefono(CHAR(7))
)
Indices
Por nombre
CREATE INDEX ind_nom ON personaPor estatura sin llaves repetidas, descendente
(
nombre
)
CREATE UNIQUE INDEX ind_est ON personaPor edad(primero mas jovenes); edades repetidas, poe estatura(primero la mas alta)
(
estatura desc
)
CREATE INDEX ind_ed_est ON personaModificaciones
(
edad,estatura desc
)
- EXPAND TABLE persona
- ADD FIELD direccion(CHAR(30), VAR, NO NULL)
DML
Insertar datos
INSERT INTO <nom.tabla>Modificar datos
[(<campo1>,<campo2>...):]
< <valor1>,<valor2>...>
UPDATE <nom.tabla>Eliminar datos
SET <campo1> = <campo1>,
<campo2> = <campo2>,...
[WHERE <condicion>]
DELETE<nom.tabla>CONSULTAS
[WHERE <condicion>]
En una tabla
SELECT [UNIQUE] <lista de campos/*>Funciones integradas en select/where
FROM <nom>tabla>
[WHERE <condicion>]
[ORDER BY <campo> [asc/des]]
COUNT(*) conteo
SUM(<campo>) total(acumulador)
AVG(<campo>) promedio
MAX(<campo>) maximo
MIN(<campo>) minimo
Ejemplo:
Insert into persona
< 'juan',15,1,75,'2-15-15','forjadores'>
Consulta por coincidencia parcial en cadenas
Select <nombre_tabla>
where<campo char>LIKE
<cadena de coincidencia>
caracteres validos en <cadena de coincidencia>
"-" un carácter cualquiera.
"%" una secuencia de caracteres cualquiera.
Create table clientes
(
nc(integer,NO NULL),
nombre(char(20)VAR,NO NULL)
domicilio(char(40)VAR,NO NULL)
estado(char(15)VAR,NO NULL)
)
insert into clientes
<320,'juan','forjadores','infantil'>
<145,'pedro','catolica','adulto'>
create tabla videos
(
clave(char(4),NO NULL),
titulo(char(20)VAR,NO NULL),
clasificacion(char(1)VAR,NO NULL),
costo(float,NO NULL)
)
insert into videos
<'A320','la roca','b',12.00>
<'b415','tornado','b',12.00>
Create table renta
(
nc(integer,NO NULL),
clave(char(4),NO NULL),
fecha(char(8),NO NULL),
dias(smallint,NO NULL)
)
Insert into renta
<320,'A716','7/10/97',3>
<320','b716','7/10/97'.3>
Ejemplos:
select nombre estado
form clientes
where
nc>100
select estado, count(*)
from clientes
grop by
estado
Este tipo de consultas se realiza sobre un atabla global que resulta de todas las combinaciones posibles entre las tuplas de las tablas involucradas.
La condicion en el formato debe aprovecharse para colocar un filtro que permita que solo tas tuplas o combinaciones de estas que sean requeridas, se muestren; esto se logra por medio de las columnas con valor semejante o de las relaciones establecidas.
Si un campo se encuentra en mas de una tabla, su referencia puede formarse con el formato tabla campo.
Ejemplo:
Se desea conocer la lista de los distintos titulos rentados el 8 oct 97
Select unique video.tiulo
From renta,videos
Where
(renta.fecha = '8/oct/97' and renta.clave = video.clave)
Los discriminadores any/all son opcionales y se pueden combinar con un operador relacional o con in/not in en este tipo de consultas se procesa primeramente la tabla mas interna(tabla2) de la cual obtiene una salida determinada; los datos que se obtienen en esta salida se relacionan mediante el descriminador con los datos de la tabla externa, produciendo asi la salida final.
Ejemplo:
El formato puede extenderse
creando subconsultas en multinivel. Se asume el mismo criterio de resolver a
partir de la tabla mas interna e ir relacionando los resultados con la tabla
externa inmediata sucesivamente.
Ejemplo:
| Select <lista de campos/*> From <tabla1> Where<condicin1> |
|
Select <lista campos2/*> From<tabla2> Where<condicion2> |
Ejemplo:
| Select nombre From clientes Where estado='infantil' |
Union | Select titulo From videos Where clasificacion = 'a' |
Página
Anterior |