SQL
SQL
Introducción a SQL
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.
SA
SBD
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.
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 SET @variable = valor
valores Ejemplo:
en las
variables SET @nombre = ‘Juan Pérez’
Sintaxis:
SELECT @variable
Devolver el Ejemplo:
valor de
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)
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)
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)
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
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
SELECT TOP 3 *
FROM productos
order by unidadesenexistencia desc
SELECT TOP 3 *
FROM productos
Order BY unidadesenexistencia asc