Manual de Usuario DSC. Ever Alcudia Fuentes

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 91

SQL

Manual de usuario

DSC. Ever Alcudia Fuentes


Introducción a SQL

¿Qué significa SQL?


¿Qué es el SQL?
Significado de SQL
 Ingles

Structured Query Language

 Español

Lenguaje Estructurado de Consultas


¿Qué es SQL?
 Es un lenguaje de consulta y programación de bases de datos
utilizado para la organización, acceso, consulta y gestión de
bases de datos relacionales.

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.

 El tipo de sistema que se diseñe dependerá del número de


usuarios que vaya a acceder a la base de datos de manera
simultanea y de la clase de trabajo que se vaya a realizar.
Sistema cliente/servidor
 Este sistema se puede configurar en dos o tres capas,
independientemente de la configuración, 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 aplicación
desde su equipo y que accede al servidor de base de datos por
medio de la red, por lo tanto el cliente ejecuta el código
correspondiente para presentar los resultados al usuario.

 La configuración de 2 capas es útil cuando el número de usuarios


es relativamente pequeño, dado que cada conexión de usuario
requiere de recursos del sistema como memoria y bloqueos.

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.

 El Servidor de aplicaciones ejecuta un programa que incluye el


código específico, 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
aplicación y devolver los resultados al cliente.

SA
SBD

Clientes
Administración de Servicios
SQL Server

 Un servicio es un programa o proceso que lleva a cabo una


función especifica para dar soporte a otros programas o
aplicaciones.

 Al iniciar el equipo, el servicio se inicia de manera automática.

 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.
SQL Server Enterprise Manager
 El Administrador Corporativo de SQL es una herramienta para
configurar y administrar la instalación de SQL Server.

 Permite realizar las siguientes tareas:


 Configurar y administrar base de datos (tablas, índices,
vistas, procedimientos, copias de seguridad y registros de
error)
 Registrar el servidor
 Configurar servidores locales y remotos
 Asignar una contraseña de administrador del sistema
 Controlar los usuarios, administradores y operadores del
sistema
SQL Server Enterprise Manager
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.

 Master.- Registra la información de inicialización de SQL


Server y los parámetros de configuración de SQL Server.
También registra todas las cuentas de inicio de sesión, la
existencia de todas las demás bases de datos y la posición
del archivo principal de todas las bases de datos de usuario

 Tempdb.- Alberga tablas y procedimientos almacenados


temporales. Esta base de datos también se utiliza para
otras necesidades de almacenamiento como el
ordenamiento de datos.
Bases de Datos del Sistema
 Model.- Sirve como plantilla para todas las demás bases de
datos que se creen en el sistema, entre ellas tempdb. Esta
base de datos debe existir en el sistema por que se utiliza
para volver a crear tempdb cada vez que SQL Server se
inicia.

 Msdb.- Contiene tablas que agente de SQL Server utiliza


para la planificación de trabajos y alertas. Esta base de
datos también alberga las tablas que se usan para la
duplicación.
Creación de una Base de Datos
 SQL Server proporciona tres métodos para la creación de una
base de datos:

 A través del SQL Server Enterprise Manager


 Asistente para la creación de bases de datos
 Mediante el comando nueva base de datos
 Comandos de Transac-SQL
Creación de una Base de Datos
 Uso del Asistente para la
Creación de Bases de Datos.

1. Iniciar el SQL Server


Enterprise Manager
2. Seleccionar el servidor en
el que se quiere crear la
base de datos
3. Ejecutar el asistente
(Herramientas / Asistentes
o clic sobre el botón de la
varita)
4. Seleccionar de la lista el
asistente para la creación
de base de datos y dar OK.
5. Dar clic en siguiente para
saltar la pantalla de
bienvenida al asistente.
Creación de una Base de Datos
 Uso del Asistente para la Creación de Bases de Datos.

5. Escribir el nombre de la base de datos a crear y rutas de


almacenamiento de archivos de datos y de registros.
Posteriormente dar clic en Siguiente.
Creación de una Base de Datos
 Uso del Asistente para la Creación de Bases de Datos.

6. Especificar el tamaño inicial del archivo de la base de datos


o dejar el tamaño de manera predeterminada.
Creación de una Base de Datos
 Uso del Asistente para la Creación de Bases de Datos.

7. Definir el crecimiento del archivo de la base de datos, ya


sea de manera automática o un tamaño según lo
necesitado.
Creación de una Base de Datos
 Uso del Asistente para la Creación de Bases de Datos.

8. Asignar el tamaño inicial de los archivos de registro de


transacciones.
Creación de una Base de Datos
 Uso del Asistente para la Creación de Bases de Datos.

7. Definir el crecimiento de los archivos de registro, ya sea de


manera automática o un tamaño según lo necesitado.
Creación de una Base de Datos
 Comando Creación de Bases de
Datos.

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.

5. Seleccionar las opciones de crecimiento automático según


cada archivo.
Creación de una Base de Datos
 Comando Creación de Bases de Datos.

6. Configurar los archivos de registros de transacciones.


SQL Query Analyzer
 El Query Analyzer es una herramienta gráfica utilizada para realizar
consultas SQL.
 En el Query Analyzer se pueden escribir, modificar, ejecutar y guardar
códigos Transact-SQL
 Las ventajas mas importantes del Query Analyzer son:
 Editor de Scripts
 Editor de Textos donde se pueden agregar sangrías para mantener una mayor organización
de los scripts.
 Formateo de Código por colores
 Como se valla capturando el código, SQL Query Analyzer aplica colores a las palabras
reservadas, cadenas de texto, funciones y a otros elementos.
 Múltiples ventanas de consulta en Cuadriculas o Textos
 Ventanas donde se visualizarán las consultas en una Hoja de Datos (Cuadricula) o en
forma de Texto.
 Ejecución Parcial de Scripts
 Se puede ejecutar una parte de todo un script mediante la selección de las líneas que se
quiera ejecutar.
 Plan de Ejecución
 Query Analyzer puede presentar información de cómo se ejecutan los scripts, velocidad,
forma y rendimiento del servidor para devolver una consulta.
SQL Query Analyzer
 Al ejecutar el Query Analyzer mostrará el cuadro de dialogo que
permitirá establecer la conexión con el Servidor de SQL.
SQL Query Analyzer
Transacciones-SQL
 Las transacciones son comandos universales SQL que permiten
realizar petición a un servidor de BD por medio de otras
aplicaciones.

 Existen 3 tipos de Transacciones:


 Data Definition Lenguage (DDL)
 El lenguaje de definición de datos es utilizado para definir la estructura de la
BD

 Data Control Lenguage (DCL)


 Son utilizadas para establecer los permisos sobre los elementos de una BD

 Data Manipulation Lenguage (DML)


 Son utilizadas para trabajar con los datos de las Bases de Datos como consultar,
insertar, actualizar o la eliminación de datos.
Elementos de Sintaxis en SQL
 Al realizar transacciones o instrucciones SQL se llegan a utilizar
ciertos elementos que forman parte del uso del SQL como lo son:

 Los Nombres y Alias


 Batches
 Comentarios
 Tipos de Datos
 Variables
 Operadores
 Funciones
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 también es posible crear alias los
cuales funcionan como sinónimos para llamar a las tabla o
campos.
 Pueden contener caracteres alfanuméricos, guión bajo y el $.
 No puede estar formado solamente de dígitos.
 Se deben incluir entre caracteres de comillas o apostrofes.
 No incluir signos especiales como diagonales, puntos y comas.
 El nombre no debe corresponder a una palabra reservada de SQL
 Cuando se utilice el nombre de una tabla o campo compuesto
por espacios en blanco se deberá colocar el nombre entre [ ] o
entre ‘’.
Ejemplo:
SELECT Nombre,[Fecha de Nacimiento]
FROM Empleados
Batches
 Un Batche esta formado por un conjunto de sentencias o
transacciones SQL.

 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

Clasificación Tipos de Datos Descripción


SMALLINT Números enteros pequeños
INTEGER Números enteros
BIT (Longitud) Cadena de Bits de longitud fija
Números REAL Números con coma flotante de baja Precisión
DOUBLE PRECISIÓN Números con coma flotante de doble Precisión
FLOAT (Precisión) Números en coma flotante
DECIMAL Números decimales y $
CHAR (Longitud) Cadena de longitud fija
Cadenas de Texto CHARACTER
VARCHAR (Longitud) Cadenas de longitud variable
DATE Fechas
TIME (Precisión) Horas
Fechas y Horas
INTERVAL Intervalo de Tiempo
DATETIME Fecha y Hora
Variables
Dentro de SQL se pueden definir variables para almacenar valores
temporales.
Todas las variables deben iniciar con el símbolo @
Sintaxis:
DECLARE @variable Tipo de Dato
Declaración de variables Ejemplo:
DECLARE @nombre varchar(15)

Sintaxis:
Asignar valores en las SET @variable = valor
Ejemplo:
variables SET @nombre = ‘Juan Pérez’

Sintaxis:
Devolver el valor de SELECT @variable
Ejemplo:
las variables SELECT @nombre
Operadores
 Tipos de Operadores
 Aritméticos
+ - * / ^
 Comparación
> < <> = >= <=
 Concatenación
+
 Lógicos
And Or Not
Funciones

COUNT Número de registros seleccionados POSITION (Caracter IN Cadena)

SUM Suma de un campo SUM (Campo)


AVG Promedio de un campo AVG (Campo)
MAX Máximo de un campo MAX (Campo)

MIN Mínimo 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 parámetros de seguridad a la BD
 Creación de Índices para la aceleración el acceso a los
datos.
 Control del almacenamiento de los datos
Las transacciones DDL que se utilizan son:
 CREATE Nombre del Objeto
 ALTER Nombre del Objeto
 DROP Nombre del Objeto
Crear una Base de Datos (CREATE)
 Comando T-SQL:
 CREATE DATABASE
 Sintaxis:
 CREATE DATABASE [Nombre de BD]

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 Permite mostrar la información de los archivos


go de la base de datos y muestra el espacio
sp_helpdb [base de datos] asignado.
Utilizar una BD

 Para realizar una acción 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

 Sintaxi en MSSQLserver para ver la estructura de la Tabla

select * from INFORMATION_SCHEMA.COLUMNS


WHERE TABLE_NAME = 'cliente‘ ó
SP_COLUMNS nombredelatabla
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.

CREATE TABLE oficinas


(oficina integer NOT NULL,
ciudad varchar(15) NOT NULL,
region varchar(15) NOT NULL DEFAULT 'Este',
jef integer DEFAULT 106,
objetivo money DEFAULT NULL,
ventas money NOT NULL)
Eliminación de una Tabla
 Es posible eliminar una tabla de la base de datos, es importante
considerar que al momento de que la tabla es eliminada todos
los registros almacenados en dicha tabla, también serán
eliminados.

 Al eliminar una tabla debe considerar si esta no se encuentra


relacionada con alguna otra tabla, en caso de que así sea, la
integridad en las relaciones se vera afectada.

DROP TABLE nombre_tabla


Modificación de una Tabla
 En ocasiones será necesario alterar la definición de la estructura
las tablas, por lo que será posible modificar la tabla en los
siguientes aspectos:
 Cambiar el tipo de datos para las columnas
 Establecer valores nulos o no para las columnas
 Especificar valores predeterminados
 Agregar columnas
 Eliminar columnas

ALTER TABLE MITABLA sp_rename 'MiTabla.Matricula','Credencial'


alter column matricula varchar(15) go

ALTER TABLE nombre_tabla ALTER TABLE nombre_tabla


ADD nueva_columna tipo_datos DROP COLUMN nombre_columna
Asignar Alias a los Campos
 Es posible que al momento de que muestre el resultado de la
consulta, los nombres de los campos sean distintos.
 Lo anterior es útil cuando los nombres de los campos no son
muy representativos para los usuarios finales.
 La asignación del Alias se hace a través de la cláusula AS seguido
del nombre del alias o sobrenombre que se quiera asignar.

SELECT idproducto AS [Código Producto],


nombreproducto AS Producto from productos
Modificación de una Tabla
 También es posible modificar la estructura de una tabla haciendo
uso del Administrador Corporativo (Enterprise Manager), es mas
sencillo y proporciona más funcionalidad y flexibilidad que el uso
de las instrucciones T-SQL.
 Expandir la carpeta de la base de dato y dar clic en Tablas, para
posteriormente con clic derecho sobre la tabla a modificar,
seleccionar la opción Diseñar Tabla.
Tablas con Columnas Incrementales
 Las tablas pueden contener una sola columna que tenga como
valor un valor inicial y que en cada registro que se agregue se
pueda ver incrementado dependiendo del valor que se definió en
la sintaxis de la creación de la tabla

CREATE TABLE nombre_tabla


(nombre_columna tipo_dato
[IDENTITY [(valor_inicial,incremento)]]NOT NULL)

CREATE TABLE clases


(Id_Estudiante integer IDENTITY(100, 5) NOT NULL,
Nombre varchar(15))
Tablas con Columnas Incrementales
 Al momento de insertar registros a la tabla, la primer columna se
incrementará de manera automática tomando como valor inicial
e incremento los establecidos en la sentencia del T-SQL.

 Para ver el funcionamiento debe utilizar el Enterprise Manager y


dar clic derecho sobre la tabla para posteriormente utilizar Abrir
tabla / Mostrar todos los registros.

 Ingrese los datos faltantes al registro y observe el


comportamiento que se tiene al querer ingresar datos al primer
campo.

insert into clases


(nombre) values ('David') select * from clases
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 (Microsoft OLEDB Provider for SQL Server)
2. Asegurarse que el Servidor es el correcto
3. Seleccionar de la lista de Base de Datos, la opción Nuevo
4. Dar el Nombre de la Nueva BD
5. OK
6. Siguiente
Importar Tablas
7. Seleccionar la opción Copiar Tablas y Vistas de la BD Fuente
8. Siguiente
9. Seleccionar las tablas a importar
10. Siguiente
11. Siguiente
12. Finalizar
Consultas Simples – SELECT
 La instrucción Select permite recuperar información de una base de
datos y los devuelve en forma de resultados de la consulta.
 En la instrucción Select se especifican los elementos de datos que
recupera la consulta.
 Los elementos se especifican a través de una lista de elementos
separados por comas.
 Cada elemento de selección en la lista genera una única columna de
resultados de la consulta, de izquierda a derecha.
 Un elemento de selección puede ser:
 Un nombre de columna
 Identifica una columna de la tabla o tablas que aparecen en la cláusula FROM
 SQL toma el valor de esa columna de cada fila de la tabla y lo muestra como resultado de
la consulta
 Una constante
 Especifica que ese mismo valor de constante aparecerá en cada fila de los resultados de la
consulta
 Una expresión
 Indica a SQL que debe calcular el valor a poner e los resultados, según se especifica en la
expresión
Instrucción SELECT
 SELECT
 Lista las columnas que se van a
recuperar de la BD.
 FROM
 Se indica el nombre de la tabla que
contiene la información a recuperar.
 WHERE
 Se especifica una condición para los
registros que debe recuperar SQL.
 GROUP BY
 Genera una columna donde agrupa
los registros que tengan la misma
información, generando un
resumen.
 HAVING
 Indica a SQL que incluya en el
resultado sólo determinados grupos
producidos por la cláusula GROUP
BY.
 ORDER BY
 Ordena los resultados tomando
como base los datos de una o más
columnas.
Instrucción SELECT
 En ocasiones es conveniente mostrar la información 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
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 * FROM productos WHERE unidadesenexistencia>=50


AND unidadesenexistencia<=100

SELECT * FROM clientes


WHERE cargocontacto<>'propietario'
Condiciones de Búsqueda (Rango)
 SQL proporciona una forma diferente de condición de búsqueda
con el rango (BETWEEN), el cual comprueba si un valor se
encuentra entre dos especificaciones.
 Implica tres expresiones SQL:
 La primera define el valor a comprobar
 La segunda el límite inferior del rango a comprobar
 La tercera el límite superior del rango a comprobar
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 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 idproducto, nombreproducto, preciounidad, unidadesenexistencia


FROM productos
WHERE unidadesenexistencia IN (0,5,10)

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 - LIKE)

 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 * FROM mitabla


WHERE nombre LIKE '_egador'

SELECT * FROM mitabla SELECT * FROM mitabla


WHERE nombre LIKE '_egador%' WHERE nombre LIKE '_egador_'
Condiciones de Búsqueda
(Valores Nulos)

 Para una fila dada, el resultado de una condición de búsqueda


puede ser TRUE o FALSE, o puede ser NULL por que una de las
columnas usadas en la evaluación de la condición de búsqueda
contenga un valor NULL

SELECT nombrecompañía,cargocontacto,dirección, región, fax


FROM clientes
WHERE región IS NULL

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
BY.
SELECT 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
Ordenación de
Registros (ORDER BY)
 Una consulta generada por la cláusula SELECT puede presentar
los resultados de manera organizada tanto numéricamente y
alfabéticamente.
 Cláusula T-SQL:
 ORDER BY
 Sintaxis:
 SELECT [Campos] FROM [Tabla] ORDER BY [Campos] [Tipo de Ordenación]

 Los tipos de ordenación puedes ser:


 ASC - Ordenación Ascendente
 DESC - Ordenación Descendente

SELECT * FROM empleados ORDER BY idempleado desc

SELECT * FROM empleados ORDER BY cargo asc


Uso del ORDER 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 general.

SELECT idproveedor, SELECT idproveedor,


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 DISTINCT fechapedido FROM pedidos

SELECT DISTINCT cargo FROM empleados

SELECT DISTINCT cargo, región FROM empleados


Mostrar los Valores Superiores/Inferiores

 A través de la cláusula TOP, SQL permite mostrar los registros


que contengan los valores mas superiores o inferiores de la
consulta.
 Para especificar que sean los primeros o últimos se agrega la
cláusula WITH TIES después de la cláusula TOP.

SELECT TOP 3 *
FROM productos
order by unidadesenexistencia desc

SELECT TOP 3 *
FROM productos
Order BY unidadesenexistencia asc

SELECT TOP 3 WITH TIES *


FROM productos
ORDER BY unidadesenexistencia asc
Consultas con Columnas Calculadas
 Los resultados de una consulta vienen directamente de la bas de
datos, una consulta de SQL puede incluir columnas calculadas,
cuyos valores se obtiene a partir de los valores almacenados.
 Para solicitar una columna calculada se hace a través de una
expresión
 Las expresiones de SQL pueden incluir la suma, resta,
multiplicación y la división.
 Las columnas referenciadas en una expresión aritmética deben
tener un tipo numérico.

select idpedido, idproducto, (preciounidad*cantidad)


as 'Total de Venta' from [detalles de pedidos]
Diagramas
 En el SQL Server Enterprise
Manager se pueden asignar
por medio de Diagramas
realizar las siguientes
acciones:
 Asignar llaves primarias
(PRIMARY KEY) para
poder identificar de
manera única a un
registro.
 Se pueden establecer
las relaciones entre las
tablas.
 Se puede modificar la
estructura de una
tabla.
Asignar Llaves Primarias
 Creación de un Diagrama.
1. Iniciar el SQL Server Enterprise
Manager
2. Expandir en Servidor y la
carpeta de la Base de Datos.
3. Dar Clic derecho en Diagramas
y seleccionar la opción “New
Database Diagram”-
4. En el asistente dar Siguiente.
5. Agregar las tablas que se
quieren en el Diagrama
6. Dar Siguiente
7. Finalizar
8. Guardar el Diagrama con un
nombre.
Asignar Llaves Primarias
 Agregar Llaves Primarias
1. Abrir o crear un Diagrama
que contenga las tablas
necesarias.
2. Dar clic sobre el campo de
una tabla donde se agregará
la llave primaria.
3. Dar Clic en el botón “Set
Primary Key” en la barra de
herramientas
4. Guardar los cambios.
 También es posible quitar las
llaves primarias utilizando la
misma opción.
Agregar Llaves Primarias con el comando
Transact-SQL “PRIMARY KEY”

 El comando PRIMARY KEY permite agregar llaves primarias por


medio del editor del Query Analyser.
 Sinstaxis:
ALTER TABLE Nombre_Tabla
ADD
CONSTRAINT Nombre_PK
PRIMARY KEY (Nombre_Campo_con_LlavePrimaria)
ALTER TABLE PEDIDOS
ADD
CONSTRAINT PK_IDPedido
PRIMARY KEY (IdPedido)
 Para quitar una llave primaria se utiliza en lugar de la clausula
DROP en lugar de la cláusula ADD, esto seguido del nombre de
la llave primaria a eliminar.
ALTER TABLE PEDIDOS
DROP
CONSTRAINT PK_IDPedido
Relaciones entre Tablas
 Establecer relaciones entre tablas
1. Abrir o crear un Diagrama que
contenga las tablas a relacionar.
2. Arrastrar con el mouse el campo
de la tabla primaria (Campo con
Llave Primaria) y soltar sobre el
campo de la tabla secundaria
(Campo con llave foranea)
3. En el cuadro de dialogo Create
RelationShip se recomienda
activar las opciones de
actualización n cascada.
4. pulsar OK.
 Al finalizar el proceso de una relación
se visualizará por medio de una línea
la unión de las 2 tablas.
 La tecla Suprimir permite eliminar
una relación.
Consultas de Varias Tablas (INNER JOIN)

 A través de la cláusula INNER JOIN será posible realizar


consultas entre dos o más tablas.
SELECT Idproducto,NombreProducto,NombreCompañía
FROM Productos INNER JOIN Proveedores
ON Productos.IDProveedor = Proveedores.IdProveedor
IdProducto NombreProducto IdProveedor IdProveedor NombreCompañía
1 Té Dharamsala 1 1 Exotic Liquids
2 Cerveza tibetana Barley 1 2 New Orleans Cajun Delights
3 Sirope de regaliz 2 3 Grandma Kelly's Homestead
4 Especias Cajun del chef Anton 3
PK Tabla
5 Mezcla Gumbo del chef Anton 2 Proveedores
Tabla Productos FK

Resultado

IdProducto NombreProducto NombreCompañía


1 Té Dharamsala Exotic Liquids
2 Cerveza tibetana Barley Exotic Liquids
3 Sirope de regaliz New Orleans Cajun Delights
4 Especias Cajun del chef Anton New Orleans Cajun Delights
5 Mezcla Gumbo del chef Anton New Orleans Cajun Delights
Consultas de Varias Tablas (INNER JOIN)

 La cláusula INNER JOIN especifica las tablas que serán utilizadas


para la consulta.
 La cláusula ON especifica las llaves primarias y foráneas por las
cuales se encuentran relacionadas las tablas.
 En SQL Server se puede utilizar de forma abreviada la cláusula
JOIN en lugar de utilizar la cláusula completa INNER JOIN.

Ejemplo:

SELECT IdPedido,NombreProducto,
CantidadPorUnidad,[Detalles de Pedidos].PrecioUnidad,
Cantidad FROM PRODUCTOS
JOIN [Detalles de Pedidos]
ON Productos.IdProducto = [Detalles de Pedidos].IdProducto
Consultas de Varias Tablas (INNER JOIN)

 Al realizar consultas con JOIN e recomendable utilizar alias con la


cláusula AS cuando las tablas que contienen nombres largos.

Ejemplo:

SELECT IdPedido,NombreProducto,
CantidadPorUnidad,dp.PrecioUnidad,
Cantidad FROM PRODUCTOS as p
JOIN [Detalles de Pedidos] as dp
ON p.IdProducto = dp.IdProducto
Consultas entre mas de 2 tablas
 Se deben utilizar varios JOIN para poder crear una consulta
entre mas de 2 tablas.

Ejemplo:

SELECT p.IdPedido,NombreCompañia,
NombreProducto,FechaPedido,
pro.PrecioUnidad, Cantidad, (PRO.PRECIOUNIDAD * CANTIDAD) AS Total
FROM PEDIDOS as p
JOIN [Detalles de Pedidos] as dp
ON p.Idpedido = dp.Idpedido
JOIN Productos as pro
ON dp.IdProducto = pro.IdProducto
JOIN Clientes as c
ON c.IdCliente = p.IdCliente
ORDER BY p.idpedido
COMPUTE SUM(Cantidad), SUM(pro.Preciounidad * Cantidad) BY p.Idpedido
COMPUTE SUM(CANTIDAD),SUM(pro.Preciounidad * Cantidad)
Transacciones DML
 Son sentencias Transact-SQL utilizadas para manipular los datos
de las Bases de Datos.

 Por medio de astas instrucciones es posible:


 Consultar (SELECT)
 Agregar Registros (INSERT)
 Actualizar Registros (UPDATE)
 Eliminar Registros (DELETE)
Agregar Registros a la Base de Datos

 Para agregar registros a la base de datos, existen tres diferentes


formas de poder hacer este proceso.

 Insertar sobre una única fila. La instrucción Insert añade


una sola fila de datos nueva a una tabla.
 Insertar sobre varias filas. La instrucción Insert extrae filas
de datos de otra parte de la base de datos y las añade a la
tabla.
 Carga masiva. Se añaden datos a una tabla desde un
archivo externo a la base de datos.
Uso del INSERT
 La instrucción INSERT añade una nueva fila a la tabla.
 La cláusula INTO especifica la tabla que recibe la nueva fila(tabla
destino).
 La cláusula VALUES especifica los valores de datos que
contendrá la nueva fila.
 La lista de columnas indica el valor de datos que va a cada
columna de la fila nueva.
 Sintaxis:
INSERT INTO nombre_tabla (nombre_de_columna, …)
VALUES (valor1,…)

Ejercicio:
INSERT INTO ALUMNOS (Matricula,Nombre,Edad,Sexo)
VALUES (1040,’Carlos Martínez’,25,’Masculino’)
Inserción de Valores NULL
 Cuando SQL inserta en una tabla una nueva fila de datos, asigna
de manera automática un valor NULL a todas aquellas columnas
cuyo nombre no se halle en la lista de columnas de la instrucción
INSERT.

INSERT INTO Categorías (


IdCategoria,NombreCategoria)
values (10,'Pasteles')

 Se puede hacer más explicita la asignación de valores NULL


incluyendo estas columnas en la lista de columnas y
especificando la palabra NULL en la lista de valores.

INSERT INTO Categorías (


IdCategoria,NombreCategoria,Descripcion,Imagen)
values (11,'Pasteles',NULL,NULL)
Inserción de Registros en
Campos Autonuméricos

 Al momento de insertar un registro en campos que sean


IDENTITY (Incremental) este no debe ser considerado en la lista
de campos ya que de manera automática SQL asignará el valor.

INSERT INTO CLASE (Nombre) VALUES ('Mario‘)


Inserción de todas las columnas
 Como un servicio más, SQL permite omitir la lista de columnas
de la instrucción INSERT.

 Cuando se omite la lista de columnas, SQL genera de manera


automática una lista de columnas consistente en todas las
columnas de la tabla, ordenadas de izquierda a derecha.

 Hay que tomar en cuenta que es necesario conocer el orden de


las columnas y el tipo de dato.

INSERT INTO CLASE VALUES (‘Claudia’)


Instrucción INSERT sobre varias filas

 Sql Server permite crear consultas de datos anexados, por lo que


se pueden agregar el resultado de una consulta a otra tabla
existente.
 Para este tipo de INSERT, se tiene que tomar en cuenta que al
agregar registros de esta forma deben ser del mismo tipo de
dato.

INSERT INTO CLASE (Nombre)


SELECT NOMBRE FROM CLASES
Eliminación de Datos de la Base de Datos
(DELETE)

 La instrucción DELETE, elimina las filas de datos seleccionadas


de una sola tabla.
 La cláusula FROM especifica la tabla destino que contiene las
filas.
 La cláusula WHERE especifica las filas de la tabla que deben
eliminarse.

DELETE FROM CLASE


WHERE Id_Estudiante = 130

DELETE FROM CLASE


WHERE Nombre LIKE 'J%'
Eliminación de Todas las Filas
 La cláusula WHERE de la instrucción DELETE es opcional.

 Si se omite la cláusula WHERE de una instrucción DELETE, se


eliminan todas las filas de la tabla destino.

DELETE FROM CLASE


Instrucción UPDATE
 La instrucción UPDATE modifica los valores de una o varias
columnas de las filas seleccionadas de una sola tabla.
 La tabla destino que hay que actualizar se nombra en la
instrucción, y hay que tener los permisos necesarios para
actualizar la tabla y cada una de las columnas que vayan a
modificarse.
 La cláusula WHERE selecciona las filas de la tabla qe hay que
modificar.
 La cláusula SET especifica las columnas que se van a actualizar y
calcula sus nuevos valores

UPDATE EMPLEADOS
SET CARGO = 'Gerente de Ventas'
WHERE IDempleado=3
Actualización de todas las Filas
 La cláusula WHERE en la instrucción UPDATE es opcional.

 Si se omite la cláusula WHERE, se actualizan todas las filas de la


tabla destino.

UPDATE EMPLEADOS
SET JEFE =1
Vistas
 Las Vistas son tablas virtuales cuyo el contenido esta basado en
una consulta.
 El objeto de las vistas es restringir a los usuarios par que no
puedan modificar la estructura de las tablas y que no puedan
crear consultas que no le competen al usuarios.
 Las Vistas Ofrecen las siguientes ventajas:
 Simplicidad:
 Simplifica las peticiones a la Base de Datos
 Seguridad:
 Se pueden establecer permisos a los usuarios para que solo tenga acceso a las
vistas pero no a crear consultas de datos no deseados en otras tablas
 Simplicidad Estructural:
 Las vistas pueden extraer datos provenientes de varias tablas y presentarlas
como si fuera una sola tabla.
Creación de una Vista (CREATE VIEW)

 Cláusula T-SQL:
 CREATE VIEW
 Sintaxis:
 CREATE VIEW [Nombre_Vista] As [SELECT ….…..]

CREATE VIEW Reporte1 as


SELECT * FROM Proveedores

*Nota: Para Ejecutar una consulta se realiza un SELECT como si fuera


una tabla mas. No se puede utilizar el order by y el group by, estas son
solamente tablas virtuales
Indice

Introducción para el 27 de mayo


Que es una Base de Datos
Clasificación de las base de datos
Sistema de base de datos
1) Oracle
2) Mysql
3) Postgre
4) Sql-sever
5) DB2
Instalación de sql-server (pasos)
Practicas 1

También podría gustarte