Sei sulla pagina 1di 10

1.

COMANDOS DE SQL PARA ACCES

CONCEPTO
El SQL (Structured query language), lenguaje de consulta estructurado, es un
lenguaje surgido de un proyecto de investigacin de IBM para el acceso a bases
de datos relacionales. Actualmente se ha convertido en un estndar de lenguaje
de bases de datos, y la mayora de los sistemas de bases de datos lo soportan,
desde sistemas para ordenadores personales, hasta grandes ordenadores.

Por supuesto, a partir del estndar cada sistema ha desarrollado su propio SQL
que puede variar de un sistema a otro, pero con cambios que no suponen ninguna
complicacin para alguien que conozca un SQL concreto, como el que vamos a
ver aqu corespondiente al Access2000.
Como su nombre indica, el SQL nos permite realizar consultas a la base de datos.
Pero el nombre se queda corto ya que SQL adems realiza funciones de
definicin, control y gestin de la base de datos. Las sentencias SQL se clasifican
segn su finalidad dando origen a tres lenguajes o mejor dicho sublenguajes:
el DDL (Data Description Language), lenguaje de definicin de datos,
incluye rdenes para definir, modificar o borrar las tablas en las que se
almacenan los datos y de las relaciones entre estas. (Es el que ms varia
de un sistema a otro)
el DCL (Data Control Language), lenguaje de control de datos, contiene
elementos tiles para trabajar en un entorno multiusuario, en el que es
importante la proteccin de los datos, la seguridad de las tablas y el
establecimiento de restricciones en el acceso, as como elementos para
coordinar la comparticin de datos por parte de usuarios concurrentes,
asegurando que no interfieren unos con otros.
el DML (Data Manipulation Language), lenguaje de manipulacin de datos,
nos permite recuperar los datos almacenados en la base de datos y
tambin incluye rdenes para permitir al usuario actualizar la base de datos
aadiendo nuevos datos, suprimiendo datos antiguos o modificando datos
previamente almacenados.

SINTAXIS
DROP INDEX

Sintaxis DROP INDEX para MySQL

ALTER TABLE nombretabla


DROP INDEX nombreindice

Sintaxis DROP INDEX para DB2 y ORACLE

DROP INDEX nombreindice

Sintaxis DROP INDEX para ACCESS

DROP INDEX nombreindice


ON nombretabla

Sintaxis DROP INDEX para SQLSERVER

DROP INDEX nombretabla.nombreindice

DROP TABLE

Se utiliza DROP TABLE para borrar definitivamente una tabla

DROP TABLE nombretabla

DROP DATABASE

Se utiliza para borrar una base de datos definitivamente.

DROP DATABASE nombrebasededatos

EJEMPLO

ON DUPLICATE KEY UPDATE, EQUIVALENTE EN ACCESS SQL


La sentencia On duplicate Key Update (MySql), permite insertar o actualizar registros,
dependiendo de si existe o no la clave en la tabla. Me parece algo sumamente til. Veamos como
implementar algo parecido en Access, y para ello nada ms elocuente que un ejemplo :

Supongamos que tenemos una tabla donde anotamos el estoc de productos :

Create Table Stocs (IdArticulo Long Primary Key, Cantidad Single);


Cuando recibimos un nuevo pedido, necesitamos anotar la cantidad del mismo en la tabla. Pero
para no tener que preocuparnos en buscar si IdArticulo existe, en cuyo caso empleariamos una
sentencia Insert, o en el supuesto contrario usariamos Update, podemos utilizar una sql como
esta :

Update Stocs
Right Join
(Select Top 1 [IdArticulo ?] As IdArticulo From MSysObjects) As T
On Stocs.IdArticulo = T.IdArticulo
Set Stocs.IdArticulo = T.IdArticulo, Stocs.Cantidad = Nz(Stocs.Cantidad,0) + 1;

... utilizamos una tabla derivada con orgen en MSysObjects para obtener un nico registro con el
valor que definamos en el parmetro [IdArticulo ?] . Al realizar un Update, teniendo las dos tablas
relacionadas con Right Join, si en la tabla de la izquierda no hay registro coincidente con la de la
derecha, el efecto prctico ser la insercin de un nuevo registro, mientras que en caso
contrario, la sentencia Update actuar de la forma esperada. Para modificar o insertar valores en
el resto de campos, podemos utilizar valores o expresiones segn nos convengan en la clausula
Set. En este caso y a ttulo de ejemplo, incrementaremos en una unidad el valor del campo
Cantidad (si el registro todavia no existe el valor asignado ser 1).

SERIES NUMRICAS (SIN TABLA NUMS)


El 23 de Abril de 2008, publiqu este artculo : http://sqlraipon.blogspot.com/2008/04/series-
numricas.html, donde se explica como obtener, una consulta con una secuencia de nmeros
continua (de 1 a 100, de 1 a 1000, etc) a partir de una tabla ('Nums') con solo 10 registros. Dichas
consultas resultan de gran utilidad y las he empleado en muchos de los ejemplos de este blog.

Pues bien, es posible obtener los mismos resultados sin necesidad de la tabla 'Nums' :

-- Para bases de datos con formato Access 2000 :-- En una base de datos nueva, en la que todavia
no se haya creado
-- ningn objeto, la tabla del sistema MSysAccessObjects contiene
-- 4 registros, con valores de 0 a 3 en el campo Id.
-- Es de resaltar, que en esta tabla jams se elimina ningn registro,
-- cuando menos, la serie de valores del campo Id nunca presenta
-- discontinuidades.
-- Por tanto, esta consulta de unin nos asegura una serie numrica
-- de 10 lneas con valores entre 0 y 9, sea cual sea el estado de la
-- base de datos (nueva o con mltiples objetos).

Select Id As Num From MSysAccessObjects Where Id <= 3


Union All
Select Id + 4 As Num From MSysAccessObjects Where Id <=3
Union All
Select Id + 8 As Num From MSysAccessObjects Where Id < 2;

-- Para bases de datos en formato 2003 o 2007. Hay que tener en cuenta que la
-- tabla MSysAccessObjects no existe, por lo tanto emplearemos otra tabla del
-- sistema (MSysObjects). Es de destacar que en una base de datos nueva, estn
-- siempre presentes cuatro registros (entre otros) con los siguientes Id :
-- 2, 3, 4 y 5. Por lo tanto, esta consulta de unin nos asegura igualmente 10
-- registros, con valores de 0 a 9 :

Select Id - 2 AS Num From msysobjects Where Id Between 2 And 5


Union All
Select Id + 2 AS Num From msysobjects Where Id Between 2 And 5
Union All
Select Id + 6 AS Num From msysobjects Where Id Between 2 And 3;

A partir de aqu, solo tenemos que guardar una de las dos consultas con el nombre Nums, y ya
podemos emplear las consultas del enlace arriba citado sin necesidad de tener en la base de
datos la tabla Nums.

BIBLIOGRAFIA
Bases de Datos, Diseo, Implementacion y Administracion- Escrito por Carlos
Coronel

http://www.aulaclic.es/sql/t_1_1.htm
http://infopuc.pucp.edu.pe/diseno-y-manejo-de-base-de-datos-con-ms-access/
http://www.mvp-access.es/buho/novedades.htm
https://empiezoinformatica.wordpress.com/category/office/access/
http://www.formacionprofesional.info/tutorial-microsoft-access-2016/

2. TIPO DE DATOS PARA ACCES Y SQL PARA ACCES

TIPOS DE DATOS DISPONIBLES EN ACCESS


Un tipo de datos determina como va a ser el almacenamiento de datos en un
campo de una tabla, y esto va a depender de la funcin que quieres que cumpla
cada dato en particular. Tenemos que analizar muy bien la escogencia del tipo de
datos para cada campo, y de las relaciones que pueda tener con otras tablas, ya
que el cambiarlo cuando la base de datos entre en produccin puede
representarte perdida de datos sobre todo en aquellos que sean claves
principales.

Las opciones que disponemos en Microsoft Access en cuanto a tipo de datos son:
1. Texto: se utilizar para introducir datos que incluyan texto, valores numricos
que no requieran clculos matemticos o combinacin de texto y nmeros. Acepta
un mximo de 255 caracteres.
Hay dos tipos de texto, texto corto y texto largo (Memo), la diferencia es que el
texto largo no dispone de tamao del campo, es decir, se puede escribir mas de
255 caracteres. Acepta hasta 63.999 caracteres, ideal para descripciones muy
completas.

Tipo de datos: Texto

2. Nmero: Datos numricos que vayan a ser utilizados para realizar clculos
matemticos.

Tipo de datos: Nmero

3. Fecha/Hora: es importante utilizar este tipo para introducir datos de fecha, del
ao 100 al ao 9999. Para que no ocupe mucho espacio en nuestra base de
datos, recomiendo que utilicis en formato (dentro de propiedades del campo) la
fecha corta. Y que le seleccionis una mascara de entrada (propiedades del
campo).
Tipo de datos: Fecha/Hora

4. Moneda: ideal para datos numricos que representen valores en moneda, que
vayan a utilizarse para clculos matemticos y que necesitemos que lo preceda el
signo de moneda. Acepta hasta 15 dgitos para la parte entera del nmero y hasta
4 dgitos en su parte decimal, se recomienda utilizar en datos donde se requieran
hasta 4 dgitos decimales.

Tipo de datos: Moneda

5. Autonumeracin: el valor que contenga este campo se va a ir incrementando


cada vez que se agregue un registro a la tabla que lo contenga, luego este tipo de
datos es utilizado para llevar una secuencia de los registros ingresados a una
tabla. No permite modificaciones este tipo de datos.

Tipo de datos: Autonumeracin

6. Si/No: ideal para seleccionar registros de acuerdo con este criterio. Tambin
podemos utilizarlo para Verdadero/Falso y Activado/Desactivado (Propiedades del
campo -> Formato)

Tipo de datos: Si/No

7. Objeto OLE: Este tipo de datos es usado para enlazar o adjuntar archivos
creados en otros programas, como pueden ser archivos word, excel, etc. Solo
admite un solo archivo y el archivo ocupa espacio en la base de datos.
Tipo de datos: Objeto OLE
8. Hipervnculo: es usado para campos que contienen enlaces a pginas web,
direcciones de correo, o archivos que abren con un navegador web.

Tipo de datos: Hipervnculo

9. Datos adjuntos: a diferencia del tipo Objeto OLE, cada documento, grfico,
hoja de clculo, etc que se adjunte a un campo de este tipo se ejecutar en el
programa que fue creado, sin requerir ms espacio adicional en la base de datos
del que necesita el solo enlace. Admite varios archivos.

Tipo de datos: Datos adjuntos

10. Calculado: Este tipo de datos es nuevo con Microsoft Access a partir de la
versin 2010, el cual usa datos en la misma tabla para hacer clculos.
Tipo de datos: Calculado

11. Asistente para bsquedas: te permite buscar datos en otra tabla o en una
lista de valores predeterminada para el campo.
Tipo de datos: Asistente para bsquedas.

TIPOS DE DATOS SQL

Los tipos de datos SQL del motor de base de datos de Microsoft Access estn
formados por 13 tipos de datos principales definidos por el motor de base de datos
Microsoft Jet y varios sinnimos vlidos reconocidos para estos tipos de datos.
En la siguiente tabla, se enumeran los tipos de datos principales. Los sinnimos se
identifican en Palabras reservadas SQL del motor de base de datos de Microsoft
Access.

Tamao de
Tipo de datos Descripcin
almacenamiento
En este tipo de campo se puede almacenar
cualquier tipo de datos. No se realiza
ninguna conversin de los datos (por
BINARY 1 byte por carcter ejemplo, a texto). La forma en que se
especifiquen los datos en un campo binario
determina cmo aparecern en los
resultados.

Valores S y No, y campos que contienen


BIT 1 byte
uno de dos valores posibles.

TINYINT 1 byte Valor entero entre 0 y 255.

Entero con ajuste de escala entre


MONEY 8 bytes 922.337.203.685.477,5808 y
922.337.203.685.477,5807.

DATETIME (vea Valor de fecha u hora entre los aos 100 y


8 bytes
DOUBLE) 9999.

Nmero de identificacin nico que se usa


UNIQUEIDENTIFIER 128 bits
con llamadas a procedimientos remotos.
Valor de coma flotante de precisin nica
con un intervalo desde 3,402823E38
REAL 4 bytes hasta 1,401298E-45 para valores
negativos; desde 1,401298E-45 hasta
3,402823E38 para valores positivos; y 0.

Valor de coma flotante de precisin doble


con un intervalo desde
1,79769313486232E308 hasta
FLOAT 8 bytes 4,94065645841247E-324 para valores
negativos; desde 4,94065645841247E-324
hasta 1,79769313486232E308 para valores
positivos; y 0.
Entero corto entre 32.768 y 32.767. (Vea
SMALLINT 2 bytes
las Notas)

Entero largo entre 2.147.483.648 y


INTEGER 4 bytes
2.147.483.647. (Vea las Notas)

Tipo de datos numrico exacto que


contiene valores desde 1028 - 1 hasta -
1028 - 1. Puede definir la precisin (1 - 28)
DECIMAL 17 bytes
y la escala (0 - precisin definida). La
precisin y escala predeterminadas son 18
y 0, respectivamente.
2 bytes por
TEXT carcter (vea las De cero a un mximo de 2,14 gigabytes.
Notas)

Segn De cero a un mximo de 2,14 gigabytes. Se


IMAGE
corresponda usa para objetos OLE.

2 bytes por
CHARACTER carcter (vea las De cero a 255 caracteres.
Notas)

Potrebbero piacerti anche