Sei sulla pagina 1di 40

Facultad de Contaduría, Administración e Informática.

Bases de Datos I

BASE DE DATOS 1.
UNIDAD 1. INTRODUCCIÓN AL DISEÑO DE BASE DA DATOS.

Diseño de Bases de Datos (DBD): Tiene como objetivo de cuidar la seguridad de la información almacenada en la
Base de Datos, tanto contra caídas del Sistema como contra los intentos de accesos no autorizados, evitar obtener
resultados anómalas en las búsquedas de información.

Sistema de manejo de Base de Datos(DBMS= Data Management System): Consiste en un conjunto de datos,
relacionados entre si y un grupo de programas para tener acceso a los datos.

1.1REDUNDANCIA DE LA INFORMACIÓN:

Datos repetidos en varios archivos. Aumento de costos de almacenamiento y acceso a la Información.


DBD: Evitar la redundancia de la información.

1.2 INCONSISTENCIA DE LA INFORMACIÓN:

Distintas copias de la misma información no concuerdan entre si.

1.3 ACCESO FACIL DE LA INFORMACIÓN:

Búsqueda de datos fuera de lo común, que no estaba prevista cuando se diseño el sistema original. Por ejemplo
buscar todos los clientes que viven en México. Entonces se necesita desarrollar un sistema de recuperación de
información de aplicación general o hacerlo manualmente.

El objetivo del DBD es hacer consultas más inteligentes, por ejemplo: Con SQL

1.4 AISLAMIENTO DE DATOS:

Buscar datos en varios archivos aislados y en diferentes formatos para obtener información necesaria en una
aplicación determinada.

1.5 USUARIOS MÚLTIPLES:

Permitir que varios usuarios actualicen información simultanea para mejorar el funcionamiento general del sistema y
tener un tiempo de respuesta más corto.

El objetivo del DBD es logra que los datos se actualicen concurrentemente.

Por ejemplo: El control de ventana de productos en una tienda de Autoservicio.

1.6SEGURIDAD DE LA INFORMACIÓN:

Restringir a los usuarios del Sistema que puedan tener acceso a la información, únicamente aquellos usuarios con
autorización.

1.7INTEGRIDAD DE LA INFORMACIÓN:

El sistema debe de obligar el cumplimiento de valores de los datos que se almacenan en la Base de Datos y deben
de satisfacer ciertos tipos de limites de consistencia. Por ejemplo: El saldo de una cuenta Bancaria de un cliente no
debe ser menor a un limite fijado: $100.pesos M.N.

Ana Linda Pineda Mendez -- Enero-Junio 2016. 1


Facultad de Contaduría, Administración e Informática. Bases de Datos I

UNIDAD 2. SQL
2.1 Introducción a SQL Server.

SQL Server es un Manejador de Base de Datos Relacionales (RDBMS), bajo la arquitectura Cliente/Servidor. SQL
Server utiliza la arquitectura Cliente/Servidor para dividir la carga de trabajo entre dos tareas que corren unas en el
servidor y otras en el cliente:
 El cliente es el responsable de la lógica del modelo de negocios y de la presentación de los datos a los
usuarios. El cliente típicamente corre en una o más computadoras clientes.
 SQL Server administra la base de datos y permite la disponibilidad de los nuevos recursos del servidor, tales
como memoria, recursos de red, operaciones en disco; para responder a múltiples peticiones.

2.2 Tipos de datos:


Tipo de Dato Descripción Tipo de dato Descripción
VARCHAR (size) Carácter de longitud variable DATETIME Valores tipo fecha y hora
NUMERIC (p,s) Datos numéricos TEXT Dato tipo carácter longitud variable hasta 2 Gb

2.3 Creación de Base de Datos.

CREATE DATABASE NombredelaBasedeDatos;


Ejemplo 1 Ejemplo 2
CREATE DATABASE Inventarios; CREATE DATABASE Alumnos;

2.4 Creación de Tablas.


CREATE TABLE NombredelaTabla
( Columna1 TipodeDato,
Columna2 TipodeDato,
: :
. .
ColumnaN TipodeDatoN
);
Ejemplo1 Ejemplo 2
CREATE TABLE Inventarios CREATE TABLE Alumnos
( articulo VARCHAR(35), ( NOMBRE VARCHAR(40),
marca VARCHAR(10), CARRERA VARCHAR(30),
peso NUMERIC(4), SEMESTRE NUMERIC(2),
cantidad NUMERIC(7), );
precio NUMERIC(7,2),
);

2.5 Insertar Datos.

INSERT INTO NombredelaTabla ( Columna1,Columna2…ColumnaN )


VALUES (Valor1, Valor2,……ValorN);

Ejemplo1. Insertar valores en la tabla Inventarios Ejemplo2. Insertar valores en la tabla Inventarios

INSERT INTO INSERT INTO


Inventarios(articulo,marca,peso,cantidad,precio) Inventarios(articulo,marca,peso,cantidad,precio)
VALUES (’Arroz’,’Morelos’,950,150,30); VALUES (’Agua’,’Ciel’,19,80,22.50);

Consulta de la Tabla Inventarios Consulta de la Tabla Inventarios

SELECT * SELECT *
FROM Inventarios; FROM Inventarios;

articulo marca peso cantidad precio articulo marca peso cantidad precio
Arroz Morelos 950 150 30.00 Arroz Morelos 950 150 30.00
Agua Ciel 19 80 22.50

Ana Linda Pineda Mendez -- Enero-Junio 2016. 2


Facultad de Contaduría, Administración e Informática. Bases de Datos I

2.6 Creación de Base de Datos NOM, la Tabla dept y la tabla emp

Realizar los siguientes pasos:

1o. Crear la Base de Datos NOM.

CREATE DATABASE NOM;

2º. Crear la tabla dept

CREATE TABLE dept


(deptno NUMERIC(2) NOT NULL,
dname VARCHAR(14),
loc VARCHAR(13),
);

3º. Insertar los valores de la tabla dept, considerando los siguientes datos:

Tabla dept

DEPTNO DNAME LOC


10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

INSERT INTO dept( deptno, dname,loc)


VALUES (20,’RESEARCH’,’DALLAS’);

Repetir 3 veces estas dos instrucciones con los valores de la Tabla dept, no importa el orden que se inserten
los datos y no importa si están en mayúsculas o minúsculas.

4º. Consultar la Tabla dept

SELECT *
FROM dept;

En la pantalla se imprime los 4 renglones con las columnas de la Tabla:

Tabla dept

DEPTNO DNAME LOC


10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

5º. Crear la Tabla emp

CREATE TABLE emp


(empno NUMERIC(4) NOT NULL,
ename VARCHAR(10),
job VARCHAR(9),
mgr NUMERIC(4),
hiredate DATETIME,
sal NUMERIC(7,2),
comm NUMERIC(7,2),
deptno NUMERIC(2) NOT NULL
);

Ana Linda Pineda Mendez -- Enero-Junio 2016. 3


Facultad de Contaduría, Administración e Informática. Bases de Datos I

6o. Insertar los valores de la tabla emp, considerando los siguientes datos:

Tabla emp

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


7839 KING PRESIDENT 17-NOV-81 5000 10
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7566 JONES MANAGER 7839 02-ABR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7900 JAMES CLERK 7698 03-DIC-81 950 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7902 FORD ANALYST 7566 03-DIC-81 3000 20
7369 SMITH CLERK 7902 17-DIC-80 800 20
7788 SCOTT ANALYST 7566 09-DIC-82 3000 20
7876 ADAMS CLERK 7788 12-ENE-83 1100 20
7934 MILLER CLERK 7782 23-ENE-82 1300 10

INSERT INTO emp(empno ,ename, job ,mgr, hiredate,sal,comm, deptno)


VALUES (7900,’JAMES’,’CLERK’,7698,’03-DIC-81’,950,NULL,30);

Repetir 13 veces estas dos instrucciones con los valores de la Tabla emp, no importa el orden que se inserten
los datos y no importa si están en mayúsculas o minúsculas.

7º. Consultar la Tabla emp

SELECT *
FROM emp;

En la pantalla se imprime los 14 renglones con las columnas de la Tabla:

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO


7839 KING PRESIDENT 17-NOV-81 5000 10
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7566 JONES MANAGER 7839 02-ABR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7900 JAMES CLERK 7698 03-DIC-81 950 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7902 FORD ANALYST 7566 03-DIC-81 3000 20
7369 SMITH CLERK 7902 17-DIC-80 800 20
7788 SCOTT ANALYST 7566 09-DIC-82 3000 20
7876 ADAMS CLERK 7788 12-ENE-83 1100 20
7934 MILLER CLERK 7782 23-ENE-82 1300 10

Ana Linda Pineda Mendez -- Enero-Junio 2016. 4


Facultad de Contaduría, Administración e Informática. Bases de Datos I

2.7 Consultas de las tablas con instrucciones básicas de datos.

2.7.1 Seleccionar Datos (SELECT)

Capacidades de la instrucción SELECT

Selección Proyección

Tabla 1 Tabla 2
Join

Tabla 1 Tabla 2

Capacidades de la instrucción SELECT

Una instrucción SELECT recupera información de la base de datos. Utilizando esta instrucción puede realizar:

 Selección: Puede utilizar esta capacidad de SQL para seleccionar renglones de la tabla que cumplan alguna
condición.
 Proyección: Puede utilizar esta capacidad de SQL para seleccionar columnas de la tabla, puede indicar
tantas columnas tenga la tabla que desee.
 Join. Puede utilizar esta capacidad para “reunir” datos almacenados en diferentes tablas, creando una liga
mediante un atributo que comparten en ambas tablas.

Una instrucción SELECT básica


SELECT [DISTINCT] {*, column [alias],…}.
FROM table;

Sintaxis:

SELECT Se indica una lista de una o más columnas.


DISTINCT Elimina renglones duplicados.
* Muestra todas las columnas.
Column Selecciona la columna indicada.
alias Etiqueta la columna con un nombre diferente del atributo.
FROM Especifica la tabla que contiene las columnas.

Ana Linda Pineda Mendez -- Enero-Junio 2016. 5


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Seleccionando todas las columnas

SELECT *
FROM dept;

deptno dname loc


------------------ ------------------ -----------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

Seleccionando todas las columnas

Puede seleccionar todas las columnas de una tabla, utilice un asterisco (*).
En el ejemplo, la tabla DEPT contiene tres columnas: DEPTNO, DNAME y LOC.

También puede listar todas las columnas de la tabla indicando los nombres de estas en la cláusula SELECT. Por
ejemplo:

SELECT deptno, dname, loc


FROM dept;

Seleccionando Columnas Especificas

Puede seleccionar ciertas columnas de la tabla indicando los nombres de estas en la cláusula SELECT separadas
por comas. El ejemplo muestra todos los números de departamento y localidades de la tabla DEPT.

Especifique las columnas en el orden en el que desea parezcan en la consulta. Por ejemplo, para desplegar la
localización antes del número de departamento:

SELECT loc, deptno


FROM dept;

loc deptno
--------- -----------
NEW YORK 10
DALLAS 20
CHICAGO 30
BOSTON 40

Ana Linda Pineda Mendez -- Enero-Junio 2016. 6


Facultad de Contaduría, Administración e Informática. Bases de Datos I

2.7.2 Expresiones Aritméticas

Cree expresiones con datos tipo NUMERIC Y DATE


utilizando operadores aritméticos.
Operador Descripción+ Add- Substract* Multiply/ Divide

Expresiones Aritméticas

Puede modificar la forma en que es mostrada la información de las columnas, ejecutando cálculos. Esto es posible
utilizando expresiones aritméticas. Una Expresión Aritmética debe contener nombres de columnas, valores numéricos
constantes y operadores aritméticos.

Operadores Aritméticos

Aquí se muestran los operadores aritméticos disponibles en SQL. Puede utilizarlos en cualquier cláusula de SQL
excepto en la cláusula FROM.

Utilizando Operadores Aritméticos


SELECT ename, sal, sal+300
FROM emp;

ename sal
------------ ------------ ------------
KING 5000 5300
BLAKE 2850 3150
CLARK 2450 2750
JONES 2975 3275
MARTIN 1250 1550
ALLEN 1600 1900

(14 row(s) affected)

Ana Linda Pineda Mendez -- Enero-Junio 2016. 7


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Utilizando Operadores Aritméticos

El ejemplo muestra el uso del operador suma para ejecutar un cálculo, aumentando el salario en $300 para todos los
empleados.

Note que la columna del resultado calculado no es una nueva columna en la tabla EMP, es sólo para consultarla.

Precedencia de los Operadores

* / + -

Multiplicación y división tienen la mayor prioridad sobre los


otros operadores.
Los operadores con igual prioridad son evaluados de izquierda a
derecha.
Los parámetros son utilizados para forzar la evaluación de
prioridad y hacer más clara la expresión.

Precedencia de los Operadores

Si una expresión aritmética contiene más de un operador, la multiplicación y división son evaluadas primero. Si los
operadores de una expresión aritmética tienen la misma prioridad la evaluación se efectúa de izquierda a derecha.

Puede utilizar paréntesis para forzar la evaluación de los operadores con menor prioridad.

Precedencia de los Operadores


SELECT ename , sal, 12*sal+100
FROM emp;

ename sal
------------- --------------
KING 5000 60100
BLAKE 2850 34300
CLARK 2450 29500
JONES 2975 35800
MARTIN 1250 15100
ALLEN 1600 19300

(14 row(s) affected)

Ana Linda Pineda Mendez -- Enero-Junio 2016. 8


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Precedencia de los Operadores

El ejemplo muestra el nombre, salario y una compensación anual de todos los empleados. Se calcula esta
compensación como una multiplicación del salario mensual por 12, y agregándole un bono de $100. Note que la
multiplicación se evalúa primero.

Nota: Puede agregar paréntesis en la expresión para mejor claridad, (12*sal)+100, sin afectar el resultado de
consulta.

Utilizando Paréntesis
SELECT ename , sal, 12*(sal+100)
FROM emp;

ename sal
------------- --------------
KING 5000 61200
BLAKE 2850 35400
CLARK 2450 30600
JONES 2975 36900
MARTIN 1250 16200

(14 row(s) affected)

Utilizando Paréntesis

Puede modificar las reglas de evaluación utilizando paréntesis para indicar el orden en que se evaluaran los
operadores.

El ejemplo muestra el nombre, salario y una compensación anual para los empleados. La compensación se calcula
como el salario mensual más un bono mensual, multiplicado por 12. Debido a que los paréntesis tienen mayor
prioridad sobre la multiplicación.

Ana Linda Pineda Mendez -- Enero-Junio 2016. 9


Facultad de Contaduría, Administración e Informática. Bases de Datos I

2.7. 3 Definiendo el Valor Null


Null es un valor que es inaccesible, desconocido o inaplicable.
Un null no es lo mismo que cero o un espacio en blanco.
SELECT ename , job, comm
FROM emp;

ename job comm


------------- ----------- ----------
KING PRESIDENT
BLAKE MANAGER

TURNER SALESMAN 0

(14 row(s) affected)

Definiendo el Valor Null

El valor nulo es la ausencia de valor en un campo o intersección de renglón columna, un valor nulo no es lo mismo
que cero o espacios en blanco. El cero es un número y los espacios en blanco son caracteres.

Las columnas de cualquier tipo pueden contener valores nulos, a menos que dichas columnas hayan sido definidas
como NOT NULL o llaves primarias (PRIMARY KEY) cuando se crea la columna.

La columna COMM de la tabla EMP, puede notar que solo aquellos que son SALESMAN (vendedores) pueden tener
una comisión. Turner, que es un vendedor no gana comisión alguna, pero esta columna tiene cero y no un valor nulo.

Valores Null en Expresiones Aritméticas

Las Expresiones Aritméticas que contienen un


valor null se evalúan como null.

SELECT ename , 12*sal+comm


FROM emp;

ename
----------- ------------

KING NULL

Ana Linda Pineda Mendez -- Enero-Junio 2016. 10


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Valores Nulos (continuación)

Si el contenido de una columna es nulo dentro de una expresión aritmética, el resultado es NULL. Por ejemplo, si
intenta dividir entre cero, obtendrá un error. Sin embargo si divide un número entre un valor nulo, el resultado es un
nulo.

2.7.4 Definir un ALIAS para las columnas


Renombra el encabezado de las columnas.
Es útil cuando se utilizan cálculos.
Va inmediatamente después del nombre de la columna; la
palabra AS es opcional y se coloca entre el nombre de la columna
y el alias.
Se requieren apóstrofos si el alias contiene espacios en blanco.

Definir un ALIAS para las columnas

Cuando muestra el resultado de una consulta, SQL normalmente utiliza el nombre de la columna desplegada como encabezado.
En muchos casos, este nombre de encabezado pudiera no ser descriptivo o ser difícil de entender.

Puede cambiar el encabezado de una columna utilizando un alias.

Especifique el alias después de la columna en la cláusula SELECT utilizando un espacio como separador. Si el alias contiene
espacios o caracteres especiales (tales como $ o %), o contiene combinación de mayúsculas y minúsculas, debe encerrarlo entre
apóstrofes (‘’) o comillas dobles (“ ”).

Utilizando Alias
SELECT ename , AS name, sal salary
FROM emp;

name salary
------------ -------------

SELECT ename “Name”,


sal*12 “Annual Salary”
FROM emp;

Name Annual Salary


------------ -------------------

Ana Linda Pineda Mendez -- Enero-Junio 2016. 11


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Utilizando Alias

El primer ejemplo muestra el nombre y el salario de todos los empleados. Note que la palabra AS es opcional y debe
ser usada antes del alias de la columna. El encabezado de la columna será el mismo que se especifique en el alias.

El segundo ejemplo muestra el nombre y el salario de todos los empleados, como Annual Salary contiene espacios
debe ir encerrado entre apóstrofos (‘’) o comillas dobles (“ “).

Nota: Utilice AS para darle más claridad a la consulta.

2.7.5 Operador de Concatenación


Concatena columnas o cadenas de caracteres a otra columna.
Se utiliza el operador +
Crea una columna resultante que es una cadena de caracteres.

Operador de Concatenación

Puede encadenar columnas con otras columnas, expresiones aritméticas o valores constantes utilizando el operador
de concatenación (+). Todas las columnas utilizadas con el operador (+) producen un solo resultado en la misma
columna.

Utilizando el Operador de Concatenación


SELECT ename + job AS “Employees”
FROM emp;

Employees
------------------------
KINGPRESIDENT
BLAKEMANAGER
CLARKMANAGER
JONESMANAGER
MARTINSALESMAN
ALLENSALESMAN

(14 row(s) affected)

Ana Linda Pineda Mendez -- Enero-Junio 2016. 12


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Operador de Concatenación (continuación)

En el ejemplo, las columnas ENAME y JOB son concatenadas, y se le asigna el alias Employees.

La palabra AS antes de alias hace que la sentencia SELECT sea más fácil de leer.

Usando Literales
SELECT ename + ‘ ‘ + ‘is a’ + ‘ ‘ + job
AS “Employee Details”
FROM emp;

Employee Details
-----------------------------------------
KING is a PRESIDENT
BLAKE is a MANAGER
CLARK is a MANAGER
JONES is a MANAGER
MARTIN is a SALESMAN

(14 row(s) affected)

Usando Literales

El ejemplo muestra los nombres y puestos de los empleados en forma más legible.

En el siguiente ejemplo, el nombre y el salario de cada empleado son desplegados dando más significado al
resultado.

SELECT ename + ‘ : ‘ + ‘ 1 ‘ + ‘Month salary ‘ Monthly, sal


FROM emp;

Monthly sal
--------------------------- -------------------
KING: 1 Month salary 5000
BLAKE: 1 Month salary 2850
CLARK: 1 Month salary 2450
JONES: 1 Month salary 2975
MARTIN: 1 Month salary 1250
ALLEN: 1 Month salary 1600
TURNER: 1 Month salary 1500

(14 row(s) selected)

Ana Linda Pineda Mendez -- Enero-Junio 2016. 13


Facultad de Contaduría, Administración e Informática. Bases de Datos I

2.7.6 Renglones duplicados


El resultado por default de una consulta, son
todos los renglones incluyendo aquellos que
estén repetidos.
SELECT deptno
FROM emp;

deptno
-------------
10
30
10
20

(14 row(s) affected)

Renglones duplicados

A menos de que indique lo contrario, el resultado de una consulta mostrará todos los renglones aunque se repitan. El
ejemplo anterior muestra el número de departamento de los empleados. Puede notar que existen departamentos
repetidos.

Eliminando renglones duplicados


Elimine los reglones duplicados utilizando la
palabra DISTINCT en la cláusula SELECT.
SELECT DISTINCT deptno
FROM emp;

deptno
-------------
10
20
30

Ana Linda Pineda Mendez -- Enero-Junio 2016. 14


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Eliminando renglones repetidos

Para eliminar renglones duplicados, incluye la palabra DISTINCT en la cláusula SELECT inmediatamente después de
la palabra SELECT. En el ejemplo anterior, la tabla EMP tiene catorce registros pero solo existen tres departamentos
diferentes.

Puede utilizar DISTINCT antes de varias columnas. El calificador DISTINCT afecta a todas las columnas
seleccionadas, y el resultado es una combinación diferente de las columnas.

SELECT DISTINCT deptno, job


FROM emp;

deptno job
------------- -----------------
10 CLERK
10 MANAGER
10 PRESIDENT
20 ANALYST

(9 row(s) affected)

Ana Linda Pineda Mendez -- Enero-Junio 2016. 15


Facultad de Contaduría, Administración e Informática. Bases de Datos I

UNIDAD 3. CONSULTA DE TABLAS CON SQL. CONDICIONANDO Y ORDENANDO DATOS.


3.1 Limitando los Renglones utilizando una Selección

Limitando Renglones
─ Para restringir los renglones utilice la cláusula
WHERE.

SELECT [DISTINCT] { * , column [alias] , . . . }


FROM table
[WHERE condition (s) ];

─ La cláusula WHERE se coloca después de la cláusula


FROM.

Limitando Renglones

Puede restringir los renglones retornados por una consulta utilizando la cláusula WHERE. Una cláusula WHERE
contiene una condición que debe ser cumplida por cada registro en la tabla, y va después de la cláusula FROM.

Sintaxis:

WHERE: Restringe la consulta, y muestra solo aquellos que cumplan la condición.

condition Está compuesta por nombres de columnas, expresiones, constantes y operadores de


comparación.

Utilizando la cláusula WHERE

SELECT ename, job, deptno


FROM emp
WHERE job=’ CLERK’ ;

ename job deptno


-------------- ------------------ ---------------
JAMES CLEARK 30
SMITH CLEARK 20
ADAMS CLEARK 20
MILLER CLEARK 10

Ana Linda Pineda Mendez -- Enero-Junio 2016. 16


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Utilizando la cláusula WHERE

En el ejemplo, la consulta recupera el nombre, el puesto y el número de departamento de aquellos empleados cuyo
puesto sea CLERK.

Note que la palabra CLERK fue especificada en mayúsculas, para que existan renglones que cumplan la condición.

3.2 Cadenas de caractares y fechas


─ Las cadenas de caracteres y fechas se encierran entre
comillas simples
─ Las cadenas de caracteres son sensibles a las mayúsculas

SELECT ename, job, deptno


FROM emp
WHERE ename=’ JAMES’ ;

Cadena de caracteres y fechas

Las cadenas de caracteres y de fechas en la cláusula WHERE deben ir entre comillas simples, las constantes
numéricas no.

Las comparaciones con cadenas son sensibles a las mayúsculas. En el siguiente ejemplo, ningún renglón es
mostrado debido a que los datos en la tabla EMP fueron almacenados en mayúsculas.

SELECT ename, empno, job, deptno


FROM emp
WHERE job=’ clerk’ ;

3.3 Operadores de Comparación


Operador Descripción
= Igual
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
<> Diferente

Ana Linda Pineda Mendez -- Enero-Junio 2016. 17


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Operadores de Comparación

Los operadores de comparación son utilizados para comparar expresiones con otras. Se utilizan en la cláusula
WHERE con el siguiente formato:

Sintaxis

… WHERE expr operator value


Ejemplos

… WHERE hiredate=’ 01 – JAN – 95 ’


… WHERE sal >= 1500
… WHERE ename=’ SMITH ’

Utilizando los Operadores de Comparación


SELECT ename, sal, comm
FROM emp
WHERE sal <= comm;

ename sal comm


-------------- ------------------ ---------------
MARTIN 1250 1400

Utilizando los Operadores de Comparación

En el ejemplo, de instrucción SELECT recupera el nombre y la comisión para aquellos empleados cuyo salario sea
menor o igual que su comisión.

En este ejemplo no se utilizaron valores constantes, por lo que los valores se toman por cada registro que se vaya
procesando.

3.4 Otros Operadores de Comparación


Operador Descripción
BETWEEN Entre dos valores (inclusive)
…AND…
IN(list) Coincida con uno de la lista
LIKE Igual al patrón de caracteres
IS NULL Es un valor null

Ana Linda Pineda Mendez -- Enero-Junio 2016. 18


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Utilizando el Operador BETWEEN


 Utilice el operador BETWEEN para condicionar renglones
basados en rangos de valores

SELECT ename, sal


FROM emp
WHERE sal BETWEEN 1000 AND 1500 ;

ename sal
-------------- ------------------ Límite Límite
MARTIN 1250
TURNER 1500 inferior superior
WARD 1250
ADAMS 1100
MILLER 1300

El Operador BETWEEN

Puede desplegar renglones basados en rangos de valores utilizando el operador BETWEEN. Los rangos que
especifique contienen límites inferior y superior.

El ejemplo anterior obtiene los empleados que ganen entre $1000 y $1500 inclusive.

Utilizando el Operador IN
 Utilice el operador IN para igualar valores dentro de la lista.

SELECT empno, ename, sal, mgr


FROM emp
WHERE mgr IN (7902, 7566, 7788);

empno ename sal mgr


-------------- ----------------- -------------- ----------------
7902 FORD 3000 7566
7369 SMITH 800 7902
7788 SCOTT 3000 7566
7876 ADAMS 1100 7788

Ana Linda Pineda Mendez -- Enero-Junio 2016. 19


Facultad de Contaduría, Administración e Informática. Bases de Datos I

El Operador IN

Para verificar si un valor específico se encuentra en una lista, utilice el operador IN.

El ejemplo anterior muestra el número de empleado, el nombre, el salario y su respetivo manager para aquellos
empleados cuyos “jefes” sean 7902, 7566 o 7788.

El operador IN puede ser utilizado con otros tipos de datos. El siguiente ejemplo retorna los empleados cuyos
nombres estén en la lista.

SELECT empno, ename, mgr, deptno


FROM emp
WHERE ename IN (’ FORD’ , ’ ALLEN’) ;

Utilizando el Operador LIKE

 Utilice el operador LIKE para realizar búsquedas con


caracteres comodines.
 Las condiciones de búsqueda pueden contener tanto
caracteresCondicionando
como números.y
Ordenando
% indica datos
cero o más caracteres
_ indica un carácter

SELECT ename
FROM emp
WHERE ename LIKE ’S% ’ ;

El Operador LIKE

Puede seleccionar renglones que coincidan con un patrón de caracteres utilizando el operador LIKE. Se
pueden utilizar dos caracteres (comodines) para la realización de búsquedas con patrones.

Símbolo Descripción
% Representa una secuencia de cero o mas caracteres
_ Representa un solo carácter

La consulta anterior retorna el nombre del empleado para aquellos cuyo nombre inicie con una “S”. Nombres que
inicien con una “s” no serán mostrados.

Ana Linda Pineda Mendez -- Enero-Junio 2016. 20


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Utilizando el Operador LIKE


 Puede combinar el patrón de caracteres como se
muestra en el ejemplo:

SELECT ename
FROM emp
WHERE ename LIKE ’ _A%’;

ename
--------------
JAMES
WARD

Utilizando el Operador LIKE

Puede utilizar los símbolos comodines % y _ en combinación para hacer más exacta la búsqueda. En el ejemplo se
obtienen aquellos empleados que en el nombre tengan como segunda letra una A.

Utilizando el Operador IS NULL


 Verifique los valores nulos con el operador IS NULL .

SELECT ename, mgr


FROM emp
WHERE mgr IS NULL

ename mgr
----------------- ----------------
KING NULL

Utilizando el Operador IS NULL

El operador IS NULL verificar si existe un valor nulo, entonces devuelve Verdadero. Puede utilizar también el
operador =, que es equivalente a IS NULL o != para IS NOT NULL. El ejemplo obtiene los empleados que no tienen
manager (jefe).

Ana Linda Pineda Mendez -- Enero-Junio 2016. 21


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Por ejemplo, para desplegar el nombre, puesto y comisión para aquellos empleados que no ganan una comisión:

SELECT empno, job, comm


FROM emp
WHERE comm IS NULL ;
ename job comm
-------------- ----------------- --------------
KING PRESIDENT NULL
BLAKE MANAGER NULL
CLARK MANAGER NULL
….

3.5 Operadores Lógicos


Operador Descripción

AND Devuelve TRUE si ambos


componentes son TRUE

OR Devuelve TRUE si al menos uno de


los componentes es TRUE

NOT Devuelve el valor negado según el


valor de la expresión evaluada

Utilizando el Operador AND


AND requiere que ambas condiciones sean TRUE

SELECT empno, ename, job, sal


FROM emp
WHERE sal>=1100
AND job= ’ CLERK’ ;

empno ename job sal


-------------- ----------------- -------------- ----------------
7876 ADAMS CLERK 1100
7934 MILLER CLERK 1300

Utilizando en Operador AND

En el ejemplo ambas condiciones deben ser verdaderas para que un registro sea mostrado. Del tal forma que, si un
empleado tiene el puesto de CLERK y gana más de $1100 será seleccionado.

Ana Linda Pineda Mendez -- Enero-Junio 2016. 22


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Utilizando el Operador OR
OR requiere que al menos una condición sea TRUE.

SELECT empno, ename, job, sal


FROM emp
WHERE sal >= 2000
OR job= ’ CLERK’ ;

empno ename job sal


-------------- ----------------- -------------- --------
7839 KING PRESIDENT 5000
7698 BLAKE MANAGER 2850
7782 CLARK MANAGER 2450
7566 JONES MANAGER 2975
...
(10 row(s) affected)

Utilizando el operador OR

En el ejemplo, ya sea que aquellos empleados que ganen de $2000 en adelante o tenga el puesto CLERK serán
seleccionados.

Utilizando el Operador NOT

SELECT ename, job


FROM emp
WHERE job NOT IN (’ CLERK’ , ’ MANAGER’ , ’ ANALYST’)

ename job
----------------- --------------
KING PRESIDENT
MARTIN SALESMAN
ALLEN SALESMAN
TURNER SALESMAN
WARDSALESMAN

Utilizando el operador NOT

En el ejemplo, se muestra los nombres y puestos de los empleados que no se encuentran en la lista (’ CLERK’ , ’
MANAGER’ , ’ ANALYST’) .

El operador NOT puede ser utilizado con otros operadores de SQL tales como BETWEEN, LIKE y NULL.
Ana Linda Pineda Mendez -- Enero-Junio 2016. 23
Facultad de Contaduría, Administración e Informática. Bases de Datos I

. . . WHERE NOT job IN (’ CLERK’ , ’ ANALYST’)


. . . WHERE sal NOT BETWEEN 1000 AND 1500
. . . WHERE ename NOT ’ %A%’
. . . WHERE comm IS NOT NULL

Reglas de Precedencia
Orden Operador
1 Todos los operadores de
comparación
2 NOT
3 AND
4 OR

 Utilice paréntesis para modificar el orden de evaluación

Reglas de Precedencia
SELECT ename, job, sal
FROM emp
WHERE job = ‘SALESMAN’
OR job = ’PRESIDENT’
AND sal > 1500 ;

ename job sal


----------------- -------------- -------------------
KING PRESIDENT 5000
MARTIN SALESMAN 1250
ALLEN SALESMAN 1600
TURNER SALESMAN 1500
WARDSALESMAN 1250
(10 row(s) affected)

Ejemplo de Precedencia de operadores. En él, existen dos condiciones:

 La primer condición es que el puesto sea PRESIDENT y el salario mayor a $1500


 La segunda condición es que tenga el puesto SALESMAN.

La consulta se puede leer de la siguiente forma:

“Obtener los empleados que sean PRESIDENTES y ganen más de $1500 o aquellos que sean VENDEDORES”.

Ana Linda Pineda Mendez -- Enero-Junio 2016. 24


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Reglas de Precedencia
Usando paréntesis para forzar la prioridad.

SELECT ename, job, sal


FROM emp
WHERE (job = ‘SALESMAN’
OR job = ’PRESIDENT’ )
AND sal > 1500;

ename job sal


----------------- -------------- --------------
KING PRESIDENT 5000
ALLEN SALESMAN 1600

Usando paréntesis

En el ejemplo, existen dos condiciones:

 La primer condición es que el puesto sea PRESIDENT o SALESMAN

 La segunda condición es que el salario sea mayor a $1500

La consulta se puede leer de la siguiente forma:

“Obtener los empleados que sean PRESIDENTES o VENDEDORES y ganen más de $1500”.

Cláusula ORDER BY
 Ordene la salida con la cláusula ORDER BY
 ASC: ordén ascendente, default
 DESC: ordén descendente
 La cláusula ORDEN BY siempre debe ser la última
en una instrucción SELECT.

SELECT ename, job, sal, deptno, hiredate


FROM emp
ORDER BY hiredate ;

ename job deptno hiredate


------------ ------------- ---------------- ------------------------------
SMITH CLERK 20 1980-12-17 00:00:00.000
ALLEN SALESMAN 30 1981-02-20 00:00:00.000
...
(14 row(s) affected)

Ana Linda Pineda Mendez -- Enero-Junio 2016. 25


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Cláusula ORDEN BY

El orden en que se muestra los renglones de una tabla no está definido, de hecho aparecen en el orden en el que los
registros fueron almacenados por primera vez en la tabla.

Puede especificar una expresión o un alias para ordenar.

Sintaxis

SELECT expr
FROM table
[WHERE condition (s)]
[ORDER BY{column, expr} [ASC |DESC]] ;

donde:

ORDER BY Especifica el orden en el que serán mostrados los renglones.


column,exp El o los atributos por los que se va a ordenar.
ASC Ordena en forma ascendente. Este el ordenamiento por default.
DESC Ordena en forma descendente.

Ordenando en forma descendente

SELECT ename, job, sal, deptno, hiredate


FROM emp
ORDER BY hiredate DESC;

ename job deptno hiredate


----------------- -------------- ---------------- ----------------------------------
ADAMS CLERK 20 1983-01-12 00:00:00.000
SCOTT ANALYST 20 1982-12-09 00:00:00.000
...
(14 row(s) affected)

Ordenando datos

El orden por default es ascendente:

 Los valores numéricos son mostrados del menor al mayor


 Las fechas son mostradas con el valor de la fecha más pasada, por ejemplo, 01-ENE-92 es primero que
01-ENE-95.
 Las cadenas de caracteres son desplegadas en orden alfabético.
 Los valores nulos aparecen al principio cuando es ascendente y al final cuando es descendente el
ordenamiento.

Ana Linda Pineda Mendez -- Enero-Junio 2016. 26


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Ordenando con Alias


SELECT empno, ename, sal * 12 ann_sal
FROM emp
ORDER BY ann_sal ;

empno ename ann_sal


-------------- ----------------- --------------
7369 SMITH 9600
7900 JAMES 11400
7876 ADAMS 13200
7654 MARTIN 15000
7521 WARD 15000
7934 MILLER 15600
7844 TURNER 18000
...
(14 row(s) affected)

Ordenando con Alias

Puede utilizar una columna renombrada con un alias en la cláusula ORDER BY. El ejemplo anterior ordena los datos
por el salario anual. Se puede utilizar alias con espacios en blancos y este alias puede aparecer en una cláusula
ORDER BY. Por ejemplo:

SELECT sal 12 AS “ Sal. Annual ”


FROM emp
ORDER BY “ Sal. Annual ” ;

Ordenando con Múltiples Columnas


 Utilice varias columnas para establecer diferentes criterios de
ordenamiento.

SELECT ename, deptno, sal


FROM emp
ORDER BY deptno, sal DESC ;
ename deptno sal
----------------- -------------- ----------------
KING 10 5000
CLARK 10 2450
MILLER 10 1300
FORD 20 3000
...
(14 row(s) affected)
 Puede ordenar por columnas que no aparezcan en la consulta

Ana Linda Pineda Mendez -- Enero-Junio 2016. 27


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Ordenando con Múltiples Columnas

Puede ordenar los resultados de la consulta con una o más columnas, las cuales se toman como criterios de
ordenamiento, el límite es el número de columnas que tenga la tabla.

En una cláusula ORDER BY, especifique las columnas separadas por comas, si desea cambiar el orden por default
utilice DESC después de cada columna que desee cambiar el orden.

En el ejemplo el primer criterio de ordenamiento es por número de departamento (en forma ascendente, default) y
luego por salario en forma descendente.

Nota: Si utiliza más de un criterio de ordenamiento, tome en cuenta que el primer criterio debe contener valores
repetidos para que la consulta tenga sentido. Como en el ejemplo siguiente:

SELECT *
FROM emp
ORDER BY empno, deptno, sal DESC ;

no tiene sentido ya que el primer criterio es un atributo el cual no contiene valores repetidos, para que los demás
criterios puedan afectar el resultado.

UNIDAD. 4 Funciones de Renglón-Simples

Ana Linda Pineda Mendez -- Enero-Junio 2016. 28


Facultad de Contaduría, Administración e Informática. Bases de Datos I

4.1 Funciones de SQL

Las funciones son herramientas muy poderosas de SQL y pueden ser utilizadas de la siguiente forma.

 Ejecutar cálculos sobre los datos


 Modificar datos individuales
Las funciones aceptan argumentos y devuelven un resultado.

Funciones de SQL
Salida
Entrada
Función
argumento 1
Resultado
Función ejecuta
argumento 2 una acción


argumento n

Tipos de funciones de SQL

Funciones

Funciones Funciones
Renglón -simple Renglón- Múltiple

Funciones de SQL:

Existen dos tipos de funciones:

 Funciones de Renglón –simple


 Funciones de Renglón –múltiple

Funciones de Renglón – simple:

Ana Linda Pineda Mendez -- Enero-Junio 2016. 29


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Estas funciones operan con renglones individuales y retornan un resultado por renglón, los tipos de función
son para manipular:

 Caracteres  Números  Fechas

Funciones de Renglón –múltiple: Estas funciones manipulan grupos de renglones para retornar solo un resultado
por cada grupo de registros.

Funciones de Renglón – simple

- Manipulan datos
- Aceptan argumentos y retornan un valor
- Actúan sobre cada renglón
- Retornan un resultado por renglón
- Pueden ser anidadas

function_name (column l expression, [arg1,arg2, …])

Funciones del renglón- simple:

Son utilizadas para manipular datos. Aceptan uno o más argumentos y devuelven un solo valor por cada registro
procesado.

Sintaxis:

function_name Es el nombre de la función


.column Una columna de la base de datos.
expression Es una cadena de caracteres o una expresión.
arg1,arg2 Es cualquier argumento de la función.

Funciones del Renglón- simple

Carácter Numéricas

Funciones
Renglón- simple

Conversión Fecha
Funciones de Renglón-simple (continuación):

En esta lección trataremos las siguientes Funciones de Renglón –simple:

Ana Linda Pineda Mendez -- Enero-Junio 2016. 30


Facultad de Contaduría, Administración e Informática. Bases de Datos I

 Funciones para cadenas: Aceptan parámetros tipo carácter y pueden retornar tanto como caracteres como
números.
 Funciones numéricas: Aceptan parámetros tipo numérico y retornan valores numéricos.
 Funciones para fecha: Operan sobre valores tipo datetime.
 Funciones para conversión: Convierten un valor de un tipo a otro.

Funciones para cadenas

Función de
Cadena

Funciones para Funciones para


conversión manipular cadenas

LOWER LEFT REPLICATE


UPPER LEN RTRIM
LTRIM SUBSTRING
RIGHT

4.1.1 Funciones para cadenas:

Las funciones para cadenas aceptan datos tipo carácter como entrada y pueden retornar tanto un número como un
carácter. Pueden dividirse en:

 Conversión a Mayúsculas / Minúsculas.


 Manipulación de cadenas.

Función Propósito
LOWER (c_expression) Retorna una cadena de caracteres convertida en minúsculas.
UPPER (c_expression) Retorna una cadena de caracteres convertida en mayúsculas.
LEFT (c_expression,n) Retorna los n caracteres más a la izquierda de la cadena.
LEN (c_expression) Retorna el número de caracteres que contiene la cadena.
LTRIM(c_expression) Elimina los caracteres en blanco de la izquierda de c_expression.
RIGHT (c_expression,n) Retorna los n caracteres más a la derecha de la cadena.
RTRIM(c_expression) Elimina los caracteres en blanco de la derecha de c_expression.
SUBSTRING(c_expression,start,n) Retorna los n caracteres de c_expression empezando en start.
REPLICATE (carácter,n) Repite n veces carácter.

Funciones para Conversión

Función Resultado

Lower (´SQL Course ´) sql course


UPPER
Ana Linda Pineda Mendez (´SQL 2016.
-- Enero-Junio Course ´) 31 SQL COURSE
Facultad de Contaduría, Administración e Informática. Bases de Datos I

4.1.2 Funciones para Conversión:

 LOWER: Convierte una cadena en minúsculas.


 UPPER: Convierte una cadena en mayúsculas.

SELECT ´ The job title for ´ + UPPER (ename) + ´ is ´ + LOWER (job) AS “EMPLOYEE DETAILS”
FROM emp;

EMPLOYEE DETAILS
---------------------------------------------------------------------
The job title for SMITH is clerk
The job title for ALLEN is salesman
The job title for WARD is salesman
The job title for JONES is manager
The job title for MARTIN is salesman
…………

4.1.3 Funciones para manipular cadenas

Función Resultado
LEFT (´Good´,2) Go
SUBSTRING (´String´,1,3) Str
LEN (´String´) 6
LTRIM(´ String ´) String
RIGHT (´Good´,2) od
RTRIM (´String ´) String
REPLICATE (´S´, 4) SSSS

4.1.4 Funciones Numéricas

- ROUND: Redondea un valor a las posiciones decimales indicadas.

- Mendez
Ana Linda Pineda POWER: Eleva
-- Enero-Junio una
2016. cantidad
32a la potencia indicada.

- ABS: Retorna el valor absoluto de una expresión


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Utilizando la Función ROUND

SELECT ROUND (45.923,2), ROUND (45.923,0), ROUND (45.923,-1)

------------------------ ------------------- ------------------


45.920 46.000 50.000

Utilizando la función ROUND:

Sintaxis: ROUND (expresión, length[,function])

expression: Es una expresión numérica.

length: Es la precisión a la que la expresión será redondeada.

 Cuando length es positivo, la expresión es redondeada al número de decimales especificados por length.
 Cuando length es negativo, la expresión es redondeada por el lado izquierdo del punto decimal, como indique
length.

function: Es el tipo de operación a ejecutar. Si function es omitida o tenga un valor de 0 (default), la expression es
redondeada. Si se indica otro valor diferente que 0, la expression es truncada.

Utilizando ROUND como una Función TRUNC

SELECT ROUND (45.923,2,1), ROUND (45.923,0,1), ROUND (45.923,-1, 1)

------------------------ ------------------- ------------------


45.92 Utilizando
45 la función POWER
40.000

Obtenga la raíz cuadrada del salario de todos los empleados cuyo puesto sea
“SALESMAN”.

Utilizando ROUND como una función TRUNC:

Utilice la función ROUND para efectuar una función TRUNC, se debe indicar un valor diferente de cero en el
parámetro function de ROUND.

Ana Linda Pineda Mendez -- Enero-Junio 2016. 33


Facultad de Contaduría, Administración e Informática. Bases de Datos I

SELECT ename , sal, comm, POWER (sal, 0.5)


FROM emp
WHERE job = ´SALESMAN´;

ENAME SAL COMM


-------------------- ------------------ ----------------- ----------------
ALLEN 1600.00 300.00 40.00
WARD 1250.00 500.00 35.36
MARTIN 1250.00 1400.00 35.36
TURNER 1500.00 .00 38.73

Utilizando la Función POWER:

La función POWER eleva la expresión a la potencia indicada.

En el ejemplo, se obtiene la raíz cuadrada que es equivalente a elevar una cantidad a la potencia 0.5.

Utilizando la función ABS

Obtenga cuantas unidades hay entre el salario y la comisión para los empleados cuyo
puesto sea “SALESMAN”.

SELECT ename, sal, comm, ABS (sal - comm)


FROM emp
WHERE job = ´SALESMAN´;

ENAME SAL COMM


-------------------- ------------------ ------------------ ------------------
ALLEN 1600.00 300.00 1300.00
WARD 1250.00 500.00 750.00
MARTIN 1250.00 1400.00 150.00
TURNER 1500.00 .00 1500.00

Utilizando la función ABS:

Retorna el valor absoluto de una expresión.

En el ejemplo, se obtiene la distancia en unidades de salario que existen entre la comisión y el salario.

4.1.5 Trabajando con Fechas

- SQLServer. Almacena las fechas en un formato numérico internamente que representa: Año,
Mes, Día, Hora, Minutos, Segundos y milésimas de segundo.
Ana Linda Pineda Mendez -- Enero-Junio 2016. 34
- GETDATE (). Es una función que obtiene la fecha actual del sistema.
Facultad de Contaduría, Administración e Informática. Bases de Datos I

Trabajando con fechas.

Las operaciones típicas con valores de tipo datetime son “obtener la fecha y hora actuales”,”
aritmética de fechas- ¿Qué fecha será dentro de 50 días?” o ”dime qué día de la semana es una
fecha dada”.

Funciones para fechas

FUNCIÓN DESCRIPCIÓN
DATEADD Agrega intervalo a la fecha indicada.
DATEIFF Devuelve el número de unidades entre dos fechas
DATENAME Devuelve una cadena que representa la fecha
DATEPART Devuelve un entero representado una parte de la fecha.
GETDATE Obtiene la fecha actual del sistema.

Función DATEADD

DATEADD (datepart, number, date)

 Retorna una nueva fecha después de agregarle number expresado como datepart a date

SELECT ename, hiredate, DATEADD (mm, 5, hiredate)


FROM emp
WHERE depno = 10;

ename hiredate
---------- ----------------------------------- -------------------------------------
CLAKR 1981-06-09 00:00:00:00 1981-11-09 00:00:00:00
KING 1981-11-17 00:00:00:00 1981-04-17 00:00:00:00
MILLER 1982-01-23 00:00:00:00 1981-06-23 00:00:00:00

Funciones para fechas:

DATEADD (datepart, number, date)

Ana Linda Pineda Mendez -- Enero-Junio 2016. 35


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Retorna una nueva fecha después de agregarle number expresado como datepart a date

datepart: indica cómo se va a tratar el incremento, como se muestra en la siguiente tabla:


datepart Abreviacion

year yy
quarter qq
month mm
day of year dy
day of week dw
day dd
week wk
hour hh
minute mi
second ssm
millisecond ms

Función DATEDIFF

DATEDIFF (datepart, startdate, enddate)

 Retorna el número de unidades expresadas como datepart entre dos fechas.

SELECT ename, hiredate, DATEDIFF (yy, hiredate, GETDATE ()) years


FROM emp
WHERE deptno = 20;

ename hiredate years


---------- ------------------- ------------------- ----------------------------
SMITH 1980-12-17 00:00:00:000 33
JONES 1981-04-02 00:00:00:000 33
SCOTT 1982-12-09 00:00:00:000 31
ADAMS 1983-01-12 00:00:00:000 31
FORD 1981-12-03 00:00:00:000 32

Función DATENAME
Funciones para Fechas
DATENAME (datepart, date)
DATEDIFF(datepart, atartdate , enddate)
 Devuelve una cadena que representa la fecha especificada como datepart.
Retorna el número de unidades expresadas como datepart entre dos fechas.

En el ejemplo se obtiene los años transcurridos de fecha de ingreso del empleado hasta el día ( 2014-09-18
18:20:34:130) de hoy para los empleados del departamento 20.

Calculo No. Años- years del trabajador SMITH

Fecha actual (GETDATE())=2014-09-18 – Fecha de ingreso del trabajador=1980-12-17= 33 años

Ana Linda Pineda Mendez -- Enero-Junio 2016. 36


SQL Server
Facultad de Contaduría, Administración e Informática. Bases de Datos I

SELECT ename, hiredate, DATENAME (dw, hiredate,) ´Day of week´


FROM emp;

ename hiredate Day of week


---------- ----------------------------------- -------------------------------------
SMITH 1980-12-17 00:00:00:000 Wednesday
ALLEN 1981-02-20 00:00:00:000 Friday
WARD 1981-02-22 00:00:00:000 Sunday
JONES 1981-04-02 00:00:00:000 Thursday

Funciones para fechas

DATENAME (datepart, date)

Devuelve una cadena que representa la fecha especificada como datepart.

En el ejemplo se obtiene el nombre del día de la fecha de ingreso de todos los empleados.

Función DATEPART

DATEPART (datepart, date)

 Devuelve un entero representado una parte de la fecha expresada como datepart.

SELECT ename, DATEPART (yy, hiredate) Year, (mm, hiredate) Month, DATEPART (dd, hiredate) Day
FROM emp;

ename Year Month Day


---------- ------------ -------------- --------------
SMITH 1980 12 17
ALLEN 1981 2 20
WARD 1981 2 22

Funciones para las fechas

DATEPART (datepart, date)

Ana Linda Pineda Mendez -- Enero-Junio 2016. 37


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Devuelve un entero representado una parte de la fecha expresada como datepart.

En el ejemplo se obtiene el nombre y la fecha de ingreso de todos los empleados desglosado por año, mes y día.

Existen funciones específicas para obtener en forma particular el año, mes y día.

YEAR (date)
MONTH (date)
DAY (date)

SELECT ename, YEAR (hiredate) Year, MONTH (hiredate) Month, DAY (hiredate) Day
FROM emp;

4.1.6 Funciones de Conversión

Existen dos tipos de conversión entre tipos de datos:

 Conversiones de tipo Implícitas.


 Conversiones de tipo Explicitas.

Conversiones de tipo Implícitas: Son aquellas que ocurren sin tener que realizar las
conversiones de tipo.

Conversiones de tipo Explicitas: Son aquellas que necesitan una conversión de tipo para poder operar.

Funciones Conversión CAST

CAST (expression AS data_type)

 Convierte una expression al tipo indicado por data_type.


SELECT ename, CAST (hiredate AS char) “Hire Date”
FROM emp;

ename Hire Date


---------- -------------------------------------------------
SMITH Dec 17 1980 12:00 AM
ALLEN Feb 20 1981 12:00 AM
WARD Feb 22 1981 12:00 AM
……..

Funciones de Conversión CAST

CAST (expression AS data_type)

Convierte expression al tipo indicado por data_type.

En el ejemplo, se muestran todos los empleados con su fecha de ingreso expresada como una cadena de caracteres.

Ana Linda Pineda Mendez -- Enero-Junio 2016. 38


Facultad de Contaduría, Administración e Informática. Bases de Datos I

Funciones Conversión CONVERT

CONVERT (data_type[ (length)],expression [, style])

Convierte expression al tipo indicado por data_type con la longitud dada por length
utilizando el estilo style.

SELECT ename, CONVERT (char (10), hiredate, 103) “Hire Date”


FROM emp;

ename Hire Date


---------- ------------------
SMITH 17/12/1980
ALLEN 20/02/1981
WARD 22/02/1981
………

Funciones Conversión CONVERT

CONVERT (data_type[(length)],expression [, style])

Convierte expression al tipo indicado por data_type con la longitud dada por el length utilizando el estilo style.

CAST (expression AS data_type)

La función CONVERT es un sinónimo de la función CAST.

En el ejemplo, se muestra todos los empleados con su fecha de ingreso expresada como una cadena de caracteres
con el formato británico dd/mm/yyyy.

0 o 100 (*) predeterminado mon dd yyyy hh: miAM (o PM)


101 EE.UU. mm/dd/yy
102 ANSI yy.mm.dd
103 Británico/Francés dd/mm/yy
104 Aleman dd.mm.yy
105 Italiano dd-mm-yy
106 --------- dd mon yy
107 --------- mon,dd,yy

4.1.7 Función ISNULL

Convierte un valor nulo a un valor indicado

 Tipos de datos comunes que se utilizan para evitar un NULL son date, character y numeric.

Ejemplos:
Ana Linda Pineda Mendez -- Enero-Junio 2016. 39
 ISNULL (comm,0)
 ISNULL (hiredate, GETDATE ())
 ISNULL (job,´No Job Yet´)
Facultad de Contaduría, Administración e Informática. Bases de Datos I

Función ISNULL.

Convierte un valor nulo a un valor indicado.

Sintaxis.

ISNULL (expr1, expr2)

Donde:

expr1: Es el valor o expresión que contiene valores nulos.

expr2: Es el valor por el que se reemplazará NULL.

Utilizando la función ISNULL

SELECT ename, sal, comm , (sal * 12) + ISNULL (comm,0)

FROM emp;

ENAME SAL COMM


---------- ----------------------------------- -------------------------------------
SMITH 800.00 9600.00
ALLEN 1600.00 300.00 19500.00
WARD 1250.00 500.00 15500.00
JONES 2975.00 35700.00
MARTIN 1250.00 1400.00 16400.00

14 rows selected.

Ana Linda Pineda Mendez -- Enero-Junio 2016. 40

Potrebbero piacerti anche