Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Modelos de consulta en base de datos

No description
by

Juan Pablo Echavarria

on 15 November 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Modelos de consulta en base de datos

MODELOS DE CONSULTA
Con la clausula SELECT se pueden citar columnas de todas las tablas.Si hay columnas con el mismo nombre en las distintas tablas, se deben identificar de la forma NombreTabla.NombreColumna.

se utiliza la clausula WHERE para combinarlas


b) Apellido, oficio, número de departamentos y nombre de departamento de los empleados de los departamentos 10 o 20

- SELECT
apellido, oficio, emple.dept_no,dnombre
- FROM emple, depart
- WHERE emple,dept_no=depart.dept_no AND emple.dept_no(10,20);

c) ¿Qué ocurre si no se especifica el criterio de combinación de tablas?
En este caso el resultado es un producto cartesiano que combina todas las filas de una tabla con los de la otra.


- SELECT apellido, emple.dept_no, dnombre
- FROM emple, depart;
En el resultado de la consulta tendríamos 16*4=64 filas, en lugar de 14.

Carolina cano Quiceno
Juan Pablo Echavarría
Institución educativa San Antonio de Prado
11-1
MEDELLÍN
2013
1.Modelos de consulta en base de datos
En ocasiones necesitamos realizar consultas que involucren varias tablas.Los nombres de las tablas deben ser antecedidos por la palabra from


- SELECT campo1, campo2 …
- FROM tabla1, tabla2 …
- WHERE condición de combinaciones de las tablas


Ejemplos
a - SELECT apellido, oficio, dnombre, loc
- FROM emple, depart
- WHERE emple.dept_no=depart.dept_no;

2. Álgebra relacional, que significa sintaxis relacionada
2. Algebra relacional, que significa sintaxis relacionada.
R// Un algebra es un sistema matemático constituido por
• Operandos: objetos (valores o variables) desde los cuales
nuevos objetos pueden ser construidos.
• Operadores: símbolos que denotan nuevos objetos desde
Objetos dados.
El ´algebra relacional es un ´algebra en la cual
• Sus operandos son relaciones (instancias) o variables que
representan relaciones.



• Sus operadores están diseñados para hacer la tareas más
Comunes que se necesitan para manipular relaciones en una
base de datos.
El resultado es que el ´algebra relacional se puede utilizar
Como un lenguaje de consulta.
En la practica el ´algebra relacional debe ser extendida para
Abarcar la mayor parte de las tareas reales que se hacen con
los datos.
Estudiaremos en detalle los operadores clásicos.
GRACIAS POR LA ATENCIÓN PRESTADA
CÓMO INSERTAR DATOS EN UNA TABLA

Para meter datos en una tabla utilizamos la orden INSERT

INSERT INTO nombre_de_la_tabla (
Columna1, columna 2, …. )
VALUES (
Valor1, valor2, ….);
Cómo seleccionar parte de un campo.

Supongamos que queremos seleccionar sólo una parte de cadadato, para que no nos ocupe mucho en pantalla, pero al menos lo justo para reconocer de qué refrán se trata.

Utilizaremos la función LEFT que nos permite específicar el número de caracteres máximo que queremos mostrar. Por ejemplo queremos ver los 15 primeros caracteres del campo “refrán” (los espacios también son un carácter):

SELECT id, LEFT(refran,15), fecha FROM refranero;
También podríamos seleccionar los últimos 15 con

SELECT ID RIGHT(refran,15) FROM refranero;

¿Cómo saber cuántos datos tenemos?

Contando los registros con COUNT

SELECT COUNT(*) FROM tabla;
¿Cómo elegir sólo aquellos registros que cumplan una determinada condición?

Utilizando la cláusula WHERE

Por ejemplo, queremos ver todos aquellos refranes que hayan sido publicados después del 1 junio:

SELECT * FROM tabla WHERE fecha > “2003-06-01”;


Aquí la cosa está fácil porque sólo tenemos 2 registros que cumplen la condición, pero ¿y si tuviéramos cientos, y necesitáramos saber cuántos tenemos? Pues los contamos , utilizando COUNT como vimos antes, pero combinándolo con la condición

SELECT COUNT(*) FROM tabla WHERE fecha > “2003-06-01”;
¿Cómo elegir sólo aquellos registros que contengan determinado texto?

Para esto tenemos “LIKE”, supongamos que queremos encontrar todos aquellos refranes que contenga la palabra madrugar. Con Like, le decimos a Mysql que queremos que nos devuelva todos los registros que cumplan un patrón que le especificamos, cómo puede ser contener una determinada palabra, por ejemplo.

SELECT campo FROM tabla WHERE campo LIKE "%palabra%";
También podemos combinar las distintas formas que hemos visto para restringir aún más los resultados. Por ejemplo podemos pedirle a mysql que nos dé todos los registros que contengan la palabra madrugar y que hayan sido publicados entre el 1 de julio y el 15 de agosto.

mysql> SELECT campo, fecha FROM tabla
-> WHERE campo LIKE "%madrugar%" AND
-> fecha >= "2003-07-01" AND
-> fecha < "2003-08-15";
En la práctica, el comando SQL que se utilizaría para obtener la unión de las tablas A y B del ejemplo podría ser el siguiente:

SELECT * FROM A UNION SELECT * FROM B
2- INTERSECCIÓN

Opera sobre dos o más tablas, siendo necesario que todas posean la misma estructura, devolviendo una nueva tabla cuyo contenido es las filas comunes a todas las tablas originales, descartando las filas repetidas
En la práctica, el comando SQL que se utilizaría para obtener la intersección de las tablas A y B del ejemplo podría ser el siguiente:

SELECT * FROM A INTERSECT SELECT * FROM B
PRODUCTO

Opera sobre dos tablas, efectuando un producto cartesiano del contenido de las mismas, no siendo necesario que ambas posean la misma estructura, y devolviendo una nueva tabla cuyo contenido es todas las posibles combinaciones de las filas de una de ambas tablas

En la práctica, el comando SQL que se utilizaría para obtener el producto de las tablas A y B del ejemplo podría ser el siguiente:

SELECT * FROM A, B
DIFERENCIA

Opera sobre dos tablas, siendo necesario que ambas posean la misma estructura, devolviendo una nueva tabla cuyo contenido es las filas que figuran en la primer tabla y no en la otra

En la práctica, el comando SQL que se utilizaría para obtener la diferencia entre las tablas A y B del ejemplo podría ser el siguiente:

SELECT * FROM A EXCEPT SELECT * FROM B
PROYECCIÓN

Opera sobre una o más tablas, no siendo necesario que éstas posean la misma estructura, y devolviendo una nueva tabla cuyo contenido es todas las filas de las tablas indicadas que satisfacen una cierta condición, tal como sucede con la selección, sólo que la proyección permite indicar cuáles columnas se desea obtener en el resultado
En la práctica, el comando SQL que se utilizaría para obtener la proyección del ejemplo podría ser el siguiente:

SELECT X, Z FROM A WHERE X<50
REUNIÓN

Opera sobre dos o más tablas, que poseen estructuras diferentes, y devolviendo una nueva tabla cuyo contenido es un conjunto de filas con las columnas deseadas provenientes de las diferentes tablas, en el que las filas de las diferentes tablas en juego son relacionadas mediante alguna condición

En la práctica, el comando SQL que se utilizaría para obtener el producto de las tablas A y B del ejemplo podría ser el siguiente:

SELECT A.W, B.Y FROM A JOIN B ON (A.V=B.X AND Z>10)
ASIGNACIÓN

Opera sobre una única tabla, y se utiliza para asignar valores a algunas columnas de algunas filas de la misma

En este ejemplo, mediante una operación de asignación se modifica la tabla fijando un valor igual a '100%' para la columna INDICE, en las filas en las que el valor de la columna CODIGO es mayor que 2000.

En el caso del ejemplo, podría usarse la sentencia:

UPDATE A SET indice='100%' WHERE codigo>2000
Full transcript