tema 20: conceptos básicos de sql

Anuncio
TEMA 20: CONCEPTOS BÁSICOS DE SQL
OBJETIVOS DEL TEMA
•
Introducción al lenguaje de consultas SQL.
Para iniciar esta parte del curso se va a utilizar el programa SQLITE que es
sencillo, multiplataforma y de código libre:
http://www.sqlite.org
Para Windows, hay que descargarse los dos ficheros siguientes desde el
enlace 'download' , 'Precompiled Binaries for Windows'
sqlite-3_6_23_1.zip
(Programa de linea para acceso a SQLITE3)
sqlitedll-3_6_23_1.zip (Biblioteca .dll con SQLITE3)
Descomprimir los dos .zip en el directorio 'C:\FUNGISDB', tendremos los 3
ficheros:
sqlite3.exe
sqlite3.dll
sqlite3.def
1.- EL LENGUAJE SQL
SQL responde a Structured Query Language: Lenguaje Estructurado de
Consultas. Como en el caso de los más modernos lenguajes relacionales, SQL
está basado en el cálculo relacional de tuplas. Como resultado, toda consulta
formulada utilizando el cálculo relacional de tuplas ( o su equivalente, el álgebra
relacional) se puede formular también utilizando SQL. Hay, sin embargo,
capacidades que van más allá del cálculo o del álgebra relacional. El lenguaje
SQL consta de unas 30 sentencias que permiten desde la creación de tablas,
hasta la recuperación de datos, modificación de éstos, asignación de permisos,
etc.
Para nuestros ejemplos del curso, al emplear SQLITE, el subconjunto de
comandos SQL que utiliza están descritos en el enlace:
http://www.sqlite.org/lang.html
Hay algunas limitaciones con respecto al Estándar SQL92 descritas en el
enlace: http://www.sqlite.org/omitted.html
2.- SENTENCIAS
Todas las sentencias SQL comienzan por un verbo, una palabra clave
que describe lo que la sentencia hace, como por ejemplo UPDATE, SELECT,
ALTER, .... La sentencia continúa con una o más cláusulas. La cláusula puede
especificar los datos sobre los que actúa la sentencia. Todas las cláusulas
comienzan por una palabra clave como FROM, WHERE, etc. Algunas son
opcionales, otras obligatorias. El estándar SQL1 ANSI/ISO especifica las
palabras claves que se utilizan como verbos y cláusulas de sentencias.
Capacidades aritméticas: En SQL es posible incluir operaciones
aritméticas así como comparaciones, por ejemplo A < B + 3.
Funciones agregadas: Operaciones tales como promedio (avg), suma (sum),
máximo (max), etc. se pueden aplicar a las columnas de una relación para
obtener una cantidad única.
3.- NOMBRES
Es posible imprimir una relación construida por una consulta y asignar
una relación calculada a un nombre de relación. Por ejemplo, de una consulta
se puede extraer:
..... 1.1 * SUELDO AS SUELDO_INCREMENTADO .... ,se toma el sueldo, se
multiplica
por
1.1
y
este
SUELDO_INCREMENTADO.
resultado
se
devuelve
bajo
el
nombre
4.- DEFINICIÓN DE DATOS
Como ya se indicó anteriormente, el lenguaje SQL incluye un conjunto
de comandos para definición de datos. Esto es creación de tablas, modificación
de éstas, creación de dominios, etc. Todo el proceso de creación de una BD se
hace enteramente mediante sentencias SQL.
Con el fin de ir viendo esto se tiene:
Para crear una base de datos se utiliza el comando CREATE
CREATE DATABASE dbname [WITH LOCATION = 'dbpath']
Por ejemplo,
CREATE DATABASE 'C:\curso_bdatos\ejemplo1.db'
(Nota: SQLITE no emplea este comando, en su lugar llama al programa sqlite3
con un nombre de fichero), entonces, para crear la base de datos
“ejemplo1.db”, deberemos hacer:
•
Abrir una ventana de comandos DOS: 'Menu inicio'> 'ejecutar'> cmd
•
Situarse en el directorio creado antes, para ello teclear:
cd C:\FUNGISBD
•
Crear base de datos nueva llamada “ejemplo1.db” y salir, teclear:
sqlite3 ejemplo1.db
sqlite> .exit
Esto nos crea una base de datos nueva llamada 'ejemplo1.db'
Las distintas tablas de la BD se crearon con el comando de creación de tablas
cuya sintaxis es:
CREATE [TEMP] TABLE class_name
(attr1 type1 [DEFAULT expression] [NOT NULL], ...attrN
[[CONSTRAINT name] CHECK condition1, ...conditionN] )
[INHERITS (class_name1, ...class_nameN)];
y en nuestro caso para la tabla cliente se hizo así:
sqlite3 ejemplo1.db
sqlite> CREATE TABLE CLIENTE (
DNI INTEGER NOT NULL,
APELLIDOS VARCHAR(50),
NOMBRE
VARCHAR(20),
EDAD
INTEGER);
5.- TIPOS DE DATOS
A continuación se muestra una lista de algunos tipos de datos
soportados por SQL:
INTEGER: entero binario con signo de palabra completa (31 bits de precisión +
1 bit de signo).
SMALLINT: entero binario con signo de media palabra (15 bits de precisión + 1
bit de signo).
DECIMAL (p[,q]): número decimal con signo de p dígitos de precisión,
asumiendo q a la derecha para el punto decimal. (15 = p = qq = 0). Si q se
omite, se asume que vale 0.
FLOAT: numérico con signo de doble palabra y coma flotante.
CHAR(n): cadena de caracteres de longitud fija, de longitud n.
VARCHAR(n): cadena de caracteres de longitud variable, de longitud máxima
n.
(Nota: para SQLITE, los tipos de datos que emplea para almacenar información
son algo distintos: NULL, INTEGER, REAL, TEXT y BLOB. Se pueden emplear
los tipos de datos habituales SQL que se ajustarán por afinidad a estos cinco
tipos.
Para mas información ver detalles en:http://www.sqlite.org/datatype3.html )
RESUMEN DEL TEMA 20
El lenguaje SQL es un lenguaje que engloba dentro de sí todos los
comandos para la creación de BD, así como la inserción y modificación de
datos dentro de ésta. Se ha visto como se crea una BD, una tabla dentro de
ésta. El lenguaje SQL, como cualquier lenguaje de programación permite
definir variables y estas pueden ser de distinto tipo: Enteras, alfanuméricas, etc.
Descargar