apuntes sobre sql server 2012

7

Click here to load reader

Upload: winmeo-diaz

Post on 16-Nov-2015

23 views

Category:

Documents


1 download

DESCRIPTION

Apuntes Sobre SQL Server 2012

TRANSCRIPT

  • Apuntes sobre SQL Server 2012

    Comandos para creacin de base de datos

    Realizar un insert con un archivo cvs

    Bulk

    Insert Producto

    from c:\csv\productos.csv

    with (firstrow=2,fieldterminator=;,rowterminator=\n)

    Formas de usar el TOP

    Select top(5) * from product (Para mostrar los primeros cinco productos)

    Select top(5) Percent * from producto (Para mostrar el 5% de los registros)

    Operador IN

    Ejemplo de Uso:

    Select * from producto where (nombreproducto IN (automovil,producto 4,producto 3))

  • Conceptos para consultas en ms de una tabla

    INNER JOIN: Con esta operacin se calcula el producto cruzado de todos los registros; as

    cada registro en la tabla A es combinado con cada registro de la tabla B; pero slo

    permanecen aquellos registros en la tabla combinada que satisfacen las condiciones que

    se especifiquen. Este es el tipo de JOIN ms utilizado, por lo que es considerado el tipo de

    combinacin predeterminado.

    LEFT JOIN: El resultado de esta operacin siempre contiene todos los registros de la tabla

    de la izquierda (la primera tabla que se menciona en la consulta), aun cuando no exista un

    registro correspondiente en la tabla de la derecha para uno de la izquierda.

    Ejemplo de tabla izquierda para la combinacin externa:

    SELECT *

    FROM empleado

    LEFT OUTER JOIN departamento

    ON empleado.IDDepartamento = departamento.IDDepartamento

    Empleado.Ap

    ellido

    Empleado.IDDepar

    tamento

    Departamento.NombreDe

    partamento

    Departamento.IDDepa

    rtamento

    Jordn 33 Ingeniera 33

    Andrade 31 Ventas 31

    Rbinson 34 Produccin 34

    Zolano 34 Produccin 34

    Gaspar 36 NULL NULL

    Steinberg 33 Ingeniera 33

    RIGHT JOIN: Esta operacin es inversa a la anterior; el resultado de esta operacin

    siempre contiene todos los registros de la tabla de la derecha (la segunda tabla que se

    menciona en la consulta), aun cuando no exista un registro correspondiente en la tabla de

    la izquierda para uno de la derecha.

    Ejemplo de tabla izquierda para la combinacin externa:

    SELECT *

    FROM empleado

    RIGHT OUTER JOIN departamento

    ON empleado.IDDepartamento = departamento.IDDepartamento

    Empleado.Ap

    ellido

    Empleado.IDDepar

    tamento

    Departamento.NombreDe

    partamento

    Departamento.IDDepa

    rtamento

    Zolano 34 Produccin 34

    Jordn 33 Ingeniera 33

    Rbinson 34 Produccin 34

    Steinberg 33 Ingeniera 33

    Andrade 31 Ventas 31

    NULL NULL Mercadeo 35

  • FULL JOIN: Esta operacin presenta los resultados de tabla izquierda y tabla derecha

    aunque no tengan correspondencia en la otra tabla. La tabla combinada contendr,

    entonces, todos los registros de ambas tablas y presentar valores nulos NULLs para

    registros sin pareja.

    EJEMPLO:

    SELECT *

    FROM empleado

    FULL OUTER JOIN departamento

    ON empleado.IDDepartamento = departamento.IDDepartamento

    Empleado.Ap

    ellido

    Empleado.IDDepar

    tamento

    Departamento.NombreDe

    partamento

    Departamento.IDDepa

    rtamento

    Zolano 34 Produccin 34

    Jordn 33 Ingeniera 33

    Rbinson 34 Produccin 34

    Gaspar 36 NULL NULL

    Steinberg 33 Ingeniera 33

    Andrade 31 Ventas 31

    NULL NULL Mercadeo 35

    Truco para obtener el primero y ltimo registro de una tabla

    Select top(1) * from producto (Obtiene el primer registro de una tabla llamada producto)

    Select top(1) * from producto order by id desc (Obtiene el ultimo registro de la tabla producto)

    Script para crear diccionario de datos de una base de datos SQL Server

    use Ventas1

    --________Diccionario de datos de una base de datos en Sql

    server___________

    --Un diccionario de datos es un conjunto de metadatos que contiene

    las

    --caractersticas lgicas y puntuales de los datos que se van a

    utilizar

    --en el sistema que se programa, incluyendo nombre, descripcin,

    alias, contenido

    -- y organizacin.

    http://es.wikipedia.org/wiki/Null_%28SQL%29

  • select

    d.object_id,

    a.name [table], -- identificara la Tabla

    b.name [column], -- identificara la columna

    c.name [type], -- identificara el Tipo

    CASE-- recibe el tipo de columna

    --cuando c es numerico o c es decimal o c es

    Float entonces se precisa el numero

    WHEN c.name = 'numeric' OR c.name = 'decimal' OR c.name

    = 'float' THEN b.precision

    ELSE null

    END [Precision],

    -- recibe maximo tamao de b

    b.max_length,

    CASE -- recibe si la columna acepta nulos

    WHEN b.is_nullable = 0 THEN 'NO'

    ELSE 'SI'

    END [Permite Nulls],

    CASE -- recibe si la columna es identity (autoincrementable)

    WHEN b.is_identity = 0 THEN 'NO'

    ELSE 'SI'

    END [Es Autonumerico],

    ep.value [Descripcion],-- recibe la descripcion de la

    columna(si la hay)

    f.ForeignKey, -- recibe si es llave foranea

    f.ReferenceTableName, -- recibe la referencia de la tabla

    f.ReferenceColumnName -- recibe la referencia de la columna

    from sys.tables a

    -- // Seleciona y muestra toda la informacion

    \\ --

    inner join sys.columns b on a.object_id= b.object_id

    inner join sys.systypes c on b.system_type_id= c.xtype

    inner join sys.objects d on a.object_id= d.object_id

    LEFT JOIN sys.extended_properties ep ON d.object_id =

    ep.major_id AND b.column_Id = ep.minor_id

    LEFT JOIN (SELECT

    f.name AS ForeignKey,

    OBJECT_NAME(f.parent_object_id) AS TableName,

    COL_NAME(fc.parent_object_id,fc.parent_column_id) AS

    ColumnName,

    OBJECT_NAME (f.referenced_object_id) AS

    ReferenceTableName,

    COL_NAME(fc.referenced_object_id,fc.referenced_column_id) AS

    ReferenceColumnName

    FROM sys.foreign_keys AS f

    INNER JOIN sys.foreign_key_columns AS fc ON

    f.OBJECT_ID = fc.constraint_object_id) f ON f.TableName =a.name

    AND f.ColumnName =b.name

    WHERE a.name 'sysdiagrams'

    ORDER BY a.name,b.column_Id

  • Ejemplo de procedimiento almacenado

    //Creacin del procedimiento

    create procedure sp_consulta @nombre nvarchar(20),@telefono int

    as

    begin

    select * from clientes where nombre=@nombre and telefono=@telefono;

    print Hecho correctamente;

    end

    //Ejecucin del procedimiento

    exec sp_consulta eduardo,1234

    Variables en Transact-SQL

    declare @texto nvarchar(50)

    set @texto=hola mundo

    declare @numero int

    set @numero=35

    print T-SQL dice = +@texto+ y el numero: +convert(nvarchar(20),@numero)

    Combinacin SQL-T-SQL

    declare @textos nvarchar(20)

    select @textos=nombre from cliente where edad=22

    print @textos

    Estructuras de control IF

    //Ejemplo1

    declare @num1 int

    declare @num2 int

    set @num1=10

    set @num2=5

    if @num1>=@num2 and @num1=@num2 or @num1=@num2

    print Es verdad

    else

    print No es verdad

  • Ciclo WHILE

    declare @count int

    set @count=0

    while(@count

  • Cursores

    //Ejemplo 1

    declare nombre varchar(50)

    declare apellido varchar(50)

    declare telefono varchar(50)

    declare cursorEjemplo Cursor scroll for select * from persona

    open cursorEjemplo fetch next from cursoEjemplo into @nombre,@apellido,@telefono

    while(@@FETCH_STATUS=0)

    begin

    print @nombre+ +@apellido+ +@telefono

    fetch next from cursoEjemplo into @nombre,@apellido,@telefono

    end

    close cursoEjemplo

    dellocate cursoEjemplo

    //Ejemplo2

    declare nombre varchar(50)

    declare apellido varchar(50)

    declare telefono varchar(50)

    declare cursorEjemplo Cursor scroll for select * from persona

    open cursorEjemplo fetch next from cursoEjemplo into @nombre,@apellido,@telefono

    while(@@FETCH_STATUS=0)

    begin

    print @nombre+ +@apellido+ +@telefono

    fetch next from cursoEjemplo into @nombre,@apellido,@telefono

    end

    close cursoEjemplo

    dellocate cursoEjemplo