Hola a todos bueno agregue un poco de información al final del post espero que les sirva



BASE DE DATOS


Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico.
Las bases de datos tradicionales se organizan por campos, registros y archivos. Un campo es una pieza única de información; un registro es un sistema completo de campos; y un archivo es una colección de registros. Por ejemplo, una guía de teléfono es análoga a un archivo. Contiene una lista de registros, cada uno de los cuales consiste en tres campos: nombre, dirección, y número de teléfono.

Base de datos, consulta sql

Modelo de entidad relación


Denominado por sus siglas como: E-R; Este modelo representa a la realidad a través de un esquema gráfico empleando los terminología de entidades, que son objetos que existen y son los elementos principales que se identifican en el problema a resolver con el diagramado y se distinguen de otros por sus características particulares denominadas atributos, el enlace que que rige la unión de las entidades esta representada por la relación del modelo.

Entidad
Una entidad es una “cosa” u “objeto” en el mundo real que es distinguible de todos los demás objetos Una entidad tiene un conjunto de propiedades, y los valores para algún subconjunto de propiedades pueden identificar una entidad de forma unívoca.

sql
DNI: 326573456

Conjunto de Entidades

Un conjunto de entidades es un conjunto de entidades del mismo tipo que comparten las mismas propiedades (no sus valores).

Los conjuntos de entidades no tienen por qué ser disjuntos:

Personas:
•Empleados
•Clientes

Atributos

Una entidad se representa mediante un conjunto de atributos
Los atributos describen propiedades que posee cada miembro de un conjunto de entidades

•Cliente: identificativo de cliente, nombre de cliente, calle dónde vive el cliente, ciudad dónde vive el cliente, …
•Libro: identificativo del libro, autor del libro, editorial del libro, idioma en que está escrito el libro, …

Cada entidad tiene un valor para cada uno de sus atributos

Dominio

El dominio (conjunto de valores) de un atributo es el conjunto de valores permitidos

•Autor del libro: cadenas de caracteres de una cierta longitud
•Año de nacimiento del cliente: números de cuatro cifras

Atributos Compuestos

Los atributos compuestos son aquellos que se pueden dividir en atributos simples:

Nombre de cliente = Nombre propio del cliente, primer apellido del cliente, segundo apellido del cliente

Los atributos compuestos hacen más claro el modelo agrupando atributos relacionados

Atributos Multivalorados

Un atributo multivalorado es aquel que puede tener un conjunto de valores

Teléfono de cliente = Algunos clientes no tienen teléfono y otros pueden tener varios (fijo casa, fijo oficina, móvil, …)

Atributos Derivados

Los atributos derivados son aquellos cuyo valor se puede derivar del valor de otros atributos
Edad de cliente = Año actual menos año de nacimiento
Número de libros prestados = Contar el número de préstamos activos

Valor Nulo

Un atributo toma valor nulo cuando una entidad no tiene valor para un atributo
•No Aplicable (segundo nombre)
•Perdido (existe pero no se tiene)
•Desconocido (no se conoce si existe o no)
Mucho cuidado con los valores nulos y con su tratamiento

Ejemplo : Banco

Conjuntos de Entidades

Cliente(nombre_cliente,apellido1_cliente,apellido2_cliente,direccion_cliente,
codigopostal_cliente, ciudad_cliente)

Sucursal (nombre_sucursal, direccion_sucursal, ciudad_sucursal, activos)

Cuenta (numero_cuenta, saldo)

Prestamo (numero_prestamo, importe_inicial, resto)


Relación

Una relación es una asociación entre diferentes entidades

Conjunto de Relaciones

Un conjunto de relaciones es un grupo de relaciones del mismo tipo Formalmente: Relación matemática,
con n>=2, de n conjunto de entidades

Restricciones

Las restricciones expresan limitaciones a las que se deben adaptar los contenidos de la base de datos Correspondencia de cardinalidades Restricciones de participación

Corresp. de Cardinalidades

La correspondencia de cardinalidades, o razón de cardinalidad, expresa el número de entidades de un conjunto de entidades a las que una entidad de otro conjunto de entidades puede estar asociada vía un Conjunto de relaciones
¿Cuántas cuentas puede tener un cliente?
¿Puede un usuario llevarse prestados varios libros?

Tipos de C. de Cardinalidades

Uno a uno: Una entidad en A se asocia con a lo sumo
una entidad en B, y una entidad en B se asocia con a
lo sumo una entidad en A
Uno a Varios: Una entidad en A se asocia con cualquier
número de entidades en B; una entidad en B se puede
asociar con a lo sumo una entidad en A
Varios a Uno: Una entidad en A se asocia con a lo sumo
una entidad en B; una entidad en B se puede asociar
con cualquier número de entidades en A
Varios a Varios: Una entidad en A se asocia con
cualquier número de entidades en B, y una entidad en
B se asocia con cualquier número de entidades en A

consulta

Claves

Es necesario disponer de una forma de especificar cómo, las entidades dentro de un conjunto de entidades dado y las relaciones dentro de un conjunto de relaciones dado, son distinguibles
Una clave es un conjunto suficiente de atributos capaces de distinguir las entidades (relaciones) de un conjunto de entidades (conjunto de
relaciones) entre si (no sólo conceptualmente sino desde una perspectiva de bases de datos) Una entidad es una “cosa” u “objeto” en el mundo
real que es distinguible de todos los demás objetos

Clave Primaria

Una clave primaria es una clave candidata que es elegida por el diseñador de la base de datos como elemento principal para identificar las entidades
dentro de un conjunto de entidades Cualesquiera dos entidades individuales en el conjunto de entidades no pueden tener, al mismo
tiempo, el mismo valor en sus atributos clave La elección de una clave representa una restricción en el desarrollo del mundo real que se modela
La clave primaria se debe elegir de forma que los atributos que la forman nunca, o al menos muy raramente, cambien

Base de Datos

Consulta base de datos.


Consultas de selección

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

La selección total o parcial de una tabla se lleva a cabo mediante la instrucción Select. En dicha selección hay que especificar:

-Los campos que queremos seleccionar
-La tabla en la que hacemos la selección

En nuestra tabla modelo de clientes podríamos hacer por ejemplo una selección del nombre y dirección de los clientes con una instrucción de este tipo:

Select nombre, dirección From clientes

Si quisiésemos seleccionar todos los campos, es decir, toda la tabla, podríamos utilizar el comodín * del siguiente modo:

Select * From clientes

Resulta también muy útil el filtrar los registros mediante condiciones que vienen expresadas después de la cláusula Where. Si quisiésemos mostrar los clientes de una determinada ciudad usaríamos una expresión como esta:

Select * From clientes Where poblacion Like 'Madrid'

Además, podríamos ordenar los resultados en función de uno o varios de sus campos. Para este ultimo ejemplo los podríamos ordenar por nombre así:

Select * From clientes Where poblacion Like 'Madrid' Order By nombre

Teniendo en cuenta que puede haber más de un cliente con el mismo nombre, podríamos dar un segundo criterio que podría ser el apellido:

Select * From clientes Where poblacion Like 'Madrid' Order By nombre, apellido

Si invirtiésemos el orden « nombre,apellido » por « apellido, nombre », el resultado sería distinto. Tendríamos los clientes ordenados por apellido y aquellos que tuviesen apellidos idénticos se subclasificarían por el nombre.
Es posible también clasificar por orden inverso. Si por ejemplo quisiésemos ver nuestros clientes por orden de pedidos realizados teniendo a los mayores en primer lugar escribiríamos algo así:

Select * From clientes Order By pedidos Desc

Una opción interesante es la de efectuar selecciones sin coincidencia. Si por ejemplo buscásemos el saber en qué ciudades se encuentran nuestros clientes sin necesidad de que para ello aparezca varias veces la misma ciudad usaríamos una sentencia de esta clase:

Select Distinct poblacion From clientes Order By poblacion

Así evitaríamos ver repetido Madrid tantas veces como clientes tengamos en esa población.

Operadores que pueden resultar útiles en determinados casos. Estos operadores serán utilizados después de la cláusula Where y pueden ser combinados hábilmente mediante paréntesis para optimizar nuestra selección a muy altos niveles.

Entidad

Base de datos, consulta sql



Veamos a continuación aplicaciones practicas de estos operadores.

En esta sentencia seleccionamos todos los clientes de Madrid cuyo nombre no es Pepe. Como puede verse, empleamos Like en lugar de = simplemente para evitar inconvenientes debido al empleo o no de mayúsculas.

Select * From clientes Where poblacion Like 'madrid' And Not nombre Like 'Pepe'

Si quisiéramos recoger en una selección a los clientes de nuestra tabla cuyo apellido comienza por A y cuyo número de pedidos esta comprendido entre 20 y 40:

Select * From clientes Where apellidos like 'A%' And pedidos Between 20 And 40
Select * From clientes Where poblacion In ('Madrid','Barcelona','Valencia')

De esta forma seleccionamos aquellos clientes que vivan en esas tres ciudades

Consultas a mas de una tabla

Una base de datos puede ser considerada como un conjunto de tablas. Estas tablas en muchos casos están relacionadas entre ellas y se complementan unas con otras.
Refiriéndonos a nuestro clásico ejemplo de una base de datos para una aplicación de e-comercio, la tabla clientes de la que hemos estado hablando puede estar perfectamente coordinada con una tabla donde almacenamos los pedidos realizados por cada cliente. Esta tabla de pedidos puede a su vez estar conectada con una tabla donde almacenamos los datos correspondientes a cada artículo del inventario.
De este modo podríamos fácilmente obtener informaciones contenidas en esas tres tablas como puede ser la designación del artículo más popular en una determinada región donde la designación del artículo sería obtenida de la tabla de artículos, la popularidad (cantidad de veces que ese artículo ha sido vendido) vendría de la tabla de pedidos y la región estaría comprendida obviamente en la tabla clientes.
Este tipo de organización basada en múltiples tablas conectadas nos permite trabajar con tablas mucho más manejables a la vez que nos evita copiar el mismo campo en varios sitios ya que podemos acceder a él a partir de una simple llamada a la tabla que lo contiene.
podemos realizar fácilmente selecciones sobre varias tablas. Definamos antes de nada las diferentes tablas y campos que vamos a utilizar en nuestros ejemplos:

sql


Estas tablas pueden ser utilizadas simultáneamente para extraer informaciones de todo tipo. Supongamos que queremos enviar un mailing a todos aquellos que hayan realizado un pedido ese mismo día. Podríamos escribir algo así:

Select clientes.apellidos, clientes.email From clientes,pedidos Where pedidos.fecha like '25/02/00' And pedidos.id_cliente= clientes.id_cliente

Como puede verse esta vez, después de la cláusula From, introducimos el nombre de las dos tablas de donde sacamos las informaciones. Además, el nombre de cada campo va precedido de la tabla de provenencia separados ambos por un punto. En los campos que poseen un nombre que solo aparece en una de las tablas, no es necesario especificar su origen aunque a la hora de leer la sentencia puede resultar más claro el precisarlo. En este caso el campo fecha podría haber sido designado como "fecha" en lugar de "pedidos.fecha".
Veamos otro ejemplo más para consolidar estos nuevos conceptos. Esta vez queremos ver el título del libro correspondiente a cada uno de los pedidos realizados:

Select pedidos.id_pedido, articulos.titulo From pedidos, articulos Where pedidos.id_articulo=articulos.id_articulo

En realidad la filosofía continua siendo la misma que para la consulta de una única tabla.

Además de los criterios hasta ahora explicados para realizar las consultas en tablas, SQL permite también aplicar un conjunto de funciones predefinidas. Estas funciones, aunque básicas, pueden ayudarnos en algunos momentos a expresar nuestra selección de una manera más simple sin tener que recurrir a operaciones adicionales por parte del script que estemos ejecutando.

Algunas de estas funciones son representadas en la tabla siguiente :

consulta


Dado que el campo de la función no existe en la base de datos, sino que lo estamos generando virtualmente, esto puede crear inconvenientes cuando estamos trabajando con nuestros scripts a la hora de tratar su valor y su nombre de campo. Es por ello que el valor de la función ha de ser recuperada a partir de un alias que nosotros especificaremos en la sentencia SQL a partir de la instrucción AS. La cosa podría quedar así:

Select Sum(total) As suma_pedidos From pedidos

A partir de esta sentencia calculamos la suma de los valores de todos los pedidos realizados y almacenamos ese valor en un campo virtual llamado suma_pedidos que podrá ser utilizado como cualquier otro campo por nuestras paginas dinámicas.

Por supuesto, todo lo visto hasta ahora puede ser aplicado en este tipo de funciones de modo que, por ejemplo, podemos establecer condiciones con la cláusula Where construyendo sentencias como esta:

Select Sum(cantidad) as suma_articulos From pedidos Where id_articulo=6

Esto nos proporcionaría la cantidad de ejemplares de un determinado libro que han sido vendidos.

Otra propiedad interesante de estas funciones es que permiten realizar operaciones con varios campos dentro de un mismo paréntesis:

Select Avg(total/cantidad) From pedidos

Esta sentencia da como resultado el precio medio al que se están vendiendo los libros. Este resultado no tiene por qué coincidir con el del precio medio de los libros presentes en el inventario, ya que, puede ser que la gente tenga tendencia a comprar los libros caros o los baratos:

Select Avg(precio) as precio_venta From articulos

Una cláusula interesante en el uso de funciones es Group By. Esta cláusula nos permite agrupar registros a los cuales vamos a aplicar la función. Podemos por ejemplo calcular el dinero gastado por cada cliente:

Select id_cliente, Sum(total) as suma_pedidos From pedidos Group By id_cliente

O saber el numero de pedidos que han realizado:

Select id_cliente, Count(*) as numero_pedidos From pedidos Group By id_cliente

Las posibilidades como vemos son numerosas y pueden resultar prácticas. Todo queda ahora a disposición de nuestras ocurrencias e imaginación.

Consultas de Acción

Las consultas de acción son aquellas que no devuelven ningún registro, son las encargadas de acciones como añadir, borrar y modificar registros. Tanto las sentencias de actualización como las de borrado desencaderán (según el motor de datos) las actualizaciones en cascada, borrados en cascada, restricciones y valores por defecto definidos para los diferentes campos o tablas afectadas por la consulta.

DELETE


Crea una consulta de eliminación que elimina los registros de una o más tablas listadas en la cláusula FROM que satisfagan la cláusula WHERE. Esta consulta elimina los registros completos, no es posible eliminar el contenido de algún campo en concreto. Su sintaxis es:

DELETE FROM Tabla WHERE criterio

Una vez que se han eliminado los registros utilizando una consulta de borrado, no puede deshacer la operación. Si desea saber qué registros se eliminarán, primero examine los resultados de una consulta de selección que utilice el mismo criterio y después ejecute la consulta de borrado. Mantenga copias de seguridad de sus datos en todo momento. Si elimina los registros equivocados podrá recuperarlos desde las copias de seguridad.

otro ejemplo:

DELETE FROM Empleados WHERE Cargo = 'Vendedor'

INSERT



Agregar un registro en una tabla. Se la conoce como una consulta de datos añadidos. Esta consulta puede ser de dos tipo: Insertar un único registro ó Insertar en una tabla los registros contenidos en otra tabla.

Para insertar un único Registro:

INSERT INTO Tabla (campo1, campo2, ..., campoN) VALUES (valor1, valor2, ..., valorN)

Esta consulta graba en el campo1 el valor1, en el campo2 y valor2 y así sucesivamente.

Para seleccionar registros e insertarlos en una tabla nueva:

SELECT campo1, campo2, ..., campoN INTO nuevatabla FROM tablaorigen [WHERE criterios]

Se pueden utilizar las consultas de creación de tabla para archivar registros, hacer copias de seguridad de las tablas o hacer copias para exportar a otra base de datos o utilizar en informes que muestren los datos de un periodo de tiempo concreto. Por ejemplo, se podría crear un informe de Ventas mensuales por región ejecutando la misma consulta de creación de tabla cada mes.

Para insertar Registros de otra Tabla:

INSERT INTO Tabla [IN base_externa] (campo1, campo2, , campoN) SELECT TablaOrigen.campo1, TablaOrigen.campo2,,TablaOrigen.campoN FROM Tabla Origen

En este caso se seleccionarán los campos 1,2,..., n de la tabla origen y se grabarán en los campos 1,2,.., n de la Tabla. La condición SELECT puede incluir la cláusula WHERE para filtrar los registros a copiar. Si Tabla y Tabla Origen poseen la misma estructura podemos simplificar la sintaxis a:

INSERT INTO Tabla SELECT Tabla Origen.* FROM Tabla Origen

De esta forma los campos de Tabla Origen se grabarán en Tabla, para realizar esta operación es necesario que todos los campos de Tabla Origen estén contenidos con igual nombre en Tabla. Con otras palabras que Tabla posea todos los campos de Tabla Origen (igual nombre e igual tipo).

En este tipo de consulta hay que tener especial atención con los campos contadores o autonuméricos puesto que al insertar un valor en un campo de este tipo se escribe el valor que contenga su campo homólogo en la tabla origen, no incrementándose como le corresponde.

UPDATE


Crea una consulta de actualización que cambia los valores de los campos de una tabla especificada basándose en un criterio específico. Su sintaxis es:

UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, CampoN=ValorN WHERE Criterio

UPDATE es especialmente útil cuando se desea cambiar un gran número de registros o cuando éstos se encuentran en múltiples tablas. Puede cambiar varios campos a la vez.


Bueno esto a sido todo, espero que les sirva.