Yhoan Galeano
Web Developer
Algo de mi vida
Soy egresado del SENA, en la tecnología de ADSI del año 2011.
He trabajado en múltiples emprendimientos y he fallado muchas veces, pero agradezco hacerlo porque eso me ha enseñado muchísimo.
En este momento me encuentro emprendiendo (les confieso que he intentado mucho) con algunos amigos y visionamos que para el año 2018 estemos generando empleos formales a muchas personas
Consejo:
"No te preocupes por la vida, nadie sale vivo de ella."
Mariano Ponceliz
Conjunto finito y estructurado de datos
Conjunto de información organizada que cumple con un objetivo común.
Sin embargo, hablando desde el punto de vista tecnológico, estas bases de datos deben estar almacenas de manera persistente en un medio electrónico
Software que permite manipular bases de datos.
Factores No Técnicos
Factores Técnicos
Las bases de datos contienen cientos o miles de tablas y cada tabla se compone de filas y columnas.
Juan | Perez | M | 21 |
Maria | Castañeda | F | 25 |
Diana | Lopez | M | 14 |
Nombre | Apellido | Genero | Edad |
---|
Juan | Perez | M | 21 |
Maria | Castañeda | F | 25 |
Diana | Lopez | M | 14 |
Nombre | Apellido | Género | Edad |
---|
Fila o registro |
---|
Columna
Nombre columna
Dato
Celda
Cada columna puede tener un tipo de dato diferente de las demás.
Structured Query Language
Lenguaje de interacción con bases de datos que permite...
...información en una base de datos.
También conocido como Transact Sql, es una extensión de Sql aplicado al SGBD de MIcrosoft.
Es una extensión de Sql aplicado al SGBD de Oracle.
Es una extensión de SQL aplicado al SGBD de PostgreSQL.
Crear el diseño conceptual
Traducimos el diseño conceptual (MER) en un diseño lógico (MR)
Entidades, Atributos Simples
Relaciones y Atributos
Entidades, Atributos Opcionales
Relaciones y Atributos
Entidades, Atributos Compuestos
Relaciones y Atributos
Entidades, Atributos Multivaluados
Relaciones y Atributos
Entidades, Atributos Multivaluados, Claves Primarias y Claves Foráneas
Relaciones y Atributos
Para que este proceso sea exitoso, debemos tener en cuenta unos conceptos muy importantes.
La normalización de bases de datos es un proceso que consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Las bases de datos relacionales se normalizan para: Evitar la redundancia de los datos.
Se requiere un sistema de información que permita gestionar la información de los Arriendos/Alquileres de las viviendas.
Este sistema debe contener la información del propietario de la(s) vivienda(s) y la información que se debe contemplar para dicho propietario es: identificación, nombre completo, teléfonos de contacto y opcionalmente el correo electrónico. La(s) vivienda(s) deben tener la información de: código de la vivienda, dirección, la cual está compuesta por: calle y número, la vivienda debe tener además una descripción y la cantidad de habitantes. Cada vivienda se encuentra ubicada en una ciudad y dicha ciudad pertenece a un departamento/estado. Se debe tener la información de los arriendos/alquileres los cuales tendrán la información de: fecha de inicio, fecha de fin, valor mensual. Y también se requiere conocer la información del (los) inquilino(s), la información de este debe ser: identificación, nombre completo y teléfonos.
... Podemos pasar a nuestro diseño físico mas tranquilos
Crear nuestro diseño físico
Data Definition Language
Definen la estructura de la base de datos.
Data Control Language
Definen el acceso y permisos de la base de datos.
Data Manipulation Language
Definen los datos contenidos en la base de datos.
DDL
DCL
DML
Transaction Control Language
Controlan las transacciones hechas a la base de datos
TCL
Crear, modificar o eliminar objetos.
Controla y administra quien accede a los objetos de la base de datos.
Obtener, agregar, modificar o eliminar información contenida en los objetos de la base de datos.
Estas sentencias pueden ser filtradas por la clausula WHERE
Administra las transacciones hechas a objetos en la base de datos.
DDL
CREATE DATABASE nombre_base de datos
CREATE DATABASE TiendaDiscoStu;
Crea nuevos objetos en la base de datos.
CREATE
DDL
CREATE TABLE nombre_tabla
(
nombre_columna1 tipo_de_dato(tamaño),
nombre_columna2 tipo_de_dato(tamaño),
nombre_columna2 tipo_de_dato(tamaño),
....
);
CREATE
DDL
ALTER TABLE nombre_tabla
ALTER|ADD|DROP OBJETO nombre_columna tipo_de_dato (tamaño)
Altera la estructura de objetos en la base de datos.
CREATE
ALTER
DDL
DROP TABLE nombre_tabla
Elimina objetos en la base de datos.
CREATE
ALTER
DROP
CREATE
ALTER
DROP
DDL
GRANT PRIVILIGIES (Ejm: INSERT | UPDATE | DELETE | SELECT ) ON nombre_objeto
TO nombre_usuario
Permite a usuarios leer/escribir sobre los objetos de la base de datos.
GRANT
DCL
CREATE
ALTER
DROP
DDL
REVOKE PRIVILIGIES ON nombre_objeto TO nombre_usuario
Niega a usuarios leer/escribir sobre los objetos de la base de datos.
GRANT
REVOKE
DCL
CREATE
ALTER
DROP
DDL
SELECT nombre_columna1, nombre_columna2, nombre_columna3 FROM nombre_tabla
SELECT nombres, apellidos, genero FROM artistas;
Obtiene la información de un objeto en la base de datos.
GRANT
REVOKE
DCL
SELECT
DML
Usando "*" para traer todas las columnas
SELECT * FROM artistas;
CREATE
ALTER
DROP
DDL
SELECT nombre_columna1, nombre_columna2, nombre_columna3 FROM nombre_tabla WHERE nombre_columna2 [Operador de Comparación] valor2
SELECT nombres, apellidos, genero
FROM artistas
WHERE genero = 'Rock';
GRANT
REVOKE
DCL
SELECT
DML
CREATE
ALTER
DROP
DDL
INSERT INTO nombre_tabla
VALUES (valor1,valor2, valor3,...)
INSERT INTO artistas
VALUES(1018456789,'Chayan Emilio','Lopez',
'El chayan',3000,'Romantico');
Inserta información en un objeto en la base de datos.
GRANT
REVOKE
DCL
SELECT
INSERT
DML
CREATE
ALTER
DROP
DDL
UPDATE nombre_tabla SET nombre_columna1 [Operador de Asignación] valor1
UPDATE artistas SET sueldo = 200;
Actualiza la información de un objeto en la base de datos.
GRANT
REVOKE
DCL
SELECT
INSERT
UPDATE
DML
CREATE
ALTER
DROP
DDL
UPDATE nombre_tabla SET nombre_columna1 [Operador de Asignación] valor1 WHERE nombre_columna2 [Operador de Comparación] valor2
UPDATE artistas SET sueldo = 200
WHERE genero = 'Reggaeton';
GRANT
REVOKE
DCL
DML
SELECT
INSERT
UPDATE
CREATE
ALTER
DROP
DDL
DELETE FROM nombre_tabla
DELETE FROM artistas;
Borra información de un objeto en la base de datos.
GRANT
REVOKE
DCL
SELECT
INSERT
UPDATE
DELETE
DML
CREATE
ALTER
DROP
DDL
DELETE FROM nombre_tabla WHERE nombre_columna2 [Operador Comparativo] valor2
DELETE FROM artistas
WHERE nombre_artistico = 'Trigresa del oriente';
GRANT
REVOKE
DCL
DML
SELECT
INSERT
UPDATE
DELETE
Entre otros.
Operador | Significado |
---|---|
+ | Suma |
- | Resta |
* | Multiplicación |
/ | División |
% | Módulo o resíduo |
Operador | Significado |
---|---|
AND | TRUE si ambas expresiones booleanas son TRUE. |
BETWEEN | TRUE si el operando está dentro de un intervalo. |
IN | TRUE si el operando es igual a uno de la lista de expresiones. |
LIKE | TRUE si el operando coincide con un patrón. |
NOT | Invierte el valor de cualquier otro operador booleano. |
OR | TRUE si cualquiera de las dos expresiones booleanas es TRUE. |
Los más usados
El signo igual (=) es el único operador de asignación de Transact-SQL.
Operador | Significado |
---|---|
= | Igual a |
> | Mayor que |
< | Menor que |
>= | Mayor o igual que |
<= | Menor o igual que |
<> O != | No es igual a, Diferente de |
Funciones integradas que proporcionan ayuda para trabajar con la información de la base de datos.
(Las más usadas)
Función | Descripción | Uso |
---|---|---|
AVG(nombre_columna) | Devuelve el promedio de los valores de un grupo. Se omiten los valores NULL. | SELECT AVG(monto) FROM Ventas |
MIN(nombre_columna) | Devuelve el valor mínimo de la expresión | SELECT MIN(TasaImpuesto) Ventas; |
COUNT(nombre_columna) | Devuelve el número de elementos de un grupo | SELECT COUNT(DISTINCT Nombre) FROM Empleados; |
MAX(nombre_columna) | Devuelve el valor máximo de la expresión | SELECT MAX(TasaImpuesto) FROM Ventas; |
SUM(nombre_columna) | Devuelve la suma de todos los valores o solo de los valores DISTINCT de la expresión | SELECT SUM(Total) FROM Ventas; |
(Las más usadas)
Función | Descripción | Uso |
---|---|---|
CAST(expresión AS tipo_dato) | Convierte una expresión de un tipo de datos en otro | SELECT CAST(236 AS nvarchar); |
(Las más usadas)
Función | Descripción | Uso |
---|---|---|
NOW() | Devuelve un valor datetime que contiene la fecha y hora del equipo en el que la instancia de SQL Server se está ejecutando. El ajuste de zona horaria no está incluido. | SELECT NOW(); |
DATE_PART(Parte, Expresión) | Devuelve la parte especificada de una expresión (fecha). | SELECT date_part('year',TIMESTAMP '2017-01-01'); |
(Las más usadas)
Función | Descripción | Uso |
---|---|---|
SQRT(dato) | Devuelve la raíz cuadrada del valor de tipo flotante especificado | SELECT SQRT(9); |
CEILING(dato) | Devuelve un valor numérico, redondeado a la longitud o precisión especificadas | SELECT CEILING(12.34) |
POWER(dato,potencia) | Devuelve el valor de la expresión especificada elevado a la potencia especificada. | SELECT POWER(2,3); |
(Las más usadas)
Función | Descripción | Uso |
---|---|---|
CONCAT(cadena1,cadena2,...) | Devuelve una cadena que es el resultado de concatenar dos o más valores de cadena | SELECT CONCAT('Hola','que','tal'); |
SUBSTRING(cadena,indice_inicio,numero_indices_desplazamiento) | Devuelve parte de una expresión de caracteres, binaria, de texto o de imagen en SQL Server. | SELECT SUBSTRING('abcdef', 2, 3); |
REPLACE(dato,valor_a_reemplazar,valor_reemplazo) | Reemplaza todas las instancias de un valor de cadena especificado por otro valor de cadena. | SELECT REPLACE('primer texto','primer','reemplazado'); |
LENGTH(cadena) | Devuelve el número de caracteres de la expresión de cadena especificada, excluidos los espacios en blanco finales | SELECT LENGTH('Texto de prueba'); |
(Las más usadas)
Función | Descripción | Uso |
---|---|---|
UPPER(cadena) | Devuelve una expresión de caracteres convertidos a mayúsculas | SELECT UPPER('Pedro'); |
LOWER(cadena) | Devuelve una expresión de caracteres convertidos a minúsculas | SELECT LOWER('Juan'); |
RTRIM(cadena) | Remueve los espacios en blanco al final de una cadena | SELECT RTRIM('Buenos días '); |
LTRIM(cadena) | Remueve los espacios en blanco al principio de una cadena | SELECT LTRIM(' buenas tardes'); |
(Las más usadas)
SELECT nombre_columna1, nombre_columna_2 FROM nombre_tabla LIMIT numero_filas
SELECT * FROM Artistas LIMIT 8;
SELECT nombre_columna1 AS 'nombre_alias1',nombre_columna2 AS 'nombre_alias2' FROM nombre_tabla
SELECT genero AS 'Genero Artistico'
FROM artistas;
Son palabras que pueden reemplazar el nombre de columnas o tablas en una consulta sin alterar su estructura como tal.
SELECT nombre_columna1 ,nombre_columna2 FROM nombre_tabla WHERE nombre_columna1 IN (consulta_select)
SELECT * FROM artistas
WHERE Pais IN
(SELECT NombrePais FROM Paises
WHERE Continente = 'América');
Consultas anidadas en otras consultas.
Se pueden incluir en:
SELECT nombre_columna1 ,nombre_columna2 FROM nombre_tabla WHERE nombre_columna1 ORDER BY nombre_columna
SELECT * FROM artistas
WHERE genero = 'Jazz'
ORDER BY FechaEntrada;
Ordenar datos dentro de una cláusula SELECT, puede tener las siguientes variaciones:
SELECT funcion_agregado FROM nombre_tabla WHERE nombre_columna1 GROUP BY nombre_columna_agrupar
SELECT count(*) FROM
artistas
GROUP BY genero
Agrupar datos dentro de una cláusula SELECT que contenga una función de agregado.
nombre_columna PRIMARY KEY,
id INT PRIMARY KEY,
Campo o combinación de campos que identifica de forma única a cada fila de una tabla.
Incluida dentro de la sentencia CREATE de una tabla.
ALTER TABLE artistas WITH CHECK ADD
CONSTRAINT FK_GENERO FOREIGN KEY (GENERO_ID)
REFERENCES Generos (ID)
Identifican una columna o grupo de columnas en una tabla que se refiere a una columna o grupo de columnas en otra tabla.