Facultad de
             Educación
SQL 2005
SERVER
         Ing. Eddye Arturo Sánchez Castillo
                     Mail:
          eddiesancez0710@gmail.com
                                       Clase
  Versión: Microsoft Office 2010        06
CONTENIDO

1. Objetos de una Base de Datos
2. Consulta a los catálogos
3. Editor de Código
4. Creación de Base de Datos
5. Administración de los Archivos de
   una Base de Datos
OBJETOS DE UNA BASE DE DATOS
Una base de datos relacional esta compuesta por diferentes tipos
de objetos. Las siguientes son algunos de lo objetos más comunes:

Tablas (tables): Son los objetos que contienen los datos de la Base
de Datos. Una Tabla es una colección de columnas donde los datos
están organizado en un formato fila-columna similar a la de una hoja
de calculo. Cada fila representa un registro único y cada columna es
un campo dentro del registro.
Disparadores o desencadenantes (triggers): Son los objetos que
contienen los datos de la Base de Datos. Una Tabla es una colección
de columnas donde los datos están organizado en un formato fila-
columna similar a la de una hoja de calculo. Cada fila representa un
registro único y cada columna es un campo dentro del registro.

Procedimientos Almacenados (stored procedures): Estos son
similares a las macros que se utilizan en Excel o Word. Podemos
escribir codigos SQL y almacenarlos con un nombre.
CONSULTA A LOS CATÁLOGOS
Cuando se desea obtener información de alguna tabla del sistema
podemos hacerlo mediante una consulta directa con SELECT,
utilizando un procedimiento almacenado del sistema.
Consulta Directa:
Podemos utilizar una instrucción SELECT sencilla para leer una
tabla del Sistema
            SELECT * FROM sysobjects WHERE type = ‘U’
Muestra una lista de todas las tablas de usuario de la base de datos
actual efectuando una consulta directa a su tabla de sistema
sysobjects.
Procedimiento Almacenado del Sistema:
Es un programa almacenado en la base de datos, y que puede ser
invocado por una aplicación para ejecutar operaciones en la base de
datos.
                          Sp_help clientes
Consulta el Catálogo de la base de datos actual para mostrar toda la
información acerca de la definición de la tabla clientes.
EL EDITOR DE CÓDIGO (THE CODE EDITOR)
Es un editor para crear y modificar scripts (guiones).
Reemplaza al Analizador de Consultas (Query Analyzer).
1


        2                                        3
EL EDITOR DE CÓDIGO (THE CODE EDITOR)
Es un editor para crear y modificar scripts (guiones).
Reemplaza al Analizador de Consultas (Query Analyzer).
1


        2                                        3
CREACIÓN DE BASE DE DATOS
Antes de crear una base de datos tenga en cuenta lo
siguiente:
 Solo pueden crear Base de Datos las cuentas de inicio
   de sesión que pertenecen a los roles fijos de servidor
   sysadmin y dbcreator, aunque el permiso se puede
   conceder a otras cuentas.
 La cuenta de inicio de sesión que crea la base de datos
   se convierte en el usuario dueño (dbo) de la base de
   datos.
 Defina el nombre y tamaño de la base de datos, los
   archivos (y sus propiedades) en los que residirá la base
   de datos.
CREACIÓN DE BASE DE DATOS
Estructura Física de una Base de Datos
Una base de datos está compuesta físicamente de varios
archivos en disco, dos como mínimo:
1. Archivo Principal: Este archivo generalmente tiene el
   mismo nombre de la base de datos más la frase _DATA
   y con extensión MDF
2. Archivo de Registro de Transacciones (Log): Este
   archivo generalmente tiene el mismo nombre de la base
   de datos más la frase _LOG y con extensión LDF
CREACIÓN DE BASE DE DATOS
Estructura Lógica de una Base de Datos
Una base de datos está compuesta lógicamente por lo
siguientes tipos de objetos o componentes:
1. Tablas
2. Índices
3. Vistas
4. Procedimientos Almacenados
5. Otros Elementos Lógicos

** Para definición de cada elemento ver sección de
   conceptos .
CREACIÓN DE BASE DE DATOS
Creando Objetos
Los objetos pueden ser creados por medio de un ambiente
gráfico o utilizando sentencias SQL para cada tipo de ellos.
A continuación ejemplos de la creación de objetos p
or medio de sentencia o SCRIPTs.
LA INSTRUCCIÓN CREATE DATABASE
Sintaxis:
   CREATE DATABASES nombre_basedatos
   ON [ PRIMARY ] (
       FILENAME = ‘ubicación_y_nombre_archivo_data’ ,
       SIZE = tamaño [KB|MB|GB|TB] ,
       MAXSIZE = tamaño [KB|MB|GB|TB |UNLIMITED] ,
       FILEGROWTH = incremento_crecimiento [KB|MB|%] )
   LOG ON (
       NAME = nombre_logico_log ,
       FILENAME = ‘ubicación_y_nombre_archivo_log’ ,
       SIZE = tamaño [KB|MB|GB|TB] ,
       MAXSIZE = tamaño [KB|MB|GB|TB |UNLIMITED] ,
       FILEGROWTH = incremento_crecimiento [KB|MB|%] )
CREACIÓN DE UNA BASE DE DATOS
Por ejemplo, si una libreta de teléfonos estuviese
almacenada como base de datos de Access, podría realizar
búsquedas por dirección, nombre o número de teléfono, en
vez de sólo por apellido.
TIPOS DE DATOS EN TRANSACT SQL
 Cuando definimos una tabla, variable o constante
  debemos asignar un tipo de dato que indica los posibles
  valores. El tipo de datos define el formato de
  almacenamiento, espacio que de disco-memoria que va a
  ocupar un campo o variable, restricciones y rango de
  valores validos.
 Transact SQL proporciona una variedad predefinida de
  tipos de datos . Casi todos los tipos de datos manejados
  por Transact SQL son similares a los soportados por SQL.
TIPOS DE DATOS NUMÉRICOS.
   Bit. Una columna o variable de tipo bit puede almacenar el rango de valores de 1
    a 0.
   Tinyint. Una columna o variable de tipo tinyint puede almacenar el rango de
    valores de 0 a 255.
   SmallInt. Una columna o variable de tipo smallint puede almacenar el rango de
    valores -32768 a 32767.
   Int. Una columna o variable de tipo int puede almacenar el rango de valores -231 a
    231-1 .
   BigInt. Una columna o variable de tipo bigint puede almacenar el rango de
    valores -263 a 263-1 .
   Decimal(p,s). Una columna de tipo decimal puede almacenar datos numéricos
    decimales sin redondear. Donde p es la precisión (número total del dígitos) y s la
    escala (número de valores decimales)
   Float. Una columna de datos float puede almacenar el rango de valores -1,79x-
    10308 a 1,79x-10308, , si la definimos con el valor máximo de precisión. La precisión
    puede variar entre 1 y 53.
   Real. Sinónimo de float(24). Puede almacenar el rango de valores -3,4x-1038
    a 3,4x-1038,
   Money. Almacena valores numéricos monetarios de -263 a 263-1, con una
    precisión de hasta diez milésimas de la unidad monetaria.
   SmallMoney. Almacena valores numéricos monetarios de -214.748,3647 a
    214.748,3647, con una precisión de hasta diez milésimas de la unidad monetaria.
TIPOS DE DATOS DE CARÁCTER.
   Char(n). Almacena n caracteres en formato ASCII, un byte por cada letra.
    Cuando almacenamos datos en el tipo char, siempre se utilizan los n caracteres
    indicados, incluso si la entrada de datos es inferior. Por ejemplo, si en un char(5),
    guardamos el valor 'A', se almacena 'A ', ocupando los cinco bytes.

   Varchar(n). Almacena n caracteres en formato ASCII, un byte por cada letra.
    Cuando almacenamos datos en el tipo varchar, únicamente se utilizan los
    caracteres necesarios, Por ejemplo, si en un varchar(255), guardamos el valor 'A',
    se almacena 'A', ocupando solo un byte bytes.

   Varchar(max). Igual que varchar, pero al declararse como Max puede almacenar
    231-1 bytes.

   Nchar(n). Almacena n caracteres en formato UNICODE, dos bytes por cada letra.
    Es recomendable utilizar este tipo de datos cuando los valores que vayamos a
    almacenar puedan pertenecer a diferente idiomas

   Nvarchar(n). Almacena n caracteres en formato UNICODE, dos bytes por cada
    letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos
    a almacenar puedan pertenecer a diferente idiomas.

   Nvarchar(max). Igual que varchar, pero al declararse como Max puede
    almacenar 231-1 bytes.
TIPOS DE DATOS DE FECHA
   Datetime. Almacena fechas con una precisión de milisegundo. Debe
    usarse para fechas muy especificas.
   SmallDatetime. Almacena fechas con una precisión de minuto, por lo
    que ocupa la mitad de espacio de que el tipo datetime, para tablas
    que puedan llegar a tener muchos datos es un factor a tener muy en
    cuenta.
   TimeStamp. Se utiliza para marcar un registro con la fecha de
    inserción - actualización. El tipo timestamp se actualiza
    automáticamente cada vez que insertamos o modificamos los datos.
TIPOS DE DATOS BINARIOS
   Binary. Se utiliza para almacenar datos binarios de longitud fija,
    con una longitud máxima de 8000 bytes.

   Varbinary. Se utiliza para almacenar datos binarios de longitud
    variable, con una longitud máxima de 8000 bytes. Es muy similar a
    binary, salvo que varbinary utiliza menos espacio en disco.

   Varbinary(max). Igual que varbinary, pero puede almacenar 231-
    1 bytes




                       TIPO DE DATOS XML
   XML. Una de las grandes mejoras que incorpora SQL Server 2005 es el soporte
    nativo para XML. Como podemos deducir, este tipo de datos se utiliza para
    almacenar XML.
LA INSTRUCCIÓN CREATE TABLE
Sintaxis:
 CREATE TABLE nombre_tabla (
   nombre_alumna1 tipo_dato1 [NULL | NOT NULL],
   nombre_alumna2 tipo_dato1 [NULL | NOT NULL],
   nombre_alumna3 tipo_dato1 [NULL | NOT NULL],
   nombre_alumna4 tipo_dato1 [NULL | NOT NULL],
   …….)
EJECUTAR LO SIGUIENTE
USE MASTER
go

CREATE DATABASE prueba
go

CREATE TABLE Curso(
   idCurso   CHAR(4)    NOT NULL,
   nombreCurso     VARCHR(50) NOT NULL,
   numVacantes     SMALLINT   NOT NULL,
   numMatriculados SMALLINT   NOT NULL,
   profesor VARCHAR(50)       NUL,
   precioCurso     MONEY NOT NULL)
go
EL PROCEDIMIENTO SP_HELP
Genera un reporte con información acerca de la definición
de un objeto de la base de datos activa. Todos los usuarios
de la base de datos pueden ejecutar este procedimiento.

SINTAXIS

      SP_HELP nombre_objeto_basedatos

EJEMPLO

Sp_help Curso
go
CREACIÓN DE LA CLAVE PRIMARIA (PK)
Genera un reporte con información acerca de la definición
de un objeto de la base de datos activa. Todos los usuarios
de la base de datos pueden ejecutar este procedimiento.

SINTAXIS
ALTER TABLE nombre_tabla
     ADD CONSTRAINT PK_nombre_tabla
     PRIMARY KEY (alumnaX, columaP, …..)
EJEMPLO
ALTER TABLE Curso
     ADD CONSTRAINT PK_Curso
     PRIMARY KEY ( idCurso)
INSERTAR FILAS
INSERT INTO Curso(idCurso, nombreCurso, numVacantes,
numMatriculados, precioCurso, Profesor)
VALUES (‘PB1A’, ‘Power Builder Nivel I – Grupo A’, 15, 0,
150, ‘Sanchez Castillo Eddye Arturo’)
go

INSERT INTO Curso(idCurso, nombreCurso, numVacantes,
numMatriculados, precioCurso, Profesor)
VALUES (‘PB2A’, ‘MS Power Point 2007 Basico – Grupo A’,
15, 0, 150, ‘Zegarra Zavaleta Daniel’)
go
VERIFICAR DATA INGRESADA
SELECT * FROM Curso

Clase06 25-06-12

  • 1.
    Facultad de Educación SQL 2005 SERVER Ing. Eddye Arturo Sánchez Castillo Mail: eddiesancez0710@gmail.com Clase Versión: Microsoft Office 2010 06
  • 2.
    CONTENIDO 1. Objetos deuna Base de Datos 2. Consulta a los catálogos 3. Editor de Código 4. Creación de Base de Datos 5. Administración de los Archivos de una Base de Datos
  • 3.
    OBJETOS DE UNABASE DE DATOS Una base de datos relacional esta compuesta por diferentes tipos de objetos. Las siguientes son algunos de lo objetos más comunes: Tablas (tables): Son los objetos que contienen los datos de la Base de Datos. Una Tabla es una colección de columnas donde los datos están organizado en un formato fila-columna similar a la de una hoja de calculo. Cada fila representa un registro único y cada columna es un campo dentro del registro. Disparadores o desencadenantes (triggers): Son los objetos que contienen los datos de la Base de Datos. Una Tabla es una colección de columnas donde los datos están organizado en un formato fila- columna similar a la de una hoja de calculo. Cada fila representa un registro único y cada columna es un campo dentro del registro. Procedimientos Almacenados (stored procedures): Estos son similares a las macros que se utilizan en Excel o Word. Podemos escribir codigos SQL y almacenarlos con un nombre.
  • 4.
    CONSULTA A LOSCATÁLOGOS Cuando se desea obtener información de alguna tabla del sistema podemos hacerlo mediante una consulta directa con SELECT, utilizando un procedimiento almacenado del sistema. Consulta Directa: Podemos utilizar una instrucción SELECT sencilla para leer una tabla del Sistema SELECT * FROM sysobjects WHERE type = ‘U’ Muestra una lista de todas las tablas de usuario de la base de datos actual efectuando una consulta directa a su tabla de sistema sysobjects. Procedimiento Almacenado del Sistema: Es un programa almacenado en la base de datos, y que puede ser invocado por una aplicación para ejecutar operaciones en la base de datos. Sp_help clientes Consulta el Catálogo de la base de datos actual para mostrar toda la información acerca de la definición de la tabla clientes.
  • 5.
    EL EDITOR DECÓDIGO (THE CODE EDITOR) Es un editor para crear y modificar scripts (guiones). Reemplaza al Analizador de Consultas (Query Analyzer). 1 2 3
  • 6.
    EL EDITOR DECÓDIGO (THE CODE EDITOR) Es un editor para crear y modificar scripts (guiones). Reemplaza al Analizador de Consultas (Query Analyzer). 1 2 3
  • 7.
    CREACIÓN DE BASEDE DATOS Antes de crear una base de datos tenga en cuenta lo siguiente:  Solo pueden crear Base de Datos las cuentas de inicio de sesión que pertenecen a los roles fijos de servidor sysadmin y dbcreator, aunque el permiso se puede conceder a otras cuentas.  La cuenta de inicio de sesión que crea la base de datos se convierte en el usuario dueño (dbo) de la base de datos.  Defina el nombre y tamaño de la base de datos, los archivos (y sus propiedades) en los que residirá la base de datos.
  • 8.
    CREACIÓN DE BASEDE DATOS Estructura Física de una Base de Datos Una base de datos está compuesta físicamente de varios archivos en disco, dos como mínimo: 1. Archivo Principal: Este archivo generalmente tiene el mismo nombre de la base de datos más la frase _DATA y con extensión MDF 2. Archivo de Registro de Transacciones (Log): Este archivo generalmente tiene el mismo nombre de la base de datos más la frase _LOG y con extensión LDF
  • 9.
    CREACIÓN DE BASEDE DATOS Estructura Lógica de una Base de Datos Una base de datos está compuesta lógicamente por lo siguientes tipos de objetos o componentes: 1. Tablas 2. Índices 3. Vistas 4. Procedimientos Almacenados 5. Otros Elementos Lógicos ** Para definición de cada elemento ver sección de conceptos .
  • 10.
    CREACIÓN DE BASEDE DATOS Creando Objetos Los objetos pueden ser creados por medio de un ambiente gráfico o utilizando sentencias SQL para cada tipo de ellos. A continuación ejemplos de la creación de objetos p or medio de sentencia o SCRIPTs.
  • 11.
    LA INSTRUCCIÓN CREATEDATABASE Sintaxis: CREATE DATABASES nombre_basedatos ON [ PRIMARY ] ( FILENAME = ‘ubicación_y_nombre_archivo_data’ , SIZE = tamaño [KB|MB|GB|TB] , MAXSIZE = tamaño [KB|MB|GB|TB |UNLIMITED] , FILEGROWTH = incremento_crecimiento [KB|MB|%] ) LOG ON ( NAME = nombre_logico_log , FILENAME = ‘ubicación_y_nombre_archivo_log’ , SIZE = tamaño [KB|MB|GB|TB] , MAXSIZE = tamaño [KB|MB|GB|TB |UNLIMITED] , FILEGROWTH = incremento_crecimiento [KB|MB|%] )
  • 12.
    CREACIÓN DE UNABASE DE DATOS Por ejemplo, si una libreta de teléfonos estuviese almacenada como base de datos de Access, podría realizar búsquedas por dirección, nombre o número de teléfono, en vez de sólo por apellido.
  • 13.
    TIPOS DE DATOSEN TRANSACT SQL  Cuando definimos una tabla, variable o constante debemos asignar un tipo de dato que indica los posibles valores. El tipo de datos define el formato de almacenamiento, espacio que de disco-memoria que va a ocupar un campo o variable, restricciones y rango de valores validos.  Transact SQL proporciona una variedad predefinida de tipos de datos . Casi todos los tipos de datos manejados por Transact SQL son similares a los soportados por SQL.
  • 14.
    TIPOS DE DATOSNUMÉRICOS.  Bit. Una columna o variable de tipo bit puede almacenar el rango de valores de 1 a 0.  Tinyint. Una columna o variable de tipo tinyint puede almacenar el rango de valores de 0 a 255.  SmallInt. Una columna o variable de tipo smallint puede almacenar el rango de valores -32768 a 32767.  Int. Una columna o variable de tipo int puede almacenar el rango de valores -231 a 231-1 .  BigInt. Una columna o variable de tipo bigint puede almacenar el rango de valores -263 a 263-1 .  Decimal(p,s). Una columna de tipo decimal puede almacenar datos numéricos decimales sin redondear. Donde p es la precisión (número total del dígitos) y s la escala (número de valores decimales)  Float. Una columna de datos float puede almacenar el rango de valores -1,79x- 10308 a 1,79x-10308, , si la definimos con el valor máximo de precisión. La precisión puede variar entre 1 y 53.  Real. Sinónimo de float(24). Puede almacenar el rango de valores -3,4x-1038 a 3,4x-1038,  Money. Almacena valores numéricos monetarios de -263 a 263-1, con una precisión de hasta diez milésimas de la unidad monetaria.  SmallMoney. Almacena valores numéricos monetarios de -214.748,3647 a 214.748,3647, con una precisión de hasta diez milésimas de la unidad monetaria.
  • 15.
    TIPOS DE DATOSDE CARÁCTER.  Char(n). Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo char, siempre se utilizan los n caracteres indicados, incluso si la entrada de datos es inferior. Por ejemplo, si en un char(5), guardamos el valor 'A', se almacena 'A ', ocupando los cinco bytes.  Varchar(n). Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo varchar, únicamente se utilizan los caracteres necesarios, Por ejemplo, si en un varchar(255), guardamos el valor 'A', se almacena 'A', ocupando solo un byte bytes.  Varchar(max). Igual que varchar, pero al declararse como Max puede almacenar 231-1 bytes.  Nchar(n). Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferente idiomas  Nvarchar(n). Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferente idiomas.  Nvarchar(max). Igual que varchar, pero al declararse como Max puede almacenar 231-1 bytes.
  • 16.
    TIPOS DE DATOSDE FECHA  Datetime. Almacena fechas con una precisión de milisegundo. Debe usarse para fechas muy especificas.  SmallDatetime. Almacena fechas con una precisión de minuto, por lo que ocupa la mitad de espacio de que el tipo datetime, para tablas que puedan llegar a tener muchos datos es un factor a tener muy en cuenta.  TimeStamp. Se utiliza para marcar un registro con la fecha de inserción - actualización. El tipo timestamp se actualiza automáticamente cada vez que insertamos o modificamos los datos.
  • 17.
    TIPOS DE DATOSBINARIOS  Binary. Se utiliza para almacenar datos binarios de longitud fija, con una longitud máxima de 8000 bytes.  Varbinary. Se utiliza para almacenar datos binarios de longitud variable, con una longitud máxima de 8000 bytes. Es muy similar a binary, salvo que varbinary utiliza menos espacio en disco.  Varbinary(max). Igual que varbinary, pero puede almacenar 231- 1 bytes TIPO DE DATOS XML  XML. Una de las grandes mejoras que incorpora SQL Server 2005 es el soporte nativo para XML. Como podemos deducir, este tipo de datos se utiliza para almacenar XML.
  • 18.
    LA INSTRUCCIÓN CREATETABLE Sintaxis: CREATE TABLE nombre_tabla ( nombre_alumna1 tipo_dato1 [NULL | NOT NULL], nombre_alumna2 tipo_dato1 [NULL | NOT NULL], nombre_alumna3 tipo_dato1 [NULL | NOT NULL], nombre_alumna4 tipo_dato1 [NULL | NOT NULL], …….)
  • 19.
    EJECUTAR LO SIGUIENTE USEMASTER go CREATE DATABASE prueba go CREATE TABLE Curso( idCurso CHAR(4) NOT NULL, nombreCurso VARCHR(50) NOT NULL, numVacantes SMALLINT NOT NULL, numMatriculados SMALLINT NOT NULL, profesor VARCHAR(50) NUL, precioCurso MONEY NOT NULL) go
  • 20.
    EL PROCEDIMIENTO SP_HELP Generaun reporte con información acerca de la definición de un objeto de la base de datos activa. Todos los usuarios de la base de datos pueden ejecutar este procedimiento. SINTAXIS SP_HELP nombre_objeto_basedatos EJEMPLO Sp_help Curso go
  • 21.
    CREACIÓN DE LACLAVE PRIMARIA (PK) Genera un reporte con información acerca de la definición de un objeto de la base de datos activa. Todos los usuarios de la base de datos pueden ejecutar este procedimiento. SINTAXIS ALTER TABLE nombre_tabla ADD CONSTRAINT PK_nombre_tabla PRIMARY KEY (alumnaX, columaP, …..) EJEMPLO ALTER TABLE Curso ADD CONSTRAINT PK_Curso PRIMARY KEY ( idCurso)
  • 22.
    INSERTAR FILAS INSERT INTOCurso(idCurso, nombreCurso, numVacantes, numMatriculados, precioCurso, Profesor) VALUES (‘PB1A’, ‘Power Builder Nivel I – Grupo A’, 15, 0, 150, ‘Sanchez Castillo Eddye Arturo’) go INSERT INTO Curso(idCurso, nombreCurso, numVacantes, numMatriculados, precioCurso, Profesor) VALUES (‘PB2A’, ‘MS Power Point 2007 Basico – Grupo A’, 15, 0, 150, ‘Zegarra Zavaleta Daniel’) go
  • 23.