SQLbase datos

Embed Size (px)

Citation preview

  • 7/25/2019 SQLbase datos

    1/50

    Objetos de la Base de Datos

    Tablas: son los objetos donde se almacenan los

    datos dentro de la base de datos.

    Existen dos tipos bsicos de tablas:

    De usuario y de sistema.

    Las tablas de sistema contienen informacin

    acerca de la base de datos que utiliza SQLServer para poder gestionarla.

  • 7/25/2019 SQLbase datos

    2/50

    Objetos de la Base de Datos

    Columnas: son los elementos que componen

    la estructura de las tablas. Cada una tiene un

    nombre y un tipo de dato asociado, de tal

    manera que la informacin que se almacena en

    cada columna est restringida por el tipo de

    dato asociado.

    Una columna tambin determina la longitud

    mxima de los datos que almacena.

  • 7/25/2019 SQLbase datos

    3/50

    Objetos de la Base de Datos

    Filas: tambin conocidas como registros, se

    ajustan al esquema de columnas de la tabla a la

    que pertenecen. Cada fila define una unidad de

    informacin, una instancia del objeto definido

    por la tabla a la que pertenece.

    Por ejemplo, cada fila de la tabla Clientes,representa un nico cliente.

  • 7/25/2019 SQLbase datos

    4/50

    Objetos de la Base de Datos

    Procedimientos Almacenados: son bloques de

    instrucciones Transact-SQL compiladas.

    Las ventajas son muchas, como por ejemplo

    ejecutar el mismo cdigo repetidas veces,

    utilizando su nombre, o ventajas relativas

    a seguridad.

  • 7/25/2019 SQLbase datos

    5/50

    Objetos de la Base de Datos

    Vistas: funcionan como tablas, y se utilizan

    como tablas. Tambin se les conoce como

    tablas virtuales. Pueden combinar informacin

    de una o varias tablas, y se utilizan sobre todo

    porque facilitan en gran medida la

    administracin de la seguridad.

  • 7/25/2019 SQLbase datos

    6/50

    Objetos de la Base de Datos

    ndices: son una copia de los datos de una o

    varias columnas de una tabla. Pueden ser

    considerados como una lista predefinida de

    informacin que indica cmo estn ordenados y

    almacenados los datos de la tabla, y que sirve

    para que las consultas sean ms eficientes.

    Podemos comparar estos ndices con los de un

    libro.

  • 7/25/2019 SQLbase datos

    7/50

    Bases de Datos de Sistema

    Estas bases de datos son creadas durante la

    instalacin de la instancia del servidor.

    Master

    La base de datos master es la ms importante

    dentro de SQL Server, ya que constituye el

    ncleo del servidor, junto con el motor

    relacional. Si esta base de datos se corrompe,

    SQL Server dejar de funcionar.

  • 7/25/2019 SQLbase datos

    8/50

    Bases de Datos de Sistema

    Master. Guarda informacin crtica:

    Los Inicios de sesin del servidor.

    Los roles y los usuarios asociados al inicio

    de sesin.

    Variables de configuracin del sistema, como

    idioma, reglas de intercalacin, modo de

    autenticacin, etc.

    Mensajes de error de sistema.

  • 7/25/2019 SQLbase datos

    9/50

    Bases de Datos de Sistema

    TempDB

    Es una base de datos permanente que sirve

    para almacenar datos temporales. Los objetos

    contenidos son permanente, pero la informacin

    almacenada en sus tablas es temporal, excepto

    las de sistema. La informacin contenida en las

    tablas de usuario se pierde cuando se cierra la

    sesin de SQL Server

  • 7/25/2019 SQLbase datos

    10/50

    Elementos bsicos para la creac in de

    bases de datos Utilizando las herramientas grficas de SQL

    Server Management Studio.

    Utilizando cdigo Transact-SQL.

    Ambos mtodos tienen sus ventajas y susinconvenientes. En cualquier caso, ninguno

    es el correcto, por tanto, debemos utilizar el

    mtodo con el que nos sintamos ms

    cmodos, sin olvidar que resulta

    imprescindible conocer el otro.

  • 7/25/2019 SQLbase datos

    11/50

    CREATE DATABASE

    Tambin podemos crear una base de datos

    haciendo uso de cdigo Transatc-SQL. La

    instruccin CREATE sirve para crear objetos en

    el servidor local. Para crear una base de datos,

    acompaamos a esta instruccin con la clusula

    DATABASE.

  • 7/25/2019 SQLbase datos

    12/50

    CREATE DATABASE

    Sintxis bsica.CREATE DATABASE Odyssey

    ON PRIMARY

    (NAME = 'Odyssey_Data',

    FILENAME = 'C:\BBDD\Odyssey_Data.MDF',

    SIZE = 10MB,

    MAXSIZE = 25,

    FILEGROWTH = 2MB)

  • 7/25/2019 SQLbase datos

    13/50

    CREATE DATABASE

    Sintxis bsica.LOG ON

    (

    NAME = 'Odyssey_Log',FILENAME = 'C:\BBDD\Odyssey_Log.LDF',

    SIZE = 4MB,

    MAXSIZE = 10MB,

    FILEGROWTH = 20%

    )

  • 7/25/2019 SQLbase datos

    14/50

    CREATE DATABASE

    Los parmetros de configuracin del archivo

    estn escritos entre parntesis, y van separados

    entre s por comas, excepto el ltimo.

    NAME: este parmetro representa el nombre

    lgico del archivo, es decir, el nombre del

    archivo en SQL Server. Si no se especifica,

    tomar el valor del nombre del archivo fsico.

  • 7/25/2019 SQLbase datos

    15/50

    CREATE DATABASE

    FILENAME: especifica la ubicacin del archivo

    en el disco duro. La ruta debe ser completa, y

    debemos especificar el nombre del archivo,

    incluyendo la extensin del mismo. En general,

    el nombre fsico y el lgico deben coincidir, para

    facilitar la administracin de los archivos. Este

    parmetro es obligatorio.

  • 7/25/2019 SQLbase datos

    16/50

    CREATE DATABASE

    SIZE: representa el espacio inicial que SQL

    Server reservar en disco al crear el archivo. Si

    no especificamos ninguna unidad de tamao

    para el archivo, por defecto se tomar en

    megabytes (MB), aunque tambin se pueden

    utilizar otras unidades, como kilobytes (KB), o

    gigabytes (GB). Si no se especifica un valor, se

    tomar por defecto un tamao inicial de 3MB.

  • 7/25/2019 SQLbase datos

    17/50

    CREATE DATABASE

    MAXSIZE: Representa el tamao mximo que

    puede alcanzar el archivo. Mientras que el

    espacio ocupado en disco por el archivo no

    alcance esta cifra, cada vez que el archivo est

    prximo a llenarse SQL Server aumentar su

    tamao automticamente.

  • 7/25/2019 SQLbase datos

    18/50

    CREATE DATABASE

    MAXSIZE: Una vez que haya alcanzado el

    tamao mximo, SQL Server no podr volver a

    realizar el aumento de tamao automtico, por

    lo que corremos el riesgo de que el archivo se

    llene, y el servidor se detenga. Lo ms habitual

    es no especificar ningn valor para este

    parmetro, ya que si as lo hacemos, no habr

    restriccin de tamao mximo para el archivo.

  • 7/25/2019 SQLbase datos

    19/50

    CREATE DATABASE

    FILEGROWTH: sirve para determinar la

    cantidad de espacio que SQL Server usar para

    incrementar un archivo de base de datos en una

    operacin de crecimiento automtico. Se puede

    especificar en una unidad de tamao o bien en

    porcentaje sobre el tamao actual del archivo.

    Si no se especifica se tomar por defecto un

    10%.

  • 7/25/2019 SQLbase datos

    20/50

    Creacin de tablas

    Para crear la tabla utilizando el Editor de

    Consultas, simplemente tenemos que invocar a

    la instruccin CREATE TABLE, junto con el

    nombre de la tabla, y la coleccin de columnas,

    con su nombre y tipo de dato, que ir encerrada

    entre parntesis, con cada definicin de

    columna separada por comas de las dems.

  • 7/25/2019 SQLbase datos

    21/50

    CREATE TABLE

    CREATE TABLE Clientes

    (

    IdCliente INT NOT NULL,

    Nombre VARCHAR(20) NOT NULL,

    Apellidos VARCHAR(50) NOT NULL,DNI VARCHAR(8) NOT NULL,

    NIF CHAR(1) NOT NULL,

    Telfono CHAR(9) NOT NULL

    )GO

  • 7/25/2019 SQLbase datos

    22/50

    Modif icar tablas

    Tambin podemos modificar las tablas una vez

    creadas, va cdigo, haciendo uso de la

    intruccin ALTER TABLE. Si despus de crear la

    tabla hemos decidido aadir una columna ms,

    podemos ejecutar el siguiente cdigo:

    ALTER TABLE Clientes

    ADD Direccion VARCHAR(80) NOT NULL

    GO

  • 7/25/2019 SQLbase datos

    23/50

    Modif icar tablas

    Tambin podemos modificar propiedades de

    columnas que ya existan en la tabla, por

    ejemplo, cambiar el tipo de dato asociado a la

    columna:

    -- Cambiamos el tipo de dato de una columna

    ALTER TABLE Clientes

    ALTER COLUMN Direccion CHAR(60) NULL

    GO

  • 7/25/2019 SQLbase datos

    24/50

    Modif icar tablas

    Para eliminar una columna de una tabla:

    -- Eliminamos una columna de la tabla.

    ALTER TABLE Clientes

    DROP COLUMN Direccion

    GO

  • 7/25/2019 SQLbase datos

    25/50

    Elim inar tab las

    -- Eliminar una tabla.DROP TABLE Clientes

    GO

  • 7/25/2019 SQLbase datos

    26/50

    SQL

    Es un poderoso lenguaje para el manejo de

    base de datos que puede utilizar en susaplicaciones.

    Lenguaje de consulta estructurado.

    Se desarroll en la dcada de los 60 en

    IBM para permitir a los usuarios el uso deinstrucciones estandarizadas en diversasbases de datos.

  • 7/25/2019 SQLbase datos

    27/50

    SQL

    Se encuentran organizadas en dos grandescategoras: DML y DDL.

    Cada instruccin puede llevar a cabo

    operaciones en los objetos (tablas, columnas,filas) de una o ms bases de datos.

    Muchas instrucciones SQL devuelven

    conjuntos de registros vistas.La sintaxis de SQL est determinada por laANSI.

  • 7/25/2019 SQLbase datos

    28/50

    INSTRUCCIONES SQL

    El comando SELECT.Permite obtener registros de una o mstablas.

    Ejemplos:

    SELECT campo FROM tabla

    SELECT campo1, campo2 FROM tabla

    SELECT * FROM tabla

  • 7/25/2019 SQLbase datos

    29/50

    INSTRUCCIONES SQL

    La clusula ORDER BY.Permite ordenar en base a un campoespecial.

    Ejemplos:

    SELECT campo1, campo2 FROM tabla

    ORDER BY nombre DESC.SELECT * FROM tabla ORDER BYnombre ASC

  • 7/25/2019 SQLbase datos

    30/50

    INSTRUCCIONES SQL

    La clusula WHERE.

    Condiciona los registros. Hay dos formas de

    utilizarla:1. Para limitar la cantidad de registrosobtenidos en una vista.

    2. Para vincular dos o ms tablas dentro deuna vista.

  • 7/25/2019 SQLbase datos

    31/50

    INSTRUCCIONES SQL

    La clusula WHERE.

    1. Para limitar la cantidad de registros

    obtenidos en una vista.Permite realizar comparaciones lgicas enlos datos de cualquier columna de la tabla.

    SELECT campo FROM tabla WHEREcampo =condicion

  • 7/25/2019 SQLbase datos

    32/50

    INSTRUCCIONES SQL

    La clusula WHERE.

    2. Para vincular dos o ms tablas dentro de

    una vista.SELECT tabla1.campo, tabla2.campoFROM tabla 1, tabla2 WHERE

    tabla1.campo = tabla2.campo AND/ ORtabla1.campo1 = tabla2.campo

  • 7/25/2019 SQLbase datos

    33/50

    INSTRUCCIONES SQL JOIN

    Para muchas de las consultas que los

    usuarios realizan sobre la data almacenada

    en una base de datos es necesario extraer

    informacin de ms de una tabla, para ello esnecesario emplear los JOINS que representanuna operacin producir un conjunto de

    resultados que incorporen filas y columnas de

    las tablas referidas en la consulta, esto lohace basndose en columnas comunes a las

    tablas.

  • 7/25/2019 SQLbase datos

    34/50

    INSTRUCCIONES SQL JOIN

    Cuando se ejecutan los JOIN, SQL Servercompara los valores de las columnas

    especificadas fila por fila entonces usa los

    resultados de la comparacin para combinarlos valores que califican como nuevas filas.

  • 7/25/2019 SQLbase datos

    35/50

    INSTRUCCIONES SQL JOIN

    SELECT FROM [INNER | LEFT|RIGHT|FULL [OUTER]] JOIN ON

    La lista de columnas puede incluir campos de

    diferentes tablas.

    JOIN especifica las tablas involucradas en la

    consulta.ON, establece la condicin de unin de las

    tablas, a travs de campos comunes.

  • 7/25/2019 SQLbase datos

    36/50

    INSTRUCCIONES SQL JOIN

    Cuando se implementan los JOIN, debe teneren cuenta las siguientes consideraciones:

    Especificar las condiciones del JOIN en base

    a Primary Key y a Foreign Key.

    Si una tabla tiene un Primary Key

    compuesta, se debe referenciar a la clave

    entera en la clusula ON del JOIN de tablas. Las columnas comunes a las tablas deben

    ser del mismo tipo de dato.

  • 7/25/2019 SQLbase datos

    37/50

    INSTRUCCIONES SQL JOIN

    Si dos o ms columnas de las diferentes

    tablas que participan en el JOIN, tienen

    el mismo nombre, deber de calificar dichas

    columnas usando el formatoNombreTabla.Nombre.Columna.

    Limitar en lo posible el nmero de tablas en

    un JOIN, a ms tablas, el SQL Serverse tomar ms tiempo para resolver la

    consulta.

  • 7/25/2019 SQLbase datos

    38/50

    INSTRUCCIONES SQL JOIN

    La clusula LEFT JOIN nos permite observartodos los registros de la tabla que se

    referencia a la izquierda en una consulta,

    completa las filas con NULL en caso no exista

    un valor almacenado en la tabla de la

    derecha.

  • 7/25/2019 SQLbase datos

    39/50

    INSTRUCCIONES SQL JOIN

    La clusula RIGHT JOIN nos permiteobservar todos los registros de la

    tabla que se referencia a la derecha en una

    consulta, completa las filas con NULL

    en caso no exista un valor almacenado en la

    tabla de la izquierda.

  • 7/25/2019 SQLbase datos

    40/50

    INSTRUCCIONES SQL JOIN

    A inner join B on (condicin): devuelve el

    conjunto de registros de AxB (producto

    cartesiano) que cumplen la condicin.

    A left join B on (condicin):para cada registro

    de A, devuelve los de B que cumplan la

    condicin. Si no hay ningn registro en B que

    cumpla la condicin, se devuelve un registro

    con los campos de B a NULL.

  • 7/25/2019 SQLbase datos

    41/50

    INSTRUCCIONES SQL JOIN

    Ejemplo

    SELECT Num_Pedido, Importe, Empresa,

    Limite_credito

    FROM PEDIDOS INNER JOIN CLIENTES

    ON CLIE = NUM_CLIE

    Muestra la lista de vendedores con especificacin de

    la ciudad y regin a la cual pertenece.

  • 7/25/2019 SQLbase datos

    42/50

    FUNCIONES AGREGADAS DE SQL

    COUNT (devuelve la cantidad de registrosde una vista. (nica que puede utilizarse encolumnas que no sean numricas).

    Ejemplo:

    SELECT COUNT(campo) FROM tabla

    AVG (devuelve el promedio de los valoresque se encuentran en una columna).

  • 7/25/2019 SQLbase datos

    43/50

    FUNCIONES AGREGADAS DE SQL

    COUNT (devuelve la cantidad de registrosde una vista. (nica que puede utilizarse encolumnas que no sean numricas).

    Ejemplo:

    SELECT COUNT(campo) FROM tabla

    AVG (devuelve el promedio de los valoresque se encuentran en una columna).

  • 7/25/2019 SQLbase datos

    44/50

    FUNCIONES AGREGADAS DE SQL

    SUM (devuelve una sumatoria de losvalores de una columna)

    MAX(devuelve el mayor valor encontradoen una columna)

    MIN(devuelve el menor valor encontradoen una columna)

  • 7/25/2019 SQLbase datos

    45/50

    AGRUPACIN

    SELECT

    FROM

    WHERE GROUP BY

    HAVING

    ORDER BY

  • 7/25/2019 SQLbase datos

    46/50

    CONSULTAS DE ACCIN

    Las acciones o Action Queries se puedenenviar directamente contra la base de datos y

    no devuelven resultados.En este grupo de consultas podemosclasificar las instrucciones INSERT,

    UPDATE y DELETE

  • 7/25/2019 SQLbase datos

    47/50

    INSTRUCCIN INSERT

    La instruccin INSERT aade registros a labase de datos.

    Sintaxis:INSERT INTO tabla (columna, columna2,... ) VALUES (valor1, valor2, ...)

  • 7/25/2019 SQLbase datos

    48/50

    INSTRUCCIN DELETE

    La instruccin DELETE borra registros dela base de datos.

    Sintaxis:

    DELETE FROM tabla WHERE condiciones

    Tanto FROM como WHERE son

    opcionales. Si no se especifica WHERE seborrarn todos los registros de la tablaespecificada.

  • 7/25/2019 SQLbase datos

    49/50

    INSTRUCCIN UPDATE

    La instruccin UPDATE modifica uno oms registros de la base de datos,dependiendo de la clusula WHERE que

    especifica las condiciones de actualizacin.

  • 7/25/2019 SQLbase datos

    50/50

    INSTRUCCIN UPDATE

    Sintaxis:

    UPDATE tabla SET columna1 = valor1,

    columna2 = valor2 WHERE condicionesWHERE es opcional. Si no se especificase actualizan todos los registros.