Академический Документы
Профессиональный Документы
Культура Документы
Agenda
CREATE DATABASE Agregar y modificar archivos Esquemas de la base de dato Instantnea de una base de datos Tipos de datos SQL y T-SQL Comentarios en T-SQL Identificadores Variables en T-SQL Operadores en T-SQL Estructura condicional IF Estructura condicional CASE Estructura control WHILE Control de errores TRY CATCH Funciones especiales de Error Generar un error con RAISERROR Sentencia SELECT Intervalos (BETWEEN y NOT BETWEEN) Listas (IN , NOT IN) Valores NULL Buenas Prcticas
CREATE DATABASE
Crea una nueva base de datos y los archivos que se usan para almacenar la base de datos, una instantnea de base de datos, o adjuntar una base de datos a partir de los archivos separados de una base de datos creada anteriormente.
CREATE DATABASE
CREATE DATABASE NOMBREBASE [ON {[PRIMARY] [, FILEGROUP NombreGrupo] (NAME = ArchivoLogico, FILENAME = ArchivoFisico [,SIZE = Tamao] [,MAXSIZE = {TamaoMax|UNLIMITED}] )}[,n]] [LOG ON {(NAME = ArchivoLogico FILENAME =ArchivoFisico [,SIZE=Tamao] [,MAXSIZE= {TamaoMax|UNLIMITED}] [,FILEGROWTH= IncrementoCrecimiento] )}[,..n]] [COLLATE NombreIntercalacin]
CREATE DATABASE
CREATE DATABASE [POS] ON PRIMARY ( NAME = N'POS', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\POS.mdf', SIZE = 4096KB , MAXSIZE = UNLIMITED, FILEGROWTH = 2048KB ) LOG ON ( NAME = N'POS_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\POS_log.ldf, SIZE = 4096KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) GO
ALTER DATABASE NOMBREBASE ADD FILE (NAME = ArchivoLogico, FILENAME = ArchivoFisico [,SIZE = Tamao] [,MAXSIZE = {TamaoMax|UNLIMITED}] [,FILEGROWTH= IncrementoCrecimiento] )
CREATE DATABASE [POS] GO ALTER DATABASE POS MODIFY FILE ( NAME = N'POS' , SIZE = 3048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) GO ALTER DATABASE POS MODIFY FILE ( NAME = N'POS_log' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) GO
Es un espacio de nombres para objetos de la base de datos (tablas, vistas, procedimientos almacenados). Define un lmite dentro del cual todos los nombres son nicos. Su Formato: Servidor.BasedeDatos.esquema.objeto Versin corta esquema.objeto
Todas las bases de datos contienen un esquema predeterminado llamado dbo. Dbo. Es asignado para todos los usuarios que no tienen ningn esquema definido explcitamente. Use NombreBaseDatos CREATE SCHEMA NombreEsquema
Es una vista esttica de solo lectura de una BD en un punto especifico en el tiempo que no cambia despus de la creacin de la misma.
Tipos de datos
oNmero Exacto BigInt Int SmallInt Decimal(p,s) Numeric(p,s) Bit oNmero Aproximado Float Real oMonetario Money Smallmoney
oFecha y Tiempo DateTime oCarcter Char() Tamao Fijo Varchar()Tamao Variable Text (2GB) oBinario Binary(n) Image oPropsito General Timestamp XML
SQL y T-SQL SQL.- es un lenguaje de consulta para los sistemas de bases de datos relacionales, pero no es un lenguaje de programacin. SQL, no tiene variables, estructuras de control , de flujo, bucles, etc. T-SQL admite el nivel bsico de implementacin de SQL-92, estandar ANSI TSQL. Podemos programar las unidades de programa de la BD. Procedimientos almacenados. Funciones Triggers Scripts, Etc.
Comentarios en T-SQL
TSQL. No es CASE-SENSITIVE, es decir no diferencia maysculas de minsculas. Un comentario es una aclaracin que el programador incluye en el cdigo, son soportador 2 estilos: -- Comentario de una sola lnea /**/ Comentario de varias lneas
Comentarios en T-SQL
Script. Es un conjuntos de sentencias de TSQL en formato texto plano que se ejecuta en un servidor de SQL-Server GO. Comando para iniciar el envo del lote actual de instrucciones TSQL. En ocasiones es conveniente separar las sentencias en varios lotes. Si desea ejecutar cierto cdigo TSQL, mrquelo y ejecute con la tecla F5.
Identificadores Tenemos 2 tipos: Identificador Estndar De 1 a 128 caracteres mximo. 1er carcter deber ser alfabtico Despus del 1er carcter pueden incluir letras, nmeros o smbolos. Si comienza con @ indica una variable o parmetro local. Si empieza con # indica una tabla o procedimiento temporal. Si empieza con ## indica un objeto global temporal Identificadores Delimitados Si un identificador no cumple algunas de las reglas de formato siempre debe estar delimitado con []
Variables en T-SQL
Una variable es un valor identificado por un nombre (identificador) sobre el que podemos realizar modificaciones. Los identificadores de una variable deben empezar con el carcter @ Para declarar variables debemos utiliza la palabra clave DECLARE, seguido del identificador y tipo de dato. La asignacin de variables con Instruccin SET Sentencia SELECT
Operadores en T-SQL
Aritmticos +,-,*,/,**,% Comparacin =,<>, !=, <,>, <=, >=, !>, !< Lgicos AND, NOT, OR Otros ALL, ANY, BETWEEN, LIKE, NOT, SOME
Estructura condicional IF Permite evaluar una expresin booleana y operaciones en el bloque formado por BEGIN END Sintaxis:
IF(<expresin booleana>) BEGIN {sentencias SQL o bloques de sentencias} END ELSE IF BEGIN {sentencias SQL o bloques de sentencias} END ELSE BEGIN {sentencias SQL o bloques de sentencias} END
ejecutar
Permite evaluar una expresin y devolver un valor u otro Sintaxis: CASE <expresin> WHEN <valorExpresin> THEN <valordevuelto>
El bucle While se repite mientras la expresin se evale verdadera, es el nico tipo de bucle que dispone TSQL. Sintaxis:
WHILE expresin_booleana BEGIN {sentencias SQL o bloque de Sentencias}
[BREAK]
{sentencias SQL o bloque de Sentencias} CONTINUE {sentencias SQL o bloque de Sentencias} END
Si se produce un error en el bloque TRY, el control se transfiere a un bloque CATCH. Sintaxis: BEGIN TRY {sentencias SQL o bloque de Sentencias} END TRY BEGIN CATCH {sentencias SQL o bloque de Sentencias} END CATCH
ERROR_NUMBER(). Nmero del Error. ERROR_SEVERITY(). Severidad del error ERROR_STATE(). Estado del error. ERROR_PROCEDURE(). Nombre del procedimiento almacenado que ha provocado el error ERROR_LINE(). Lnea en el que se ha producido el error ERROR_MESSAGE(). Mensaje de error
Provocar voluntariamente un error cuando los datos no cumplen una regla de negocio RAISERROR. Recibe 3 parmetros:
o Mensaje. Texto o Severidad. 0 al 25; solo podemos usar 0 al 18, para el resto debe ser miembro de la funcin o rol sysadmin. o Estado. Valores entre 1 y 127
Sentencia SELECT
INTO <nombe_nueva_tabla>
FROM <nueva_tabla> WHERE < condicin > [AND OR < condicin > ]] [GROUP BY < nombre_campos> ] [HAVING < condicin > [AND OR < condicin > ]] [ORDER BY < condicin > [AND OR < condicin > ]]
Sentencia SELECT
La legibilidad de una instruccin SELECT se puede mejorar si se proporciona un alias para la tabla. Conocida como Variable de intervalo o nombre de correlacin. til en Join, para identificar campos ambiguos. 2 formas: NombreTabla as TablaAlias NombreTabla TablaAlias
Sentencia SELECT
Distinct. Elimina las filas duplicadas de los resultados. SELECT DISTINC <campo> FROM <tabla> Top. Limitar el nmero de filas devueltas Percent. Se devuelve el porcentaje (especificado por expresin) de las filas del conjunto
Es una bsqueda que devuelve todos los valores entre dos especificados. Podemos tener intervalor inclusivos o exlcusivos (operadores <, >). Podemos hacer uso del operador NOT.
La palabra clave IN permite seleccionar las filas que coincidan con alguno de los valores de una lista. Los elementos de una lista deben estar separados por una coma e incluidos entre parntesis. WHERE <campo> IN (Lista)
Valores NULL
NULL. No es cero ni espacio en blanco. Ausencia de valor. Puede ser considerado como perdida en la integridad de datos.
Buenas Prcticas Las buenas prcticas se pueden reducir a unos pocos principios que tienen efectos que se propagan por el cdigo. Una articulacin prctica de estos principios es como sigue: Hay que hacer el cdigo autodocumentado. Hay que hacer el cdigo legible. Considerar todas las acciones explcitamente. Dada la eleccin entre ser crptico o extenso hay que elegir extenso. Hay que incluir comentarios narrativos
La decisin ms importante que tiene que tomar al disear una tabla es sobre la definicin de los tipos de datos para las columnas y las propiedades adjuntas a una columna.
Los tipos de datos limitan el abanico de posibles valores que se pueden almacenar en una columna y determinan cunto espacio de almacenamiento y memoria consume cada fila.
Restricciones
El diseo de una base de datos es un ejercicio de implementar reglas empresariales. Un ejemplo de regla empresarial implementada es que un cliente pueda tener ms de una direccin, no es vlida a no ser que tenga por lo menos una lnea de direccin y una ciudad. Las limitaciones proporcionan un segundo nivel de implementacin de reglas empresariales evitando que los usuarios accedan a la informacin de las tablas fuera de las fronteras permitidas.
Las restricciones de comprobacin se utilizan para limitar el campo de posibles valores en una columna o para implementar patrones especficos para la informacin. Todas las restricciones de comprobacin deben realizar una bsqueda de tipo booleano (TRUE o FALSE) y no pueden referenciar a columnas en otra tabla. Dos niveles: Comprobacin a nivel de columna. Comprobacin a nivel de tabla.
Ejemplo de comprobacin a nivel de tabla para validar una direccin de correo electrnico:
CONTRAINT chkEMail CHECK (Email like %@%.[a-z] [a-z] [a-z] or Email like %@%.[a-z] [a-z] .[a-z] [a-z]). Ejemplo de comprobacin a nivel de columna: CHECK (EmployeeID like [A-Z] [0-9] [0-9] [0-9] [A-Z] [A-Z] [A-Z] [A-Z] [A-Z] [A-Z] )
Reglas
Las restricciones de comprobacin se definen en la definicin de tablas y no se pueden reutilizar. Las reglas tienen la misma funcin que las restricciones de comprobacin, pero son un objeto creado de forma separada.
Como las reglas no estn asociadas a una tabla o columna especficas cuando se crean, no pueden referenciar columnas o tablas en su definicin. En su lugar utilizan variables.
Reglas
CREATE RULE EmailValidator AS @value like %@%.[a-z] [a-z] [a-z] or @value like %@%.[a-z] [a-z] .[a-z] [a-z];
Otras restricciones
DEFAUL: escribe un valor en una columna cuando el usuario no especifica uno. UNIQUE: asegura que las columnas o combinaciones de columnas no permitan valores duplicados.
PRIMARY KEY: define la columna o combinacin de columnas que permiten que una fila sea identificada exclusivamente
FOREIGN KEY: se integridad referencial. utilizan para implementar
Las convenciones de base de datos son necesarias en todas las organizaciones para proporcionar una estructura que codificar y una base de datos. Un DBA debe ser capa de: Crear convenciones y estndares de base de datos Definir convenciones de nomenclatura de objetos. Definir sinnimos consistentes Definir estndares de codificacin de base de datos. Documentar convenciones y estndares de base de datos.
Sinnimos
Los sinnimos permiten crear alias para objetos en una base de datos. Al crear un sinnimo se asla una aplicacin de cualquier cambio que pueda ocurrir a los nombres de los objetos. Los sinnimos se pueden utilizar para crear un alias de un objeto en un servicio local o remoto.
Estndares de codificacin
El objetivo de un estndar de codificacin es proporcionar estructura para la forma en que se escribe el cdigo, as como especificar cmo o si algunas caractersticas y funciones se utilizan.
Los estndares de codificacin se pueden dividir en dos categoras generales: estandarizacin y rendimiento.
Estandarizacin
Los estndares de codificacin diseados para introducir estructuras en el cdigo que se escribe estn todos dentro de esta categora. Algunos ejemplos de estos estndares son los siguientes:
La sangra son cuatro espacios en un lugar de una tabulacin.
Cada bloque de texto dentro de otro bloque superior debe llevar una sangra de cuatro espacios con respecto al superior.
Las palabras maysculas. clave de Transact-SQL van todas en
Rendimientos
Los estndares de codificacin que tienen que ver con el rendimiento estn diseados para restringir la aplicacin de ciertas caractersticas para asegurar el mejor rendimiento posible de las aplicaciones. Algunos de los estndares de codificacin para el rendimiento son los siguientes:
Cursores
Tablas temporales Variables de tablas
Funciones escalares.
Creacin de un sinnimo