Sie sind auf Seite 1von 21

UNSCH EFP.

Ingeniería de Sistemas

CREACION DE TABLAS E INTEGRIDAD DE RELACION

CONTENIDO:

 Los tipos de datos SQL Server 2005


 Creación de tablas CREATE TABLE
 Modificación de la definición de una tabla ALTER TABLE
 Integridad de datos Las restricciones CONSTRAINTS.
 PRIMARY KEY, FOREIGN KEY, UNIQUE, DEFAULT, CHECK,
IDENTITY

TEMA:

Los sistemas de gestión de base de datos organizan y estructuran los datos de tal modo
que puedan ser recuperados y manipulados por usuarios y programas de aplicación. La
estructura más importante de una base de datos relacional son las tablas. En esta sesión
aprenderemos a creerlas y relacionarlas de la manera ideal.

OBJETIVOS ESPECIFICOS:

- Crear tablas desarrollando algún caso pequeño de manera que el alumno pueda
comprender el uso de las relaciones entre ellas.

1.- APRENDIENDO A CREAR TABLAS:

1.1 ¿QUE ES UNA TABLA?

Una tabla es una colección de datos sobre una entidad (Persona, lugar,
cosa) especifica, que tiene un número discreto de atributos designados
( por ejemplo cantidad o tipo). Las tablas están en el corazón de SQL
Server y del modelo relacional en general. Las tablas son fáciles de
entender ya que son prácticamente iguales a las listas que utiliza de
manera cotidiana. En SQL Server una tabla suele denominarse tabla de
base, para hacer énfasis sobre donde se almacenan los datos. La
utilización de <<Tabla de base>>, también distingue la tabla de una vista
(View), una tabla virtual que es una consulta interna de una tabla base.

Conforme se utiliza la base de datos con frecuencia se encontrará


conveniente definir tablas propias para almacenar datos personales o
datos extraídos de otras tablas.

Los atributos de los datos de una tabla (como tamaño, color, cantidad,
fecha, etc) toman la forma de columnas con nombre en la tabla.

Las columnas de la tabla recién creada se define en el cuerpo de las


sentencias CREATE TABLE . La definición de columnas aparecen en
una lista separada por comas e incluida entre paréntesis. La definición de
la columna determina el orden de izquierda a derecha de la columna en la
tabla.

Modelamiento de datos 1 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

a. Nombre de columna:
Pueden ser iguales a los nombres de las columnas de otras tablas
b. Tipo de datos
Identifica la clase de datos que la columna almacenará.
c. Si la columna contiene datos requeridos
La cláusula NOT NULL impide que aparezcan valores NULL en
la columna o en caso contrario admite valores NULL

Las tablas suelen estar relacionadas con otras tablas.

1.2 CREACIÓN DE TABLAS.

Cuando se crea una tabla se debe especificar el nombre de


la tabla, el nombre de la columna, el tipo de dato de la
columna y las restricciones de la columna.
Los nombres de las columnas deben ser únicos en una tabla
específica, pero se puede usar el mismo nombre de la
columna en tablas diferentes dentro de la misma base de
datos.

1.3 TIPOS DE DATO

Un tipo de dato es un atributo que especifica el tipo de dato (carácter,


entero, binario, etc.) que puede ser almacenado en una columna,
parámetro o variable. SQL Server provee de un conjunto de tipos de dato,
aún cuando se pueden crear tipos de dato definidos por el usuario que se
crean sobre la base de tipos de dato provisto por el SQL Server. Los tipos
de dato provistos por el sistema definen todos los tipos de dato que se
pueden usar en SQL Server. Los tipos de dato pueden ser utilizados para
asegurar la integridad de los datos porque los datos ingresados o
modificados deben cumplir con el tipo de dato especificado para el objeto
correspondiente. Por ejemplo, no se puede almacenar el nombre de
alguien en una columna con un tipo de dato datetime, ya que esta
columna solo aceptará valores válidos de fecha y hora.

Categoria TIPO DE DATOS DESCRIPCION


Bigint Datos enteros de 8 bytes
Int Datos enteros de 4 bytes
Smallint Datos enteros de 2 bytes
Entero
tinyint Datos enteros comprendidos entre 0 y 255 (entero de 1
byte)
Bit Datos enteros con valor 1, 0 ó NULL
Decimal (p,s) * P es la precisión, y va de 1 a 38, siendo 18 el valor
Numérico
predeterminado. S es la escala y va desde o hasta p
exacto
Numeric (p,s) * Funcionalmente equivalente a decimal
Money Valor monetario de 8 bytes
moneda
Smallmoney Valor monetario de 4 bytes
Numérico Float Números con precisión de coma flotante comprendidos
aproximado entre -1.79E + 308 y 1.79E + 308
Real Números con precisión de coma flotante comprendidos

Modelamiento de datos 2 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

entre-1.18E-38,0 y 1.18E -38 a 3.40E + 38


Fecha y Datetime Datos de fecha y hora comprendidos entre el 1 de enero
hora de 1753 y el 31 de diciembre de 9999
Smalldatetime Datos de fecha y hora comprendidos entre el 1 de enero
de 1900 y el 06 de junio de 2079
Char(n) Cadena de longitud Fija (n puede ser de1 a 8 000
caracteres)
Varchar(n|max) Cadena de longitud variable (n puede ser de1 a 8 000
Cadena bytes). Max indica la longitud máxima que es 2^31-1
bytes
Text Cadena de longitud variable con un máximo de 2^31 -1
caracteres
nchar(n) Datos Unicode de longitud fija de n caracteres ( n puede
ser de 1 a 4000 caracteres)
nvarchar(n|max) Cadena de longitud variable ,los datos pueden variar en el
Datos
número de caracteres (hasta 4000 caracteres Unicode)
unicode
Max indica la longitud máxima que es 2^31-1 bytes
ntext Cadena UNICODE de longitud variable con un máximo
de 2^30 -1 caracteres
Binary(n) Los datos deben tener la misma longitud fija (n puede ser
Binario de 1 hasta 8 000 bytes)
Varbinary(n|max) Datos binarios de longitud variable(n puede ser con una
longitud maxima de 8000 bytes) Max indica la longitud
máxima que es 2^31-1 bytes
Generación timestamp Generación automática de números binarios de modo que
automática son únicos dentro de una base de datos

* p es la precisión y determina el número máximo de dígitos tanto a la izquierda como


a la derecha del punto decimal. S es la escala y determina el número máximo de
dígitos a la derecha del punto decimal.

Como recomendación podemos probar con estos consejos al escoger tipos de datos:

• Si se necesita almacenar datos enteros desde 0 hasta 255, usar el tipo de dato
tinyint.
Las columnas con tipos de datos tinyint usan solamente 1 byte para almacenar
sus valores, en comparación con 2 bytes, 4 bytes y 8 bytes usados para guardar
las columnas con smallint, int y bigint respectivamente.
• Si se necesita guardar datos enteros desde -32,7658 hasta 32,767, usar
smallint.
Las columnas con tipo de dato smallint usan solamente 2 bytes para almacenar
sus valores, a diferencia de los 4 bytes y 8 bytes de los tipos de datos int y bigint
respectivamente.
• Si se necesita almacenar datos enteros desde -2,147,483,648 hasta
2,147,483,647, usar int.
Las columnas con tipo de dato int usan solamente 4 bytes para guardar sus
valores, mientras que los bigint usan 8 bytes. Se puede utilizar si es que por
ejemplo se necesita catalogar una biblioteca con más de 32,767 libros.
• Usar smallmoney en vez de money, si se necesita guardar valores monetarios
desde -214,748.3648 hasta 214,748.3647.
Las columnas con tipo de dato smallmoney usan solamente 4 bytes para

Modelamiento de datos 3 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

guardar sus valores, en comparación con los 8 bytes que son usados cuando las
columnas tienen tipo de dato money. Por ejemplo si necesitas almacenar los
sueldos mensuales de los empleados.
• Usar smalldatetime en vez de datetime, si se necesita guardar la fecha y hora
desde Enero 1 de 1900 hasta Junio 6 del 2079, con exactitud al minuto.
Las columnas con smalldatetime usan solamente 4 bytes para guardar sus
valores, en comparación con los 8 bytes usados para guardar valores de las
columnas con datetime. Si necesitas almacenar la fecha de ingreso de un
empleado a la compañía utiliza este tipo de dato.
• Usar columnas varchar/nvarchar en vez de text/ntext cuando sea posible.
Porque SQLServer almacena las columnas text/ntext en las páginas de tipo
Text/Image separado del resto de datos que están en las páginas de Datos, esto
hace que tome más tiempo obtener los valores text/ntext.

2 DISEÑO DE LA INTEGRIDAD DE LA BASE DE DATOS

Establecer las normas de integridad es un proceso tan importante como el


modelamiento, pues si bien el primero se encarga de encontrar el modelo que
optimice más los recursos del servidor de base de datos, las normas de integridad
determinarán la forma más segura de controlar la confiabilidad, veracidad e
integridad de la información.

Se debe analizar cada uno de los atributos para determinar qué norma de
integridad puede afectarlo para lograr los objetivos de la seguridad.

LAS RESTRICCIONES (constrains):

Las restricciones son un método declarativo de definición de la integridad de


datos ya que ellas se definen al momento de crear la tabla (con la sentencia
CREATE TABLE), o al momento de modificar la definición de la tabla (con la
sentencia ALTER TABLE).
En otras palabras, una restricción forma parte de la definición de la tabla. Las
restricciones son el método preferido para dar fuerza a la integridad de los datos.

TIPOS DE RESTRICCIONES:
Las restricciones son un método estándar ANSI para forzar la integridad de los
datos.

Garantizan que los datos ingresados en las columnas sean valores válidos y que
se mantengan las relaciones entre las tablas.

PRIMARY KEY (PK)


Garantiza que cada fila o registro en una tabla es único(a). la columna o
combinación de columnas definida como clave primaria no permite valores
duplicados.
Cuando se define la restricción PK sobre un (o unos) atributo(s) de una entidad
se obliga a:
- No duplicar el contenido de dicho atributo en la entidad
- No permite valores nulos (NULL)

Modelamiento de datos 4 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

- Se sugiere usar el tipo de datos Integer (int, smallint o


tynint), numeric o
decimal

FOREIGN KEY (FK)

Indica el atributo o atributos que almacenaran el dato que los relacionará con
otra entidad. Este atributo en la otra entidad debe ser un PK para poder
establecer una adecuada relación.
Cuando se define la restricción FK sobre un (o unos) atributo(s) de una entidad
se obliga a:
- el dato que se desea almacenar en el atributo FK, debe haber sido
previamente registrado en la entidad que contiene el PK.
- Al tratar de eliminar el dato en la entidad que contiene el atributo
PK, previamente se debe eliminar el dato en la entidad que contiene el
FK.

UNIQUE (UN)
Garantiza que cada valor en una columna es único. Permite valores únicos.
Cuando se definen la restricción UN sobre un (o unos) atributo(s) de una entidad
se obliga a:
- no repetir los valores definidos como únicos

NOT NULL: (NU)


Indica que, a pesar que el motor de la base de datos obliga a registrar todos los
valores de una entidad, podríamos causar excepciones, para dejar atributos
vacíos.
Cuando se define la restricción NU sobre un (o unos) atributo(s) de una entidad
se le obliga a:
- No causar un error de excepción cuando se deje dicho atributo en
blanco
- Los Primary Key y Foreign key, no pueden tener esta restricción.

IDENTITY ( ID)

Indica que un atributo de la entidad será un correlativo automático que facilitará


el control de algún tipo de codificación o contador instantáneo.

Cuando se define la restricción ID sobre un (o unos) atributo(s) de una entidad


se le obliga a:
- Sólo un atributo de la entidad puede poseer esta restricción.
- El valor de este atributo será autogenerado, por ningún motivo
puede ser editado.
- Se debe registrar dos parámetros : el valor inicial (seed:semilla), y
el incremento.

CHECK (CK)

Indica que algunos atributos pueden ser validados dentro de un rango de valores.

Modelamiento de datos 5 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

Cuando se define la restricción CK sobre un (o unos) atributo(s) de una entidad


se le obliga a:

- El valor que vaya a tener dicho atributo debe encontrarse en el


conjunto de valores válidos que se le ha indicado.
Por ejemplo: el atributo sexo de una entidad de clientes solo puede ser M o
F

DEFAULTS

Un DEFAULTS es un valor por defecto que se puede asignar en un campo


cuando el valor de este campo no es insertado en el registro.
Las definiciones DEFAULT se pueden:
 Crear cuando se crea la tabla, durante el proceso de definición de la
misma.
 Agregar a una tabla ya existente. Cada columna de una tabla puede
contener una sola definición DEFAULT
 Modificar o eliminar, si ya existen definiciones DEFAULT.por
ejemplo, puede modificar el valor que se inserta en una columna
cuando no se escribe ningún valor.

RESTRICCIONES (CONSTRAINTS)

Las restricciones permiten definir el modo en que SQL Server automáticamente


fuerza la integridad de la base de datos. Las restricciones definen reglas
indicando los valores permitidos en las columnas y son el mecanismo estándar
para asegurar integridad. Usar restricciones es preferible a usar
desencadenadores, reglas o valores por defecto.

DIAGRAMA ENTIDAD – RELACION de la base de datos ventas

Modelamiento de datos 6 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

1) implementación paso a paso. Con ayuda de ALTER TABLE


1.1) Creamos las tablas.
Agregamos algunas restricciones:
1.2) Agregamos restricción DEFAULT, CHECK, UNIQUE..
1.3) Agregamos las llaves primarias (ADD PRIMARY KEY)
1.4) Agregamos Las Llaves Foráneas Y Relaciones (ADD FOREIGN KEY-
REFERENCES)

2) Implementamos las tablas, las llaves primarias, las llaves foráneas y las
relaciones en una forma directa
A continuación detallaremos ambos caso.:

1) Implementación paso a paso utilizando el Analizador de consultas

EJERCICIO1 : crear una base de datos llamada Ventas en una carpeta llamada base
de datos, tamaño máximo de 50MB y con un porcentaje de crecimiento del 5%.

CREACIÓN DE TABLAS

LA INSTRUCCION CREATE TABLE


Sisntaxis:
CREATE TABLE nombre_tabla (
Nombre _columna1 tipo_dato1[ NULL| NOT NULL] ,
Nombre _columna1 tipo_dato1[ NULL| NOT NULL] ,
Nombre _columna1 tipo_dato1[ NULL| NOT NULL] ,
…)

USE VENTAS

CREATE TABLE CLIENTE (


Cod_cliente int ,
ApePat CHAR(50),
ApeMat char (50),
Nombre char (50),
Ruc char(11),
Direccion char (70),
Cod_dist char(5))

EL PROCEDIMIENTO sp_help
Genera un reporte con información a cerca de la definición de un objeto de la base de
datos activa. Todo los usuarios de la base de datos pueden ejecutar este procedimiento.

Sintaxis:
sp_help nombre_objeto_basedatos

ejecute la siguiente instrucción:

sp_help cliente

Modelamiento de datos 7 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

CREATE TABLE DISTRITO (


Cod_dist CHAR(5) NOT NULL,
Descripción_dist CHAR(15))

ejercicio 02: crear las siguientes tablas PRODUCTO, UNIDAD, FACTURA,


DETALLE FACTURA

MODIFICACIÓN DE LA DEFINICION DE UNA TABLA

En una tabla podemos añadir nuevas columnas, eliminar columnas, cambiar las
propiedades de una columna, añadir o eliminar restricciones.

ALTER TABLE

Permite modificar las definiciones de una tabla.

SINTAXIS:

ALTER TABLE nombre tabla


ADD nombre_columna propieddes columna
DROP columna_nombre
ALTER COLUMN nombre_columna
Nuevas_propiedades_columna
ADD CONSTRAIN nombre_restriccion
PRIMARY KEY …. | UNIQUE…| FOREIGN KEY… |
|DEFAULT…| CHECK…
DROP CONSTRAINT nombre_restricción

AGREGANDO LAS LLAVES PRIMARIAS A TODAS LAS TABLAS:

ALTER TABLE CLIENTE


ADD CONSTRAINT PK_CODCLIENTE
PRIMARY KEY (Cod_cliente)

ALTER TABLE DETALLE_FACTURA


ADD CONSTRAINT PK_DETALLEFACT
PRIMARY KEY (Num_fact, Cod_producto)

AGREGANDO LLAVES FORÁNEAS Y RELACIONANDO TABLAS

Agregando referencia a la tabla distrito

ALTER TABLE CLIENTE


ADD CONSTRAINT FK_CODDISTRITO
FOREIGN KEY (Cod_dist)
REFERENCES DISTRITO (Cod_dist)
Modelamiento de datos 8 Prof. Elvira Fernández
UNSCH EFP. Ingeniería de Sistemas

.
.
2) Implementamos las tablas, las llaves primarias, las llaves foráneas y las
relaciones en una forma directa

CREATE DATABASE VENTAS_PROD1


USE VENTAS_PROD1

CREATE TABLE DISTRITO(


Cod_dist CHAR(5)NOT NULL PRIMARY KEY,
DESCRIPCION_DIST CHAR(15))

CREATE TABLE CLIENTE(


Cod_cliente int identity (100,1) NOT NULL PRIMARY KEY,
ApePat CHAR(50),
ApeMat char (50),
Nombre char (50),
Ruc char(11),
Direccion char (70),
Cod_dist char(5) references DISTRITO)

EJERCICIO PROPUESTO

Se desea crear la base de datos de una institución que brinda cursos de extensión
profesional. Los interesados en los cursos se pueden matricular sin ninguna
restricción, y además tienen facilidades para pagar el costo de los cursos.
A continuación se presenta el modelo físico SQL Server de la base de datos a crear.:

Modelamiento de datos 9 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

1- Crear una base de datos llamada Extensión_profesional en la unidad D, carpeta


Trabajo_Encargado
2- Implemente paso a paso la base de datos, para lo cual:
2.1. Cree las tablas
2.2. Agregue las llaves primarias
2.3. agregue las llaves foráneas y relaciones
2.4. Realice algunas preguntas para cada una de las tablas y desarrolle las
restricciones check, unique , default, para las tablas creadas

PARA RECORDAR:

Recuerde siempre que las tablas son el corazón de las bases de datos relacionales en
general y de SQL Server en particular. Las restricciones de integridad aseguran que la
clave primaria identifique unívocamente a cada entidad representada de la base de datos
y además aseguran que las relaciones entre entidades de la base de datos se preserven
durante las actualizaciones.

LABORATORIO 4

IMPLEMENTACION DE CONSULTAS BÁSICAS

TEMA:
En esta sección veremos como leer el contenido de una tabla mediante la ejecución de
consultas sencillas a través de la instrucción SELECT.

OBJETIVOS ESPECIFICOS:
Utilizar los comandos SQL de manera que nos permita recuperar la información de
alguna base de datos.

CONTENIDO
• Introducción a las consultas
• Uso del SELECT, FROM, WHERE, ORDER BY.

INTRODUCCION A LAS CONSULTAS

Las consultas de selección se utilizan para indicar al motor de datos que devuelva la
información de las bases de datos, esta información es devuelta en forma de conjunto de
registros que se pueden almacenar en objeto recordset. Este conjunto de registros es
modificable.

2. LA INSTRUCCIÓN SELECT

La cláusula SELECT lista los datos a recuperar por la sentencia SELECT. Los
elementos o datos a seleccionar pueden ser columnas de la base de datos o columnas a
calcular por SQL cuando efectúa la consulta o también el asterisco(*) para recuperar
todos los campos de un fichero o tabla.

FROM
La cláusula FROM lista las tablas o ficheros que contienen los datos a recuperar por la
consulta. El formato de esta cláusula es:

Modelamiento de datos 10 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

SELECT * FROM NombreTabla

Hay 3 componentes básicos en la instrucción SELECT: SELECT, FROM Y


WHERE.

a. SINTAXIS BÁSICA:

SELECT * / ListaColumnas
FROM origenTabla
[WHERE condiciónBúsqueda]

• ListaColumnas: es la lista de columnas a mostrar el resultado de la


consulta.
• Si se especifica * se mostrarán todas las columnas de la tabla.
• CondiciónBúsqueda: es una expresión lógica que indica que las filas a
mostrar son aquellas para las que el valor de la expresión es verdadero.

b. SINTAXIS COMPLETA:

SELECT [ALL|DISTINCT] [ TOP n [ PERCENT] [WITH TIES]


ListaColumnas
[INTO nuevaTabla]
FROM origenTabla
[WHERE condiciónBúsqueda]
[GROUP BY [ALL]expresiónAgruparPor]
[WITH CUBE | ROLLUP ]
[HAVING condiciónBúsqueda]
[ORDER BY expresiónOrden [ASC / DESC] ]
[COMPUTE AVG | COUNT | MAX | MIN |SUM (expresión)]

LECTURA DE TODOS LOS DATOS DE UNA TABLA:

EJEMPLO1: el siguiente ejemplo retorna todas las columnas y filas de la tabla


PRODUCTOS que se encuentra en la base de datos ControlInventario

USE ControlInventario
GO

SELECT * FROM PRODUCTO


GO

LECTURA DE COLUMNAS SELECCIONADAS DE UNA TABLA:

Ejemplo2: El ejemplo siguiente retorna las columnas idProducto,


nombre,unidadMedida y precioProveedor de la tabla Producto.

SELECT nombre,unidadMedida , precioProveedor


FROM producto
GO

Modelamiento de datos 11 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

Ejercicio1: Listar los campos idProducto, precioVenta y cantidad de la


tabla GUIA_DETALLE que se encuentra en la base de datos
ControlInventario

DEFINIENDO ALIAS PARA LOS NOMBRES DE COLUMNA

Un alias define títulos alternativos para los nombres de columna. Si el Alias es una
frase(contiene espacios) debe escribirse entrecomillada.

Ejemplo3:
SELECT idProducto AS Código,
Nombre AS Descripción,
unidadMedida AS Unidad,
precioProveedor AS 'Precio Unitario'
FROM producto
GO

DEFINIENDO COLUMNAS COMPUTADAS

Una columna computada es una columna que se muestra en el resultado de una


consulta, pero no existe físicamente como tal en la tabla. La columna computada
muestra el resultado de ejecutar alguna operación con las columnas de la tabla.

Ejemplo4: El siguiente ejemplo retorna las columnas idProducto, Nombre,


precioProveedor, y el campo calculado ‘Precio con descuento’ =
precioProveedor*0.9 de la tabla producto.

SELECT idProducto AS Código,


Nombre AS Descripción,
unidadMedida AS Unidad,
precioProveedor AS 'Precio Unitario',
precioProveedor*0.90 as 'Precio con Descuento'
FROM producto
GO

WHERE
La cláusula WHERE dice a SQL que incluya sólo ciertas filas o registros de datos en los
resultados de la consulta, es decir, que tiene que cumplir los registros que se desean ver.
La cláusula WHERE contiene condiciones en la forma:

WHERE Expresión1 operador Expresión2


Donde: Expresion1 y Expresión2 pueden ser nombres de campos, valores constantes o
expresiones. Operador es un operador relacional que une dos expresiones .

Ejemplo5: El siguiente ejemplo retorna las columnas


IdProveedor,Nombre,Representante,Ciudad de la tabla Proveedor. El ejemplo
sólo retorna las filas de los proveedores que residen en el callao

Modelamiento de datos 12 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

select IdProveedor,Nombre,Representante,Ciudad
from PROVEEDOR
where ciudad='callao'

Ejemplo6: El siguiente ejemplo retorna las columnas


IdProveedor,Nombre,Representante,Ciudad de la tabla Proveedor. El ejemplo
sólo retorna las filas de los proveedores que residen en el callao o Arequipa
select IdProveedor,Nombre,Representante,Ciudad
from PROVEEDOR
where ciudad='callao' or ciudad='Arequipa'

USO DEL OPERADOR DE IGUALDAD


Ejercicio02: El siguiente ejemplo muestra una lista de los productos de la categoría
2(embutidos).

USO DEL OPERADOR DIFERENTE(< >, ¡=)


Ejercicio03: El siguiente ejemplo muestra una lista de los productos diferentes a la
categoría 3(embutidos).

USO DEL OPERADOR MENOR QUE (< )


Ejercicio04: mostrar los campos idCategoria, Nombre y precioProveedor de la
tabla producto cuyo precio es menor a 5.5

USO DEL OPERADOR MAYOR QUE (> )


Ejercicio05: mostrar los campos idCategoria, Nombre y precioProveedor de la
tabla producto cuyo precio es mayor a 5.5

Ejemplo8: la siguiente sentencia nos muestra la cantidad de órdenes de productos


pedidos con posterioridad al mes de mayo

SELECT COUNT(*)
FROM ORDEN
WHERE MONTH(FechaOrden)>05

USO DEL OPERADOR MENOR O IGUAL QUE (<= )

Ejercicio04: mostrar una lista de los campos idproducto y Nombre de la tabla


producto cuyo nombre se encuentra antes o en la posición del producto de nombre
‘cepillo master adulto’.

INTO
Crea una nueva tabla e inserta en ella las filas resultantes de la consulta.
Para crear una tabla temporal, el nombre de la tabla debe comenzar con un signo
numérico (#)

Ejemplo 9: El siguiente ejemplo crea la tabla temporal #MICOPIA e inserta todas


las columnas y filas de la tabla Proveedor

Modelamiento de datos 13 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

SELECT * INTO #MICOPIA FROM PROVEEDOR

Para comprobar la existencia de la tabla temporal #MICOPIA. realice un select a la


tabla temporal #MICOPIA en el Analizador de consultas:

SELECT * FROM #MICOPIA

ORDER BY
La cláusula ORDER BY ordena los resultados de la consulta en base a los datos de una
o más columnas. Si se omite, los resultados saldrán ordenados por el primer campo que
sea clave en el índice q haya utilizado.
Por tanto, indica como deben clasificarse los registros que se seleccionen. Tiene la
forma:

SELECT * FROM TABLA


ORDER BY {Expresion_Orden [DESC/ASC]…}

Expresión_orden puede ser el nombre de un campo, expresión o el número de posición


que ocupa la expresión de columna en la cláusula SELECT. Por defecto se ordena
ascendentemente(de menor a mayor) si se deseara de mayor a menor es empleará DESC
(DESCendente).

Ejemplo10: el ejemplo muestra los nombre de los productos de la tabla productos


ordenados descendentemente

SELECT idProducto, nombre


FROM producto
ORDER BY nombre DESC

Para obtener un listado de proveedores por su lugar ordenado por ciudades y dentro de
cada ciudad ordenados por departamentos se utilizaría:

SELECT Representante, Ciudad,Departamento


FROM PROVEEDOR
ORDER BY Ciudad, Departamento DESC

O lo mismo de otra forma:

SELECT Representante, Ciudad,Departamento


FROM PROVEEDOR
ORDER BY 2, 3 DESC

Donde los números son la pocisión actual de los campos mostrados en la cláusula
SELECT

3. CONSULTAS CON PREDICADO:


El predicado se incluye entre la cláusula y el primer nombre del campo a recuperar, los
posibles predicados son:

Modelamiento de datos 14 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

TOP:
Devuelve un cierto número de registros que entran entre el principio o el final de un
rango especificado por una cláusula ORDER BY.

Ejemplo11: Supongamos que queremos recuperar los nombres de los 5 primeros


proveedores del campo departamento

SELECT TOP 5 IdProveedor,Nombre


FROM PROVEEDOR
ORDER BY Departamento DESC

Sino se incluye la cláusula ORDER BY, la consulta devolverá un conjunto arbitrario de


5 registros de la tabla empleados Se puede utilizar la palabra reservada PERCENT para
devolver un cierto porcentaje de registros que caen al principio o al final de un rango
especificado por la cláusula ORDER BY.

SELECT TOP 5 PERCENT IdProveedor,Nombre


FROM PROVEEDOR
ORDER BY Departamento

DISTINCT:
Omite los registros que contiene datos duplicados en los campos seleccionados. Para
que los valores de cada campo listado en la instrucción SELECT se incluyan en la
consulta deben ser únicos.

Ejemplo12: el siguiente ejemplo retorna la columna departamento de la tabla


proveedores.

SELECT DISTINCT departamento


FROM PROVEEDOR
GO

Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos
indicados en la cláusula SELECT posean un contenido diferente.

Trabajo para casa:


1. De la bd de datos desarrollada del lab anterior , defina 10 consultas y
mostrar los resultados, utilizando el comando select, where, order by y
los predicatos top, percent y disctint.

LABORATORIO 5

CONSULTAS CONDICIONALES

TEMA:
Las consultas más sencillas para recuperar datos son las que nos ayudarán a entender las
siguientes sesiones. En esta sesión aprenderemos a recuperar algunas filas y a recuperar
algunas columnas en base a una sola tabla

Modelamiento de datos 15 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

OBJETIVOS ESPECIFICOS:

Recuperar datos de múltiples formas sencillas, haciendo uso de algunas condiciones de


comparación.

CONTENIDO
• AND, <,>, = ,<>, …
• IF EXISTS
• BETWEEN, IN, AND, OR, NOT
• LIKE

CONSULTAS CONDICIONALES :

1.- CRITERIOS DE SELECCION


A lo largo de esta y la próxima sesión estudiaremos las posibilidades de filtrar
los registros con el fin de recuperar solamente aquellos que cumplan unas condiciones
preestablecidas. Antes de comenzar el desarrollo de esta sesión, hay que recalcar 2
detalles de vital importancia el primero de ellos es que cada vez que se desee establecer
una condición referida a un campo de texto la condición de búsqueda debe ir cerrada
entre comillas simples; la segunda hace referencia a las fechas. Las fechas se deben
escribir siempre según el formato de configuración de su sistema.

2.- OPERADORES LOGICOS

OPERADOR USO
AND Es el “y” lógico. Evalúa dos condiciones y devuelve
un valor de verdad sólo si ambas son ciertas
OR Es el “o” lógico. Evalúa dos condiciones y devuelve
un valor de verdad si alguna de las dos es cierta
NOT Negación Lógica. Devuelve el contrario de la
expresión

AND , OR, NOT


Observe que las condiciones de búsqueda con AND, OR y NOT pueden ser ellas
mismas condicionales de búsquedas compuestas.

• La palabra clave OR se utiliza para combinar de dos condiciones de búsqueda,


cuando una a la otra (o ambas) deberán ser ciertas.
• La palabra clave AND la usamos para combinar dos condiciones de búsqueda
que deban ser ciertas simultáneamente.

• La palabra clave NOT nos sirve para seleccionar filas en donde la condición de
búsqueda sea falsa.

Poseen la siguiente sintaxis:

<expresión1> operador <expresion2>


En donde expresión1 y expresión2 son las condiciones a evaluar, el resultado de la
operación varía en función del operador lógico.

Modelamiento de datos 16 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

Dos o más condiciones pueden ser combinadas para formar expresiones más complejas
con distintos criterios. Cunado existen dos o más condiciones deberán estar unidas por
AND o OR.

EJEMPLOS DE OPERADORES LOGICOS:

EJEMPLO 01: El siguiente ejemplo retorna todas las columnas de la tabla de


productos que se encuentran en la base de datos ControlInventario. El ejemplo
sólo retorna las filas de los productos con idproveedor igual a 10 y además tenga
como IDCATEGORIA igual a 5.

SELECT *
FROM PRODUCTO
WHERE IdProveedor=10 AND IdCategoria=5

EJEMPLO 02:Mostrar los datos del proveedor que sea representante igual a
GORDILLO BARRIGA, SANCHO

EJEMPLO 03:Mostrar los datos de ORDEN_DETALLE cuyo Idorden sea igual a


5 y idproducto sea diferente de 2

EJEMPLO 04:Mostrar el nombre, apellidos y fecha de nacimiento de la tabla


Empleado, si la fecha de nacimiento es igual 1985

EJEMPLO 05: Mostrar las columnas nombre, apellidos y el año de la tabla


Empleado, si la fecha de nacimiento es igual 1980 o nombre del empleado es igual a
Juana.

EJEMPLO 06: Mostrar el nombre, apellidos, fecha de nacimiento y edades de la


tabla Empleados si la edad comprende entre 25-50 años

3.- OPERADORES NUMERICOS

Para realizar operaciones numéricas se puede utilizar los operadores:

OPERADOR SIGNIFICADO
+ Suma
- Resta
* Multiplicación
/ División
** ó ^ Exponenciación

3.1 Ejemplos de operadores Numéricos

Modelamiento de datos 17 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

EJEMPLO 07:Mostrar los datos de un producto, (sólo campos importantes y con


nombres adecuados), además el IGV a un 18% y el Importe de cada
producto(precio total).

4. OPERADORES DE CARACTERES:

Las expresiones de caracteres pueden incluir los siguientes operadores:


OPERADOR SIGNIFICADO
+ Concatenación manteniendo espacios en blanco

4.1 Ejemplos de operadores de Caracteres

EJEMPLO 08: Mostrar el nombre y apellido del empleado en una solo columna,
fecha de nacimiento.
select IdEmpleado as codigo, Nombres + ApePat + ApeMat as
'Nombres y Apellidos', FechaNacimiento
from empleado

EJEMPLO 09: Mostrar la Ciudad y Departamento en una solo columna, cuyo


nombre de la nueva columna es Ubicación, de la tabla PROVEEDOR.

5. OPERADORES DE COMPARACION
Los operadores de comparación comprueban si dos expresiones son o no las mismas. Se
pueden utilizar en todas la expresiones excepto en las de los tipos text, ntext o image.

OPERADOR USO
< Menor que
> Mayor que
<> Distinto de
<= Menor ó igual que
>= Mayor ó igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores
LIKE Utilizado en la comparación de un modelo
IN Utilizado para especificar registros de una base de datos

5.1 EJEMPLOS DE OPERADORES DE COMPARACIÓN


5.1.1 : COMPARANDO NÚMEROS

Modelamiento de datos 18 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

EJEMPLO 10: Mostrar todos los datos de los Empleados que tengan
menos de 50 años de edad.

5.1.2 COMPARANDO FECHAS:

EJEMPLO 11: Mostrar todos los datos de los empleados que hayan
nacido antes del mes de junio.

6. BETWEEN

Para indicar que deseamos recuperar los registros según el intervalo de valores de un
campo emplearemos el operador Between cuya sintaxis es:

CAMPO [NOT] BETWEEN VALOR1 AND VALOR2


(LA CONDICION NOT ES OPCIONAL)

En este caso la consulta devolvería los registros que contengan en “campo” un valor
incluido en el intervalo Valor1, Valor2 (ambos imclusive). Si anteponemos la condición
NOT devolverá aquellos valores no incluidos en el intervalo.

EJEMPLO 12:El siguiente ejemplo retorna todas las columnas de la tabla


productos. El ejemplo solo retorna las filas de los productos que tengan un precio
comprendido entre 12 y 20 soles

SELECT *
FROM PRODUCTo
WHERE PrecioProveedor >=12 AND PrecioProveedor<=20

EJEMPLO 13: El siguiente ejemplo es similar al anterior. Se utiliza BETWEEN


que especifica el intervalo inclusivo que se va a probar.

SELECT IdProducto as Codigo,Nombre as


'Descripcion',PrecioProveedor as 'Precio Unitario'
FROM PRODUCTo
WHERE PrecioProveedor BETWEEN 12 AND 20

EJEMPLO 14:El siguiente ejemplo retorna las columnas de la tabla producto. El


ejemplo solo retorna las filas de los productos de los precios que no estén
comprendidos entre 10 y 50 soles

7. IN
Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de
una lista. Su sintaxis es:

EXPRESIÓN [NOT] IN (VALOR1, VALOR2,…)

Modelamiento de datos 19 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

Ejemplo15: El siguiente ejemplo retorna todas las columnas de la tabla productos.


EL ejemplo solo retorna las filas de los productos que pertenezcan a las categorías
1,3 o 5

SELECT *
FROM PRODUCTO
WHERE IdCategoria =1 OR IdCategoria =3 OR IdCategoria =5

EJEMPLO16:El siguiente ejemplo es similar al ejemplo 15 se utiliza IN que


determina si un valor dado coincide con algún valor de una subconsulta o lista.

SELECT *
FROM PRODUCTO
WHERE IdCategoria IN(1,3,5)

EJEMPLO 17 : Consultar todos los PROVEEDORES que vivan en las ciudades de


Lima, Trujillo Y Arequipa.

8. LIKE
Se utiliza para comparar una expresión de cadena con un modelo en una expresión SQL.
Su sintaxis:

EXPRESION LIKE MODELO

En donde expresión es una cadena modelo o campo contra el que se compara expresión.
Se puede utilizar el operador LIKE para encontrar valores en los campos que coincidan
con el modelo especificado. Por modelo también se puede especificar un valor
completo, o se pueden utilizar caracteres comodín para encontrar un rango de valores de
la siguiente forma:

EJEMPLO 18 : Consultar todos los Empleados que tengan como apellido Paterno
igual a Cardenas.

SELECT IdEmpleado as codigo, Nombres,ApePat, ApeMat,


FechaNacimiento
FROM empleado
WHERE ApePat like 'Cardenas'

A continuación presentaremos los distintos caracteres comodín para posteriormente


comprobar las expresiones con diferentes modelos.

Carácter Descripción
Comodín
% Cualquier cadena de cero o más caracteres
- Cualquier carácter individual El operador Like
(Subrayado) se puede utilizar
[] Cualquier carácter individual dentro del rango en una expresión
especificado para comparar un
[^] Cualquier carácter individual que no esté dentro valor de un
del rango especificado campo con una
expresión de

Modelamiento de datos 20 Prof. Elvira Fernández


UNSCH EFP. Ingeniería de Sistemas

cadena. Por ejemplo, si introduce Like c% en una consulta SQL, la consulta devuelve
todos los valores de campo que comiencen por la letra C. en una subconsulta con
parámetros, puede hacer que el usuario escriba el modelo que se va utilizar.

EJEMPLO19: Este ejemplo devuelve los nombres cuyo contenido empiece con una
letra de la A a la D seguida de cualquier cadena.

SELECT IdEmpleado as codigo, Nombres,ApePat, ApeMat,


FechaNacimiento
FROM EMPLEADO
WHERE Nombres LIKE '[A-F]%'

Ejemplo 20: El siguiente ejemplo retorna todas las columnas de la tabla productos.
El ejemplo sólo retorna las filas de los Productos que no empiece con F o C como
carácter inicial en el nombre del producto.

Ejemplo 21: el siguiente ejemplo retorna las columnas idProveedor, nombre,


representante, ciudad y departamento de la tabla Proveedores. El ejemplo sólo
retorna las filas de los Proveedores que tengan los caracteres a al final de la
columna ciudad.

Ejemplo 22: el siguiente ejemplo retorna todas las columnas de la tabla Productos.
El ejemplo sólo retorna las filas de los Productos que tengan los caracteres Queso
en la columna nombre del producto

Ejemplo 23: El siguiente ejemplo devuelve los nombres de los empleados que
comienzan la letra P seguido de cualquier letra entre A y F y de dos caracteres
cualquiera o cuyo nombre a buscar las 3 primeras letras estén dispuestas de la
siguiente manera: que empiece con la letra J, el segundo carácter cualesquiera y la
tercera letra sea una a:

Modelamiento de datos 21 Prof. Elvira Fernández

Das könnte Ihnen auch gefallen