Click here to load reader

Tutorial SQL[1]

  • View
    16

  • Download
    0

Embed Size (px)

Text of Tutorial SQL[1]

  • 1. SQL.(Structure Query Language).

    SQL es el lenguaje de consulta universal para bases de datos.

    Desde esta opcin vamos a tratar los temas relacionados con SQL ANSI 92, que es el standar SQL , ya que luego extinten variantes como T-SQL (Transact-SQL) y PL/SQL (Procedure Language / SQL) que sern tratados en sus propias opciones.

    SQL propociona mtodos para definir la base datos, para manipular la informacin y para gestionar los permisos de acceso a dicha informacin.

    Para que un gestor de bases de datos sea consisderado como relacional, debe soportar SQL, independientemente de las caracteristicas particulares que dicho gestor pueda aportar.

    Conocer SQL es conocer las bases de datos, y todo su potencial.

    1

  • 2. Introduccin a SQL.SQL es el lenguaje de consulta universal para bases de datos.

    Los mandatos de SQL se dividen en tres grandes grupos diferenciados, los cuales sern tratados por separado y que unicamente se presentan aqui a modo introductorio.

    DDL(Data Definition Language), es el encargado de la definicin de Bases de Datos, tablas, vistas e ndices entre otros.

    Son comandos propios de este lenguaje:

    CREATE TABLE CREATE INDEX CREATE VIEW CREATE SYNONYM

    DML(Data Manipulation Language), cuya misin es la manipulacin de datos. A travs de l podemos seleccionar, insertar, eliminar y actualizar datos. Es la parte que ms frecuentemente utilizaremos, y que con ella se construyen las consultas.

    Son comandos propios de este lenguaje:

    SELECT UPDATE INSERT INSERT INTO DELETE FROM

    DCL (Data Control Laguage), encargado de la seguridad de la base de datos, en todo lo referente al control de accesos y privilegios entre los usuarios.

    Son comandos propios de este lenguaje: GRANT REVOKE

    2

  • 3. Componentes del lenguaje SQL.

    3.1. Tipos de datos.

    SQL admite una variada gama de tipos de datos para el tratamiento de la informacin contenida en las tablas, los tipos de datos pueden ser numricos (con o sin decimales), alfanumricos, de fecha o booleanos(si o no). Segn el gestor de base de datos que estemos utilizando los tipos de datos varan, pero se reducen bsicamente a los expuestos anteriormente, aunque en la actualidad casi todos los gestores de bases de datos soportan un nuevo tipo, el BLOB (Binary Large Object), que es un tipo de datos especial destinado a almacenar archivos, imgenes entre otros.

    Dependiendo de cada gestor de bases de datos el nombre que se da a cada uno de estos tipos puede variar. Bsicamente tenemos los siguientes tipos de datos.

    Nmericos Alfanmericos Fecha Lgico BLOB

    Integer char(n) Date Bit ImageNumeric(n.m) varchar(n,m) DateTime TextDecimal(n,m) Float

    Mas detalladamente tenemos:Tipos de datos numricos

    Tipo Defincin Bytes

    Integer Valores enteros con signo. 4

    Numeric(n,m) Nmeros reales de hasta 18 digitos (con decimales), donde n representa el total de dgitos admitidos (normalmente denominado precisin) y m el nmero de posiciones decimales (escala).

    5-17

    Decimal(n,m) Igual que el tipo numeric. 5-17

    Float Nmero de coma flotante, este tipo de datos se suele utilizar para los valores en notacin cientifica.

    4-8

    3

  • Tipos de datos alfanumricos

    Tipo Defincin Bytes

    char(n) Almacena de 1 a 255 caracteres alfanumricos. Este valor viene dado por n, y es el tamao utilizado en disco para almacenar dato. Es decir si defino un campo como char(255), el tamao real del campo ser de 255, aunque el valor solo contenga 100.

    0-255

    varchar(n) Igual que el tipo char, con la salvedad que varchar almacena nicamente los bytes que contenga el valor del campo.

    0-255

    Nota:El tamao del campo vara en funcin de cada base de datos, siendo 255 el valor standart. En realidad el tamao viene delimitado por el tamao de las pginas de datos, 2K, 4K, 8K.

    Tipos de datos fecha

    Tipo Definicin Bytes

    Date Almacena fechas, con da, mes y ao. 8

    Datetime Almacena fechas con fecha y hora 4

    Nota:La aparicin de los tipos de datos de fecha supuso una autntica revolucin en el mundo de la bases de datos, en realidad, la base de datos almacena internamente nmeros enteros, de ah que el tamao sea de 4 y 8 bytes (2 enteros), pero aporta la validacin del dato introducido.

    4

  • Tipos de datos lgicos

    Tipo Definicin BytesBit Tipo bit. Almacena un 0 no cero, segn las bases de

    datos ser 1 -1. Se aplica la lgica booleana, 0 es falso y no cero verdadero. No soportado para oracle.

    1 bit

    Tipos de datos BLOB

    Tipo Definicin BytesImage Almacena imgenes en formato binario, hasta un mximo

    de 2 Gb de tamao.0-2Gb

    Text Almacena texto en formato binario, hasta un mximo de 2 Gb de tamao.

    0-2Gb

    5

  • 3.2. Operadores.

    Los operadores se pueden definir como combinaciones de caracteres que se utilizan tanto para realizar asignaciones como comparaciones entre datos.

    Los operadores se dividen en aritmticos, relacionales, lgicos, y concatenacin .

    Operadores SQL

    Aritmticos + Suma- Resta* Producto/ Divisin** ^ Exponenciacin

    Relacionales < Menor que Mayor que>= Mayor o igual que != Distinto!< No menor que!> No mayor que

    Lgicos AND Los operadores lgicos permiten comparar expresiones lgicas devolviendo siempre un valor verdadero o falso.Los operadores lgicos se evaluan de izquierda a derecha.

    ORNOT

    Concatenacin + Se emplea para unir datos de tipo alfanumrico.

    6

  • 3.3. Palabras Clave.

    Las palabras clave son identificadores con un significado especial para SQL, por lo que no pueden ser utilizadas para otro propsito distinto al que han sido pensadas.

    SQL dispone de muy pocas rdenes, pero de multiples plabras clave, lo que le convierten en un lenguaje sencillo pero tremendamente potente para llevar a cabo su funcin.

    Palabras Clave

    ALL AND ANY ASCAVG BEGIN BY CHARCHECK CLOSE COUNT COMMITCREATE CURSOR DECIMAL DECLAREDELETE DESC DISTINCT DEFAULTEXISTS FETCH FLOAT FORFROM GRANT GROUP HAVINGIN INDEX INSERT INTEGERINTO LIKE MAX MINNOT NUMERIC ON OPENOR ORDER REVOKE ROLLBACKSELECT SET SUM TABLEUNION UNIQUE UPDATE USERVALUES VIEW WHERE WITH

    7

  • 3.4. Funciones Agregadas.

    Las funciones agregadas proporcionan a SQL utilidades de clculo sobre los datos de las tablas.

    Estas funciones se incorporan en las consultas SELECT y retornan un nico valor al operar sobre un grupo de registros.

    Las funciones agregadas son.Funciones AgregadasMAX() Devuelve el valor mximo.

    MIN() Devuelve el valor mnimo.

    SUM() Devuelve el valor de la suma de los valores del campo.

    COUNT() Devuelve el nmero de filas que cumplen la condicin

    AVG() Devuelve el promedia de los valores del campo

    8

  • 3.5. Predicados.

    Los predicados son condiciones que se indican en clusula WHERE de una consulta SQL.

    La siguiente tabla ilustra los predicados de SQL.

    Predicados SQL

    BETWEEN...AND Comprueba que al valor esta dentro de un intervalo

    LIKE Compara un campo con una cadena alfanumrica. LIKE admite el uso de caracteres comodines

    ALL Seala a todos los elementos de la seleccin de la consulta

    ANY Indica que la condicin se cumplir si la comparacin es cierta para al menos un elemento del conjunto.

    EXISTS Devuelve un valor verdadero si el resultado de una subconsulta devuelve resultados.

    IN Comprueba si un campo se encuentra dentro de un determinado rango. El rango puede ser una sentencia SELECT.

    9

  • 4.DDL. 4.1. Lenguaje de Definicin de datos (I).

    4.1.1. Tablas.

    El lenguaje de definicin de datos (DDL, Data Definition Language) es el encargado de permitir la descripcin de los objetos que forman una base de datos.

    El lenguaje de definicin de datos le va a permitir llevar a cabo las siguientes acciones:

    Creacin de tablas, ndices y vistas. Modificacin de las estructura de tablas, ndices y vistas. Supresin de tablas, ndices y vistas.

    Pero antes de continuar vamos a comentar la nomenclatura que emplearemos, si tiene algn conocimiento de programacin le resultar familiar.

    4.1.2. Nomenclatura.

    La sintaxis empleada para la sentencias en las diferentes pginas esta basada en la notacin EBNF (??). Vamos a ver el significado de algunos smbolos.Smbolo Significado

    < >Encierran parmetros de una orden que el usuario debe sustituir al escribir dicha orden por los valores que queramos dar a los parmetros.

    [ ] Indica que su contenido es opcional.

    { } Indica que su contenido puede repetirse una o mas veces.

    |Separa expresiones. Indica que pueden emplearse una u otra expresin pero no ms de una a la vez.

    10

  • Adems las palabras clave aparecen en mayscula negrita y los argumentos en minscula cursiva.

    La sintaxis de una sentencia tendr un aspecto como este:

    CREATE TABLE ( ,{ } ) ;

    4.1.3. Creacin de tablas.

    En el modelo relacional la informacin de una base de datos se almacena en tablas.

    La creacin de la base de datos debe comenzar por con la creacin de una o ms tablas. Para ello utilizaremos la sentencia CREATE TABLE.

    La sintaxis de la sentencia es la siguiente:CREATE TABLE ( [null | not null] [default ]{, [null | not null] [default ]}[, constraint primary key ([ ,...n ])][, constraint foreign key ([ ,...n ]) references ( [ ,...n ] ) ] ) ;

    11

  • Ejemplo: Vamos a simular una base de datos para un negocio de alquiler de co