Profesor Isaac García Ríos
Profesor Isaac García Ríos
Español
Aplicación
del Cliente
Validación de
Solicitud Permisos
SQL
API’s de la BD
Cliente (OLEDB, ODBC, Database
Microsoft Jet, etc.) Management
System
Datos (SGBD)
Librería de Server
Autentificación
del Cliente
Funciones Principales de SQL en un SGBD
Definición de Datos
Estructura de la BD
Organización de Datos
Relaciones
Recuperación de Datos
Extracción de Datos
Manipulación de Datos
Permite la inserción, eliminación, modificación y actualización de
los datos.
Control de Acceso
Control sobre los Permisos en los datos
Compartimiento de Datos
Coordina el acceso y la compartición de datos entre varios
usuarios.
Integridad de Datos
Protege la BD de deterioros o errores causados por el sistema
Sistemas de SQL Server
Un Sistema SQL puede implementarse como sistema
cliente/servidor o como sistema independiente.
SBD
Clientes
Sistema cliente/servidor
La configuración de tres capas involucra a un equipo
llamado servidor de aplicaciones, en este sistema la
única tarea del cliente es la ejecución de código para
solicitar las funciones del servidor de aplicaciones y
posteriormente la presentación de los resultados.
Clientes
Sistema Independiente (Local)
SQL Server también se puede utilizar como servidor de
base de datos independiente que se ejecuta en una PC o
portátil.
Archivos
Un archivo de base de datos puede ser un archivo de datos
o bien un archivo de registro.
Nota: el Tamaño máximo para una base de datos en SQL Server es de 32 tb para
archivos de datos y 4 tb para archivos de registro.
Bases de Datos del Sistema
Al instalar SQL Server se crean cuatro bases de datos del
sistema: las bases de datos master, temdb, model y
msdb.
1. Ejecutar el Enterprise
Manager y seleccionar el
servidor correspondiente.
2. Seleccionar la carpeta Base
de Datos
3. Seleccionar el menú Acción
/ Nueva base de datos…
4. Escribir el nombre de la
base de datos a crear
Creación de una Base de Datos
Comando Creación de Bases de Datos.
GO
Mediante la palabra GO, SQL marca el final de un batche y
es enviado a procesar al Servidor de SQL.
Ejemplo:
Use Northwind
SELECT * FROM Productname
GO
Comentarios
Los comentarios son cadenas de texto que no son
tomados en cuenta durante la ejecución de sentencias.
Existen 2 formas de colocar comentarios en SQL:
Comentarios por Línea
Para colocar un comentario en una línea, se deben colocar 2 (--) guiones antes
del comentario, ya que SQL ignora todo el texto que se encuentre a la derecha
de los guiones.
Ejemplo:
Use Ventas - - utiliza la BD Ventas
SELECT * - - Selecciona todos los registros
FROM Pedidos - - de la tabla pedidos
Go
Comentarios de Bloque
Para generar un bloque de varias líneas de comentarios se utiliza los caracteres
(/*) para marcar el inicio del comentario y los caracteres (*/) para finalizar el
comentario
Ejemplo:
/* Este es un bloque
de varias líneas
que termina precisamente aquí */
Tipos de Datos
Sintaxis:
Asignar valores SET @variable
en = valor las
Ejemplo:
variables SET @nombre = ‘Juan Pérez’
Sintaxis:
Devolver el SELECT @variable
valor de
Ejemplo:
las variables SELECT @nombre
Operadores
Tipos de Operadores
Aritméticos
+ - * / ^
Comparación
> < <> = >= <=
Concatenación
+
Lógicos
And Or Not
Funciones
Ejemplo:
Ejemplo:
USE Animales
Creación de una Tabla
Comando T-SQL:
CREATE TABLE
Sintaxis:
CREATE TABLE Nombre_Tabla (
Nombre_Campo1 Tipo_Dato[(Tamaño)] [NULL | NOT NULL]
[DEFAULT Valor],
Nombre_Campo2 Tipo_Dato[(Tamaño)] [NULL | NOT NULL]
[DEFAULT Valor], etc… )
* Solo es necesario definir el tamaño cuando se utilizan los Tipos
de Datos Char y Varchar.
Ejemplo 1:
CREATE TABLE MiTabla (
Matricula INT,
Nombre VARCHAR(15),
Edad INT )
Creación de una Tabla
Valores Ausentes y Valores Predeterminados
Al momento de definir cada una de las columnas es posible
determinar si el campo va a permitir valores nulos o no.
Es posible definir para cada columna en caso de ser
necesario, una valor que funcione como predeterminado al
momento de ingresar registros a la tabla.
Ejemplo 1:
SELECT * FROM CLIENTES
Selección de Filas (WHERE)
Normalmente no se desea seleccionar sólo algunos
registros de una tabla e incluir sólo estos en los
resultados de la consulta.
La cláusula WHERE se usa para especificar los registros
que se desea recuperar.
SELECT idpedido,idproducto,preciounidad
FROM [detalles de pedidos]
WHERE preciounidad >=100
SELECT idcliente,nombrecompañía,nombrecontacto
FROM clientes
WHERE nombrecontacto = 'Antonio Moreno'
Condiciones de Búsqueda
SQL ofrece una gran variedad de condiciones de
búsqueda que permiten especificar muchos tipos
diferentes de consulta de forma eficiente y natural.
Existen cinco condiciones básicas de consulta:
Comparación. Compara el valor de una expresión con el
valor de otra expresión.
Rango. comprueba si el valor de una expresión se
encuentra en un rango especificado de valores
Pertenencia a conjuntos. Comprueba si el valor de una
expresión con uno de un conjunto de valores.
Encaje de patrones. Comprueba si el valor de una columna
que contiene datos de cadena coincide con un patrón
especificado.
Valores nulos. Comprueba si una columna tiene una valor
NULL.
Condiciones de Búsqueda (Comparación)
La condición de comparación es la más usual en una
consulta de SQL, en dicha comparación SQL calcula y
compara los valores de dos expresiones para cada fila de
datos.
Las expresiones pueden tan sencillas o complejas,
dependiendo de lo el usuario desea obtener en la
consulta.
SELECT idpedido,idcliente,fechapedido,fechaentrega
FROM pedidos
WHERE fechapedido BETWEEN '09-01-96' AND '09-30-96'
mm/dd/aa
Condiciones de Búsqueda
(Pertenencia a Conjuntos)
La búsqueda de pertenencia a conjuntos (IN), comprueba
si un valor de datos coincide con uno de una lista de
posibles valores.
SELECT idpedido,idcliente,fechapedido,fechaentrega
FROM pedidos
WHERE fechapedido IN ('05-01-97','06-01-97','07-01-97','08-01-97')
Condiciones de Búsqueda
(Encaje de Patrones)
La búsqueda de encaje de patrones, permite recuperar
los registros que coincidan con un texto en concreto.
SELECT idcliente,nombrecompañía,nombrecontacto
FROM clientes
WHERE nombrecompañía like 'S%'
SELECT idcliente,nombrecompañía,nombrecontacto
FROM clientes
WHERE nombrecompañía like 'S%' or nombrecompañía like 'A%'
SELECT idcliente,fechapedido,regióndestinatario
FROM pedidos
WHERE idcliente='TOMSP' AND regióndestinatario IS NULL
Agrupación de Registros (Group By)
Una consulta que contiene GROUP BY se denomina
consulta de agrupación por que agrupa los datos de las
tablas fuente en una única fila de resumen por cada
registro.
SELECT idproveedor,sum(unidadesenexistencia)
FROM productos
group by idproveedor
SELECT idproveedor,unidadesenexistencia
FROM productos
ORDER BY idproveedor
COMPUTE sum(unidadesenexistencia)
SELECT idproveedor,unidadesenexistencia
FROM productos
ORDER BY idproveedor
COMPUTE sum(unidadesenexistencia) by idproveedor
COMPUTE sum(unidadesenexistencia)
Uso de la Cláusula HAVING en GROUP BY
La cláusula HAVING permite establecer una condición en
los registros agrupados de una consulta, para que SQL
muestre sólo los registros que hayan cumplido con la
condición.
HAVING debe utilizarse en combinación con la cláusula
GROUP
SELECT BY.
idproducto, SELECT idproducto,
idorden,cantidad sum(cantidad) as Total
FROM pedidos FROM pedidos
GROUP BY idproducto
HAVING sum(cantidad)>=30
idproducto Idorden cantidad
1 1 5
idproducto Total
1 1 10
2 35
2 1 10
3 45
2 2 25
3 1 15
3 2 30
Uso de la Cláusula HAVING en GROUP BY
Ejercicios:
SELECT idproveedor,sum(unidadesenexistencia)
FROM productos
group by idproveedor
having sum(unidadesenexistencia)>200
SELECT idproveedor,sum(unidadesenexistencia)
FROM productos
group by idproveedor
having idproveedor<=5
Uso del GROUP BY
con la cláusula COMPUTE
La cláusula COMPUTE permite colocar al final de la
consulta una fila con un resultado de alguna función
matemática aplicada.
Puede utilizarse también la cláusula COMPUTE BY para
crear una especie de subtotales con su respectivo total
SELECT idproveedor, SELECT idproveedor,
general. unidadesenexistencia
unidadesenexistencia
FROM productos FROM productos
ORDER BY idproveedor ORDER BY idproveedor
COMPUTE sum(unidadesenexistencia) COMPUTE sum(unidadesenexistencia)
by idproveedor
COMPUTE sum(unidadesenexistencia)
IdProveedor Unidadesenexistencia
1 39 IdProveedor Unidadesenexistencia
1 17 1 39
2 53 1 17
2 9 Sum 56
2 76 2 53
Sum 194 2 9
2 76
Sum 138
Sum 194
Registros Duplicados (DISTINCT)
En caso de que en la tabla se tenga especificado un
campo como clave principal, todos los registros de la
tabla en ese campo tendrá información diferente, ya que
la clave principal por naturaleza impide tener registros
duplicados en el campo de clave principal.
Si la clave principal no se incluye, la tabla podrá tener
registros con información duplicada.
Para no mostrar los registros con información duplicada
será necesario insertar la palabra DISTINCT en la
instrucción SELECT ates de la lista de selección.
SELECT TOP 3 *
FROM productos
Order BY unidadesenexistencia asc