---------------------
TIENDA DE INFORMATICA
---------------------
TABLA FABRICANTES
-----------------
PK CODIGO INT IDENTITY
NOMBRE NVARCHAR(100)
TABLA ARTICULOS
---------------
PK CODIGO INT IDENTITY
NOMBRE NVARCHAR(100)
PRECIO FLOAT
FK1 FABRICANTE INT
1. OBTENER EL PRECIO MEDIO DE LOS PRODUCTOS DE CADA FABRICANTE, MOSTRANDO SOLAMENTE EL NOMBRE DEL FABRICANTE
2. OBTENER LOS NOMBRE DE LOS FABRICANTES QUE OFREZCAN PRODUCTOS CUYO PRECIO MEDIO SEA MAYOR O IGUAL A 150
3. OBTENER UNA LISTA CON EL NOMBRE Y EL PRECIO DE LOS ARTICULOS MAS CAROS DE CADA PROVEEDOR (INCLUYENDO EL NOMBRE DEL PROVEEDOR)
4. ANADIR UN NUEVO PRODUCTO:
5. CAMBIAR EL NOMBRE DEL PRODUCTO 8 A 'IMPRESORA LASER'
6. APLICAR UN DESCUENTO DEL 10% (MULTIPLICAR EL PRECIO POR 0.9) A TODOS LOS PRODUCTOS
7. APLICAR UN DESCUENTO DE UN 10% A TODOS LOS PRODCUTOS CUYO PRECIO SEA MAYOR O IGUAL A 120
8. OBTENER LOS NOMBRES DE LOS PRODUCTOS DE LA TIENDA
9. OBTENER LOS NOMBRES Y LOS PRECIOS DE LOS PRODUCTOS
10. OBTENER EL NOMBRE DE LOS PRODUCTOS CUYO PRECIO SEA MENOR O IGUAL A 200
11. OBTENER TODOS LOS DATOS DE LOS ARTICULOS CUYO PRECIO ESTE ENTRE 60 Y LOS 120 PESOS
12. SELECCIONAR EL PRECIO MEDIO DE TODOS LOS PRODUCTOS
13. OBTENER EL PRECIO MEDIO DE TODOS LOS ARTICULOS CUYO FABRIUCANTE SEA 2
14. OBTENER EL NOMBRE Y EL PRECIO DE LOS ARTICULOS CUYO PRECIO SEA MAYOR O IGUAL A 180 PESOS Y OORDENARLOS DESCENDENTEMENTE POR PRECIO, Y LUEGO ASCDENTENTEMENTE PPOR NOMBRE
15. MOSTRAR UN LISTADO COMPLETO DE ARTICULOS, INCLUYENDO POR CADA ARTICULO LOS DATOS DEL ARTICULO Y DE SU FABRICANTE.
16. OBTENER EL PRECIO MEDIO DE LOS PRODUCTOS DE CADA FABRICANTE, MOSTRANDO SOLAMENTE LOS CODIGOS DE FABRICANTE
RECUERDEN QUE DEBEN DESARROLLAR DEL MANUAL DE TRABAJO EL TEMA 3 DE CREACION DE TABLAS Y EL TEMA 4 DE ACTUALIZACION DE TABLAS Y DARLE SEGUIMIENTO A LOS TEMAS QUE SE EXPUSIERON
CON RELACION A LOS TEMAS QUE QUEDE DE ENVIARLES, SE LAS ENTREGARE ESTE PROXIMO SABADO 10 DE MARZO, 2012. YA QUE SON MUCHOS TEMAS, Y HE TENIDO QUE DESARROLLAR LAS SEPARACION Y DISTRIBUCION DE LOS MISMOS.
Bienvenidos
Objetivos Generales: Con este Material de Microsoft SQL Server Gota a Gota en las Bases de Datos Relacionales pretendo dejar claro los conceptos de su funcionamiento y estructura, consiguiendo los siguientes objetivos:
Aclarar el funcionamiento en todos los aspectos de las Bases de datos relacionales y la Gestión de las mismas
Comprender los lenguajes que conforman las Bases de Datos (DDL, DML, DCL)
Objetivos Específicos: Especificando un poco más los objetivos de este material, podemos declarar que el alumno conseguirá entender el funcionamiento y estructura para saber como aprovechar todas las capacidades de este tipo de bases de datos en la creación de programas informáticos de cualquier nivel aprender la utilización de las bases de datos de SQL SERVER de cara a la programación.
Estudiar el funcionamiento de las mismas, para una mejor base de cara a la utilización de sentencias SQL y de bases de datos de mayor complejidad.
Aclarar el funcionamiento en todos los aspectos de las Bases de datos relacionales y la Gestión de las mismas
Comprender los lenguajes que conforman las Bases de Datos (DDL, DML, DCL)
Objetivos Específicos: Especificando un poco más los objetivos de este material, podemos declarar que el alumno conseguirá entender el funcionamiento y estructura para saber como aprovechar todas las capacidades de este tipo de bases de datos en la creación de programas informáticos de cualquier nivel aprender la utilización de las bases de datos de SQL SERVER de cara a la programación.
Estudiar el funcionamiento de las mismas, para una mejor base de cara a la utilización de sentencias SQL y de bases de datos de mayor complejidad.
miércoles, 7 de marzo de 2012
domingo, 19 de febrero de 2012
Ejercicios a desarrollar del manual de trabajo del Modulo Gestion y Consulta de Datos con SQL
PARTE I, TEMA 1
EL LENGUAJE DE GESTIÓN DE BASE DE DATOS
OBLIGATORIO
FECHA DE ENVIÓ: SÁBADO 03 DE MARZO, 2012
SI DESEAN ENVIARLO ANTES, PUEDEN HACERLO
ENTREGAR TAL CUAL ESTÁN FORMADOS LOS GRUPOS
NOTA: el objetivo es familiarizarse con una base de datos relacional
observando la estructura de las tablas y las relaciones entre ellas.
Estos ejercicios deben realizarse estudiando el contenido de las
tablas y la forma de relacionarse entre ellas
DEBEN CREAR LAS SENTENCIAS SELECT, PARA PODER DARSE CUENTA DE CUAL ES LA RESPUESTA CORRECTA, EN CASO DE QUE LAS NECESITE.
EN CASO DE QUE SEA DETERMINAR SI ES FALSO O VERDADERO UNA PREGUNTA, NO ES NECESARIO LA SENTENCIA, PARA QUE NO SE CONFUNDAN
1.- El empleado número 7499 pertenece al departamento número:
a. 30
b. 20
c. 40
2.- El DIRECTOR del empleado 7844 es el empleado número:
a. 7698
b. 7839
c. 7782
3.- El empleado REY es el director de:
a. MARTINEZ
b. GARRIDO
c. MARTINEZ Y GARRIDO
4.- Al departamento de INVESTIGACION pertenecen los empleados:
a. ALONSO Y LOPEZ
b. GIL Y JIMENEZ
c. GARRIDO Y MARTINEZ
5.- El cliente DISTRIBUCIONES GOMEZ pidió cuatro unidades del producto
SILLA DIRECTOR MOD. BUFALO el 7 de enero de 2000:
a. Verdadero
b. Falso, los datos son incorrectos
c. Los datos facilitados son insuficientes para verificar laafirmación
6.- El cliente INDUSTRIAS LACTEAS S.A. ha realizado:
a. Un pedido
b. Dos pedidos
c. Tres pedidos
7.- Sql es un Sistema Gestor de Bases de Datos:
a. Jerárquico
b. En red
c. Relacional
8.- Según el modelo relacional:
a. Cada fila de una tabla representa un atributo o característica
b. Cada columna de una tabla representa un atributo o característica
c. Cada entidad representa un atributo o característica
9.- SQL es:
a. Un lenguaje estructurado de consulta
b. Un lenguaje procedimental de tercera generación
c. Ambas son correctas
10.- El lenguaje SQL permite:
a. Manipular datos (consultar, actualizar, etcétera)
b. Definir objetos de la base de datos (Crear, modificar y eliminar objetos de la basede datos)
c. Ambas son correctas
PARTE I, TEMA 2 ELEMENTOS DEL LENGUAJE
OBLIGATORIO
Elegir la respuesta correcta de las siguientes cuestiones:
1.- Cuál de los siguientes identificadores no es correcto:
a. xx
b. 2x
c. x2
2.- VARCHAR es:
a. Un comando
b. Un operador
c. Un tipo de dato
3.- Para comparar un dato alfanumérico con un patrón de comparación que
contiene caracteres comodines utilizaremos el operador:
a. IN
b. LIKE
c. =
4.- Siendo el valor de A verdadero (true) y el de B falso (false), el
resultado de la expresión A AND B será:
a. Verdadero (true)
b. Falso (false)
c. Nulo (null)
5.-Siendo el valor de A verdadero (true) y el de B nulo (null), el
resultado de la expresión A AND B será:
a. Verdadero (true)
b. Falso (false)
c. Nulo (null)
6.- Para redondear a dos decimales un número (num) utilizaremos la función:
a. POWER(num,2)
b. TRUNC(num,2)
c. ROUND(num,2)
7.- Para obtener la longitud de una cadena (cad) utilizaremos la función:
a. LPAD(cad)
b. LOWER(cad)
c. LEN(cad)
8.- Para calcular en número de días entre dos fechas (fecha1 y fecha2)
utilizaremos la función:
a. DATESUBB(fecha1, fecha2)
b. DATEDIFF( fecha1,fecha2)
c. DUBDATE( fecha1,fecha2)
9.- Para sumar las columnas salario (no puede contener nulos) y comision
(si puede contener nulos) necesitaremos la expresión:
a. salario + comision
b. ISNULL (salario,0) + comision
c. salario + ISNULL(comision,0)
10.- Una condición es:
a. Una variable
b. Un conjunto de datos, operadores y funciones)
c. Un conjunto de datos, operadores y funciones cuyo resultado esverdadero
o falso
BLOQUE I (TEMAS 1, 2)
GESTION DE DATOS CON SQL
"EVALUACIÓN I"
Marca la casilla con la respuesta correcta
1. El lenguaje SQL permite:
Controlar el acceso a la información
Crear objetos en una base de datos
Recuperar la información almacenada en la base de datos
Todas las anteriores
2. En el modelo relacional la restricción que se utiliza para relacionar
dos tablas es:
PRIMARY KEY
FOREIGN KEY
UNIQUE
CHECK
3. Siendo el valor de A true (verdadero) y el de B null, el resultado de la
expresión A AND B será:
true
false
null
ninguna de los anteriores
4. Indicar cuál de los siguientes identificadores es incorrecto:
b2-ax
ax_b2
axb2
xa2b
5. Indicar cuál de las siguientes expresiones es la correcta para comprobar
si el valor de COMISION es nulo (carece de valor):
COMISION IS NULL
COMISION = 0
COMISION = NULL
Cualquiera de los anteriores
6. Para comprobar si un nombre empieza por 'A', ¿qué expresión sería la
correcta?:
nombre='A%'
Nombre LIKE 'A%'
Nombre LIKE 'A_'
Nombre LIKE '%A'
7. Para mostrar los empleados del departamento 10 y del 30 qué clausula
WHERE sería la adecuada:
Dep_no=10 AND dep_no=30
Dep_no=10 OR dep_no=30
Dep_no BETWEEN 10 AND 30
Dep_no IN (10,20,30)
8. Para buscar un salario entre 1500 y 3500, ambos inclusives:
Salario=1500 OR salario=3500
Salario>1500 AND salario<3500 Salario>1500 OR salario<3500
Salario BETWEEN 1500 AND 3500
9. Para crear una tabla se necesita:
Un nombre de tabla
Las definiciones de las columnas
El nombre de la tabla y las definiciones de las columnas
El nombre de la tabla y sus restricciones
10. Para indicar que una columna va a ser clave principal:
NOT NULL
FOREIGN KEY
CHECK
PRIMARY KEY
11. Para indicar que una columna va a ser clave ajena se necesitan las
cláusulas:
FOREIGN KEY
FOREIGN KEY con REFERENCES
FOREIGN KEY con REFERENCES y ON DELETE CASCADE
FOREIGN KEY y PRIMARY KEY
12. La cláusula WHERE:
Selecciona las filas seleccionadas que cumplan una condición
Establece un criterio de ordenación
Indica sobre qué tabla se está realizando la consulta
Modifica las filas de una tabla
13. Para ordenar de mayor a menor por salario y, a igual salario,
alfabéticamente por apellido:
ORDER BY salario,apellido
ORDER BY apellido,salario DESC
ORDER BY salario DESC,apellido
ORDER BY salario DESC,apellido DESC
14. Para visualizar los tres empleados que más salario ganan:
SELECT TOP 3 * FROM empleados ORDER BY salario;
SELECT TOP 3 * FROM empleados ORDER BY salario DESC;
SELECT TOP 3 * FROM empleados ORDER BY salario;
15. Una composición o combinación (JOIN) consiste en:
Obtener filas de más de una tabla
Obtener todas las filas resultantes de multiplicar tablas
Aplicar una condición de selección a las filas resultantes de multiplicar
tablas
Obtener el producto cartesiano de tablas
16. Para obtener los pedidos con nombres de cliente y de producto:
SELECT pedido_no,nombre,descripción,unidades FROM
pedidos,productos,clientes;
SELECT pedido_no,nombre,descripción,unidades FROM
pedidos,productos,clientes WHERE cliente_no=cliente_no AND
producto_no=producto_no;
SELECT pedido_no,nombre,descripción,unidades FROM pedidos p,productos
pr,clientes c WHERE p.cliente_no=c.cliente_no AND
p.producto_no=pr.producto_no;
SELECT pedido_no,nombre,descripción,unidades FROM pedidos p,productos
pr,clientes c WHERE p.cliente_no=c.cliente_no AND
p.producto_no=pr.producto_no AND p.pedido=pr.pedido_no;
17. Para listar los clientes con sus pedidos, incluyendo aquellos que no tengan ningún pedido:
SELECT c.cliente_no,nombre,pedido_no FROM clientes c RIGHT JOIN pedidos p
ON c.cliente_no=p.cliente_no;
SELECT c.cliente_no,nombre,pedido_no FROM clientes c LEFT JOIN pedidos p
ON c.cliente_no=p.cliente_no;
SELECT c.cliente_no,nombre,pedido_no FROM clientes c JOIN pedidos p ON
c.cliente_no=p.cliente_no;
SELECT c.cliente_no,nombre,pedido_no FROM clientes c,pedidos p WHERE
c.cliente_no=p.cliente_no;
18. Para crear una tabla a partir de otra ya creada:
No se puede
Hay que crearla idéntica
Se puede crear a partir de una consulta sobre la tabla ya creada
Se puede hacer usando dos sentencias CREATE concatenadas
EL LENGUAJE DE GESTIÓN DE BASE DE DATOS
OBLIGATORIO
FECHA DE ENVIÓ: SÁBADO 03 DE MARZO, 2012
SI DESEAN ENVIARLO ANTES, PUEDEN HACERLO
ENTREGAR TAL CUAL ESTÁN FORMADOS LOS GRUPOS
NOTA: el objetivo es familiarizarse con una base de datos relacional
observando la estructura de las tablas y las relaciones entre ellas.
Estos ejercicios deben realizarse estudiando el contenido de las
tablas y la forma de relacionarse entre ellas
DEBEN CREAR LAS SENTENCIAS SELECT, PARA PODER DARSE CUENTA DE CUAL ES LA RESPUESTA CORRECTA, EN CASO DE QUE LAS NECESITE.
EN CASO DE QUE SEA DETERMINAR SI ES FALSO O VERDADERO UNA PREGUNTA, NO ES NECESARIO LA SENTENCIA, PARA QUE NO SE CONFUNDAN
1.- El empleado número 7499 pertenece al departamento número:
a. 30
b. 20
c. 40
2.- El DIRECTOR del empleado 7844 es el empleado número:
a. 7698
b. 7839
c. 7782
3.- El empleado REY es el director de:
a. MARTINEZ
b. GARRIDO
c. MARTINEZ Y GARRIDO
4.- Al departamento de INVESTIGACION pertenecen los empleados:
a. ALONSO Y LOPEZ
b. GIL Y JIMENEZ
c. GARRIDO Y MARTINEZ
5.- El cliente DISTRIBUCIONES GOMEZ pidió cuatro unidades del producto
SILLA DIRECTOR MOD. BUFALO el 7 de enero de 2000:
a. Verdadero
b. Falso, los datos son incorrectos
c. Los datos facilitados son insuficientes para verificar laafirmación
6.- El cliente INDUSTRIAS LACTEAS S.A. ha realizado:
a. Un pedido
b. Dos pedidos
c. Tres pedidos
7.- Sql es un Sistema Gestor de Bases de Datos:
a. Jerárquico
b. En red
c. Relacional
8.- Según el modelo relacional:
a. Cada fila de una tabla representa un atributo o característica
b. Cada columna de una tabla representa un atributo o característica
c. Cada entidad representa un atributo o característica
9.- SQL es:
a. Un lenguaje estructurado de consulta
b. Un lenguaje procedimental de tercera generación
c. Ambas son correctas
10.- El lenguaje SQL permite:
a. Manipular datos (consultar, actualizar, etcétera)
b. Definir objetos de la base de datos (Crear, modificar y eliminar objetos de la basede datos)
c. Ambas son correctas
PARTE I, TEMA 2 ELEMENTOS DEL LENGUAJE
OBLIGATORIO
Elegir la respuesta correcta de las siguientes cuestiones:
1.- Cuál de los siguientes identificadores no es correcto:
a. xx
b. 2x
c. x2
2.- VARCHAR es:
a. Un comando
b. Un operador
c. Un tipo de dato
3.- Para comparar un dato alfanumérico con un patrón de comparación que
contiene caracteres comodines utilizaremos el operador:
a. IN
b. LIKE
c. =
4.- Siendo el valor de A verdadero (true) y el de B falso (false), el
resultado de la expresión A AND B será:
a. Verdadero (true)
b. Falso (false)
c. Nulo (null)
5.-Siendo el valor de A verdadero (true) y el de B nulo (null), el
resultado de la expresión A AND B será:
a. Verdadero (true)
b. Falso (false)
c. Nulo (null)
6.- Para redondear a dos decimales un número (num) utilizaremos la función:
a. POWER(num,2)
b. TRUNC(num,2)
c. ROUND(num,2)
7.- Para obtener la longitud de una cadena (cad) utilizaremos la función:
a. LPAD(cad)
b. LOWER(cad)
c. LEN(cad)
8.- Para calcular en número de días entre dos fechas (fecha1 y fecha2)
utilizaremos la función:
a. DATESUBB(fecha1, fecha2)
b. DATEDIFF( fecha1,fecha2)
c. DUBDATE( fecha1,fecha2)
9.- Para sumar las columnas salario (no puede contener nulos) y comision
(si puede contener nulos) necesitaremos la expresión:
a. salario + comision
b. ISNULL (salario,0) + comision
c. salario + ISNULL(comision,0)
10.- Una condición es:
a. Una variable
b. Un conjunto de datos, operadores y funciones)
c. Un conjunto de datos, operadores y funciones cuyo resultado esverdadero
o falso
BLOQUE I (TEMAS 1, 2)
GESTION DE DATOS CON SQL
"EVALUACIÓN I"
Marca la casilla con la respuesta correcta
1. El lenguaje SQL permite:
Controlar el acceso a la información
Crear objetos en una base de datos
Recuperar la información almacenada en la base de datos
Todas las anteriores
2. En el modelo relacional la restricción que se utiliza para relacionar
dos tablas es:
PRIMARY KEY
FOREIGN KEY
UNIQUE
CHECK
3. Siendo el valor de A true (verdadero) y el de B null, el resultado de la
expresión A AND B será:
true
false
null
ninguna de los anteriores
4. Indicar cuál de los siguientes identificadores es incorrecto:
b2-ax
ax_b2
axb2
xa2b
5. Indicar cuál de las siguientes expresiones es la correcta para comprobar
si el valor de COMISION es nulo (carece de valor):
COMISION IS NULL
COMISION = 0
COMISION = NULL
Cualquiera de los anteriores
6. Para comprobar si un nombre empieza por 'A', ¿qué expresión sería la
correcta?:
nombre='A%'
Nombre LIKE 'A%'
Nombre LIKE 'A_'
Nombre LIKE '%A'
7. Para mostrar los empleados del departamento 10 y del 30 qué clausula
WHERE sería la adecuada:
Dep_no=10 AND dep_no=30
Dep_no=10 OR dep_no=30
Dep_no BETWEEN 10 AND 30
Dep_no IN (10,20,30)
8. Para buscar un salario entre 1500 y 3500, ambos inclusives:
Salario=1500 OR salario=3500
Salario>1500 AND salario<3500 Salario>1500 OR salario<3500
Salario BETWEEN 1500 AND 3500
9. Para crear una tabla se necesita:
Un nombre de tabla
Las definiciones de las columnas
El nombre de la tabla y las definiciones de las columnas
El nombre de la tabla y sus restricciones
10. Para indicar que una columna va a ser clave principal:
NOT NULL
FOREIGN KEY
CHECK
PRIMARY KEY
11. Para indicar que una columna va a ser clave ajena se necesitan las
cláusulas:
FOREIGN KEY
FOREIGN KEY con REFERENCES
FOREIGN KEY con REFERENCES y ON DELETE CASCADE
FOREIGN KEY y PRIMARY KEY
12. La cláusula WHERE:
Selecciona las filas seleccionadas que cumplan una condición
Establece un criterio de ordenación
Indica sobre qué tabla se está realizando la consulta
Modifica las filas de una tabla
13. Para ordenar de mayor a menor por salario y, a igual salario,
alfabéticamente por apellido:
ORDER BY salario,apellido
ORDER BY apellido,salario DESC
ORDER BY salario DESC,apellido
ORDER BY salario DESC,apellido DESC
14. Para visualizar los tres empleados que más salario ganan:
SELECT TOP 3 * FROM empleados ORDER BY salario;
SELECT TOP 3 * FROM empleados ORDER BY salario DESC;
SELECT TOP 3 * FROM empleados ORDER BY salario;
15. Una composición o combinación (JOIN) consiste en:
Obtener filas de más de una tabla
Obtener todas las filas resultantes de multiplicar tablas
Aplicar una condición de selección a las filas resultantes de multiplicar
tablas
Obtener el producto cartesiano de tablas
16. Para obtener los pedidos con nombres de cliente y de producto:
SELECT pedido_no,nombre,descripción,unidades FROM
pedidos,productos,clientes;
SELECT pedido_no,nombre,descripción,unidades FROM
pedidos,productos,clientes WHERE cliente_no=cliente_no AND
producto_no=producto_no;
SELECT pedido_no,nombre,descripción,unidades FROM pedidos p,productos
pr,clientes c WHERE p.cliente_no=c.cliente_no AND
p.producto_no=pr.producto_no;
SELECT pedido_no,nombre,descripción,unidades FROM pedidos p,productos
pr,clientes c WHERE p.cliente_no=c.cliente_no AND
p.producto_no=pr.producto_no AND p.pedido=pr.pedido_no;
17. Para listar los clientes con sus pedidos, incluyendo aquellos que no tengan ningún pedido:
SELECT c.cliente_no,nombre,pedido_no FROM clientes c RIGHT JOIN pedidos p
ON c.cliente_no=p.cliente_no;
SELECT c.cliente_no,nombre,pedido_no FROM clientes c LEFT JOIN pedidos p
ON c.cliente_no=p.cliente_no;
SELECT c.cliente_no,nombre,pedido_no FROM clientes c JOIN pedidos p ON
c.cliente_no=p.cliente_no;
SELECT c.cliente_no,nombre,pedido_no FROM clientes c,pedidos p WHERE
c.cliente_no=p.cliente_no;
18. Para crear una tabla a partir de otra ya creada:
No se puede
Hay que crearla idéntica
Se puede crear a partir de una consulta sobre la tabla ya creada
Se puede hacer usando dos sentencias CREATE concatenadas
sábado, 29 de enero de 2011
jueves, 27 de enero de 2011
SQL Express para descarga
SI TIENEN PROBLEMAS CON LA VERSION DE SQL, QUE LES FACILITE, FAVOR, ENTRAR A LA DIRECCION DE ESTE LINK, Y PODRAN DESCARGARLO, SIN PROBLEMAS, YA QUE ESTE LO INSTALE EN UNA MAQUINA Y ME FUNCIONO.... ESPERO QUE TAMBIEN A USTEDES LES SIRVA
Descargar Sql Express
Descargar Sql Express
jueves, 20 de enero de 2011
Suscribirse a:
Entradas (Atom)