Subido por turulo75

Curso profesional de SQL

Anuncio
Introducción
Curso profesional de SQL.
Las bases de datos relacionales se han convertido en el mecanismo de almacenamiento de datos más común
para las aplicaciones computacionales modernas. Los lenguajes de programación como Java, C y COBOL, y
los lenguajes interpretados de programación como Perl, VBScript y JavaScript muy a menudo acceden a las
fuentes de datos para poder recuperar o modificar los datos.
Muchas de estas fuentes de datos son administradas a través de un sistema de administración de bases de
datos relacionales (RDBMS), como Oracle, Microsoft SQL Server, MySQL y DB2, que tiene como base el
Lenguaje de Consulta Estructurado (SQL) para crear y alterar los objetos de la base de datos, agregar datos y
eliminarlos de la base de datos, modificar datos que han sido agregados a esa base de datos y, por supuesto,
recuperar datos almacenados en la base de datos para su desplegado y procesamiento.
SQL es el lenguaje más ampliamente implementado para las bases de datos relacionales. De la misma manera
que las matemáticas son el lenguaje de la ciencia, SQL es el lenguaje de las bases de datos relacionales. SQL
no solamente permite administrar los datos dentro de la base de datos, sino también manejar la base de datos
en sí.
Utilizando las instrucciones SQL, es posible acceder a una base de datos SQL directamente al utilizar una
aplicación cliente interactiva o a través de un lenguaje de programación de aplicación o lenguaje interpretado.
Sin importar cuál sea el método que se utilice para acceder a una fuente de datos, es obligatoria una buena
base acerca de cómo escribir instrucciones SQL para poder acceder a los datos relacionales.
Este curso de SQL, te proporciona esa base. Se describen todos los tipos de instrucciones que soporta SQL y
se explica cómo son utilizadas para administrar bases de datos y sus datos.
A través del trabajo con este curso, usted construirá fuertes cimientos en SQL básico y obtendrá un profundo
entendimiento de cómo utilizar SQL para acceder a los datos en su base de datos relacional.
Módulos del curso
1. Diagrama Entidad Relación
Diagrama Entidad Relación Un diagrama o modelo entidad–relación es una herramienta para el modelado
de datos que permite representar las entidades relevantes de un sistema de información, así como sus
interrelaciones y propiedades.
1.1. ¿Qué es una base de datos?
1.2. Características de una base de datos.
1.2.1. Capacidad de acceso
1.2.2. Versatilidad
1.2.3. Integridad
1.2.4. Seguridad y privacidad
1.2.5. Mínima redundancia
1.3. Gestor de base de datos.
1.3.1. Un DBMS – SGBD:
es un software que nos permite administrar una BD, para realizar las siguientes
tareas:
 Crear
 Modificar
 Actualizar
 Borrar
 Poblar
 Seleccionar

Gestionar privilegios
1.3.2. Tipo de SGBD están:
 Relacionales
 MySQL
 Sql Server
 Oracle
 PostgreSQL
 DB2
 Informix
 No Relacionales
 mongoDB
 FireBase
 CouchDB
 Neo4j
 Cassandra
1.3.3. Fases de diseño de una BD
 Diseño conceptual- Modelo E-R (MER)
 Diseño lógico
 Diseño físico
1.4. Elementos del Diagrama ER.
1.4.1. Diagrama del modelo entidad- relación
Que es el modelo E-R
Es una herramienta para el modelado de datos que permiten representar las
entidades relevantes de un sistema de información, así como sus
interrelaciones y propiedades.
1.4.2. Componentes del modelo entidad- relación
 Entidad
Representa un objeto/elemento del universo de discurso (del problema a
resolver). Se representa por medio de un rectángulo y dentro el nombre de la
entidad

Entidad débil
Representa un objeto/elemento del universo de discurso (del problema a
resolver), pero que necesita de una relación con otra entidad para su
identificación. Se representa por medio de un doble rectángulo y dentro el
nombre de la entidad

Relación
Representa el tipo de relación entre entidades. Se representa por medio de
un rombo y dentro el nombre de la entidad

Relación con dependencia de identificación:
Representa el tipo de relación que identifica la dependencia entre entidades.
Se representa por medio de un doble rombo y dentro el nombre de la entidad

Rol
Es la representación de la unión entre relaciones y las entidades (conector)
Se representa por medio de una línea

Atributos
Representan las características de las entidades. Se representa por medio de
un circulo u ovalo y dentro el nombre de la entidad
1.5. Tipos de atributos.
 Atributo simple o monovaluado
Únicamente puede almacenar un único valor. Se representa por medio de un
circulo sin rellenar.
 Atributo identificador principal
Atributo principal de la entidad, que no se puede repetir. Se representa por
medio de un circulo relleno
 Atributo identificador alternativo
Similar al atributo principal, es decir otro atributo que no se repetirá. Se
representa por medio de un circulo relleno a la mitad
 Atributo multivaluado
Este atributo puede contener varios valores (por ejemplo, podemos tener
varios teléfonos). Se representa por medio de un doble circulo
 Atributo opcional
Este atributo alberga datos que son opcionales (email). Se representa por
medio de un circulo punteado
 Atributo compuesto
Este atributo se obtiene de unir diferentes valores en uno solo. Se representa
por medio de 3 círculos (como la carita de Mickey mouse)
1.6. Restricciones de cardinalidad.
 Tipo de correspondencia de cardinalidades
Número máximo de ejemplares de una entidad asociados a una combinación
de ejemplares de las otras entidades en la interrelación, que puede ser 1:N,
1:1 o N:N
 Cardinalidades Máximas y Mínimas
Son el número máximo y mínimo de ejemplares de una entidad que puede
relacionarse con un único ejemplar de la otra entidad que participa en la
interrelación. Se representa como (0,1), (1,1),(0,N),(1,N) y se sitúa en la línea
que conecta la entidad con el rombo que representa el tipo de interrelación
1.7. Ejemplo MER.
En una escuela, las facultades son dirigidas por un decano y a su vez, un decano
dirige una facultad. Cada facultad cuenta con una serie de docentes, pero cada
docente solo puede pertenecer a una facultad.
Cada docente dicta varias asignaturas, asimismo una misma asignatura la pueden
dictar diferentes docentes. Los estudiantes inscriben las asignaturas que les
corresponde cada semestre.
De la facultad interesa saber cuál es su nombre, ubicación, id, teléfonos y
opcionalmente correo, de los decanos se requiere la cedula, nombres, apellidos y
celular. De los docentes se debe registrar la cedula, nombres, apellidos y celular;
cada asignatura tiene un código, nombre y número de créditos, y de los estudiantes
se debe registrar identificación, nombres, apellidos y dirección de residencia.
Teniendo esta información realice el diagrama de entidad – relación (puedes
realizarlo en Hoja de papel, Herramienta Lucidchart, Herramienta Día,etc)
SOLUCION
Entidades:
 Decano (cedula, nombres, apellidos y celular)
 Facultad (nombre, ubicación, id, teléfonos y opcionalmente correo)
 Facultad (cedula, nombres, apellidos y celular)
 Asignatura (un código, nombre y número de créditos)
 Estudiante (registrar identificación, nombres, apellidos y dirección de
residencia)
1.8. Ejemplo MER diagrama.
1.9. Traducción de MER a MR.
1.10.
Restricciones.
 Restricción nulo:
No permite que el valor del atributo sea nulo
 Restricción de identidad
No permite tener dos valores repetidos en las claves primarias
 Restricción de integridad de entidad
No permite tener valores nulos en la clave primaria
 Restricción de integridad referencial
No permite tener valores en la clave foránea que no existan en la clave
primaria. Sin embargo, si permite tener valores nulos en la clave foránea
 Restricción de clave alterna
No permite valores repetidos en la clave alterna
 Restricción de dominio
Los datos deben ser del dominio especifico. Ejemplo: dominio de los
números enteros comprendidos entre 0 y 18.
1.11. Examen 1.
1) ¿Cuál de las siguientes define una base de datos?
a) Conjunto de información organizada de cualquier manera.
b) Información almacenada.
c) Almacenada en un medio electrónico/digital y organizada.
2) ¿Requisitos que debe cumplir una base de datos relacional?
a) Acceso a todos los usuarios, integra, versátil.
b) Mayor redundancia, capacidad de acceso e integra.
c) Versatilidad, mínima redundancia, integridad, etc.
3) ¿En qué nos ayuda un sistema gestor de base de datos (SGBD)?
a) Crear una base de datos no relacional.
b) Administrar una base de datos.
c) Es la manera en representar el modelo entidad relación.
4) ¿Cuáles son los componentes del modelo entidad-relación?
a) Funciones y métodos.
b) Atributos, entidades y relación.
c) Cardinalidades, funciones y entidades.
5) ¿Cuál de los siguientes conceptos define una entidad?
a) Representa un elemento/objeto del universo de discurso.
b) Es la relación entre entidades.
c) Representa las características de una entidad.
2. Conceptos básicos SQL
En este módulo vamos empezar a ver un poco de la sintaxis del lenguaje SQL el cual es un estándar para
cualquier SGBD, sin embargo, vamos a demostrar cual es la permitida por MSSQL, una vez que hayamos
entendido los conceptos anteriores, comenzaremos a escribir nuestras primeras sentencias, tales como crear
bases de datos y tablas, acceder a la base de datos, y algunos otros temas que están dentro de este módulo.
2.1. Creación de una Base de Datos.
Créate database NOMBRE_DE_LA_BASE_DE_DATOS;
2.2. Acceder a una Base de Datos.
Use NOMBRE_DE_LA_BASE_DE_DATOS;
2.3. Creación de una Tabla
Créate table NOMBRE_DE_LA_TABLA (CAMPO1 TIPO_DATO TAMAÑO, CAMPO2
TIPO_DATO TAMAÑO,);
2.4. Ingresar Registros
Insert into NOMBRE_DE_LA_TABLA (CAMPO1, CAMPO2,…) values (valor-Campo1,
Valor_Campo2,…);
2.5. Examen 2
1) ¿Cuál de las siguientes sentencias es la correcta para crear una base de datos desde un
query?
a) CREATE DATA BASE test
b) CREATE DATABASE “test”
c) CREATE DATABASE test
2) ¿Cuál de las siguientes nomenclaturas de nombramiento son las más usadas?
a) Camel Case y Snake case
b) Camel case
c) Snake case
d) Sólo mayúsculas
e) Sólo minúsculas
3) ¿Cuál es el query correcto para conectarse a una base de datos?
a) USER nombre_bd
b) USE nombre_bd
c) CONNECT nombre_bd
4) ¿De qué manera deben ser nombradas las tablas?
a) Singular
b) Plural
c) Singular y con números
5) ¿Cuántos registros pueden ser insertados al ejecutar el comando INSERT INTO?
a) Un sólo registro a la vez
b) Dos registros a la vez
c) De uno a muchos registros a la vez
3. Tipo de datos y comandos para recuperar, borrar y actualizar registros
En esta ocasión analizaremos los tipos de datos que permite MSSQL, a pesar que muchos tipos de datos son
permitidos por cualquier gestor, hay algunos que cada motor maneja de una forma diferente, nosotros vamos a
enfocarnos en lo que usa MSSQL, además, conocer nuevas sentencias que nos permiten mostrar información
de nuestras tablas con condiciones que brindemos, así como los operadores que son utilizados como los
relacionales, aritméticos y lógicos, entre otros temas interesantes y de gran importancia para las bases de datos.
3.1. Tipos de Datos.
3.1.1. Definición
El tipo de dato de una columna define qué valor tiene la columna. El nombre del tipo de dato
depende del gestor de BD que se esté utilizando. Cada columna de una tabla debe tener
un nombre y un tipo de dato, y el desarrollador es quien debe decidir qué tipo de datos será
almacenado en esa columna.
3.1.2. Tipos de datos

CADENA

NUMERICO

DATE
3.2. Recuperar algunos campos.
La sentencia SELECT es usada para seleccionar datos de una BD. Los datos devueltos se
almacenan en una tabla de resultado, denominados result-set:
SELECT columna1, columna2 FROM nombre_tabla;
3.3. Cláusula WHERE.
La cláusula WHERE es utilizada para filtrar registros. Extrae solo esos registros que cumplen
con una condición especifica:
SELECT columna1, columna2 FROM nombre_tabla WHERE condición;
3.4. Operadores Relacionales.
Los operadores relacionales (o comparación) nos permiten comparar dos expresiones, que
pueden ser variables, valores de campos, etc. Y son los siguientes:
 =
igual
 != , <> distinto
 <
menor
 >
mayor
 >=
mayor o igual
 <=
menor o igual
3.5. Operadores Aritméticos.
3.6. Operadores Lógicos.
3.7. Borrar registros.
DELETE es utilizado para eliminar registros existentes en una tabla.
DELETE FROM nombre_tabla WHERE condición;
3.8. Actualizar registros.
La sentencia UPDATE es usada para modificar registros existentes en una tabla
UPDATE nombre_tabla SET columna1 = valor1, columna2 = valor2 WHERE condición;
3.9. Valores nulos.
Un campo con valor NULL es un campo que no tiene valor. Tal vez puede ser un campo
opcional de una tabla, además, es posible insertar o actualizar un registro sin agregar ningún
valor a ese campo:
SELECT nombre_columnas FROM nombre_tabla WHERE nombre_columna IS NULL;
3.10.
Campo con autoincremento.
Un autoincremento un número único a ser generado automáticamente cuando un nuevo
registro es insertado en la tabla, conmunmente este seria el campo PRIMARY KEY. En SQL
Server se utiliza el keyword IDENTITY:
CREATE TABLE personas (id int IDENTITY(1,1) PRIMARY KEY, apellido varchar (255)
NOT NULL, nombre varchar(255), edad int );
3.11.
1)
Examen 3.
Es la sentencia utilizada para realizar filtrado de la información con base en
una o más condiciones.
d)
e)
f)
g)
DELETE
WHERE
INSERT
UPDATE
2) ¿Cuál de las siguientes opciones son los operadores relacionales
(comparación)?
h) + – * /
i) = <> <= >=
j) AND OR
3) Esta sentencia que nos permite eliminar registros.
k)
l)
m)
n)
DROP
DELETE
UPDATE
SELECT
4) ¿Qué representa un valor nulo?
o) Es igual a cero
p) Es igual a un espacio
q) No contiene valor
5) Define los valores de que una columna puede tener.
r) Nombre de la tabla
s) Tipos de datos
t) Cantidad de columnas de una tabla
6) Esta sentencia se encarga de obtener la información de una base de datos.
u) WHERE
v) UPDATE
w) SELECT
x) INSERT
4. Operadores aritméticos y relacionales
Para este módulo conoceremos más temas útiles en MSSQL como truncar tablas, crear tablas calculadas.
Además, hacer el ordenamiento de la proyección y el uso de más condiciones que pueden realizarse por rangos
o patrones, y una breve introducción a las funciones de agrupación.
4.1. Truncate table.
Comando usado para remover todos los registros de una tabla, muy parecido al comando
DELETE
TRUNCATE TABLE [Database] [Esquema] nombre_tabla
4.2. Columnas calculadas.
Un campo calculado es un un campo virtual que no podría estar realmente almacenado en la
tabla, y que usa los valores de otros campos para calcular el valor que tendrá en ese momento y
que se podrá visualizar en la fila o en alguna otra tabla que se cree momentáneamente, tiene
algunas limitaciones para su uso: no se pueden utilizar restricciones como DEFAULT,
FORENS_KEY, NOT NULL
CREATE TABLE dbo.Factura (
Id_Factura int IDENTITY (1,1) NOT NULL
Cantidad smallint,
Precio money,
Total AS Cantidad * Precio)  Este es el campo calculado
4.3. Ordenar registros.
Para ordenar registros usamos la palabra clave ORDER BY, usa los complementos
ASC(ascendente) y DESC (Descendente)
SELECT Column1, Column 2,…
FROM Nombre_Tabla
ORDER BY Column1, Column2,… ;
4.4. Operador between.
Para Seleccionar Valores dentro de un rango determinado usamos el operador BETWEEN, los
valores pueden ser números, Textos o fechas, su sintaxis es:
SELECT column1, column2,..
FROM Nombre_tabla
WHERE Column1 BETWEEN Valor1 AND valor2;
4.5. Operador in.
El operador IN, nos permite especificar multiples valores en un WHERE, su sintaxis es:
SELECT Column1,column2,…
FROM Nombre_Tabla
WHERE Column IN (Valor1, Valor2,…)
4.6. Búsqueda de patrones.
Operador LIKE, usado para extraer información que cumpla cierto patrón usado con la cláusula
WHERE,y usa algunos comodines Como “%” y “_” su sintaxis es
SELECT column1,Column2,…
FROM Nombre_tabla
Where Column LIKE patrón;
4.7. Contar, promedio y sumar.
Funciones COUNT retorna el número de filas que cumple un criterio. La Función AVG retorna la
media de un valor numérico y la Función SUM que nos retorna el total de una suma de un valor
numérico. su sintaxis es
SELECT COUNT (Column)
FROM Nombre_tabla
WHERE Condición:
SELECT AVG (Column)
FROM Nombre_tabla
WHERE Condición:
4.8. Examen 4
1) ¿Cuál es el comando para eliminar la data contenida de una tabla?
a) Drop
b) Truncate
c) Delete
2) De las siguientes palabras claves, ¿cuál es el correcto para ordenar un
result-set?
a) orderby
b) ORDER
c) ORDER BY
3) Mencione el tipo de ordenamiento predeterminado.
a) Descendiente
b) Ascendiente
4) La palabra clave para obtener datos de un rango determinado es BETWEEN.
a) Verdadero
b) Falso
5) Esta palabra clave es similar a usar múltiples OR en una sentencia.
a)
b)
c)
d)
IN
BETWEEN
ORDER BY
TRUNCATE
6) ¿Cuáles son los comodines usados en la búsqueda de patrones con la
palabra clave LIKE?
a) Porcentaje y guion bajo (%/_)
b) Símbolo de monetario y gato ($/#)
c) Porcentaje y símbolo gato (%/#)
d) Guion bajo y símbolo monetario (_/$)
5. Funciones de agrupamiento.
El módulo de funciones de agrupamiento nos dará un entendimiento de cómo agrupar registros, ver registros
duplicados, además de la cláusula TOP que nos permite mostrar una cantidad de registros según nuestras
necesidades e indicaciones brindadas en las condiciones al realizar nuestra proyección.
5.1. ¿Qué son las funciones de agrupamiento?
5.2. Agrupar registros.
5.3. Seleccionar grupos.
5.4. Registros duplicados.
5.5. Cláusula Top.
5.6. Examen 5.
1) La cláusula GROUP BY sirve para ordenar registros de una tabla de manera
descendente o ascendente.
a) Verdadero
b) Falso
2) Son cláusulas que son utilizadas junto a GROUP BY
a) Funciones de agregación y la cláusula WHERE
b) Funciones de agregación y la cláusula HAVING
c) WHERE, HAVING y funciones de agregación
3) ¿Cuál de las siguientes es la sintaxis correcta GROUP BY?
a) SELECT … FROM … GROUP BY … WHERE
b) SELECT … FROM … GROUP BY … HAVING
c) SELECT … FROM … HAVING … GROUP BY
4) ¿Es la cláusula utilizada como condicional al utilizar las funciones de
agregación?
a) WHERE
b) IF
c) HAVING
5) ¿Para qué es utilizada la cláusula TOP?
a) Para mostrar los registros de arriba
b) Para mostrar los últimos registros
c) Para mostrar la cantidad de registros indicados
6. Índices
En este módulo aprenderemos y analizaremos qué es un índice, cómo crear índices agrupados y no agrupados,
así como eliminar estos índices y mirar los planes de ejecución que se crean y permanecen almacenados en la
cache, y el porqué del uso de los índices y su funcionamiento dentro de las bases de datos.
6.1. Definición de un índice
Sirve para obtener la información de una consulta de una manera más rápida (usada
para tablas con muchísimos registros), existen 2 tipos de índices columnares e índices
de filas
6.2. Limpiar cache y planes de ejecución.
Para borrar la Cache y los planes de ejecución del MMSQL en el servidor, debemos
ejecutar los siguientes comandos:
DBCC FREEPROCCACHE WITH NO_INFOMSGS;
DBCC DROPCLEANBUFFERS WITH NO_INFOMSGS;
6.3. Índices agrupados y no agrupados.
6.4. Eliminar índices.
6.5. Examen 6.
7. Estructura de una tabla.
8. Introducción a Transact SQL.
9. Examen para certificación
Descargar