Introduccin a SQL
Qu significa SQL?
Qu es el SQL?
Significado de SQL
Ingles
Qu es SQL?
Es un lenguaje de consulta y programacin de bases de
datos utilizado para la organizacin, acceso, consulta y
gestin de bases de datos relacionales.
Aplicacin
del Cliente
Validacin de
Permisos
Solicitud
SQL
Cliente
APIs de la BD
(OLEDB, ODBC,
Microsoft Jet, etc.)
Librera de
Autentificacin
del Cliente
Datos
Server
Database
Management
System
(SGBD)
Definicin de Datos
Recuperacin de Datos
Compartimiento de Datos
Control de Acceso
Extraccin de Datos
Manipulacin de Datos
Estructura de la BD
Organizacin de Datos
Relaciones
Integridad de Datos
Sistema cliente/servidor
Este sistema se puede configurar en dos o tres capas,
independientemente de la configuracin, software y
bases de datos de SQL Server.
Los usuarios tienen equipos independientes llamados
clientes. Los usuarios acceden a la base de datos por
medio de aplicaciones en sus equipos cliente.
Sistema cliente/servidor
En los sistemas de dos capas los clientes ejecutan una
aplicacin desde su equipo y que accede al servidor de
base de datos por medio de la red, por lo tanto el cliente
ejecuta el cdigo correspondiente para presentar los
resultados al usuario.
La configuracin de 2 capas es til cuando el nmero de
usuarios es relativamente pequeo, dado que cada
conexin de usuario requiere de recursos del sistema
como memoria y bloqueos.
SBD
Clientes
Sistema cliente/servidor
La configuracin de tres capas involucra a un equipo
llamado servidor de aplicaciones, en este sistema la
nica tarea del cliente es la ejecucin de cdigo para
solicitar las funciones del servidor de aplicaciones y
posteriormente la presentacin de los resultados.
El Servidor de aplicaciones ejecuta un programa que
incluye el cdigo especfico, por lo que muchos usuarios
pueden acceder a este programa de manera simultanea.
El Servidor de aplicaciones se conecta con el servidor de
base de datos para acceder a la aplicacin y devolver los
resultados al cliente.
SA
SBD
Clientes
Administracin de Servicios
SQL Server
Un servicio es un programa o proceso que lleva a cabo
una funcin especifica para dar soporte a otros
programas o aplicaciones.
Al iniciar el equipo, el servicio se inicia de manera
automtica.
El servicio gestiona los archivos de bases de datos,
procesa sentencias Transac-SQL, ubica recursos entre
conexiones de usuarios y asegura la consistencia de los
datos.
Principales
Secundarios
Comandos de Transac-SQL
4.
5.
Iniciar
el
SQL
Server
Enterprise Manager
Seleccionar el servidor en
el que se quiere crear la
base de datos
Ejecutar
el
asistente
(Herramientas / Asistentes
o clic sobre el botn de la
varita)
Seleccionar de la lista el
asistente para la creacin
de base de datos y dar OK.
Dar clic en siguiente para
saltar
la
pantalla
de
bienvenida al asistente.
Comando
Creacin
Bases de Datos.
1.
2.
3.
4.
de
Ejecutar
el
Enterprise
Manager y seleccionar el
servidor correspondiente.
Seleccionar la carpeta Base
de Datos
Seleccionar el men Accin
/ Nueva base de datos
Escribir el nombre de la
base de datos a crear
Editor de Scripts
Como se valla capturando el cdigo, SQL Query Analyzer aplica colores a las palabras
reservadas, cadenas de texto, funciones y a otros elementos.
Editor de Textos donde se pueden agregar sangras para mantener una mayor organizacin
de los scripts.
Se puede ejecutar una parte de todo un script mediante la seleccin de las lneas que se
quiera ejecutar.
Plan de Ejecucin
Query Analyzer puede presentar informacin de cmo se ejecutan los scripts, velocidad,
forma y rendimiento del servidor para devolver una consulta.
Transacciones-SQL
Las transacciones son comandos universales SQL que
permiten realizar peticin a un servidor de BD por medio
de otras aplicaciones.
Existen 3 tipos de Transacciones:
Son utilizadas para establecer los permisos sobre los elementos de una BD
Son utilizadas para trabajar con los datos de las Bases de Datos como consultar,
insertar, actualizar o la eliminacin de datos.
Nombres y Alias
Cuando se escriben declaraciones de SQL, se utilizan
nombres para referirse a bases de datos, tablas,
columnas o sentencias reservadas de SQL. Pero tambin
es posible crear alias los cuales funcionan como
sinnimos para llamar a las tabla o campos.
Batches
Un Batche esta formado por un conjunto de sentencias o
transacciones SQL.
GO
Ejemplo:
Use Northwind
SELECT * FROM Productname
GO
Comentarios
Los comentarios son cadenas de texto que no son
tomados en cuenta durante la ejecucin de sentencias.
Existen 2 formas de colocar comentarios en SQL:
Para colocar un comentario en una lnea, 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:
Comentarios de Bloque
Tipos de Datos
Clasificacin
Tipos de Datos
SMALLINT
INTEGER
Nmeros enteros
BIT (Longitud)
REAL
Nmeros con
Precisin
DOUBLE PRECICIN
FLOAT (Precisin)
DECIMAL
Nmeros decimales y $
CHAR (Longitud)
Nmeros
Cadenas de Texto
Fechas y Horas
Descripcin
coma
flotante
CHARACTER
VARCHAR (Longitud)
DATE
Fechas
TIME (Precisin)
Horas
INTERVAL
Intervalo de Tiempo
DATETIME
Fecha y Hora
de
baja
Variables
Dentro de SQL se pueden definir variables para almacenar
valores temporales.
Todas las variables deben iniciar con el smbolo @
Declaracin de
Asignar
variables
Devolver
las variables
Sintaxis:
DECLARE @variable Tipo de Dato
variables
Ejemplo:
DECLARE @nombre varchar(15)
Sintaxis:
SET @variable = valor
valores Ejemplo:
en
las
SET @nombre = Juan Prez
el
Sintaxis:
SELECT @variable
valor
Ejemplo:
SELECT @nombre
de
Operadores
Tipos de Operadores
Aritmticos
+ - * / ^
Comparacin
>
<
<>
Concatenacin
Lgicos
And Or
Not
>=
<=
Funciones
COUNT
Nmero
de
seleccionados
registros
SUM
Suma de un campo
SUM (Campo)
AVG
Promedio de un campo
AVG (Campo)
MAX
Mximo de un campo
MAX (Campo)
MIN
Mnimo de un campo
MIN (Campo)
Transacciones DDL
Son instrucciones que controlan la estructura de una BD
con las cuales se pueden realizar las siguientes acciones:
Crear Tablas
Eliminar Tablas
Modificar la estructura de la tabla
Definir Vistas (Tablas Virtuales)
Establecer parmetros de seguridad a la BD
Creacin de ndices para la aceleracin el acceso a los
datos.
Control del almacenamiento de los datos
CREATE DATABASE
Sintaxis:
Ejemplo:
create database cursosql
on
(name = MiDB,
filename = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL$SQLCEDEC1\Data\cursosql.mdf',
size=8MB, Maxsize=9MB,filegrowth=100Kb)
LOG ON
(name = cursosql_reg,
filename = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL$SQLCEDEC1\Data\cursosql.ndf',
size=1000MB, Maxsize=1500MB,filegrowth=100Mb)
use cursosql
go
sp_helpdb [base de datos]
Utilizar una BD
Para realizar una accin dentro de una Base de Datos,
primero hay que decirle a MySQL que queremos trabajar
con esa Base de Datos, para esto se utiliza el siguiente
comando
Sentencia SQL:
USE
Sintaxis:
USE Nombre de la BD
Ejemplo:
USE Animales
CREATE TABLE
Sintaxis:
CREATE
TABLE
Nombre_Tabla
Nombre_Campo1
Tipo_Dato[(Tamao)] [NULL | NOT
[DEFAULT
Valor],
Nombre_Campo2
Tipo_Dato[(Tamao)] [NULL | NOT
[DEFAULT Valor], etc )
(
NULL]
NULL]
Ejemplo 1:
CREATE TABLE MiTabla (
Matricula INT,
Nombre VARCHAR(15),
Edad INT )
sp_rename 'MiTabla.Matricula','Credencial'
go
Importar Tablas
1. Dentro del Enterprise Manager dar clic derecho en la
carpeta de Base de Datos
2. Seleccionar Todas las Tareas / Importar Datos
3. En la Bienvenida dar Siguiente
4. Seleccionar el Origen de Datos "Microsft Access"
5. Seleccionar el Archivo.mdb
6. Siguiente
Importar Tablas
1. Seleccionar el Destino (Microsft OLEDB Provider for SQL
Server)
2. Asegurarse que el Servidor es el correcto
3. Seleccionar de la lista de Base de Datos, la opcin Nuevo
4. Dar el Nombre de la Nueva BD
5. OK
6. Siguiente
Importar Tablas
Seleccionar la opcin Copiar Tabas y Vistas de la BD
Fuente
Siguiente
Seleccionar las tablas a importar
Siguiente
Siguiente
Finalizar
Un nombre de columna
Una constante
Una expresin
Indica a SQL que debe calcular el valor a poner e los resultados, segn se especifica en la
expresin
Instruccin SELECT
SELECT
FROM
HAVING
GROUP BY
WHERE
ORDER BY
Instruccin SELECT
En ocasiones es conveniente mostrar la informacin de
todas las columnas que existen en la tabla, por lo que no
ser necesario colocar la lista de todos los nombres de la
columna. Para lo anterior ser necesario utilizar el (*), el
cual le indica a SQL que debe tomar todas las columnas
de la tabla para posteriormente ser mostradas sobre la
consulta.
Ejemplo 1:
SELECT * FROM CLIENTES
SELECT idcliente,nombrecompaa,nombrecontacto
FROM clientes
WHERE nombrecontacto = 'Antonio Moreno'
Condiciones de Bsqueda
SQL ofrece una gran variedad de condiciones de
bsqueda que permiten especificar muchos tipos
diferentes de consulta de forma eficiente y natural.
Existen cinco condiciones bsicas de consulta:
SELECT idpedido,idcliente,fechapedido,fechaentrega
FROM pedidos
WHERE idpedido BETWEEN 10300 AND 10400
SELECT idpedido,idcliente,fechapedido,fechaentrega
FROM pedidos
WHERE fechapedido BETWEEN '09-01-96' AND '09-30-96'
mm/dd/aa
Condiciones de Bsqueda
(Pertenencia a Conjuntos)
La bsqueda 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 Bsqueda
(Encaje de Patrones)
La bsqueda de encaje de patrones, permite recuperar
los registros que coincidan con un texto en concreto.
SELECT idcliente,nombrecompaa,nombrecontacto
FROM clientes
WHERE nombrecompaa like 'S%'
SELECT idcliente,nombrecompaa,nombrecontacto
FROM clientes
WHERE nombrecompaa like 'S%' or nombrecompaa like 'A%'
SELECT * FROM mitabla
WHERE nombre LIKE '_egador'
Condiciones de Bsqueda
(Valores Nulos)
Para una fila dada, el resultado de una condicin de
bsqueda puede ser TRUE o FALSE, o puede ser NULL
por que una de las columnas usadas en la evaluacin de
la condicin de bsqueda contenga un valor NULL
SELECT nombrecompaa,cargocontacto,direccin, regin, fax
FROM clientes
WHERE regin IS NULL
SELECT idcliente,fechapedido,regindestinatario
FROM pedidos
WHERE idcliente='TOMSP' AND regindestinatario IS NULL
sum(cantidad) as Total
FROM pedidos
GROUP BY idproducto
HAVING sum(cantidad)>=30
idproducto
Idorden
cantidad
10
10
25
15
30
idproducto
Total
35
45
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
FROM productos
ORDER BY idproveedor
COMPUTE sum(unidadesenexistencia)
by idproveedor
COMPUTE sum(unidadesenexistencia)
IdProveedor
Unidadesenexistencia
39
IdProveedor
Unidadesenexistencia
17
39
53
17
Sum
56
76
53
Sum
194
76
Sum
138
Sum
194
Ordenacin de
Registros (ORDER BY)
Una consulta generada por la clusula SELECT puede
presentar los resultados de manera organizada tanto
numricamente y alfabticamente.
Clusula T-SQL:
Sintaxis:
ORDER BY
SELECT [Campos] FROM [Tabla] ORDER BY [Campos] [Tipo de Ordenacin]