Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


PROGRAMACION SQL - BASICO Y EJEMPLOS, Monografías, Ensayos de Programación del Sistema

PROGRAMACION SQL - BASICO Y EJEMPLOS

Tipo: Monografías, Ensayos

2018/2019

Subido el 22/09/2021

henryjrruiz92
henryjrruiz92 🇪🇨

1 / 90

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Tu mejor ayuda para aprender a hacer webs
www.desarrolloweb.com
Tutorial de SQL
Aprende a utilizar el estándar utilizado para la consulta de bases de datos. Seleccionar, crear,
modificar y borrar registros. Todo lo que necesitas para la creación de tus páginas dinámicas.
Autores del manual
Este manual ha sido realizado por los siguientes colaboradores de DesarrolloWeb.com:
Rubén Alvarez
Redactor de DesarrolloWeb.com
http://www.desarrolloweb.com
(13 capítulos)
Miguel Angel Alvarez
Director de DesarrolloWeb.com
http://www.desarrolloweb.com
(1 capítulo)
Agustin Jareño
(1 capítulo)
Claudio
http://personal.lobocom.es/claudio/
(17 capítulos)
Pol Salvat
http://www.mistrucos.net
(3 capítulos)
Jonathan Soriano Folch
(1 capítulo)
Sara Alvarez
Equipo DesarrolloWeb.com
http://www.desarrolloweb.com
(1 capítulo)
Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/
© Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorización.
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a

Vista previa parcial del texto

¡Descarga PROGRAMACION SQL - BASICO Y EJEMPLOS y más Monografías, Ensayos en PDF de Programación del Sistema solo en Docsity!

www.desarrolloweb.com

Tutorial de SQL Aprende a utilizar el estándar utilizado para la consulta de bases de datos. Seleccionar, crear, modificar y borrar registros. Todo lo que necesitas para la creación de tus páginas dinámicas. Autores del manual

Este manual ha sido realizado por los siguientes colaboradores de DesarrolloWeb.com:

Rubén Alvarez

Redactor de DesarrolloWeb.com http://www.desarrolloweb.com (13 capítulos)

Miguel Angel Alvarez

Director de DesarrolloWeb.com http://www.desarrolloweb.com (1 capítulo)

Agustin Jareño

(1 capítulo)

Claudio

http://personal.lobocom.es/claudio/ (17 capítulos)

Pol Salvat

http://www.mistrucos.net (3 capítulos)

Jonathan Soriano Folch

(1 capítulo)

Sara Alvarez

Equipo DesarrolloWeb.com http://www.desarrolloweb.com (1 capítulo) Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

Parte 1:

Introducción

Mostramos que es el lenguaje SQL, y los tipos de datos y sentencias que podemos encontrarnos a lo largo de este manual. 1.1.- Qué es SQL

Qué es y para qué sirve el SQL

Las aplicaciones en red son cada día más numerosas y versátiles. En muchos casos, el esquema básico de operación es una

serie de scripts que rigen el comportamiento de una base de datos.

Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente

complicada a gestionar de no ser por la existencia de estándares que nos permiten el realizar las operaciones básicas de una

forma universal.

Es de eso de lo que trata el Structured Query Language que no es mas que un lenguaje estándar de comunicación con bases

de datos. Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o

PHP) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...).

El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En efecto, determinadas bases de

datos implementan funciones específicas que no tienen necesariamente que funcionar en otras.

Aparte de esta universalidad, el SQL posee otras dos características muy apreciadas. Por una parte, presenta una potencia y

versatilidad notables que contrasta, por otra, con su accesibilidad de aprendizaje.

El manual de SQL de desarrolloweb pretende dar a conocer las operaciones básicas que se pueden realizar con SQL y que

tienen una aplicación directa con la creación de aplicaciones en red sin profundizar más de lo estrictamente necesario.

Buscamos con ello ofrecer al webmaster un manual de referencia práctico y aplicado.

Artículo por Rubén Alvarez

1.2.- Tipos de campo

Diferentes tipos campos empleados en las bases de datos

Como sabemos una base de datos esta compuesta de tablas donde almacenamos registros catalogados en función de

distintos campos (características).

Un aspecto previo a considerar es la naturaleza de los valores que introducimos en esos campos. Dado que una base de

datos trabaja con todo tipo de informaciones, es importante especificarle qué tipo de valor le estamos introduciendo de

manera a, por un lado, facilitar la búsqueda posteriormente y por otro, optimizar los recursos de memoria.

Cada base de datos introduce tipos de valores de campo que no necesariamente están presentes en otras. Sin embargo, existe

un conjunto de tipos que están representados en la totalidad de estas bases. Estos tipos comunes son los siguientes:

Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

CURRENCY 8 bytes Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807. DATETIME 8 bytes Un valor de fecha u hora entre los años 100 y 9999. SINGLE 4 bytes Un valor en punto flotante de precisión simple con un rango de - 3.4028231038 a -1.40129810-45 para valores negativos, 1.40129810- 45 a 3.4028231038 para valores positivos, y 0. DOUBLE 8 bytes Un valor en punto flotante de doble precisión con un rango de - 1.7976931348623210308 a -4.9406564584124710-324 para valores negativos, 4.9406564584124710-324 a 1.7976931348623210308 para valores positivos, y 0. SHORT 2 bytes Un entero corto entre -32,768 y 32,767. LONG 4 bytes Un entero largo entre -2,147,483,648 y 2,147,483,647. LONGTEXT 1 byte por carácter De cero a un máximo de 1.2 gigabytes. LONGBINARY Según se necesite De cero 1 gigabyte. Utilizado para objetos OLE. TEXT 1 byte por carácter De cero a 255 caracteres.

La siguiente tabla recoge los sinónimos de los tipos de datos definidos:

Tipo de Dato Sinónimos BINARY VARBINARY BIT BOOLEAN LOGICAL LOGICAL YESNO BYTE INTEGER Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

COUNTER AUTOINCREMENT CURRENCY MONEY DATETIME DATE TIME TIMESTAMP SINGLE FLOAT IEEESINGLE REAL DOUBLE FLOAT FLOAT IEEEDOUBLE NUMBER NUMERIC SHORT INTEGER SMALLINT LONG INT INTEGER INTEGER LONGBINARY GENERAL OLEOBJECT LONGTEXT LONGCHAR MEMO NOTE TEXT ALPHANUMERIC CHAR - CHARACTER STRING - VARCHAR VARIANT (No Admitido) VALUE

Artículo por Claudio

Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

Concede privilegios de acceso a usuarios.

Suprime privilegios de acceso a usuarios

Finaliza la transacción actual.

Aborata la transacción actual.

PLSQL SQL Programático

DECLARE

OPEN

FETCH

CLOSE

Define un cursor para una consulta.

Abre un cursor para recuperar resultados de consulta.

Recupera una fila de resultados de consulta.

Cierra un cursor.

1.4.1.- Componentes sintácticos

La mayoría de sentencias SQL tienen la misma estructura.

Todas comienzan por un verbo (select, insert, update, create), a continuación le sigue una o más clausulas que nos dicen los

datos con los que vamos a operar (from, where), algunas de estas son opcionales y otras obligatorias como es el caso del

from.

Artículo por Sara Alvarez

Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

Parte 2:

Inserción y modificación

de datos

Vemos como insertar, modificar o borrar datos en nuestras tablas SQL. 2.1.- Creación de tablas

Explicamos la manera de crear tablas a partir de sentencias SQL. Definimos los tipo de campos

principales y la forma de especificar los índices.

En general, la mayoría de las bases de datos poseen potentes editores de bases que permiten la creación rápida y sencilla de

cualquier tipo de tabla con cualquier tipo de formato.

Sin embargo, una vez la base de datos está alojada en el servidor, puede darse el caso de que queramos introducir una nueva

tabla ya sea con carácter temporal (para gestionar un carrito de compra por ejemplo) o bien permanente por necesidades

concretas de nuestra aplicación.

En estos casos, podemos, a partir de una sentencia SQL, crear la tabla con el formato que deseemos lo cual nos puede

ahorrar más de un quebradero de cabeza.

Este tipo de sentencias son especialmente útiles para bases de datos como Mysql, las cuales trabajan directamente con

comandos SQL y no por medio de editores.

Para crear una tabla debemos especificar diversos datos: El nombre que le queremos asignar, los nombres de los campos y

sus características. Además, puede ser necesario especificar cuáles de estos campos van a ser índices y de qué tipo van a

serlo.

La sintaxis de creación puede variar ligeramente de una base de datos a otra ya que los tipos de campo aceptados no están

completamente estandarizados.

A continuación os explicamos someramente la sintaxis de esta sentencia y os proponemos una serie de ejemplos prácticos:

2.1.1.- Sintaxis Create Table nombre_tabla ( nombre_campo_1 tipo_ nombre_campo_2 tipo_ nombre_campo_n tipo_n Key(campo_x,...) )

Pongamos ahora como ejemplo la creación de la tabla pedidos que hemos empleado en capítulos previos:

Create Table pedidos ( id_pedido INT(4) NOT NULL AUTO_INCREMENT, id_cliente INT(4) NOT NULL, id_articulo INT(4)NOT NULL, Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

BIT o BOOLEAN 1 Almacenan un bit de información (verdadero o falso)

Artículo por Rubén Alvarez

2.2.- Estructuras de las tablas en SQL

Una base de datos en un sistema relacional está compuesta por un conjunto de tablas, que corresponden

a las relaciones del modelo relacional.

En la terminología usada en SQL no se alude a las relaciones, del mismo modo que no se usa el término atributo, pero sí la

palabra columna, y no se habla de tupla, sino de línea.

2.2.1.- Creación de Tablas Nuevas CREATE TABLE tabla ( campo1 tipo (tamaño) índice1, campo2 tipo (tamaño) índice2,... , índice multicampo , ... )

En donde:

tabla Es el nombre de la tabla que se va a crear. campo campo Es el nombre del campo o de los campos que se van a crear en la nueva tabla. La nueva tabla debe contener, al menos, un campo. tipo Es el tipo de datos de campo en la nueva tabla. (Ver Tipos de Datos) tamaño Es el tamaño del campo sólo se aplica para campos de tipo texto. índice índice Es una cláusula CONSTRAINT que define el tipo de índice a crear. Esta cláusula en opcional. índice multicamp os Es una cláusula CONSTRAINT que define el tipo de índice multicampos a crear. Un índice multicampo es aquel que está indexado por el contenido de varios campos. Esta cláusula en opcional. CREATE TABLE Empleados ( Nombre TEXT (25), Apellidos TEXT (50) )

(Crea una nueva tabla llamada Empleados con dos campos, uno llamado Nombre de tipo texto y longitud 25 y otro llamado

apellidos con longitud 50).

CREATE TABLE

Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

Empleados ( Nombre TEXT (10), Apellidos TEXT, FechaNacimiento DATETIME ) CONSTRAINT IndiceGeneral UNIQUE ( Nombre, Apellidos, FechaNacimiento )

(Crea una nueva tabla llamada Empleados con un campo Nombre de tipo texto y longitud 10, otro con llamado Apellidos

de tipo texto y longitud predeterminada (50) y uno más llamado FechaNacimiento de tipo Fecha/Hora. También crea un

índice único - no permite valores repetidos - formado por los tres campos.)

CREATE TABLE

Empleados ( IdEmpleado INTEGER CONSTRAINT IndicePrimario PRIMARY, Nombre TEXT, Apellidos TEXT, FechaNacimiento DATETIME )

(Crea una tabla llamada Empleados con un campo Texto de longitud predeterminada (50) llamado Nombre y otro igual

llamado Apellidos, crea otro campo llamado FechaNacimiento de tipo Fecha/Hora y el campo IdEmpleado de tipo entero el

que establece como clave principal.)

2.2.2.- La cláusula CONSTRAINT

Se utiliza la cláusula CONSTRAINT en las instrucciones ALTER TABLE y CREATE TABLE para crear o eliminar índices.

Existen dos sintaxis para esta cláusula dependiendo si desea Crear ó Eliminar un índice de un único campo o si se trata de

un campo multiíndice. Si se utiliza el motor de datos de Microsoft, sólo podrá utilizar esta cláusula con las bases de datos

propias de dicho motor. Para los índices de campos únicos:

CONSTRAINT nombre {PRIMARY KEY | UNIQUE | REFERENCES tabla externa [(campo externo1, campo externo2)]}

Para los índices de campos múltiples:

CONSTRAINT nombre {PRIMARY KEY (primario1[, primario2 [,...]]) | UNIQUE (único1[, único2 [, ...]]) | FOREIGN KEY (ref1[, ref2 [,...]]) REFERENCES tabla externa [(campo externo1 ,campo externo2 [,...])]}

En donde:

nombre Es el nombre del índice que se va a crear. primarioN Es el nombre del campo o de los campos que forman el índice primario. únicoN Es el nombre del campo o de los campos que forman el índice de clave única. refN Es el nombre del campo o de los campos que forman el índice externo (hacen referencia a campos de otra tabla). tabla externa Es el nombre de la tabla que contiene el campo o los campos referenciados en refN Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

(valor predeterminado) y DESC un orden descendente. UNIQUE Indica que el índice no puede contener valores duplicados. DISALLOW NULL Prohibe valores nulos en el índice IGNORE NULL Excluye del índice los valores nulos incluidos en los campos que lo componen. PRIMARY Asigna al índice la categoría de clave principal, en cada tabla sólo puede existir un único índice que sea "Clave Principal". Si un índice es clave principal implica que no puede contener valores nulos ni duplicados.

En el caso de ACCESS, se puede utilizar CREATE INDEX para crear un pseudo índice sobre una tabla adjunta en una

fuente de datos ODBC tal como SQL Server que no tenga todavía un índice. No necesita permiso o tener acceso a un

servidor remoto para crear un pseudo índice, además la base de datos remota no es consciente y no es afectada por el

pseudo índice. Se utiliza la misma sintaxis para las tablas adjuntas que para las originales. Esto es especialmente útil para

crear un índice en una tabla que sería de sólo lectura debido a la falta de un índice.

CREATE INDEX

MiIndice ON Empleados (Prefijo, Telefono) (Crea un índice llamado MiIndice en la tabla empleados con los campos Prefijo y Teléfono.) CREATE UNIQUE INDEX MiIndice ON Empleados (IdEmpleado) WITH DISALLOW NULL

(Crea un índice en la tabla Empleados utilizando el campo IdEmpleado, obligando que el campo IdEmpleado no contenga

valores nulos ni repetidos.)

2.2.4.- Modificar el Diseño de una Tabla

Modifica el diseño de una tabla ya existente, se pueden modificar los campos o los índices existentes. Su sintaxis es:

ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamaño)] [CONSTRAINT índice] CONSTRAINT índice multicampo} | DROP {COLUMN campo I CONSTRAINT nombre del índice}}

En donde:

tabla Es el nombre de la tabla que se desea modificar. campo Es el nombre del campo que se va a añadir o eliminar. tipo Es el tipo de campo que se va a añadir. Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

tamaño Es el tamaño del campo que se va a añadir (sólo para campos de texto). índice Es el nombre del índice del campo (cuando se crean campos) o el nombre del índice de la tabla que se desea eliminar. índice multicamp o Es el nombre del índice del campo multicampo (cuando se crean campos) o el nombre del índice de la tabla que se desea eliminar. Operación Descripción ADD COLUMN Se utiliza para añadir un nuevo campo a la tabla, indicando el nombre, el tipo de campo y opcionalmente el tamaño (para campos de tipo texto). ADD Se utiliza para agregar un índice de multicampos o de un único campo. DROP COLUMN Se utiliza para borrar un campo. Se especifica únicamente el nombre del campo. DROP Se utiliza para eliminar un índice. Se especifica únicamente el nombre del índice a continuación de la palabra reservada CONSTRAINT. ALTER TABLE Empleados ADD COLUMN Salario CURRENCY (Agrega un campo Salario de tipo Moneda a la tabla Empleados.) ALTER TABLE Empleados DROP COLUMN Salario (Elimina el campo Salario de la tabla Empleados.) ALTER TABLE Pedidos ADD CONSTRAINT RelacionPedidos FOREIGN KEY (IdEmpleado) REFERENCES Empleados (IdEmpleado) (Agrega un índice externo a la tabla Pedidos. El índice externo se basa en el campo IdEmpleado y se refiere al campo IdEmpleado de la tabla Empleados. En este ejemplo no es necesario indicar el campo junto al nombre de la tabla en la cláusula REFERENCES, pues ID_Empleado es la clave principal de la tabla Empleados.) ALTER TABLE Pedidos Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

2.4.- Borrar un registro

Sintaxis y ejemplos para borrar registros en una tabla

Para borrar un registro nos servimos de la instrucción Delete. En este caso debemos especificar cual o cuales son los

registros que queremos borrar. Es por ello necesario establecer una selección que se llevara a cabo mediante la cláusula

Where.

La forma de seleccionar se verá detalladamente en capítulos posteriores. Por ahora nos contentaremos de mostrar cuál es el

tipo de sintaxis utilizado para efectuar estas supresiones:

Delete From nombre_tabla Where condiciones_de_selección Nota: Si deseamos practicar con una base de datos que está vacía primero debemos crear las tablas que vamos a llenar. Las tablas también se crean con sentencias SQL y aprendemos a hacerlo en el último capítulo.

Si queremos por ejemplo borrar todos los registros de los clientes que se llamen Perico lo haríamos del siguiente modo:

Delete From clientes Where nombre='Perico'

Hay que tener cuidado con esta instrucción ya que si no especificamos una condición con Where, lo que estamos haciendo

es borrar toda la tabla :

Delete From clientes

Artículo por Rubén Alvarez

2.5.- Actualizar un registro

Sintaxis y ejemplos para editar registros en una tabla

Update es la instrucción que nos sirve para modificar nuestros registros. Como para el caso de Delete, necesitamos

especificar por medio de Where cuáles son los registros en los que queremos hacer efectivas nuestras modificaciones.

Además, obviamente, tendremos que especificar cuáles son los nuevos valores de los campos que deseamos actualizar. La

sintaxis es de este tipo:

Update nombre_tabla Set nombre_campo1 = valor_campo1, nombre_campo2 = valor_campo2,... Where condiciones_de_selección

Un ejemplo aplicado:

Update clientes Set nombre='José' Where nombre='Pepe'

Mediante esta sentencia cambiamos el nombre Pepe por el de José en todos los registros cuyo nombre sea Pepe.

Aquí también hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario, modificaríamos todos los registros de

nuestra tabla.

Artículo por Rubén Alvarez

Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

Parte 3:

Búsqueda y selección de

datos en SQL

Estudiamos a fondo todo lo relacionado con la sentencia select dentro del lenguaja SQL. 3.1.- Selección de tablas I

Cómo realizar selecciones eficientemente. Ejemplos prácticos.

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&iacutea 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 Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

Like Selecciona los registros cuyo valor de campo se asemeje, no teniendo en cuenta mayúsculas y minúsculas. In y Not In Da un conjunto de valores para un campo para los cuales la condición de selección es (o no) valida Is Null y Is Not Null Selecciona aquellos registros donde el campo especificado esta (o no) vacío. Between... And Selecciona los registros comprendidos en un intervalo Distinct Selecciona los registros no coincidentes Desc Clasifica los registros por orden inverso Comodines

  • Sustituye a todos los campos % Sustituye a cualquier cosa o nada dentro de una cadena _ Sustituye un solo carácter dentro de una cadena

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

El operador In , lo veremos más adelante, es muy práctico para consultas en varias tablas. Para casos en una sola tabla es

empleado del siguiente modo:

Select * From clientes Where poblacion In ('Madrid','Barcelona','Valencia')

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

Artículo por Rubén Alvarez

Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/

www.desarrolloweb.com

3.3.- Selección de tablas III

Cómo realizar selecciones sobre varias tablas. Ejemplos prácticos basados en una aplicación de e-

comercio.

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.

En este capítulo veremos como, sirviéndonos de lo aprendido hasta ahora, podemos realizar fácilmente selecciones sobre

varias tablas. Definamos antes de nada las diferentes tablas y campos que vamos a utilizar en nuestros ejemplos:

Tabla de clientes Nombre campo Tipo campo id_cliente Numérico entero nombre Texto apellidos Texto direccion Texto poblacion Texto codigopostal Texto telefono Numérico entero email Texto Tuorial de SQL: http://www.desarrolloweb.com/manuales/9/