Clase06 25-06-12

23
SQL 2005 SERVER Facultad de Educación Clase 06 Ing. Eddye Arturo Sánchez Castillo Mail: [email protected] Versión: Microsoft Office 2010

Transcript of Clase06 25-06-12

SQL 2005 SERVER

Facultad de Educación

Clase 06

Ing. Eddye Arturo Sánchez Castillo

Mail: [email protected]

Versión: Microsoft Office 2010

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 DATOSUna 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ÁLOGOSCuando 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 DATOSAntes 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 DATOSEstructura 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 DATOSEstructura 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 DATOSCreando 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 por medio de sentencia o SCRIPTs.

LA INSTRUCCIÓN CREATE DATABASESintaxis:

CREATE DATABASES nombre_basedatosON [ 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 DATOSPor 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 TABLESintaxis:

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 MASTERgo

CREATE DATABASE pruebago

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,precioCursoMONEY 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 Cursogo

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.

SINTAXISALTER TABLE nombre_tabla

ADD CONSTRAINT PK_nombre_tablaPRIMARY KEY (alumnaX, columaP, …..)

EJEMPLOALTER TABLE Curso

ADD CONSTRAINT PK_CursoPRIMARY 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