Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LENGUAJE SQL
PROFESORA: BACHILLERES:
RANGEL LUIS
POLLO JOSE
TÉRMINOS
La base de datos debería ser una colección o conjunto de datos. Tan importante
es almacenar el contenido como también la relación entre ellos.
No son redundantes.
Puedan servir a cualquier aplicación.
Procedimientos seguros para modificación:
Consulta ð Genera errores pero no inconsistencia.
Altas / Bajas.
Usuarios múltiples.
Los datos deben llegar a tiempo.
Se deben almacenar restricciones (seguridad).
Independencia.-
Datos / Procedimiento.
Datos / Soporte físico.
Soporte à Acceso directo.
VENTAJAS
Independencia de datos y tratamiento.
Cambio en datos no implica cambio en programas y viceversa (Menor coste de
mantenimiento).
Coherencia de resultados.
Reduce redundancia:
Acciones lógicamente únicas.
Se evita inconsistencia.
Mejora en la disponibilidad de datos
No hay dueño de datos (No igual a ser públicos).
Ni aplicaciones ni usuarios.
Guardamos descripción (Idea de catálogos).
Cumplimiento de ciertas normas.
Restricciones de seguridad.
Accesos (Usuarios a datos).
Operaciones (Operaciones sobre datos).
Otras ventajas:
Más eficiente gestión de almacenamiento.
Efecto sinérgico.
DESVENTAJAS
Situación Sistema trad. ð Sist. De BD.
Fuerte coste inicial.
Programa
Personal
Equipos.
Rentable a medio o largo plazo.
No hay standard
No solo se puede cambiar datos sino también el enfoque del sistema
Las bases de datos tienen muchos lenguajes pero se pueden tomar 4 tipos
Básicos que son:
1. Base de datos tipo fichero: Las bases de datos de fichero plano consisten en
ficheros de texto divididos en filas y columnas. Estas bases de datos son las más
primitivas y quizás ni tan siquiera merezcan considerarse como tales. Pueden ser
útiles para aplicaciones muy simples, pero no para aplicaciones medianas o
complejas, debido a sus grandes limitaciones.
2. Base de datos tipo relacional: Las bases de datos relacionales son las más
populares actualmente. Su nombre proviene de su gran ventaja sobre las bases
de datos de fichero plano: la posibilidad de relacionar varias tablas de datos entre
sí, compartiendo información y evitando la duplicidad y los problemas que ello
conlleva (espacio de almacenamiento y redundancia). Existen numerosas bases
de datos relacionales para distintas plataformas (Access, Paradox, Oracle,
Sybase) y son ampliamente utilizadas. Sin embargo, tienen un punto débil: la
mayoría de ellas no admite la incorporación de objetos multimedia tales como
sonidos, imágenes o animaciones.
Actualmente, está en marcha un proceso de revisión del lenguaje por parte de los
comités ANSI e ISO, que debería terminar en la definición de lo que en este
momento se conoce como SQL3. Las características principales de esta nueva
encarnación de SQL deberían ser su transformación en un lenguaje stand-alone
(mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la
introducción de nuevos tipos de datos más complejos que permitan, por ejemplo,
el tratamiento de datos multimediales.
CARACTERÍSTICAS
Una sentencia de SQL es una frase escrita en ingles con la que decimos lo que
queremos obtener como obtener lo y de donde obtenerlo.
Todas las sentencias empiezan con un verbo (palabra reservada que indica la
acción a realizar, seguido del resto de las cláusulas, algunas obligaciones y otras
opciones). Todas las sentencias siguen una sintaxis para que se ejecuten
correctamente.
TIPOS DE DATOS
Date: una fecha de calendario que contiene el año (de cuatro cifras), el mes y
el día.
Time: La hora del día en horas minutos segundos (el valor predeterminado es
0).
Timestamp: la combinación de Date y Time.
OPTIMIZACIÓN
Como ya se dijo antes, y suele ser común en los lenguajes de acceso a bases de
datos de alto nivel, el SQL es un lenguaje declarativo. O sea, que especifica qué
es lo que se quiere y no cómo conseguirlo, por lo que una sentencia no establece
explícitamente un orden de ejecución.
Existe una ampliación de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que
permite el acceso a bases de datos difusas, usando la lógica difusa. Este lenguaje
ha sido implementado a nivel experimental y está evolucionando rápidamente.
Otras que se incluyen dentro del DDL, pero que su existencia depende de la
implementación del estándar SQL que lleve a cabo el gestor de base de datos son
GRANT y REVOKE, los cuales sirven para otorgar permisos o quitarlos, ya sea a
usuarios específicos o a un rol creado dentro de la base de datos.
Una vez finalizado el diseño de una base de datos y escogido un SGBD para su
implementación, el primer paso consiste en especificar el esquema conceptual y el
esquema interno de la base de datos, y la correspondencia entre ambos. En
muchos SGBD no se mantiene una separación estricta de niveles, por lo que el
administrador de la base de datos y los diseñadores utilizan el mismo lenguaje
para definir ambos esquemas, es el lenguaje de definición de datos (LDD). El
SGBD posee un compilador de LDD cuya función consiste en procesar las
sentencias del lenguaje para identificar las descripciones de los distintos
elementos de los esquemas y almacenar la descripción del esquema en el
catálogo o diccionario de datos. Se dice que el diccionario contiene metadatos:
describe los objetos de la base de datos.
Cuando en un SGBD hay una clara separación entre los niveles conceptual e
interno, el LDD sólo sirve para especificar el esquema conceptual. Para especificar
el esquema interno se utiliza un lenguaje de definición de almacenamiento (LDA).
Las correspondencias entre ambos esquemas se pueden especificar en cualquiera
de los dos lenguajes. Para tener una verdadera arquitectura de tres niveles sería
necesario disponer de un tercer lenguaje, el lenguaje de definición de vistas (LDV),
que se utilizaría para especificar las vistas de los usuarios y su correspondencia
con el esquema conceptual
Es un conjunto de declaraciones o definiciones que permiten expresar las
especificaciones del esquema de la base de datos. A partir de estas se genera el
Diccionario de Datos. Igualmente permite determinar la estructura de
almacenamiento y los métodos de acceso. Permiten crear, las bases de datos, las
tablas, definir índices y reglas de integridad. Igualmente modificar y borrar lo antes
definido.
CREATE
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla,
vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de
la base de datos soporte.
Ejemplo 1 (creación de una tabla):
CREATE TABLE TABLA_NOMBRE (
cl integer not null
nombre VARCHAR (50)
fecha_nac DATE NOT NULL,
PRIMARY KEY (my_field1, my_field 2)
ALTER
Este comando permite modificar la estructura de un objeto- Se pueden agregar /
quitar campos a una tabla, modificar el tipo de un campo, agregar / quitar índices a
una tabla, modificar un trigger, etc.
Ejemplo 1 (agregar columna a una tabla):
ALTER TABLE TABLA NOMBRE (
ADD NUEVO_ CAMPO INT UNSIGNED
)
DROP
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista,
índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la
base de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo 1:
DROP TABLE TABLA_NOMBRE
Ejemplo 2:
ALTER TABLE TABLA_NOMBRE
(
DROP COLUMN CAMPO_NOMBRE 1
)
TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando
DELETE, es que si se quiere borrar todo el contenido de la tabla, es mucho más
rápido, especialmente si la tabla es muy grande, la desventaja es que TRUNCATE
solo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no
se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería
ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que
internamente, el comando truncate borra la tabla y la vuelve a crear y no ejecuta
ninguna transacción.
Ejemplo 1:
TRUNCATE TABLE TABLA_NOMBRE
LENGUAJE INTERACTIVO DE MANIPULACION DE DATOS (LMD):
DEFINICION
CREATE
Este comando crea un objeto dentro del gestor de base de datos. Puede ser una
base de datos, tabla, índice, procedimiento almacenado o vista.
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista,
índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la
base de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo
Ejemplo
El lenguaje de manipulación de datos más popular hoy día es SQL, usado para
recuperar y manipular datos en una base de datos relacional.
INSERT
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una)
tabla en una base de datos relacional.
FORMA BÁSICA
Ejemplo
Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas de la tabla
'agenda_telefonica'):
FORMAS AVANZADAS
Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas en la tabla
'agenda_telefonica'):
Para hacer lo mismo en Oracle se usa DUAL TABLE, siempre que se trate de solo
una simple fila:
SELECT *
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')
Una variación es necesaria cuando algunos de los datos de la tabla fuente se está
insertando en la nueva tabla, pero no todo el registro. (O cuando los esquemas de
las tablas no son iguales.)
UPDATE
Ejemplo
UPDATE My_table SET field1 = 'updated value asd' WHERE field2 = 'N';
DELETE
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
FORMA BÁSICA
Ejemplo
Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea
seleccionar o manipular.
Cláusula Descripción
Utilizada para especificar la tabla de la cual se van a seleccionar los
FROM
registros
Utilizada para especificar las condiciones que deben reunir los
WHERE
registros que se van a seleccionar
GROUP Utilizada para separar los registros seleccionados en grupos
BY específicos
HAVING Utilizada para expresar la condición que debe satisfacer cada grupo
ORDER Utilizada para ordenar los registros seleccionados de acuerdo con un
BY orden específico
OPERADORES LÓGICOS: FUNCIONAMIENTO DE CADA UNO
Los operadores lógicos o conectivos lógicos se utilizan para conectar dos fórmulas
para que el valor de verdad. Siempre darán un valor de verdad verdadero o falso y
se leen de izquierda a derecha.
Los operadores lógicos usados son:
Operado
Uso
r
Por ejemplo, para calcular una bonificación para aquellos empleados que han sido
contratados antes del 15 de marzo de 1998, el cálculo de si el campo hire_date
(fecha de contratación) de un empleado es menor o igual que 15 de marzo de
1998 proporcionará una lista de los empleados que deben recibir la bonificación.
Operador Uso
< Menor que
> Mayor que
<> Distinto de
<= Menor o igual que
>= Mayor o igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores.
LIKE Utilizado en la comparación de un modelo
In Utilizado para especificar registros de una base de datos
Funciones de Agregación: Funcionamiento de cada uno
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para
devolver un único valor que se aplica a un grupo de registros.
Función Descripción
AVG Utilizada para calcular el promedio de los valores de un campo determinado
COUNT Utilizada para devolver el número de registros de la selección
Utilizada para devolver la suma de todos los valores de un campo
SUM
determinado
MAX Utilizada para devolver el valor más alto de un campo especificado
MIN Utilizada para devolver el valor más bajo de un campo especificado
Las consultas se utilizan para indicar al motor de datos que devuelva información
de las bases de datos, esta información es devuelta en forma de conjunto de
registros que se pueden almacenar en un objeto recordset. Este conjunto de
registros es modificable.
Esta consulta devuelve los campos Código Postal, Nombre, Teléfono de la tabla
Clientes ordenados por el campo Nombre. Se pueden ordenar los registros por
más de un campo, como por ejemplo:
SELECT CodigoPostal, Nombre, Teléfono
CodigoPostal, Nombre;
El predicado se incluye entre la clausula y el primer nombre del campo a recuperar, los posibles
predicados son:
Predicado Descripción
Devuelve todos
ALL
los campos de la tabla
ALL:
Si no se incluye ninguno de los predicados se asume ALL.
El Motor de base de datos selecciona todos los registros que cumplen las
condiciones de la instrucción SQL. No se conveniente abusar de este predicado ya
que obligamos al motor de la base de datos a analizar la estructura de la tabla
para averiguar los campos que contiene, es mucho más rápido indicar el listado de
campos deseados.
TOP:
Estudiantes
FROM Estudiantes
DISTINCT:
Omite los registros que contienen datos duplicados en los campos seleccionados.
Para que los valores de cada campo listado en la instrucción SELECT se incluyan
en la consulta deben ser únicos. Por ejemplo, varios empleados listados en la
tabla Empleados pueden tener el mismo apellido. Si dos registros contienen López
en el campo Apellido, la siguiente instrucción SQL devuelve un único registro:
DISTINCTROW:
Devuelve los registros diferentes de una tabla; a diferencia del predicado anterior
que sólo se fijaba en el contenido de los campos seleccionados, éste lo hace en el
contenido del registro completo independientemente del campo indicado en la
cláusula SELECT.
[ WITH <common_table_expression>]
[ HAVING search_condition ]
Sintaxis
FROM
ON
JOIN
WHERE
GROUP BY
WITH CUBE o WITH ROLLUP
HAVING
SELECT
DISTINCT
ORDER BY
TOP
El SQL nos ofrece las siguientes funciones de agregación para efectuar varias
operaciones sobre los datos de una base de datos:
Funciones de agregación
Función Descripción
Nos da el número total de filas
COUNT
seleccionadas
SUM Suma los valores de una columna
MIN Nos da el valor mínimo de una columna
La cláusula SELECT se usa para listar los atributos que se desean en el resultado
de una consulta.
SELECT A1,A2,...,An
FROM r1,r2,...,rn
WHERE P
Donde Ai = atributo (Campo de la tabla)
ri = relación ( Tabla )
P = predicado (condición)
EJEMPLO: Seleccionar todos los nombres de las personas que tengan el apellido
MARQUESI de la tabla persona
SELECT nombre
FROM persona
WHERE apellido = " MARQUESI"
ANSWER NOMBRE
1 MARTIN
2 PABLO
EJEMPLO
SELECT P.nombre AS [PRIMER NOMBRE]
FROM persona P
WHERE apellido = "MARQUESI"
ANSWER PRIMER NOMBRE
1 MARTIN
2 PABLO
Cuando asociamos un alias con una relación decimos que creamos una variable
de tupla. Estas variables de tuplas se definen en la cláusula FROM después del
nombre de la relación.
En las consultas que contienen subconsultas, se aplica una regla de ámbito a las
variables de tupla. En una subconsulta está permitido usar solo variables de tupla
definidas en la misma subconsulta o en cualquier consulta que tenga la
subconsulta.
PREDICADOS Y CONECTORES
Los conectores lógicos en SQL son:
AND
OR
NOT
EJEMPLO: Encontrar todos los nombres y dni de las personas cuyos dni sea
mayor que 26 millones y menor a 28 millones
ANSWER NOMBRE
1 MARTIN
2 PABLO
3 MELISA
4 SANDRA
TUPLAS DUPLICADAS
Los lenguajes de consulta formales se basan en la noción matemática de relación
como un conjunto. Por ello nunca aparecen tuplas duplicadas en las relaciones.
En la práctica la eliminación de duplicados lleva bastante tiempo. Por lo tanto SQL
permite duplicados en las relaciones. Así pues en las consultas se listaran todas
Las tuplas inclusive las repetidas.
En aquellos casos en los que queremos forzar la eliminación de duplicados
insertamos la palabra clave DISTINCT después de la cláusula SELECT
EJEMPLO: Listar todos los apellidos no repetidos de la relación persona
SELECT DISTINCT apellido
FROM persona
ASWER APELLIDO
1 MARQUESI
2 SANCHEZ
3 GUISSINI
4 ALEGRATO
5 BRITTE
6 ARDUL
7 MICHELLI
8 MUSACHEGUI
9 SERRAT
OPERACIONES DE CONJUNTO
EJEMPLO: Obtener todos los DNI de los que juegan al fútbol y, además, están en
la lista de la relación persona
SELECT dni
FROM persona
INTERSECT
SELECT dni
FROM jugadores
ANSWER DNI
1 26125988
2 25485699
3 28978845
Por omisión, la operación de union elimina las tuplas duplicadas. Para retener
duplicados se debe escribir UNION ALL en lugar de UNION.
PERTENENCIA A UN CONJUNTO
COMPARACIÓN DE CONJUNTOS
En conjuntos la frase << mayor que algún >> se representa en SQL por
( >SOME ), también podría entenderse esto como << mayor que el menor de >>,
su sintaxis es igual que la del conector IN. SQL también permite las
comparaciones ( >SOME ),( =SOME ) ( > =SOME ), ( <=SOME ) y ( <>SOME ).
También existe la construcción ( >ALL ), que corresponde a la frase << mayor que
todos >>. Al igual que el operador SOME, puede escribirse ( >ALL ),( =ALL )
( >=ALL ), ( <=ALL ) y ( <>ALL ).
Las siguientes funciones escalares realizan una operación sobre un valor de cadena de entrada y
devuelven un valor de cadena o un valor numérico:
Todas las funciones integradas de cadena son deterministas. Esto significa que
devuelven el mismo valor siempre que se llamen con un conjunto determinado de
valores de entrada. Para obtener más información acerca del determinismo de
funciones.
Mostrar: para mostrar los registros se utiliza la instrucción Select. Select * From
comentarios.
Insertar: los registros pueden ser introducidos a partir de sentencias que emplean
la instrucción Insert. Insert Into comentarios (titulo, texto, fecha) Values ('saludos',
'como esta', '22-10-2007')
Borrar: Para borrar un registro se utiliza la instrucción Delete. En este caso
debemos especificar cual o cuales son los registros que queremos borrar. Es por
ello necesario establecer una selección que se llevara a cabo mediante la cláusula
Where. Delete From comentarios Where id='1'.
Actualizar: para actualizar los registros se utiliza la instrucción Update. Como
para el caso de Delete, necesitamos especificar por medio de Where cuáles son
los registros en los que queremos hacer efectivas nuestras modificaciones.
Además, tendremos que especificar cuáles son los nuevos valores de los campos
que deseamos actualizar. Update comentarios Set titulo='Mi Primer Comentario'
Where id='1'.
LENGUAJE DE DEFINICION DE DATOS
Un lenguaje de definición de datos (Data Definition Language, DDL por sus siglas
en inglés) es un lenguaje proporcionado por el sistema de gestión de base de
datos que permite a los usuarios de la misma llevar a cabo las tareas de definición
de las estructuras que almacenarán los datos así como de los procedimientos o
funciones que permitan consultarlos.
Para cada columna tenemos que elegir entre algún dominio definido por el usuario
o alguno de los tipos de datos predefinidos que se describen a continuación:
CREATE TABLE nombre_tabla
( definición_columna
[, definición_columna...]
[, restricciones_tabla]
);
nombre_columna {tipo_datos|dominio} [def_defecto] [restric_col]
Tipos de datos predefinidos
Tipos de datos Descripción
CHARACTER (longitud) Cadenas de caracteres de longitud fija.
CHARACTER VARYING (longitud) Cadenas de caracteres de longitud variable.
TIPOS DE DOMINIOS
n char(n).
n varchar(n)
n int. Entero
n smallint.
n numeric(p,d).
n real, double precision.
n float(n).
n
n La construcción create domain de SQL- 92 permite crear dominios definidos por
el usuario:
create domain nombre-persona char(20)not null
Además de los dominios dados por el tipo de datos predefinidos, el SQL92 nos
Ofrece la posibilidad de trabajar con dominios definidos por el usuario.
Para crear un dominio es necesario utilizar la sentencia CREATE DOMAIN:
Donde restricciones_dominio tiene el siguiente formato:
Tipos de datos predefinidos
Tipos de datos Descripción
BIT (longitud) Cadenas de bits de longitud fija.
BIT VARYING (longitud) Cadenas de bits de longitud variables.
NUMERIC (precisión, escala)
Número decimales con tantos dígitos como indique la precisión y tantos
decimales como indique la escala.
DECIMAL (precisión, escala) Número decimales con tantos dígitos como
indique la precisión y tantos decimales como indique la escala.
INTEGER Números enteros.
SMALLINT Números enteros pequeños.
REAL Números con coma flotante con precisión predefinida.
FLOAT (precisión) Números con coma flotante con la precisión
.
DOUBLE PRECISION Números con coma flotante con más precisión
predefinida que la del tipo REAL.
DATE Fechas. Están compuestas de: YEAR año, MONTH mes, DAY día.
TIME Horas. Están compuestas de HOUR hora, MINUT minutos, SECOND
segundos.
TIMESTAMP Fechas y horas. Están compuestas de YEAR año,
MONTH mes, DAY día, HOUR hora, MINUT minutos, SECOND segundos.
La definición de la tabla:
UNIQUE id (id)
);
CREATE TABLE productos (
);
);
);
);
);
Entre los tipos de datos disponibles para los atributos están los numéricos, los de
cadena de caracteres, los de cadeta de bits, y los de fecha y hora. Los tipos de
datos numéricos incluyen numéros enteros de diversos tamaños (INTEGER o INT,
y SMALLINT) y numéros reales de diversas precisiones (FLOAT, REAL, DOUBLE
PRECISION). Podemos declarar números con formato empleando DECIMAL(i,j) o
DEC(i,j) , o NUMERIC(i,j), donde i, la precisicón, es el número total de digitos
decimales, y j la escala, es el número de dígitos que aparecen después del punto
decimal. El valor por omisión de la escala es cero, el valoe por omisión de la
presición depende de la implementación.
SQL2 cuenta con nuevos tipos de datos para fecha y hora. El tipo de datos DATE
(fecha) tiene diex posiciones, y sus componentes son YEAR, MONTH, DAY (año,
mes,día). y TIME que tiene la hora (HH:MM:SS).
Por ejemplo, podemos tener una tabla para almacenar datos sobre los alumnos matriculados en
una cierta asignatura. Esa tabla puede denominarse "Alumnos" y contendrá registros con, por
ejemplo, los siguientes campos.
Campo Descripción
NIF NIF
Nombre Nombre completo
Apellido1 Primer apellido
Apellido2 Segundo apellido
Edad Edad
Parcial1 Nota obtenida en el primer
parcial
Parcial2 Nota obtenida en el segundo
parcial
Prácticas Nota obtenida en las prácticas
CREACIÓN DE TABLAS
DEFINICIÓN DE CAMPOS
Una vez decididos los campos que necesitamos almacenar en la tabla, pasaremos
a crear la tabla. Para ello seleccionaremos la opción correspondiente en el menú o
en la ventana principal de la base de datos. Access nos mostrará un formulario
para la definición de los campos. Esta ventana se denomina "de diseño de tabla"
frente a la "de vista de tabla" que permitirá más adelante introducir los datos.
Para cada campo que definamos debemos asignarle un nombre, un tipo y una
descripción. Además, para cada tipo existen una serie de atributos de tipo que
permiten describir con precisión el dominio de valores aceptados por el campo.
Cada uno de estos tipos dispone de atributos propios, por ejemplo, la precisión
decimal y el rango de valores en los campos numéricos, frente a la longitud de
cadena de los campos de tipo texto. Pero además existen una serie de atributos
comunes, que se describen a continuación:
FORMATO
Para generar las expresiones que se pueden introducir para estas propiedades,
Access proporciona un asistente que facilita la búsqueda de operadores y
funciones. Para acceder a este asistente basta con pulsar sobre el botón "..." que
aparece a la derecha del editor (cuanto esté disponible). Quizá lo más importante
del generador de expresiones es la posibilidad de explorar visualmente el conjunto
de funciones incorporadas, entre las que destacan:
A la hora de editar los datos en el modo de ver datos, Access, por defecto, utiliza
un editor de texto en el que se pueden escribir los datos. A veces es útil
proporcionar al usuario la posibilidad de elegir elementos de una lista, en vez de
tener que escribirlos de nuevo. Para ello, Access permite seleccionar el tipo de
editor que se va a utilizar para un campo (atributo Búsqueda: mostrar control):
CLAVE PRINCIPAL
En toda tabla suele existir una clave principal (también llamada clave primaria o
clave maestra). Una clave principal es un campo o conjunto de campos cuyos
valores no se repiten y a través de los cuales se identifica de forma única al
registro completo. Es decir, que no hay dos registros en una tabla con la misma
clave. En el ejemplo de los alumnos, el campo NIF puede ser una clave principal,
ya que no habrá dos alumnos con el mismo NIF, y además es posible identificar a
un alumno a través de su NIF. El campo apellido1 no puede ser clave principal
porque puede haber más de un alumno con el primer apellido igual. El conjunto
formado por (aplellido1, apellido2, nombre) podría constituir una clave principal
(suponiendo que no existen dos personas que se llamen exactamente igual), ya
que a través del conjunto podemos identificar de forma única e inequívoca al
registro (al alumno).
GUARDAR EL DISEÑO
Después de introducir todos los campos y definir sus tipos y atributos, podremos
pasar a utilizar la tabla, introduciendo, modificando y utilizando los datos que
puede almacenar. Antes deberemos guardar la definición de la tabla, utilizando la
opción adecuada. Access pedirá un nombre para la nueva tabla.
Para el ejemplo de la tabla de alumnos, los campos definidos pueden tener las siguientes
características:
Campo Tipo Descripción Otros atributos
NIF Cadena (9) NIF requerido; indexado sin repetición;
máscara de entrada: <90.000.000\-L; 0;
"*">; clave principal.
Nombre Cadena (40) Nombre requerido
completo
Apellido1 Cadena (25) Primer apellido requerido
Apellido2 Cadena (25) Segundo requerido
apellido
Edad Numérico Edad >=18 AND <65;
byte
Parcial1 Numérico Nota primer 1 decimal; predeterminado 0; >=0 AND
simple parcial <=10;
Parcial2 Numérico Nota segundo 1 decimal; predeterminado 0; >=0 AND
simple parcial <=10;
Prácticas Numérico Nota prácticas 1 decimal; predeterminado 0; >=0 AND
simple <=2;
INTRODUCCIÓN DE DATOS
Aunque el modo ver datos de una tabla permite al usuario la inserción, borrado y
modificación de los datos contenidos en ella, no es la mejor forma de hacerlo. Lo
más correcto es utilizar un formulario sobre la tabla: un diálogo más atractivo y
cómodo que una simple tabla, y que estudiaremos en su momento.
El modo de ver datos de una tabla presenta una tabla formada por filas y
columnas. Una fila corresponde a un registro y cada columna a un campo.
Inicialmente la tabla estará vacía. Al final de la tabla siempre aparece una fila en
blanco, destinada a la inserción de nuevos registros. Parte de los campos de esta
fila pueden aparecer rellenos con los valores por defecto programados en la
definición de la tabla. En cualquier caso la modificación de cualquier campo de
esta fila hará que automáticamente aparezca una nueva.
Es posible utilizar los comandos cortar, copiar y pegar habituales de Windows, así
como seleccionar filas y columnas completas, con las siguientes pautas:
Para finalizar la edición en una tabla debemos cerrarla. No será necesario guardar
los datos modificados, pues ya está almacenado en disco. Pero si hemos
modificado el formato de presentación (tamaño de celdas, tipos de letra, orden de
presentación o filtros), será necesario volver a guardar la tabla, ya que la
personalización de las opciones de visualización se considera como parte de la
definición de la tabla. Si no guardamos estos cambios, la próxima vez que se abra
la tabla en modo ver datos, éstos se presentarán en el formato anterior.
INTERRELACIONES E INTEGRIDAD
En una base de datos lo habitual es que existan varias tablas relacionadas entre
sí. Por ejemplo, si tenemos una tabla de productos de un almacén y una tabla de
proveedores de productos, es probable que en la de productos exista un campo
que indique cuál es el proveedor que suministró ese producto. En tal caso,
debemos establecer unas restricciones sobre ambas tablas de manera que no
existan productos que se refieran a proveedores que no existen, y no se nos
permita eliminar ningún proveedor al que hagan referencia los productos.
PRODUCTOS PROVEEDORES
ID_producto ID_proveedor
Nombre Nombre
Proveedor Dirección
Cantidad NIF
FAX
EJERCICIO 1
3. PRODUCTOS: Tabla que guardará información sobre los productos que se venden.
4. AEXISTENCIAS: Tabla que guardará información sobre las existencias de los productos en los
almacenes.
5. TEXISTENCIAS: Tabla que guardará información sobre las existencias de los productos en las
tiendas.
6. PEDIDOS: Tabla que guardará información sobre los pedidos que las tiendas realizan a los
almacenes.
TIENDAS
ALMACENES
PRODUCTOS
PEDIDOS
TEXISTENCIAS
En todos los casos existen varios formatos predefinidos de uso habitual; además,
si el formato deseado no coincide con ninguno de los predefinidos, es posible
especificar un formato personalizado mediante el uso de una serie de símbolos.
Las siguientes tablas muestran los identificadores de formatos predefinidos y los
símbolos empleados en campos de distintos tipos.
Valor Descripción
Fecha (Predeterminado) Si el valor es sólo una fecha, no se muestra ninguna
general hora; si el valor es sólo una hora, no se muestra ninguna fecha. Este
valor es una combinación de los valores de Fecha corta y Hora larga.
Ejemplos: 3/4/93, 05:34:00 PM y 3/4/93 05:34:00 PM.
Fecha larga Igual que el valor de Fecha larga del cuadro de diálogo Propiedades de
Configuración regional del Panel de control de Windows. Ejemplo:
Sábado, 3 de Abril de 1993.
Fecha Ejemplo: 3-Abr-93.
mediana
Fecha corta Igual que el valor de Fecha corta del cuadro de diálogo Propiedades de
Configuración regional del Panel de control de Windows. Ejemplo:
3/4/93.Atención: El formato Fecha corta asume que las fechas
comprendidas entre el 1/1/00 y el 31/12/29 son fechas del siglo XXI (es
decir, que los años están entre el 2000 y el 2029). Las fechas
comprendidas entre el 1/1/30 y el 31/12/99 se asume que son fechas
del siglo XX (es decir, que los años están entre 1930 y 1999).
Hora larga Igual que el valor de la ficha Hora del cuadro de diálogo Propiedades
de Configuración regional del Panel de control de Windows. Ejemplo:
5:34:23 PM.
Hora Ejemplo: 5:34 PM.
mediana
Hora corta Ejemplo: 17:34.
Símbolo Descripción
: (dos Separador de hora. Los separadores se establecen en el cuadro de
puntos) diálogo Propiedades de Configuración regional del Panel de control de
Windows.
/ Separador de fecha.
c Igual que el formato predefinido Fecha general.
d Día del mes en uno o dos dígitos numéricos, según sea necesario (1 a
31).
dd Día del mes en dos dígitos numéricos (01 a 31).
ddd Tres primeras letras del día de la semana (Lun a Dom)
dddd Nombre completo del día de la semana (Lunes a Dom).
ddddd Igual que el formato predefinido Hora corta.
dddddd Igual que el formato predefinido Fecha larga.
s Día de la semana (1 a 7).
ss Semana del año (1 a 53).
m Mes del año en uno o dos dígitos numéricos, según sea necesario (1 a
12).
mm Mes del año en dos dígitos numéricos (01 a 12).
mmm Tres primeras letras del mes (Ene a Dic).
mmmm Nombre completo del mes (Enero a Diciembre).
t Fecha mostrada como trimestre del año (1 a 4).
a Número de día del año (1 a 366).
aa Dos últimos dígitos del año (01 a 99).
aaaa Año completo (0100 a 9999).
h Hora en uno o dos dígitos, según sea necesario (0 a 23).
hh Hora en dos dígitos (00 a 23).
n Minuto en uno o dos dígitos, según sea necesario (0 a 59).
nn Minuto en dos dígitos (00 a 59).
s Segundo en uno o dos dígitos, según sea necesario (0 a 59).
ss Segundo en dos dígitos (00 a 59).
ttttt Igual que el formato predefinido Hora larga.
AM/PM Reloj de 12 horas con las letras mayúsculas "AM" o "PM", según sea
apropiado.
am/pm Reloj de doce horas con las letras minúsculas "am" o "pm", según sea
apropiado.
A/P Reloj de doce horas con la letra mayúscula "A" o "P", según sea
apropiado.
a/p Reloj de doce horas con la letra minúscula "a" o "p", según sea
apropiado.
AMPM Reloj de doce horas con el indicador de mañana/tarde apropiado
establecido en el cuadro de diálogo Propiedades de Configuración
regional del Panel de control de Windows.
Valor Descripción
Número (Predeterminado) Muestra el número tal como se introduce.
general
Moneda Utiliza el separador de miles; muestra los números negativos entre
paréntesis; el valor predeterminado de la propiedad
LugaresDecimales es 2.
Fijo Muestra al menos un dígito; el valor predeterminado de la propiedad
LugaresDecimales es 2.
Estándar Utiliza el separador de miles; el valor predeterminado de la propiedad
LugaresDecimales es 2.
Porcentaje Multiplica el valor por 100 y anexa un signo de porcentaje; el valor
predeterminado de la propiedad LugaresDecimales es 2.
Científico Utiliza la notación científica estándar.
Si se utilizan varias secciones pero no se especifica un formato para cada sección, las entradas para
las que no hay ningún formato no mostrarán nada o tomarán como valor predeterminado el
formato de la primera sección.
Símbolo Descripción
, (coma) Separador decimal. Los separadores se establecen haciendo doble clic en
Configuración regional en el Panel de control de Windows.
. (punto) Separador de miles.
0 Marcador de posición de dígitos. Muestra un dígito ó 0.
# Marcador de posición de dígitos. Muestra un dígito o nada.
$ Muestra el carácter literal "$".
% Porcentaje. El valor se multiplica por 100 y se le anexa un signo de
porcentaje.
E– o e– Notación científica con un signo menos (–) junto a los exponentes
negativos y nada junto a los exponentes positivos. Este símbolo debe
utilizarse con otros símbolos, como en el ejemplo 0,00E–00 o 0,00E00.
E+ o e+ Notación científica con un signo menos junto a los exponentes negativos y
un signo más (+) junto a los exponentes positivos. Este símbolo debe
utilizarse con otros símbolos, como en el ejemplo 0,00E+00.
Símbolo Descripción
@ Se necesita un carácter de texto (ya sea un
carácter o un espacio).
& No se necesita un carácter de texto.
< Convertir todos los caracteres a minúsculas.
> Convertir todos los caracteres a mayúsculas.
Los formatos personalizados para los campos Texto y Memo pueden tener hasta
dos secciones: la primera contiene el formato para los campos con texto y la
segunda el formato para los campos con cadenas de longitud cero y valores nulos.
Por ejemplo, para obtener que aparezca la palabra "Ninguno" cuando no exista
ninguna cadena en el campo, puede utilizarse el formato personalizado
@;"Ninguno".
Sí, Verdadero y Activado son equivalentes entre sí, al igual que lo son No, Falso y
Desactivado. Si se especifica un formato predefinido y, al editar los datos, se
introduce un valor equivalente, se mostrará el formato predefinido del valor
equivalente.
Carácter Descripción
0 Dígito (0 a 9, entrada obligatoria, signos más [+] y menos [–] no
permitidos).
9 Dígito o espacio (entrada no obligatoria, signos más y menos no
permitidos).
# Dígito o espacio (entrada no obligatoria; los espacios se muestran en
blanco en el modo Edición, pero se eliminan cuando se guardan los datos;
signos más y menos permitidos).
L Letra (A a Z, entrada obligatoria).
? Letra (A a Z, entrada opcional).
A Letra o dígito (entrada obligatoria).
a Letra o dígito (entrada opcional).
& Cualquier carácter o un espacio (entrada obligatoria).
C Cualquier carácter o un espacio (entrada opcional).
.,:;-/ Marcador de posición decimal y separadores de miles, hora y fecha (el
carácter depende del valor del cuadro de diálogo Propiedades de
Configuración regional en el Panel de control de Windows).
< Hace que todos los caracteres se conviertan a minúsculas.
> Hace que todos los caracteres se conviertan a mayúsculas.
! Hace que la máscara de entrada se muestre de derecha a izquierda, en
lugar de mostrarse de izquierda a derecha. Los caracteres introducidos en
la máscara siempre se rellenan de izquierda a derecha. Puede incluir el
signo de exclamación en cualquier lugar de la máscara de entrada.
\ Hace que el carácter siguiente se muestre como un carácter literal (por
ejemplo, \A se muestra sólo como A).
Ocw.Uoc.Edu/Computer-Science.../P06_M2109_02149.Pdf
Www.Pablin.Com.Ar/Computer/Cursos/Varios/Sql1.Ht
Es.Wikipedia.Org/Wiki/Sql
Www.Htmlpoint.Com/Sql/Sql_07.