mi_guia_sql

14
MI GUIA SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet. SQL se utiliza para crear objetos QueryDef, como el argumento de origen del método OpenRecordSet y como la propiedad RecordSource del control de datos. También se puede utilizar con el método Execute para crear y manipular directamente las bases de datos Jet y crear consultas SQL de paso a través para manipular bases de datos remotas cliente - servidor. COMPONENTES DEL SQL El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. COMANDOS Existen dos tipos de comandos SQL: los DLL que permiten crear y definir nuevas bases de datos, campos e índices. los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. .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

Upload: ascadsemastec

Post on 15-Nov-2015

26 views

Category:

Documents


2 download

DESCRIPTION

Elabora un tutorial de uso de las sentencias del lengua de manipulación de base de datos SQL para elaborar una base de datos.Envía tu archivo a través de este medio.

TRANSCRIPT

MI GUIA SQL

El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet. SQL se utiliza para crear objetos QueryDef, como el argumento de origen del mtodo OpenRecordSet y como la propiedad RecordSource del control de datos. Tambin se puede utilizar con el mtodo Execute para crear y manipular directamente las bases de datos Jet y crear consultas SQL de paso a travs para manipular bases de datos remotas cliente - servidor.

COMPONENTES DEL SQLEl lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.

COMANDOSExisten dos tipos de comandos SQL:los DLL que permiten crear y definir nuevas bases de datos, campos e ndices.los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.

.CREATE

Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, ndice, trigger, funcin, procedimiento o cualquier otro objeto que el motor de la base de datos soporte.

Ejemplo 1 (creacin 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, funcin, 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 ms rpido, 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 clusula WHERE. Si bien, en un principio, esta sentencia parecera ser DML (Lenguaje de Manipulacin 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 transaccin.

Ejemplo 1:

TRUNCATE TABLE TABLA_NOMBRE

Lenguaje de Manipulacin de datos (LMD)

.INSERT

Una sentencia INSERT de SQL agrega uno o ms registros a una (y slo una) tabla en una base de datos relacional.

.Forma bsica

INSERT INTO tabla (columna1,[columna2,]) VALUES (valor1, [valor2,])

Las cantidades de columnas y valores deben ser las mismas. Si una columna no se especifica, le ser asignado el valor por omisin. Los valores especificados (o implcitos) por la sentencia INSERT debern satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error.

Ejemplo:

INSERT INTO agenda.telefonica (nombre, nmero) VALUES (`Roberto Fernndez`, `4886850`)

Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada.

INSERT INTO tabla VALUES (valor1,; [valor2,])

Ejemplo (asumiendo que `nombre` y `nmero` son los nicas columnas de la tabla ` agenda_telefonica`):

INSERT INTO agenda_telefonica VALUES (`Roberto Fernndez, `4886850`)

.Formas avanzadas

.Inserciones en mltiples filas

Una caracterstica de SQL (desde SQL-92) es el uso de constructores de filas para insertar mltiples filas a la vez, con una sola sentencia SQL:

INSERT INTO tabla (columna1, [columna2,]) VALUES (valor1a, [valor16,], (value2a, [value26,]),

Ejemplo (asumiendo ese `nombre` y `nmero `son las nicas columnas en la tabla `agenda_telefonica`):

INSERT INTO agenda_telefonica VALUES (`Roberto Fernndez`, `4886850`), (` Alejandro Sosa`, `4556550`); que poda haber sido realizado por las sentencias.

INSERT INTO agenda_telefonica VALUES (`Roberto Fernndez`, `4886850`);

INSERT INTO agenda_telefonica VALUES (`Alejandro Sosa`, `0`);

Notar que las sentencias separadas pueden tener semntica diferente (especialmente con respecto a los triggers), y puede tener diferente performance que la sentencia de insercin mltiple.

Sistemas de gestin de base de datos.

Los sistemas de gestin de base de datos con soporte SQL ms utilizados son, por orden alfabtico:

.DBZ

.Firebird

.Informix

.Interbase

.MySQL

.Oracle

.Postgre SQL

.SQL Server

.Sysbase ASE

Definicin de Datos

SQL : El lenguaje de definicin de datos (DDL)

El lenguaje de definicin de datos permite:

.Definir y crear una nueva tabla

.Suprimir una tabla que ya no se necesita

.Cambiar la definicin de una tabla existente

.Definir una tabla virtual (o vista) de datos)

.Construir un ndice para hacer ms rpido el acceso a una tabla

.Controlar el almacenamiento fsico de los datos por parte del SGBD

Sentencias sobre Creacin de Tablas

Sintaxis General de la sentencia CREATE TABLE

CREATE TABLE

(nombre_columna 1 tipo [restriccin de columna],

nombre:columnaN tipo [restriccin de columna],

[restriccin_de_tabla])

La sentencia CREATE TABLE se utiliza para crear una tabla dentro de la cual habr columnas que contienen datos y restricciones.

Ms en detalle

CREATE TABLE [PRIMARY KEY]

[REFERENCES][DEFAULT][CHECK>]

| [PRIMARY KEY (< lista columnas>)]

| [FOREIGN KEY ()]

| UNIQUE()][CONSTRAINT ], [2])

| [CHECK (condicin de bsqueda)]

Tipos de datos

Tipo de dato Descripcin

Char (tamao) Almacena datos de tipo carcter de longitud fija, con un mximo de 2000 caracteres)

Varchar2 (tamao) Almacena datos de tipo carcter de longitud variable, con un tamao mximo de 4000

Varchar Actualmente es igual que char

Long Almacena datos de tipo carcter de longitud variable, hasta 2 gigabytes. Solo se permite un Long por tabla. Una columna de tipo Long no puede utilizarse como parte de un ndice. Una funcin almacenada no puede devolver un Long. Las clusulas Where, Group By, Order By, Unique, o Connect By no pueden referenciar a una columna Long.

Blob Es un objeto binario de gran tamao, siendo el tamao mximo 4GB (gigabytes). Normalmente un blob se utiliza para almacenar una imagen datos de voz, o cualquier otro bloque de datos grande no estructurado.

Date Almacena fechas desde el 1 de enero del 4712 a.c. hasta el 31 de diciembre del 4712 d.c.

Integer Un nmero entero que no tiene parte fraccionaria

Normalmente un Integer ser un valor de 32 bits con un rango de -2147483648 a + 2147483647

Smallint Representa un nmero entero que no contiene parte fraccionaria. Su precisin nunca ser mayor que la de un Integer. Es un valor de 16bits entre -32768 y +32767

Number (1,d) Almacena datos de tipo numrico, siendo 1 la longitud y d el nmero de dgitos decimales.

Raw (tamao) Datos binarios puros con una longitud mxima de 2000 bytes. Sirven para almacenar datos de tipo binario como sonido e imgenes digitalizadas.

Restricciones de columnas

NOT NULL. La columna no permitir valores nulos.

CONSTRAINT. Permite asociar un nombre a una restriccin

DEFAULT valor. La columna tendr un valor por defecto. El SBGD utiliza este valor cuando no se especifica un valor para dicha columna,

PRIMARY KEY. Permite indicar que esta columna es la clave primaria.

REFERENCES. Es la manera de indicar que este campo, es clave ajena y hace referencia a una clave candidata de otra tabla. Esta foreign Key es slo de una columna.

UNIQUE. Obliga a que los valores de una columna tomen valores nicos (no puede haber dos filas con igual valor). Se implementa creando un ndice para dicha (s) columna(s)

CHECK (condicin) Permite indicar una condicin que debe de cumplir esa columna.

Restricciones de tablas

PRIMARY KEY (columna1, columna2) Permite indicar las columnas que forman la clave primaria.

FOREIGN KEY (columna1, columna2) REFERENCES NombreTabla

Indica las columnas que son clave ajena referenciando a una clave candidata de otra tabla.

UNIQUE (columna1, columna2) El valor combinado de una o varias columnas es nico.

CHECK (condicin) Permite indicar una condicin que deben cumplir las filas de la tabla.

Puede afectar a varias columnas.

La clusula Foreign Key tiene unas opciones que se explican a continuacin (no soportadas) en su totalidad por Oracle)

-Tratamiento de nulos: Se puede indicar cmo debe tratar el SGBD un valor NULL en una o ms columnas de la clave ajena, cuando lo compare con las filas de la tabla padre.

-Modo de borrado: Para determinar la accin que se debe realizar cuando se elimina una fila referenciada, se debe utilizar una regla de supresin opcional para la relacin (CASCADE, SET NUL, SET DEFAULT, NO ACTION)

Ejemplos

reas (codigo, nombre, departamento) (cdigo es la clave primaria)

departamentos (cdigo_dpto, nombre) (cdigo_dpto es la clave primaria)

La tabla reas tiene una clave ajena

reas. departamento departamentos

CREATE TABLE reas

(

cdigo char (3) not null,

nombre char (55) not null

departamento char (3) not null,

Primary Key (cdigo)

Foreign key (departamento) REFERENCES departamentos

ON DELETE SET NULL ON UPDATE CASCADE);

ON DELETE SET NULL Significa que si se borra algn departamento de la tabla. Departamentos el campo departamento de las filas de la tabla areas que le reverenciaban se pone como Null.

ON UPDATE CASCADE Significa que si se modifica el cdigo_dpto de una fila de la tabla. Departamento, tambin se modificara en las filas de la tabla reas que le referencian.

CREATE TABLE departamentos

(

cdigo_dpto char (3) not null,

nombre char (40) not null,

Primary Key (cdigo_dpto)

);

Renombrar una tabla

RENAME TABLE< nombre tabla existente> TO< nuevo nombre tabla>

Eliminar una tabla de la base de datos

DROP TABLE[CASCADE, RESTRICT]

Ejemplos

DROP TABLE DEPARTAMENTOS CASCADE

(La tabla se borra, as como las posibles restricciones relativas a esta tabla)

DROP TABLE DEPARTAMENTOS RESTRICT

(La tabla se borra slo si no se hace referencia a ella en ninguna restriccin, p.e. en la definicin de claves ajenas.)

Modificar una tabla

ALTER TABLE

La sentencia Alter Table se utiliza para cambiar una tabla existente. Dentro de la tabla podemos Add (aadir) o Drop (borrar) columnas y restricciones (PRIMARY KEY , FORING KEY, UNIQUE, CHECK CONSTRAINT)

{ ADD [NOT NULL]

MODIFY < nombre columna> [DAFAULT| DROP DEFAULT] valor

DROP < nombre columna> [CASCADE| RESTRICT]

ADD [PRIMARY KEY(nombre columna)|

FOREIGN KEY (nombre columna) REFERENCES nombre_tabla | UNIQUE (nombre columna)| CHECK (condicin)

DROP CONSTRAINT nombre_restriccin [CASCADE| RESTRICT]

Ejemplos

Agregar a la tabla reas el campo Responsable de tipo char (30)

alter table reas

ADD responsable char (30) not null;

Modificar el campo nombre de la tabla departamentos a char (50)

alter table departamentos

MODIFY nombre char (50);

Sentencias sobre sinnimos

Un sinnimo es un nombre que puede utilizarse como sustituto o alias del nombre real de una tabla. Puede ser til para simplificar algunas expresiones.

Crear un sinnimo

CREATE SYNONYMFOR

Create synonym are for areas;

Create synonym dep for departamentos;

Borrar un sinnimo

DROP SYNONYM < nombre sinnimo>

Drop synonym are

22.2.15. Gestin de Dominios (SI en SQL - NO en ORACLE)

Los dominios se usan como tipos de datos en la definicin de columnas al crear tablas. Permiten definir los valores aceptados en las columnas, as como la definicin de valore por defecto.

Creacin de Dominios:

CREATE DOMAIN < nombre Dominio>AS

[DEFAULT < valor defecto>]

[

{[CONSTRAINT < nombre restriccin>] CHECK (< condicin check> )}];

Ejemplos:

CREATE DOMAIN Seisdigitos AS CHAR (6) DEFAULT `000000`;

CREATE DOMAIN Seisdigitos AS CHAR (6) DEFAULT `000000` CHECK (VALUE IS NOT NULL) CHECK (CHAR_LENGTH (TRIM (VALUE))=6 AND VALUE

BETWEEN `000000`AND `500000`);

Borrado de Dominios:

DROP DOMAIN

Modificado de Dominios:

ALTER DOMAIN < Nombre Dominio> { SET DEFAULT < Valor Defecto | DROP DEFAULT}

ALTER DOMAIN < Nombre Dominio> DROP CONSTRAINT < Nombre Restriccin < [RESTRICT | CASCADE]