Vous êtes sur la page 1sur 46

Instituto Tecnológico de Nuevo

Laredo
“Con La Ciencia Por La
Humanidad”
Ingeniería En Sistemas Computacionales
Taller de base de datos
Practica # 2
Docente: Ing. Humberto Peña Valle
Alumnos:
Manuel Infiesta de León #Ctrl: 07100278
Jesús Valadéz Moreno #Ctrl: 07100378
Juan Uriel Vera Ortega #Ctrl: 07100384
Índice 2
Recopilación unidad 3………………………………………………………………………………………………4
DML……………………………………………………………………………………………………………….4
SQL………………………………………………………………………………………………………………..4

Orígenes y evolución…………………………………………………………………………………….5
Características generales……………………………………………………………………………..5

Modos de uso…………………………………………………………………………………………………5
Optimización………………………………………………………………………………………………..6

Unidad 4: Vistas……………………………………………………………………………………………………….6
Proyección Simple…………………………………………………………………………………………………..7

Conversión de tipo de datos de la proyección……………………………………………………….7

Ordenamiento del conjunto de resultados……………………………………………………………..7

Funciones de cadena……………………………………………………………………………………………….8

Funciones de fecha y hora………………………………………………………………………………………8

Funciones numéricas……………………………………………………………………………………………….8

Decisión de valor proyectado………………………………………………………………………………….8

Funciones de agregación………………………………………………………………………………………..8

Agrupación de subconjuntos…………………………………………………………………………………..9

Unión de consultas………………………………………………………………………………………………….9

Criterio de Búsquedas……………………………………………………………………………………………..9

Having………………………………………………………………………………………………………………………9

Subconsultas……………………………………………………………………………………………………………9

Reunión de tablas………………………………………………………………………………………………….10

Inserción…………………………………………………………………………………………………………………10
Actualización………………………………………………………………………………………………………….10
3
Eliminación…………………………………………………………………………………………………………….10

Ejemplos…………………………………………………………………………………………………………………11

Proyecciones simples (Comodín, campos específicos, Renombrar Columnas,


Proyectar Valores distintos, Proyectar Primeros Registros)…………………………………11

Conversión de tipo de datos de la proyección………………………………………………………16

Ordenamiento del conjunto de resultados……………………………………………………………18

Funciones de cadena………………………………………………………………………………………………21

Funciones de fecha y hora……………………………………………………………………………………23

Funciones numéricas…………………………………………………………………………………………….24

Decisión de valor proyectado…………………………………………………………………………………25

Funciones de agregación……………………………………………………………………………………….27

Agrupación de subconjuntos………………………………………………………………………………….32

Unión de consultas…………………………………………………………………………………………………33

Criterio de Búsquedas(WHERE)[IS, IN BETWEEN,LIKE][AND,OR]…………………….……33

Having……………………………………………………………………………………………………………………36

Subconsultas…………………………………………………………………………………………………………37

Reunión de tablas(Join | Left Join)………………………………….………………………………….38

Inserción…………………………………………………………………………………………………………………40

Actualización………………………………………………………………………………………………………….41

Eliminación…………………………………………………………………………………………………………….42

Creación de 5 vistas(Involucrar 1 sola tabla | reunión de más de una


tabla)……………………….…………………………………………………………………………………………….43

Concluciones………………………………………………………………………………………………………….46
Unidad III: Consultas y lenguaje de manipulación 4

de datos (DML)
En esta unidad aplicamos algunos conceptos, previamente visto en la
materia sucesora (fundamentos de bases de datos), como así conocer unas
funciones propias de Microsoft SQL 2000.

Se dimos inicio a las consultas dentro del manejador, desde las simples,
hasta las complejas, como mostrar todos los datos de las tablas creadas, hasta
ser específicos de que campos quiere visualizar en dicha consulta.

DML
Un Lenguaje de Manipulación de Datos (Data Manipulation Language) es un
lenguaje proporcionado por el DBMS que permite a los usuarios de la misma
llevar a cabo las tareas de consulta o manipulación de los datos organizados por
el modelo de datos adecuado.

El DML más popular hoy en día es SQL, usado para recuperar y manipular
datos en una base de datos relacional y se clasifica en grupos:

• Lenguajes de consulta procedimentales: el usuario da las instrucciones al


sistema para que realice una secuencia de operaciones en la base de datos para
calcular el resultado deseado.

• Lenguajes de consulta no procedimentales: el usuario describe la información


deseada sin dar un procedimiento específico para obtener dicha información.

SQL
El Lenguaje de Consulta Estructurado (Structured Query Language) es un
lenguaje declarativo de acceso a bases de datos relacionales que permite
especificar diversos tipos de operaciones sobre las mismas.
Agrega características del algebra y el cálculo relacional permitiendo
5
lanzar consultas con el fin de recuperar información de interés de una base de
datos, de una forma sencilla.

Orígenes y evolución
Los orígenes del SQL están ligados a los de las bases de datos relacionales.
En 1970 Codd propone el modelo relacional y asociado a este un sublenguaje de
acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas,
los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry
Language) que más tarde sería ampliamente implementado por el DBMS
experimental System R, desarrollado en 1977 también por IBM. Oracle fue quien
lo introdujo por primera vez en 1979 en un programa comercial.

El SEQUEL terminaría siendo el predecesor de SQL, siendo este una


versión evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia
de los diversos DBMS relacionales surgidos en los años siguientes y es por fin
estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de
este lenguaje, el SQL-86 o SQL1.

Características generales
El SQL es un lenguaje de acceso a bases de datos que explota la
flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de
operaciones sobre los mismos. Es un lenguaje declarativo de alto nivel, que
gracias a su fuerte base teórica y su orientación al manejo de conjuntos de
registros, y no a registros individuales, permite una alta productividad en
codificación.

Modos de uso
El SQL permite fundamentalmente dos modos de uso:

• Un uso interactivo, destinado principalmente a los usuarios finales


avanzados u ocasionales, en el que las diversas sentencias SQL se escriben y
ejecutan en línea de comandos, o un entorno semejante.

• Un uso integrado, destinado al uso por parte de los programadores


dentro de programas escritos en cualquier lenguaje de programación anfitrión.
En este caso el SQL asume el papel de sublenguaje de datos.
Optimización 6

El orden de ejecución interno de una sentencia puede afectar gravemente


a la eficiencia del DBMS, por lo que se hace necesario que éste lleve a cabo una
optimización antes de la ejecución de la misma. Muchas veces, el uso de índices
acelera una instrucción de consulta, pero hace lenta la actualización de los
datos, dependiendo del uso de la aplicación, se priorizará el acceso indexado o
una rápida actualización de la información. La optimización difiere
sensiblemente en cada motor de base de datos y depende de muchos factores.

Unidad IV: Vistas


El tema de vistas es algo sencillo, ya que estas podríamos llamarle “tablas
virtuales” ya que podemos unir, comprar, hacer búsquedas dentro de la base de
datos, pero este no altera ninguna de las otras tablas, ya que no se agrega, por
eso se le conoce como Tablas virtuales. Uno de los contras que tiene esta
función, es que no se puede ordenar ni agrupar.
2.1 Proyección simple.
7
(Nota: Todos los ejemplos de encuentran al final de la recopilación)

- Comodín. (Todos los campos): la proyección simple por comodín funciona


para ver todos los campos contenidos en tabla. También aplica con la unión de
tablas, se muestran los que resultaron de dicha unión de las tablitas.

- Campos específicos: Para la proyección de campos específicos, solo es


necesario especificar el campo deseado que se desea proyectar. Si uno no conoce
la base de datos, se recomienda primero proyectar por comodín y después
proyectar los campos que uno desea.

- Renombrar columnas proyectadas: Consta de agregar un alias a la


columna deseada, ya que en algunos ejemplos o nombres de campos, vienen en
ingles, o simplemente se le desea renombrar, dependiendo que consulta hizo, al
gusto como quiera llamar. Se recomienda agregar un nombre a la columna
proyectada, ya que en ocasiones algunas campos pueden tener composición
matemática, y por default el manejador agrega “no_name”, en ese caso se
recomienda aplicar un alias.

- Proyectar Valores Distintos: Distinct se usa cuando en un campo de la tabla


de la nuestra base de datos se encuentra repetido, esto evitara que que los
valores no se repitan en la proyección.

- Proyectar los primeros registros: Cuando se desea conocer los principales


“algo” (como personas que más vendieron, Personas con muchos arrestos, etc) es
útil la función top. Ya que solo mostrara los principales N elementos de esa
proyección.

2.2 Conversión de tipo de datos de la proyección.

- Cast: Se usa para convertir la expresión a proyer en otro tipo de dato.

- Convert: El convert funciona un valor de un tipo en un valor de otro tipo.

2.3 Ordenamiento del conjunto de resultados.

- Ascendente: Ordena los datos de cada campo, de forma ascendente, y se


le puede dar prioridad a un campo por el cual se desea ordenar, y el segundo
campo también, en dado caso que los datos del campo estén repetidos.

- Descendente: Ordena los datos de cada campo, de forma descendente, y


se le puede dar prioridad a un campo por el cual se desea ordenar, y el segundo
campo también, en dado caso que los datos del campo estén repetidos.
2.4 Funciones de cadena: Existen varias funciones de cadena, y obviamente varia
8
su función, algunas trabajan para concatenar cadenas, cambiar sus caracteres de
mayúsculas a minúsculas y viceversa, otra para contar caracteres, entre otras.

2.5 funciones de hecha y hora: Existen distintas funciones para fecha y hora, ya
sea para sacar la hora de sistema, mostrar diferencia de hechas, entre otras.

2.6 Funciones numéricas: Son unas funcioncitas que ayudan a redondear


números, devolver resultados de divisiones o truncar números.

2.7 Decisión del valor proyectado.

- Case Simple: El case simple sirve para comprar

2.8 Funciones de agregación

a) Count: Es el número de filas en una tabla determinada. La sintaxis es,

SELECT COUNT ("nombre_columna")


FROM "nombre_columna"

b) Sum: Devuelve la suma de todos los valores o sólo de los valores DISTINCT de
la expresión. SUM sólo puede utilizarse con columnas numéricas. Los valores Null
se pasan por alto.

Sintaxis
SUM ( [ ALL | DISTINCT ] expression )
c) Avg: Devuelve el promedio de los valores de un grupo. Los valores NULL se
pasan por alto.
Sintaxis
AVG ( [ ALL | DISTINCT ] expression )
d) Max: Devuelve el valor máximo de la expresión.
Sintaxis
MAX ( [ ALL | DISTINCT ] expression )
e) Min: Devuelve el valor mínimo de la expresión
Sintaxis
MIN ( [ ALL | DISTINCT ] expression )
2.9 agrupación de conjuntos
9
2.10 unión de consultas

2.11 Where : es una declaración de SQL que afecta a los renglones que llenan un
cierto criterio.

sintaxis

WHERE col >100

A) Is: Devuelve TRUE si dos objetos comparados son equivalentes, y FALSE en el


resto de casos.

B) In: Determina si un valor dado coincide con algún valor de una subconsulta o
lista.

Sintaxis

test_expression [ NOT ] IN
(
subquery
| expression [ ,...n ]
)
Argumentos
C) between: Especifica el intervalo que se va a probar. Se utiliza para comprar
rangos

Ejemplo:

BETWEEN 4095 AND 12000

D) Like: Determina si una cadena de caracteres dada coincide o no con un


determinado modelo.

2. Operadores lógicos

A) And: combina dos condiciones y devuelve TRUE sólo cuando ambas son ciertas.

B) Or: conecta también dos condiciones, pero devuelve TRUE cuando alguna de
ellas es verdadera.

2.12 Having: Especifica una condición de búsqueda de un grupo o agregado

2.13 subconsultas: Es una consulta SELECT que devuelve un valor único y está
anidada en una instrucción SELECT
2.14 Reunion de tablas
10
A) Join: devuelve cada fila que cumple la combinación de la primera entrada
(superior) con la segunda entrada (inferior).

B) Left Join:

2.15 insert: Agrega una nueva fila a una tabla o vista.

2.16 update: Cambia datos de una tabla.

2.17 delete: Quita filas de una tabla.

Drop: Quita una o más bases de datos de Microsoft SQL Server. Al quitar una
base de datos se eliminan la base de datos y los archivos de disco que utiliza.
2.1) Proyección Simple
11
A) Comodín:

 select *
from employees

 select *
from customers

 select *
from orders
B) Campos Específicos:
12
 select firstname, lastname
from employees

 select employeeid, titleofcourtesy


from employees

 select companyname, city


from customers
C) Renombrar Columnas:
13
 select firstname+' '+lastname as Nombre
from employees

 select firstname as nombre, employeeid as Clave


from employees

 select firstname as nombre, lastname as apellido, employeeid as Clave


from employees
D) Proyectar Valores Dstintos:
14
 select distinct title
from employees

 select distinct titleofcourtesy


from employees

 select distinct employeeid


from employees
E) Proyectar Los Primeros Registros:
15
 select top 3 employeeid, firstname
from employees

 select top 3 employeeid, firstname, titleofcourtesy


from employees

 select top 3 orderid, freight as flete


from orders
2.2) Conversión de Tipos de Datos en la Proyección:
16
A) Cast:

 select cast(employeeid as varchar(2))+' '+firstname


from employees

 select cast(orderid as varchar(5))+' '+shipcity


from orders
 select cast(orderid as varchar(5))+' '+shipcountry
17
from orders

B) Convert:

 select birthdate, cast(birthdate as varchar (30)), convert(varchar(10),


birthdate,103)
from employees
18

 select convert(varchar(10), birthdate,105)


from employees

 select convert(varchar(10), birthdate,109)


from employees

2.3) Ordenamiento del Conjunto de Resultados:

A) Ascendente:

 select employeeid
from employees
order by 1 asc
19

 select firstname as nombre


from employees
order by 1 asc

 select firstname as nombre, title as titulo


from employees
order by 1, 2 asc
B) Descendente:
20
 select employeeid
from employees
order by 1 desc

 select firstname as nombre


from employees
order by 1 desc

 select firstname as nombre, title as titulo


from employees
order by 1, 2 desc
21

2.4) Funciones de Cadena:

 select ascii('a')

 select char(65)

 select charindex('c', firstname)


from employees
 select firstname, reverse(firstname)
22
from employees

 select firstname, upper(firstname) as Mayusculas


from employees

 select firstname, lower(firstname)


from employees
23
2.5) Funciones de Fecha y Hora:

 select firstname as nombre, year(birthdate) as nacimiento


from employees

 select cast(datepart(hour,getdate()) as varchar (2))+':


'+cast(datepart(minute,getdate()) as varchar(2)) as Hora

 select datediff(day,birthdate,getdate())
from employees
24
2.6) Funciones Numericas:

 select power(4,3) as Potencia

 select floor(datediff(day,birthdate,getdate())/365.25)
from employees as Edad

 select sqrt(25)
2.7) Decision del Valor Proyectado:
25

 select employeeid, firstname,titleofcourtesy,


case titleofcourtesy
when 'Ms.' then 'Srita'
when 'mrs.' then 'Sra'
when 'mr.' then 'Sr'
when 'dr.'then 'Dr'
end as Titulo
from employees

 select firstname+' '+lastname as nombre,birthdate,


case
when (day(birthdate)>=21 and month(birthdate)=1) or
(day(birthdate)<=19 and month(birthdate)=2) then 'Acuario'
when (day(birthdate)>=20 and month(birthdate)=2) or
(day(birthdate)<=20 and month(birthdate)=3) then 'Piscis'
when (day(birthdate)>=21 and month(birthdate)=3) or
(day(birthdate)<=20 and month(birthdate)=4) then 'Aries'
when (day(birthdate)>=21 and month(birthdate)=4) or
(day(birthdate)<=21 and month(birthdate)=5) then 'Tauro'
when (day(birthdate)>=22 and month(birthdate)=5) or
(day(birthdate)<=21 and month(birthdate)=6) then 'Geminis'
when (day(birthdate)>=22 and month(birthdate)=6) or
(day(birthdate)<=22 and month(birthdate)=7) then 'Cancer'
when (day(birthdate)>=23 and month(birthdate)=7) or
(day(birthdate)<=23 and month(birthdate)=8) then 'Leo'
when (day(birthdate)>=24 and month(birthdate)=8) or
26
(day(birthdate)<=23 and month(birthdate)=9) then 'Virgo'
when (day(birthdate)>=24 and month(birthdate)=9) or
(day(birthdate)<=23 and month(birthdate)=10) then 'Libra'
when (day(birthdate)>=24 and month(birthdate)=10) or
(day(birthdate)<=22 and month(birthdate)=11) then 'Escorpio'
when (day(birthdate)>=23 and month(birthdate)=11) or
(day(birthdate)<=22 and month(birthdate)=12) then 'Sagitario'
when (day(birthdate)>=23 and month(birthdate)=12) or
(day(birthdate)<=20 and month(birthdate)=1) then 'Capricornio'
end as Signo
from employees

 select productid, productname, unitprice,


case discontinued
when 1 then 'Si'
else 'No'
end as Descontinuado
from products
27

2.8) Funciones de Agregación:

A) Count:

 select count(*) as ‘Total de Empleados’


from employees

 select count(*) as ‘Total de Productos’


from products
 select count(*)
28
from orders

B) SUM:

select orderid, sum(freight) as 'Total'


from orders
group by orderid
 select sum(unitprice) as ‘Total’
29
from products

 select sum(freight) as ‘Total’


from orders

C) AVG

 select avg(unitprice) as Promedio


from products

 select orderid, avg(freight) as Promedio


from orders
group by ordered
 select avg(freight) as Promedio
30
from orders

D) MAX:

 select max(unitprice) as Maximo


from products

 select max(unitsinstock) as Maximo


from products

 select max(freight) as Maximo


from orders
E) MIN:
31

 select min(unitprice)
from products

 select min(unitsinstock)
from products

 select min(freight)
from orders
2.9) Agrupación de Subconjuntos:
32

 select orderid, avg(freight)


from orders
group by ordered

 select title as Titulo,count(*) as Cantidad, max(birthdate) as 'Nacimiento


Maximo'
from employees
group by title
order by 2 desc
 select titleofcourtesy, count(*) as Cantidad
33
from employees
group by titleofcourtesy
order by 2 desc

2.10) Union de Consultas

2.11) Criterio de Busqueda Where:

A) Operadores relacionales:

 select *
from employees
where region is null

 select *
from employees
where titleofcourtesy in ('Mrs.','Mr.')
34
 select *
from employees
where employeeid between 1 and 7

 select *
from employees
where firstname like 'Nanc%'

 select employeeid, firstname


from employees
where employeeid=5

 select employeeid, firstname,birthdate


from employees
where year(birthdate)>=1945
 select employeeid, firstname,birthdate
35
from employees
where left(firstname,1)= 'A'

B) Operadores Logicos

 select employeeid, firstname


from employees
where employeeid=5 or employeeid=7

 select employeeid, firstname,birthdate


from employees
where year(birthdate)>=1945 and year(birthdate)<=1960

 select *
from employees
where titleofcourtesy = 'Mr.' or titleofcourtesy='Mrs.'
36

2.12) Having:

 select year(orderdate) as Anio, count(*) as Ordenes, sum(freight) as Total


from orders
where employeeid in (1,3,5)
group by year(orderdate)
having count(*)>80 and sum(freight)>1000

 select orderid, avg(freight)


from orders
group by orderid
having avg(freight)>1000

 select productid, avg(unitprice)


from products
group by productid
having avg(unitprice)between 25 and 30
2.13) Subconsultas:
37

 select firstname, employeeid


from employees
where employeeid in(select employeeid
from employees
where employeeid >= 5)

 select firstname, employeeid


from employees
where titleofcourtesy in(select titleofcourtesy
from employees
where titleofcourtesy = 'Mr.')

 select firstname, employeeid, city


from employees
where city in(select city
from employees
where city = 'London')
38

2.14) Reunion de Tablas:

A) JOIN:

select a.firstname, b.freight


from employees a join orders b on(a.employeeid = b.employeeid)
select a.firstname, sum(freight)
39
from employees a join orders b on(a.employeeid = b.employeeid)
group by a.firstname

select a.firstname, avg(freight)


from employees a join orders b on(a.employeeid = b.employeeid)
group by a.firstname
B) LEFT JOIN:
40

select jef.firstname as Jefe, emp.firstname as Empleado


from employees emp left join employees jef on (emp.reportsto = jef.employeeid)

2.15) Inserción:

create table sucursales


(
clave smallint not null identity(1,1),
nombre varchar(50) not null,
domicilio varchar(50),
telefono varchar(15)
)
 insert into sucursales (nombre,telefono)
values ('Laredo Center', '710-000')
 insert into sucursales (nombre,direccion)
41
values ('Laredo Center', 'Zaragoza 5907')

 insert into sucursales (nombre)


values ('Juan')

2.16) Actualizacion:

 update sucursales
set domicilio='Sin Domicilio'
where domicilio is null

 update sucursales
set nombre='Default'
where nombre = ‘Juan’
 update sucursales
42
set nombre= telefono, telefono=nombre
where clave in (2,3)

2.17) Eliminacion:

 delete from sucursales


where clave=1

 delete from sucursales


where clave=3

 delete from sucursales


where nombre = 'default'
2.18) Crear 5 vistas:
43

a) 2 que involucren una sola tabla

 create view vregion as


select regionid, regiondescription as description
from region

 create view vtitulo as

select *
from employees
where titleofcourtesy in ('Mrs.','Mr.')

select *
from vtitulo
where titleofcourtesy = 'Mr.'
B) 3 que impliquen reunion de mas de una tabla
44

 create view vfletes as


select a.firstname, b.freight
from employees a join orders b on(a.employeeid = b.employeeid)
select *
from vfletes

 create view vemp as


select jef.firstname as Jefe, emp.firstname as Empleado
from employees emp left join employees jef on (emp.reportsto =
jef.employeeid)
 create view vordenes as
45
select a.employeeid, b.orderid
from employees a join orders b on(a.employeeid = b.employeeid)

select *
from vordenes
CONCLUCIONES 46

Con el paso de las los temas y de las una de las mejores funciones de SQL,
como lo son las consultas, hemos adquirido un conocimiento más amplio, es el
talón de Aquiles, y pudimos comparar la manera de hacer consultar, existen
infinidad de hacerlas, variando la lógica de cada persona, y como debe de ser,
siempre encontrar la manera optima de dichas consultas.

Vous aimerez peut-être aussi