Vous êtes sur la page 1sur 17

REPBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA DE LA
FUERZA ARMADA NACIONAL BOLIVARIANA.
NCLEO YARACUY- EXTENCIN NIRGUA

El lenguaje SQL de las


Bases de Datos
Relacionales

FACILITADOR:

EMPRENDENDOR:
ING. EDGARDO MOLINA
LUZMARY RODRIGUEZ

BASE DE DATOS.

5to ING.SISTEMA
Mayo, 2016

Lenguaje de Definicin De Datos DDL


El DDL (Data Definition Language, o Data Description Language segn
autores), es la parte del SQL dedicada a la definicin de la base de datos,
consta de sentencias para definir la estructura de la base de datos. Por este
motivo estas sentencias sern utilizadas normalmente por el administrador
de la base de datos.
La definicin estructurada de la base de datos incluye tanto la creacin
inicial de los diferentes objetos que formaran la base de datos, como el
mantenimiento de esa estructura. Las sentencias de DDL utilizan nos verbos
que se repiten para los distintos objetos. Por ejemplo para crear un objeto
nuevo el verbo ser CREATE y a continuacin el tipo de objeto a crear.
CREATE DATABASE es la sentencia para crear de datos, CREATE TABLE nos
permite crear una tabla, CREATE INDEX crear un nuevo ndice Para
eliminar un objeto utilizaremos el verbo DROP (DROP TABLE, DROP
INDEX)Y para modificar algo de la definicin de un objeto ya creado
utilizamos el verbo ALTER
(ALTER TABLE, ALTER
INDEX).
Los objetos que veremos en este tema son:
*Base de Datos
*Tablas
*Vistas
*ndices
Como ya hemos comentado, las sentencias de DDL estn ms orientadas al
administrador de la base de datos ,es el que ms las va a utilizar, el
programador tiene que conocer cuestiones relativas a la estructura interna
de una base de datos, pero no tiene que ser experto en ello por lo que el
estudio del tema se centrara en las sentencias y sobre todo en las clausulas
que pensamos pueden ser tiles a un programador y no entraremos en
mucho detalle en cueto a la estructura fsica de la base de datos y en la
administracin de la misma-

Estructura Interna
Como ya vimos el en el primer tema, las bases de datos de SQL Server
2005 utilizan tres tipos de archivos:

Archivos de datos principales (.mdf): Archivo requerido.

Archivos de datos secundarios (.ndf): Archivo opcional.


Archivos de registro (.Idf): Archivo requerido.

Y se deben situar en sistemas de archivos FAT o NTFS. Se NTFS

CREATE DATABASE
CREATE DATABASE nbBasedeDatos
[ ON
[PRIMARY ] [ <esp_fichero> [ ,...n ]
[ , <grupo> [ ,...n ] ]
[ LOG ON {

< esp_fichero > [ ,...n ] } ]

]
[ COLLATE nbintercalacion]
[ WITH <external_access_option> ]
]
[;]
Como vemos la instruccin mnima es:
CREATE DATABASE nbBasedeDatos
nbBasedeDatos: Es el nombre de la nueva base de datos. Los nombres de base de
datos deben ser nicos en una instancia de SQL Server y cumplir las reglas de los
identificadores. Puede tener 128 caracteres como mximo, excepto en un caso que
veremos ms adelante.
Con la clusula ON especificamos los ficheros utilizados para almacenar los archivos
de datos.
[ ON
[ PRIMARY ] [

<esp_fichero> [ ,...n ]

[ , <grupo> [ ,...n ] ]
<esp_fichero> ::=
(
NAME = nbfichero_logico ,

FILENAME = 'nbfichero_fisico'
[ , SIZE = tamao [ KB | MB | GB | TB ] ]
]

[ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED }


[ , FILEGROWTH = incremento_crecimiento [ KB | MB | GB | TB

| % ]

nbfichero lgico es el nombre que se utiliza para hacer referencia al archivo


en todas las instrucciones Transact-SQL . El nombre de archivo lgico tiene
que cumplir las reglas de los identificadores de SQL Server y tiene que ser
nico entre los nombres de archivos lgicos de la base de datos.
nbfichero_fisico es el nombre del archivo fsico que incluye la ruta de acceso
al directorio.Debe seguir las reglas para nombres de archivos del sistema
operativo.
Con la clausula SIZE indicamos el tamao original del archivo.los archivos de
SQL Server 2005 pueden crecer automticamente a partir del tamao
originalmente especificado. Con FILEGROWTH se puede especificar n
incremento de crecimiento y cada vez que se llena el archivo, el tamao
aumentara en la cantidad especificada.
Cada archivo tambin puede tener un tamao mximo especificado con MAXSIZE.Si no se
especifica un tamao mximo, el archivo puede crecer hasta utilizar todo el espacio disponible
en el disco. Esta caracterstica es especialmente til cuando SQL Server se utiliza como una
base de datos incrustada en una aplicacin para que el usuario no dispone fcilmente de
acceso de un administrado del sistema. El usuario puede dejar que los archivos crezcan
automticamente cuando sea necesario y evitar as las tareas administrativas de supervisar la
cantidad de espacio libre en la base de datos y asignar ms espacio manualmente.

Pre-compilacin y ejecucin de un modulo SQL


La sentencia INSERT se utiliza para aadir nuevos registros a las tablas. Su sintaxis es la
siguiente:
INSERT INTO nombre_tabla
(columna1, columna2,..., columnaN)
VALUES (valor1, valor2, ..., valorN)
En la sintaxis vemos que introducimos el nombre de la tabla en la que vamos a
aadir las
siguientes valores para las columnas que especificamos entre parntesis. La lista de valores
que
Vamos a introducir se colocan entre parntesis despus de la sentencia VALUES. El orden
debe
corresponder con el de las columnas. En caso de introducir un valor no vlido en alguna de las

Columnas se produce un error y el registro no se aade.


En la segunda sentencia no hemos introducido las columnas en las que vamos a incluir los
datos,
ya que si vamos a aadir valores para todas las columnas de un registro, no es necesario
indicar
las columnas.
Observa que los valores de cadena se introducen con comilla simple y no dobles.
Debes recordar que si una columna es autoincrementar no debemos especificar el valor
aqu
Tampoco.
Si todo ha ido correctamente, SQL Server nos indica el nmero de columnas que se han
visto.

LENGUAJE DE MANIPULACION DE DATOS DML

Lenguaje de Manipulacin de Datos (Data Manipulation Language, DML) es un lenguaje


proporcionado por los sistemas gestores de bases de datos que permite a los usuarios de la
misma llevar a cabo las tareas de consulta o modificacin de los datos contenidos en las Bases
de Datos del Sistema Gestor de Bases de Datos.

El lenguaje de manipulacin de datos ms popular hoy da es SQL, usado para recuperar y


manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados
por bases de datos IMS/DL1, CODASYL u otras.

Elementos del lenguaje de manipulacin de datos


Select

La sintaxis bsica de select es la siguiente utilizando el estndar de SQL:

Select columna from tabla;

Donde se sustituye la palabra columna por el nombre del campo a consultar y la palabra tabla
por el nombre de la tabla que contiene el campo mencionado.

Insert
La estructura bsica para la sentencia insert utilizando el estndar de SQL es la siguiente:

Insert into usuario (nombre, apellidos, edad, carrera) values ("Martn", "Bastida Godnez",
"23", "Ingeniera en TI");

Tomando como ejemplo si se tuviera una tabla llamada usuarios con los campos de tipo cadena
de caracteres (nombre, apellidos, edad, carrera), donde se inserta los valores que se
encuentran en despus de la palabra values, los valores se insertan en el orden
correspondiente a como se hizo la llamada de los campos, los valores van separados por
comas, las comillas dobles indican que se est insertando datos de tipo cadena de caracteres.

Delete
Para eliminar los registros de una tabla usamos el comando "delete":

delete from usuarios;

La ejecucin del comando indicado en la lnea anterior borra TODOS los registros de la tabla.
Si queremos eliminar uno o varios registros debemos indicar cul o cules, para ello utilizamos
el comando "delete" junto con la clausula "where" con la cual establecemos la condicin que
deben cumplir los registros a borrar. Por ejemplo, queremos eliminar aquel registro cuyo
nombre de usuario es 'Martn':

delete from usuarios where nombre='Martn';

Si solicitamos el borrado de un registro que no existe, es decir, ningn registro cumple con la
condicin especificada, no se borrarn registros, pues no encontr registros con ese dato.
Update
Para modificar uno o varios datos de uno o varios registros utilizamos "update" (actualizar).
Por ejemplo, en nuestra tabla "usuarios", queremos cambiar los valores de todas las claves, por
"RealMadrid":

update usuarios set clave='RealMadrid';

Utilizamos "update" junto al nombre de la tabla y "set" junto con el campo a modificar y su
nuevo valor.
El cambio afectar a todos los registros.
Podemos modificar algunos registros, para ello debemos establecer condiciones de seleccin
con "where".
Por ejemplo, queremos cambiar el valor correspondiente a la clave de nuestro usuario llamado
'Martn', queremos como nueva clave 'Boca', necesitamos una condicin "where" que afecte
solamente a este registro:

update usuarios set clave='Boca'


where nombre='Martn';

Si no encuentra registros que cumplan con la condicin del "where", ningn registro es
afectado.
Las condiciones no son obligatorias, pero si omitimos la clusula "where", la actualizacin
afectar a todos los registros.
Tambin se puede actualizar varios campos en una sola instruccin:

update usuario set nombre='MarceloDuarte', clave='Marce'


where nombre='Marcelo';

Para ello colocamos "update", el nombre de la tabla, "set" junto al nombre del campo y el
nuevo valor y separado por coma, el otro nombre del campo con su nuevo valor.

SQL
SQL (por sus siglas en ingls Structured Query Language) es un lenguaje declarativo de
acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en
ellas. Una de sus caractersticas es el manejo del lgebra y el clculo relacional que permiten
efectuar consultas con el fin de recuperar, de forma sencilla, informacin de bases de datos, as
como hacer cambios en ellas.
Los orgenes de SQL estn ligados a los de las bases de datos relacionales. En 1970 E. F.
Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a
los datos basado en el clculo de predicados. Basndose en estas ideas, los laboratorios
de IBM definieron el lenguaje SEQUEL (Structured English Query Language) que ms tarde fue
ampliamente implementado por el sistema de gestin de bases de datos (SGBD) experimental
System R, desarrollado en 1977 tambin por IBM. Sin embargo, fue Oracle quien lo introdujo
por primera vez en 1979 en un producto comercial.
El SEQUEL termin siendo el predecesor de SQL, que es una versin evolucionada del
primero. SQL pasa a ser el lenguaje por excelencia de los diversos sistemas de gestin de
bases de datos relacionales surgidos en los aos siguientes y fue por fin estandarizado en
1986 por el ANSI, dando lugar a la primera versin estndar de este lenguaje, "SQL-86" o
"SQL1". Al ao siguiente este estndar es tambin adoptado por ISO.
Sin embargo, este primer estndar no cubra todas las necesidades de los desarrolladores e
inclua funcionalidades de definicin de almacenamiento que se consider suprimirlas. As que,
en 1992, se lanz un nuevo estndar ampliado y revisado de SQL llamado "SQL-92" o "SQL2".

En la actualidad SQL es el estndar de facto de la inmensa mayora de los SGBD comerciales.


Y, aunque la diversidad de aadidos particulares que incluyen las distintas implementaciones
comerciales del lenguaje es amplia, el soporte al estndar SQL-92 es general y muy amplio.
El ANSI SQL sufri varias revisiones y agregados a lo largo del tiempo
Ao Nombre
1986 SQL-86

Alias
SQL-87

1989 SQL-89
1992 SQL-92

Comentarios
Primera publicacin hecha por ANSI. Confirmada por ISO en 1987.
Revisin menor.

SQL2

Revisin mayor.

1999 SQL:1999 SQL2000 Se agregaron expresiones regulares, consultas recursivas (para


relaciones jerrquicas), triggers y algunas caractersticas orientadas
a objetos.
2003 SQL:2003

Introduce algunas caractersticas de XML, cambios en las funciones,


estandarizacin del objeto sequence y de las columnas
autonumricas.

2005 SQL:2005

ISO/IEC 9075-14:2005 Define las maneras en las cuales SQL se


puede utilizar conjuntamente con XML. Define maneras de importar
y guardar datos XML en una base de datos SQL, manipulndolos
dentro de la base de datos y publicando el XML y los datos SQL
convencionales en forma XML. Adems, proporciona facilidades que
permiten a las aplicaciones integrar dentro de su cdigo SQL el uso
de XQuery, lenguaje de consulta XML publicado por el W3C (World
Wide Web Consortium) para acceso concurrente a datos ordinarios
SQL y documentos XML.

2008 SQL:2008

Permite el uso de la clusula ORDER BY fuera de las definiciones


de los cursores. Incluye los disparadores del tipo INSTEAD OF.
Aade la sentencia TRUNCATE

SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los
sistemas relacionales y permite as gran variedad de operaciones. 4

Es un lenguaje declarativo de "alto nivel" o "de no procedimiento" que, gracias a su fuerte base
terica y su orientacin al manejo de conjuntos de registros y no a registros individuales
permite una alta productividad en codificacin y la orientacin a objetos. De esta forma, una
sola sentencia puede equivaler a uno o ms programas que se utilizaran en un lenguaje de
bajo nivel orientado a registros. SQL tambin tiene las siguientes caractersticas:

Lenguaje de definicin de datos: El LDD de SQL proporciona comandos para la


definicin de esquemas de relacin, borrado de relaciones y modificaciones de los
esquemas de relacin.

Lenguaje interactivo de manipulacin de datos: El LMD de SQL incluye lenguajes


de consultas basado tanto en lgebra relacional como en clculo relacional de tuplas.

Integridad: El LDD de SQL incluye comandos para especificar las restricciones de


integridad que deben cumplir los datos almacenados en la base de datos.

Definicin de vistas: El LDD incluye comandos para definir las vistas.

Control de transacciones: SQL tiene comandos para especificar el comienzo y el final


de una transaccin.

SQL incorporado y dinmico: Esto quiere decir que se pueden incorporar


instrucciones de SQL en lenguajes de programacin como: C++, C, Java, PHP, Cobol,
Pascal y Fortran.

Autorizacin: El LDD incluye comandos para especificar los derechos de acceso a las
relaciones y a las vistas.

Tipos de Datos
Algunos de los tipos de datos bsicos de SQL son:

Varchar: Recibe cadena de palabras compuestas de letras, nmeros y caracteres


especiales.

Date: una fecha de calendario que contiene el ao (de cuatro cifras), el mes y el da.

Time: La hora del da en horas minutos segundos (el valor predeterminado es 0).

Datetime: la combinacin de Date y Time.

Optimizacin]

Como ya se dijo antes, y suele ser comn en los lenguajes de acceso a bases de datos de alto
nivel, SQL es un lenguaje declarativo. O sea, que especifica qu es lo que se quiere y no cmo
conseguirlo, por lo que una sentencia no establece explcitamente un orden de ejecucin.
El orden de ejecucin interno de una sentencia puede afectar seriamente a la eficiencia del
SGBD, por lo que se hace necesario que ste lleve a cabo una optimizacin antes de su
ejecucin. Muchas veces, el uso de ndices acelera una instruccin de consulta, pero ralentiza
la actualizacin de los datos. Dependiendo del uso de la aplicacin, se priorizar el acceso
indexado o una rpida actualizacin de la informacin. La optimizacin difiere sensiblemente en
cada motor de base de datos y depende de muchos factores.
Existe una ampliacin de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el
acceso a bases de datos difusas, usando la lgica difusa. Este lenguaje ha sido implementado
a nivel experimental y est evolucionando rpidamente.

Tipos de Datos
Algunos de los tipos de datos bsicos de SQL son:

Varchar: Recibe cadena de palabras compuestas de letras, nmeros y caracteres


especiales.

Date: una fecha de calendario que contiene el ao (de cuatro cifras), el mes y el
da.

Time: La hora del da en horas minutos segundos (el valor predeterminado es 0).

Datetime: la combinacin de Date y Time.

Optimizacin
Como ya se dijo antes, y suele ser comn en los lenguajes de acceso a bases de datos de alto
nivel, SQL es un lenguaje declarativo. O sea, que especifica qu es lo que se quiere y no cmo
conseguirlo, por lo que una sentencia no establece explcitamente un orden de ejecucin.
El orden de ejecucin interno de una sentencia puede afectar seriamente a la eficiencia del
SGBD, por lo que se hace necesario que ste lleve a cabo una optimizacin antes de su
ejecucin. Muchas veces, el uso de ndices acelera una instruccin de consulta, pero ralentiza
la actualizacin de los datos. Dependiendo del uso de la aplicacin, se priorizar el acceso
indexado o una rpida actualizacin de la informacin. La optimizacin difiere sensiblemente en
cada motor de base de datos y depende de muchos factores.

Existe una ampliacin de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el
acceso a bases de datos difusas, usando la lgica difusa. Este lenguaje ha sido implementado
a nivel experimental y est evolucionando rpidamente.

Expresiones de consulta en SQL

Una expresin de consulta combina muchos operadores de consulta diferentes en una


sintaxis nica. Entity SQL proporciona varios tipos de expresiones, incluidos los
siguientes: literales, parmetros, variables, operadores, funciones, operadores de conjuntos,
etc. Para obtener ms informacin, consulta Referencia de Entity SQL.
Clusulas
Una expresin de consulta se compone de una serie de clusulas que aplican operaciones
sucesivas a una coleccin de objetos. Se basan en las mismas clusulas que se encuentran en

una instruccin SELECT estndar de SQL: SELECT, FROM, WHERE, GROUP BY, HAVING y
ORDER BY.
mbito
Los nombres que se definen en la clusula FROM se incluyen en el mbito de FROM en orden
de aparicin, de izquierda a derecha. En la lista de JOIN, las expresiones pueden hacer
referencia a los nombres que se definieron en la lista anteriormente. Las propiedades pblicas
de los elementos identificados en la clusula FROM no se agregan al mbito de FROM.
Siempre se debe hacer referencia a ellas mediante el nombre completo del alias. Normalmente,
todas las partes de la expresin SELECT se consideran dentro del mbito de FROM.

EJEMPLOS Y EJERCICIO GEOMETRIA DEL SQL

El tipo de datos espacial plano geometry representa los datos en un sistema de coordenadas
euclidiano (plano). Implementan este tipo como un tipo de datos en SQL Server de Common
Language Runtime (CLR).
El tipo geometry est predefinido y est disponible en cada base de datos. Puede crear
columnas de tabla de tipo geometry y operar con los datos geometry de la misma manera que
con los dems tipos CLR.
El tipo de datos geometry (plano) admitido por SQL Server cumple con las caractersticas
simples de Geospatial Consortium (OGC) para la especificacin SQL versin 1.1.0.
Para obtener ms informaciones de OGC, vea lo siguiente:

Especificaciones de OGC, Acceso a caractersticas simples, Parte 1 - Arquitectura


comn

Especificaciones de OGC; Acceso a caractersticas simples, Parte 2 - Opciones de


SQL

SQL Server admite un subconjunto del estndar GML 3.1 existente que se define en el
esquema siguiente: g tag is not supported!!!!

Las bases de datos son una alternativa a los archivos shapes, las cuales tienen mejor
consistencia en el almacenamiento de datos ya que pueden tener ms restricciones, como
verificar geometra, proyeccin, bounding box, etc. Es por ello que en este post se pretende dar
una introduccin sobre como crear tablas que contengan datos espaciales. En este ejemplo se
crear una tabla denominada polgono que contendr un nombre, rea y permetro.
Primero necesitamos abrir PgAdmin, debemos crear una base de datos con las funciones
espaciales de PostGIS de lo contrario no se podrn ejecutar algunas funciones. Una vez
creada la base de datos hay que cargar la ventana de ejecutar script. Iniciamos con las
sentencias del leguanje SQL para la creacin de la tabla, para ejecutar este script presionamos
F5. El script nos debe quedar de la siguiente forma:

Ntese que todava no se ha agregado el campo de geometra, estn nicamente los campos
alfanumricos. Para agregar el campo de geometra utilizamos una funcion de PostGIS
denominada AddGeometryColumn. La cual tendremos que mandarle el parmetro de esquema,
tabla, campo geomtrico, SRID, tipo de geometra, y nmero de dimensiones. Todo lo anterior
se traduce en:

En donde la tabla se publicar en el esquema public, se utilizar el SRID 4326 y el nmero de


dimensiones es 2 ya que solo se utilizar el plano cartesiano X, Y. En la parte de resultado
podemos ver que ya se ha agregado a nuestra tabla el campo geometra. Se hace de esta
forma ya que al utilizar la funcin, automticamente se registran estos datos en la tabla
denominada geometry_columns donde se pueden consultar las tablas con informacin
geogrfica para consultar con algn GIS de escritorio.

Por ltimo podremos ver un ejemplo en script de como qued la estructura de la tabla
geogrfica.

Vous aimerez peut-être aussi