Documentos de Académico
Documentos de Profesional
Documentos de Cultura
NIVEL PROFESIONAL
UDEMY
Contenido
IV. Cómo desactivar el warning Prevent saving changes that require table re-
created ............................................................................................................... 38
VI. Cómo crear una tabla y definir su Primary Key desde Transact-SQL ...... 42
Ejemplo .......................................................................................................... 51
XVI. Modelando el Diagrama Entidad Relación DER y definiendo las FK. ... 52
8. OPERADORES LÓGICOS............................................................................. 65
II. ¿Qué es una variable? Uso de INSNULL para evaluar valores. .............. 71
X. Función DATEIFF..................................................................................... 98
Ilustración 147 Ingresando datos y creando tabla temporal en memoria ............ 109
Estos son mis apuntes personales, quizás no esté al nivel curso original de Udemy,
dictado por Analista de Sistemas de información Mariano Puglisi. Por ello quizás
haya contenasdasdsadido faltante o notas propias.
1. FUNDAMENTOS Y ESTRUCTURAS DE BASE DE
DATOS
En el centro nos van a mostrar todos los scripts con sus respectivos resultados, cual
está conectada por defecto a la base de datos master, que es una base de datos
por sistema.
Con esto podemos agregando los distintos scripts para los proyectos.
Otra ventana importante es la de los mensajes o resultados donde muestra el
resultado de la ejecución de un script de SQL, cual se verá a continuación.
Todas las vistas o ventanas son modificables para la comodidad del usuario a la
hora de usar, cual puede ser a la izquierda, abajo, derecha y organizar como desee
el usuario.
Una base de datos este compuesto de distintas cosas, como lo son tablas, campos
que contiene títulos, autor, genero, ISB, etc. y los registros son los datos que
contiene la información de los libros, comparándolo con una biblioteca.
Dependiendo del tipo de dato se recomienda un tipo de dato, pero para ello vamos
a revisar los datos básicos de la informática.
• Bit: 0 o 1.
• Byte: 8 bits
• Kilobyte: 1024 Bytes.
• Megabyte: 1024 Kilobytes.
• Gigabyte: 1024 Megabytes.
• Terabyte: 1024 Gigabytes.
• Petabyte: 1024 Terabytes
Ahora si vamos a ver que dependiendo del tipo de dato para saber qué tipo de datos
vamos a escoger y optimizar nuestra base de datos, porque si ponemos un nombre
de 2000 caracteres es muy poco probable y si tenemos una tabla con 1000
registros, sería mucho espacio de almacenamiento reservado solo para ese
campo.
Datos numéricos.
•
BIT: 0 o 1 True o False
•
TINYINT: 1 byte y va desde 0 a 255
•
SMALLINT: -215 (-32,768) HASTA 215 (32,767)
•
INT: 4 bytes -215 (2,147,483,648) HASTA 231-1 (2,147,483,647)
•
BIGINT 8 bytes -263 (-9,223,372,036,854,775,808) 263-1
(9,223,372,036,854,775,807)
La clave Primary key (PK), identifica de manera única a cada registro de una tabla,
el valor que contiene la columna definida como Primary key, debe ser único, una
de las condiciones es que debe ser NOT NULL (No se permite valores nulos), una
tabla puede tener más de un campo PK, a la que llamamos CLAVE COMPUESTA.
Sea SIMPLE o COMPUESTA, cada tabla solo podrá tener clave primaria
(PRIMARY KEY) es decir sólo habrá una única clave primaria de este tipo. No se
podrá crear otra combinación.
La clave foránea o Foreign key, debe ser del mismo tipo de dato que su campo
relacionado. El valor del campo relacionado. El valor del campo definido como FK
puede ser Null.
Una Primary Key o Clave primaria, está compuesta por uno o más campos de una
tabla. Este grupo de campos que conforman una PK hacen que cada registro de la
tabla se pueda identificar unívocamente. Es decir que, solo existirá un único registro
con determinados valores en los campos conformados por la PK. No habrá
repeticiones.
La tabla B solo podrá tener valores ene l campo con Clave Foránea, que existan
únicamente en la Tabla A. No podrá tener otros valores.
Es por ello que, para que un campo puede se Identity, su tipo de dato debe ser
numérico.
Por lo general establecemos Identity a un campo que es Primary Key. Con esto
lograremos que su valor no se duplique, generando registros unívocos (únicos).
Para definir un campo con propiedad Identity (Seed =1, Increment=2) desde T-SQL
colocamos:
Primera 1FN
Se dice que una Tabla está en Primera Forma Normal y si sólo si todos sus campos
(Atributos) contienen valores atómicos. Esto quiere decir que cada Atributo de la
tabla deberá tener un único valor para una ocurrencia de la Entidad. No se
permitirán grupos repetitivos.
Segunda 2FN
Una tabla está en Segunda Forma Normal si y solo si están en 1FN y todos los
Atributos no clave dependen de por completo de la clave primaria.
Tercera 3FN
Una tabla está en Tercera Forma Normal si y sólo si está en 2FN los atributos no
clave son independientes entre sí. Esto quiere decir que los valores de los atributos
dependen sólo de la clave primaria y no depende de otro Atributo no clave. El
valor del Atributo no debe depender del valor de otro Atributo no clave.
Tabla 5 Tabla paciente 2FN y 3FN
En esta parte ya se deja tanto de teoría y empieza a hacer más de práctica, por
ello se recomienda que vaya planchando nalga y tirar código.
Para empezar, nos vamos a abrir nuestro gestor de base de datos y vamos a
conectarnos al motor de bases de datos, en el menú de la izquierda Object
explorer vamos a pararnos sobre la carpeta de Databases presionamos clic
derecho y nos aparecerá la siguiente ventana:
Después de eso hay que desconectar y volver a conectarse a la base de datos, para
que el cambio surta efecto.
III. Definiendo la Tabla Pacientes y aplicando Formas Normales.
Para crear una tabla en la base de datos, vamos al Object Explorer, seleccionamos
la base de datos en este caso centroMedico (La segunda palabra va junta y en
mayúscula). Vamos a la selección de Tablas presionamos clic derecho y new
Table.
Cuando nos salga el error que no se pueden guardar porque requiere que la tabla
se rehace con drop y organizarla con los cambios que uno quiere.
Lo primero es abrir un nuevo Query, cual vamos a llamar la tabla en este caso
Paciente1, donde cada campo separado por una coma (,), dando así sus
características como lo puede ser NOT NULL o puede ser Primary Key, viéndolo a
continuación.
Vamos a hacer el mismo proceso del paso III para crear la tabla de Historias
Clínicas. Tengamos en cuenta que la columna idHistoria tiene la propiedad
Identity.
Al ser una tabla especial de conexión, todos sus datos serán tomados como llaves
primarias, en la cual cada dato será importante.
Vamos a crear una nueva tabla, de la misma manera que las veces anteriores.
Ahora nos falta relacionar la tabla turno con paciente y para ello vamos a crear otra
tabla.
Para ello vamos a crear la tabla turnoEstado, primero vamos a abrir un nuevo
query, el cual vamos a introducir el siguiente código.
Ahora vamos a introducir los posibles estados del turno, para ello vamos a
introducir las siguientes líneas de código.
Vemos que ingreso correctamente los registros y para comprobar solo debemos
ingresar el siguiente SELECT y veremos el resultado.
Ilustración 32 Resultado
X. Ejercicio crear Tablas especialidades y países.
Aquí se recomienda que cada uno se tome la tarea de diseñar la tabla de país y la
tabla de especialidad, tengan en cuenta que la posible PK para país puede ser la
que definimos anteriormente como idPais con tipo de dato char 3. Y para ver si
corresponde con los códigos correspondientes se ve a continuación.
Antes de eso también se definirá la tabla de médico, para ello solo se tendrá su Id,
nombre y apellido.
Un tipo de dato de usuario lo que nos facilita es crear un tipo de dato en particular,
un nombre que especificamos y poderlo usar en todo el ciclo de vida de la base
de datos. Esto nos ayuda a evitar perder el seguimiento de los datos.
Después de crear los tipos de datos, vamos a ir a la tabal en este caso va a ser la
de Paciente y vamos a diseño, escogemos el Data Type de la ID escogida y vamos
a cambiarlo al
Ilustración 42 Cambiar tipo de dato a la tabla
Esto nos permite establecer un orden en todas las tablas para que sea el mismo
tipo de dato y no tener problemas mas adelante con la consistencia.
Las relaciones entre tablas no son obligatorias. Una base de datos puede no tener
tablas relacionadas.
Son propiamente las relaciones entre tablas, en las que un campo Primary Key (PK)
se relaciona un campo de otra tabla (del mismo tipo de dato), al cual llamamos
Foreign Key (FK).
¿De que me sirve crear esta relación?
Esta relación NO permitirá colocar un valor en el campo definido como FK, que no
esté definido en la tabla definida con el campo PK.
Ejemplo
Esto hace que, del lado del interfaz de usuario, siempre se pueda visualizar
información consistente.
¿Qué sucede si quiero eliminar un registro de la tabla País, cuyo país está
asignado a un Paciente?
Al igual que antes, la regla de Integridad no nos permitirá eliminar el país, hasta que
cambiemos el país del Paciente por otro.
Al escoger eso nos aparece un listado con todas las tablas de la base de datos que
hayamos creado. Donde escogemos todas las tablas.
Organizamos las tablas de una manera sencilla que podamos trabajar. Para crear
la relación debemos seleccionar el campo presionar click y llevar el campo hacia la
otra tabla, quedando así.
Ilustración 45 Modelo relacional
Teniendo en cuenta la relación que hay entre las tablas paciente y país vamos a
eliminarla de la manera grafica para así realizarla por medio de scripts. Quedando
así el siguiente código.
Lo primero es que la tabla no debe tener registros, para reiniciar, los parámetros
para reiniciar son los siguientes: el nombre de la tabla, el comando RESEED y el
numero a partir del cual desea que vuelva a empezar.
Lo primero que debemos tener en cuenta para hacer estos comandos es que
debemos estar usando la base de datos correspondiente, ya sea escogiéndolo de
manera grafica o usando el comando USE. Después de eso ya especificar
mediante las clausulas que se verán mas adelante. Por ahora veremos el SELECT
* FROM TABLE más sencillo.
Siguiendo con la misma lógica que con el SELECT FROM tenemos el comando
para insertar registros dentro de nuestras tablas, la estructura básica de esta es
INSERT INTO TBALE VALUES (XXXXX,XXXXX,XXXX). Hay varias cosas que
tener en cuenta a la hora de usar este comando, es que el Auto incremental como
son los ID no se colocan por lo general y también uno puede especificar a que
columnas.
Este comando nos permite eliminar registros de la Tabla y es es uno de los más
PELIGROSOS dentro de SQL, ya que si no se especifica que se va a eliminar dentro
de este, podría vaciar toda la tabla si no tiene toda la cláusula WHERE, tomando en
cuenta el ejemplo anterior con Autor.
Con el comando UPDATE nos permite actualizar registros dentro de las tablas, este
comando nos permite cambiar un elemento, conjunto de elementos o la totalidad de
estos. Por ello hay que tener mucho cuidado a la hora de escribir su sentencia, un
ejemplo que se tiene es el de a continuación.
6. CLÁUSULAS SQL
Estas cláusulas nos sirven para ordenar y agrupar los registros de las consultas
dentro de SQL.
I. Cláusula WHERE.
Esta cláusula nos permite filtrar datos, nos sirve para seleccionar unos registros
digamos por apellidos, país o entre otros tipos de registros.
Por ejemplo, podemos tener en la tabla autores de libros aquellos que nacieron en
Colombia.
Como se puede ver trajo todos los registros de la tabla, esto ya que la cláusula
DISTINCT solo trae los repetidos y al haber nombres distintos no los agrupa.
V. Cláusula GROUP BY
Esta cláusula funciona igual que DISTINCT excepto que nos permite agregar
funciones de agregado.
Esta función nos permite ver el máximo y el mínimo de la tabla, es decir fechas, id
o para lo que sea necesario.
La función SUM se aplica directamente sobre el campo que uno desea sumar, cual
suma los totales con respecto a la cláusula GROUP BY.
La función COUNT nos funciona para contar la cantidad de filas o registros que hay
en el campo o tabla.
Lo que nos permite ver que tiene, función HAVING funciona con la función COUNT
y la cláusula GROUP BY.
8. OPERADORES LÓGICOS
I. Operador AND
III. Operador IN
Ilustración 75 Operador IN
IV. Operador LIKE
Para nombres que no sean completos, se utiliza la combinación del carácter con
el %.
Lo que nos permite ver son el resto de apellidos que no cumplía en el ejemplo de la
operación LIKE.
Lo que nos permite este operador es filtrar los registros por un determinado rango,
que puede ser fechas, números, textos.
Uno puede combinar varias de las operaciones antes mencionadas , como por
ejemplo.
Para darle importancia hay que encerrar entre paréntesis para que devuelva
correctamente.
9. STORED PROSCEDURES
Una variable es un valor que nos sirve para guardar distintos tipos de valores, que
pueden ser de los mismos tipos de datos que se pueden asignar a la base de datos.
Las subconsultas son resultados a partir de otra consulta, para tener en cuenta el
subqueri debe ser solo de un valor. Y el alias a una tabla es para darle un nombre
alternativo.
En esta sección vamos a ver las estructuras que se pueden ejecutar en SQL
SERVER para evaluar un bloque de código, cuales son las siguientes estructuras.
Nos sirve para evaluar el valor de una variable o una consulta para ejecutar acciones
que sean necesarias para el este resultado.
Ilustración 83 Condicional IF
Como vemos funciona la condicional IF, pero en el caso que no funcione no nos
devolverá nada la condicional.
Ilustración 87 IF EXISTS
Hay que tener en cuenta el tabulado a la hora de escribir los scripts para así tener
en cuenta el orden y saber lo que uno escribe.
III. El bucle WHILE
El bucle WHILE nos permite ejecutar un bloque de código hasta que la condición
se cumpla.
La instrucción RETURN nos permite salir del SCRIPT para consola y todas las
instrucciones que estén después de esta instrucción no se ejecutarán
Lo que nos permite la estructura TRY CATCH es para los errores no controlados
durante la ejecución, nos permite capturar el error y devolvernos el error específico
mediante consola.
Este proceso nos permite ver el detalle de los objetos que tenemos definidos en
nuestra base de datos y se escribe de manera sp_help (con el nombre de la
tabla)
Para poder ejecutar ambos procesos desde una combinación de teclas, en la cual
nos podrá facilitar el proceso, para ello vamos a Menu Tools, options.
Al realizar los cambios en el menú de atajos hay que abrir un nuevo QUERY para
que se realicen los cambios.
13. SENTENCIAS SQL
I. Sentencia CREATE (Table, Type, Function)
Con esta sentencia nos permite crear tablas, tipos, funciones y bases de datos.
La cual se ve a continuación, es la de creación por defecto que da el motor de base
de datos.
Esta sentencia nos hace es VACIAR O ELIMINAR POR COMPLETO los registros
de una tabla y reiniciar los campos Identity.
Lo que realiza esta función es tomar la cantidad de caracteres que uno mismo indica
del lado derecho e izquierdo de una variable, se realiza de la siguiente manera.
Lo que realiza esta función es contar la cantidad de caracteres que hay en una
variable CHAR o VARCHAR, para ver la cantidad de caracteres que ingrese un
usuario, se puede combinar con la función LEFT o RIGHT por ejemplo.
Estas funciones nos permite dar formato a campos de tipo texto o campos de una
campa, lo que hace LOWER es pasar todos los caracteres en minúscula a
comparación de la función UPPER deja la cadena de caracteres en mayúsculas.
Nos sirve para cambiar cuando un usuario nos guarda su nombre y apellido en un
formato que nosotros deseemos.
Ilustración 119 Upper y Lowwer para dar formato
Lo que nos permite es reemplazar un carácter por otro, ya puede ser en una
variable o en el campo de una tabla.
V. Funciones REPLICATE
Lo que nos permite es repetir un carácter o una cadena de caracteres una cantidad
de veces.
Lo que realiza estas funciones es eliminar los espacios del principio y del final,
LTRIM es el encargado de eliminar el espacio al principio en la cadena de
caracteres y RTRIM al final de la cadena de caracteres.
Esta función nos permite agregarle una fecha intervalos, de segundos, minutos,
horas, días, meses y años.
X. Función DATEIFF
Lo que nos permite es ver la diferencia entre dos intervalos de fechas que nosotros
especifiquemos.
Lo que nos permite es evaluar si una fecha en especifica esta en el formato correcto.
Estas son las funciones de conversión la función CAST nos permite un tipo de dato
a otro, dentro del mismo tipo, es decir que sea de decimal a entero, no se puede
hacer un varchar a decimal.
La función CONVERT nos permite cambiar con un poco de detalle los tipos de
datos.
Esta operación nos permite hacer varios INSERT, DELETE, UPDATE en el cual si
uno falla se devuelva al estado original de operación.
En el script anterior vemos que intentamos cambiar el nombre a varios autores por
Brandon, como vemos que hay varios autores de COL no se realiza la operación.
(Ánonimo, n.d.)
Lo que muestra los registros son los registros de la tabla de la izquierda, en este
caso sería la primera que aparece después del SELECT
(Ánonimo, n.d.)
Lo que nos permite el RIGHT JOIN es todo lo contrario al LEFT JOIN.
Hay que tener en cuenta varias cosas cunado se trabaja con JOINS ENTRE
TABLAS, cuando uno hace una conexión SIEMPRE con la PRIMARY KEY.
Siempre hacer la búsqueda en ORDEN a la hora del ON que sea por la tabla
inmediate y luego de la conexión.
La tercera es tener ALIAS para ahorrar tiempo y siempre especificar para que no
salga errores.
V. La cláusula UNION y UNION ALL.
La diferencia entre las clausulas UNION y la INNER, UNION nos permite unir dos
distintas CONSULTAS para la misma tabla.
La diferencia entre UNION y UNION ALL es que UNION ALL devuelve toda la
información a comparación de UNION que eliminar las repeticiones.
Las funciones escalares son funciones que nos permite recibir uno o mas valores
y devolver un valor, realizar un cálculo con ese parámetro y retornar ese valor.
Una vista es una tabla virtual cuyo contenido está definido por una consulta.
Para continuar es el tipo de Backup, cuales son: Completo es aquel que hace de
todos los objetos que están dentro de la base de datos y el diferencial cual hace
con los nuevos objetos y registros comparándolo con un backup anterior. También
escogemos la ubicación.
Ilustración 158 Escoger el tipo de Backup
Otras recomendaciones es que los backup por nombres se pongan la fecha del
día y hora para así no confundirse.
Se puede usar este Script para un Procedimiento almacenado para así sea
programado para la hora correspondiente.
22. Shedule JOBS
I. ¿Qué es un SQL JOB? Opciones disponibles
Donde se puede administrar que a partir de que usuario, horarios y tareas para
realizar el proceso automatizado.
II. Preparando un JOB para realizar una tarea
Para ingresar en SQL se tiene dos métodos se tiene el LOGIN y los USUARIOS
cuales los últimos se le puede ingresar los permisos. Cual todo USUARIO esta
relacionado con un LOGIN.
Para crear un LOGIN se debe ingresar por medio del OBJECT EXPLORER.
Cuales hay unos predefinidos por el SERVIDOR, los de la BASE DE DATOS y los
que creamos nosotros mismos que son los de USUARIOS.
ROLES DE SERVIDOR
Esta herramienta sirve para rastrear los procesos dentro de la base de datos.
I. Conocimiento de la herramienta.
La tabla anterior se ira actualizando cada vez que uno mande cualquier ejecución
en el SQL Server Managment.
Para ver una traza personalizada es por medio de Trace Propieties. Cual uno
escoge que procesos y que hacerle seguimiento.
5. Normalicen las tablas; deben crear tantas tablas como requiera el modelo de
base de datos. Normalizar en 3ra FN es suficiente. Si considera que hayt
campos que deben colocarse en otra tabla, hágalo.
6. Aseguresn su base de datos. Si tienen la posibilidad de administrar los
accesos, creen usuarios, roles y permisos que garanticen la seguridad.
7. Realizar las consultas filtradas siempre en lo posible por los campos Primary
Key. Si usas JOINS, siempre coloca la cláusula ON los campos PK. Esto hará
que la consulta sea óptima.
8. Si has implementado Schedule Jobs, asegúrate que estén ejecutando en
horarios nocturnos o cuando la base de datos esté con poca actividad, a fin
de no afectar la perfomance al usuario.
9. Eviten el uso excesivo de Triggers. Cuando estos desencadenadores están
vinculados a inserts, updates o deletes muy concurrentes, puede afectar la
perfomance.
10. Realiza un Backup periódicamente y almacena los archivos preferente en un
disco o dispositivo externo.
26. REFERENCIAS
Ánonimo. (n.d.). ¿Cómo funciona INNER JOIN, LEFT JOIN, RIGHT JOIN Y FULL
JOIN? Retrieved January 24, 2023, from
https://programacionymas.com/blog/como-funciona-inner-left-right-full-join