Você está na página 1de 49

Uso de sentencias SQL para la definicin y

manipulacin del modelo de base de datos en


MySQL
INTRODUCCIN.............................................................................2
1. GENERALIDADES MYSQL.............................................................3
2. LA BASE DE DATOS CITAS.........................................................7
3. CREACIN DE LA ESTRUCTURA DE ALMACENAMIENTO.................. 10
4. MODIFICACIN DE OBJETOS CREADOS....................................... 19
5. MODIFICACIN DE REGISTROS..................................................23
6. CONSULTA DE REGISTROS.........................................................29
6.1. Consultas bsicas............................................................. 32
6.2. Alias de columnas............................................................. 35
6.3. La clusula WHERE...........................................................36
6.4. Clusula ORDER BY........................................................... 38
6.5. Visualizar datos de diferentes tablas.................................... 40
6.6. Subconsultas.................................................................... 45
GLOSARIO...................................................................................47
RECURSOS BIBLIOGRFICOS.........................................................48

1
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Introduccin

Un Sistema de Gestin de Bases de Datos (SGBD),


es un conjunto de programas que permiten el
almacenamiento, modificacin y extraccin de la
informacin en una base de datos, lo que permite el
almacenamiento, manipulacin y consulta de datos
pertenecientes a una base de datos.

Hasta la fecha, se ha avanzado en varias fases respecto


al manejo de bases de datos; en este momento
vamos a centrar nuestra atencin en la Construccin
de sentencias SQL para la definicin y manipulacin
del modelo de base de datos, para esta construccin
de sentencias, este tutorial est enfocado en el uso
del Sistema manejador de Base de datos MySQL.

2
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

1. Generalidades MySQL
La herramienta a utilizar es un Sistema Manejador de Bases de Datos
libre, gratuito, de los ms utilizados y que est disponible para varios
sistemas operativos llamado MySQL.

Antes de iniciar con el proceso de creacin de tablas, es fundamental


tener claro la estructura de la Base de datos, esto significa, que se debe
tener ya el nombre tanto de las tablas, como el de los campos, el tipo de
datos que se van a almacenar en cada uno de los campos y el mximo de
caracteres permitidos.

Para ello se han definido estndares en cuanto a tipos de datos y tamaos


mximos permitidos para los mismos. En este momento, el sistema
manejador de bases de datos seleccionado para esta prctica es MySQL,
el cual ya debe estar instalado en su computador, en dado caso que no
est instalado, puede revisar el video-tutorial sobre la instalacin de este
servicio.

Tipos de datos
Nmeros
a. Si en la base de Datos se necesita almacenar nmeros con o sin
decimales, se debe pensar en un tipo de dato Numrico, los cuales tienen
su categora dependiendo del valor como lo muestra la siguiente tabla:

3
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Ejemplo

Si en la base de Datos necesito almacenar las edades de las personas,


cuyo valor mximo ser 100, la opcin ms adecuada para el tipo de dato
sera TINYINT.
Otro ejemplo, si estoy sistematizando las notas de un colegio y la definitiva
se debe dar en decimales y el valor mximo es 10,00, la opcin ms
adecuada sera FLOAT.

Caracteres
b. Si en la base de Datos se necesita almacenar caracteres, se debe pensar
en un tipo de dato Texto, los cuales tienen su categora dependiendo de
la cantidad de caracteres a almacenar; los tipos de dato texto son los
siguientes:

4
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Ejemplo

Se present en este material que el campo PacIdentificacion se declar


como CHAR, con tamao 10, porque los documentos de identidad tienen
entre 8 y 10 caracteres (p.e 63590910 o los nuevos documentos son
1098765432)
Para almacenar nombres, direcciones e informacin con mximo 100
caracteres se recomienda el tipo VARCHAR, en la tabla anterior el campo
PacNombres se declar varchar(50), porque los nombres tienen diferente
cantidad de caracteres.
Si lo que se necesita es almacenar grandes cantidades de caracteres
como descripciones, observaciones, comentarios en este caso se tomara
TEXT o BLOB teniendo en cuenta que los tipos BLOB distinguen entre
maysculas y minsculas.

Fechas
c. Si en la base de Datos se necesita almacenar fechas, se debe pensar
en un tipo de dato Date, los cuales tienen su categora dependiendo del

5
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

formato que se desee almacenar, estos tipos de datos son los siguientes:

Ejemplo
Se necesita llevar el control de acceso (con horas y segundos) de los
usuarios, al sistema de Informacin de la DIAN; como este ejemplo nos
exige controlar horas y segundos lo recomendable es tener un campo
llamado FechaIngresuUsuario de tipo DATETIME.

Listas
d. Para utilizar listas de valores, tambin se puede declarar campos cuyo
contenido formen parte de una serie de opciones, para esta declaracin
se utiliza ENUM.
Un ejemplo seria:
AutomovilMarca (ENUM(Chevrolet, Renault, Kia ) )

6
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Adems de los tipos de Datos, tambin es necesario conocer algunos


modificadores que se utilizan para el manejo de los campos, dichos
modificadores se presentan a continuacin:

2. La base de datos Citas

En este tutorial se presenta como hacer uso del motor de Base de Datos
MySQL para crear una base de datos. Se utilizar para esto la Base de
Datos Citas que se ha definido en otros elementos y que contiene cinco
tablas: Pacientes, Medicos, Consultorios, Citas y Tratamientos, como se
presenta en el diagrama.

Se considera importante presentar la estructura de la base de datos


detallando las tablas, tipos de datos de los campos y modificadores a
utilizar. Con el fin de que pueda proceder a su creacin usando SQL como
Lenguaje de Definicin de Datos (DDL).

7
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

8
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

9
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

3. Creacin de la estructura de almacenamiento


Para iniciar el proceso de Definicin de Datos en MySQL, se debe realizar
el siguiente procedimiento:
Abrir el bloc de notas del equipo para digitar cada una de las instrucciones
del Lenguaje de Definicin de Datos, esto en pro de ir construyendo el
script de la base de Datos, una vez digitada la instruccin copiarla y
pegarla en el espacio de trabajo de MySQL, el cual aparece cuando se
inicializa el servicio.

10
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Iniciar el Servicio, como se explic en video-tutorial sobre instalacin


de MySQL.

C:\Program Files (x86)\MySQL Server 5.0\bin\mysql.exe


Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.2.67-community-nt MySQL Community Edition (GPL)
Type help; or \h for help. Type \c to clear the buffer.
mysql
El password debe ser el mismo que se configur al momento de la instalacin

Creacin de la base de datos


Como el servicio ya est inicializado, se crea la Base de Datos, para nuestro
ejemplo, CITAS.
La instruccin es:
create database nombre_basedatos;
Siempre debe terminar con punto y coma (;)

Para crear todas las tablas debemos establecer CITAS como base de
datos predefinida

11
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

La instruccin es:
use nombre_basedatos;

Por seguridad se debe verificar si la base de datos fue creada


La instruccin es:
show databases;

12
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Modificaciones a las Tablas


Mdicos
Ya con CITAS como base de datos predeterminada, se procede a crear
las respectivas tablas, iniciamos con la tabla MEDICOS, su estructura
de datos es la siguiente:

La instruccin es:

create table nombreTabla (


nombrecampo1 tipodatos(tamao) modificador,
nombrecampo2 tipodatos(tamao) modificador,
....
primary key (nombrecampo1)
);

13
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Por seguridad se debe verificar si la tabla fue creada


La instruccin es:
show tables from base_datos;

Ahora se verifica la estructura de la tabla


La instruccin es:
describe nombre_tabla;

14
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Pacientes
Se va a crear la tabla PACIENTES, como puede observar esta tabla
tiene un modificador nuevo para trabajar (ENUM), los pasos para crear
esta tabla son:

a. Inicializar el servicio, en el caso que vaya a empezar su sesin de


trabajo, de lo contrario solo es estar ubicado en la base de datos CITAS
use citas;

b. Digitar la sintaxis para creacin de Tablas

create table nombreTabla (


nombrecampo1 tipodatos(tamao) modificador,
nombrecampo2 enum(x, y),
....
primary key (nombrecampo1)
);

15
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Preferiblemente utilizar los comandos para verificar las tablas de


la base de datos (show tables from citas;) y la estructura de
la tabla recientemente creada.( describe pacientes; )

16
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Consultorios
Se va a realizar la creacin de la tabla CONSULTORIOS, cuya descripcin
es:

Citas
Se va a crear la tabla CITAS, como puede observar esta tabla tiene
unos modificadores nuevos para trabajar y adems esta tabla contiene
llaves forneas, es decir se relacionan datos de otras tablas.

17
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

La sintaxis para crear esta tabla es:

create table nombreTabla (


nombrecampo1 tipodatos(tamao) modificador
nombrecampo2 enum(x, y) default valor,
....
primary key ()
foreign key nombrecampo as references tabla(campo_tabla)
);

18
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

4. Modificacin de objetos creados


El comando utilizado es ALTER TABLE , este comando tiene algunos
atributos que nos permite realizar cambios a una tabla ya creada.

Aunque ALTER TABLE, se convierte en una instruccin muy


verstil para modificar la estructura de la Base de Datos, se
debe tener cuidado con los cambios que se realicen en las tablas
porque pueden afectar la lgica del Sistema.

Para practicar esta instruccin se va a crear la tabla TRATAMIENTOS


cuya estructura inicial es:

19
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

El cdigo y la estructura de la tabla en MySQL,

20
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Se deben realizar ajustes a la tabla de tal modo que al finalizar la tabla


Tratamientos debe quedar de la siguiente manera:

Los cambios que se van a realizar a la tabla TRATAMIENTOS son los


siguientes:

a. Incluir el modificador auto_increment al campo TraNumero.

21
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

b. En este cambio se debe asignar un nuevo nombre al campo, el nombre


inicial es Descripcin y el que se va a asignar es TraDescipicin.

c. Al campo TraFechaInicio se le debe cambiar el Tipo de Dato tiene un


varchar(10) y se le debe asignar un tipo Date.

d. La tabla inicial no tiene el campo TraFechaFin se debe incluir


esta columna en la tabla, dicho campo debe quedar despus del campo
TraFechaInicio.

e. En la tabla inicial se tiene el campo TraTemporal, el cual no es necesario


para el sistema, por lo tanto esta columna se debe eliminar de la Base de
Datos.

22
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

5. Modificacin de registros
Para realizar las operaciones de Insercin de Registros se utiliza la
sentencia INSERT del lenguaje de manipulacin de datos (D.M.L.).
La sentencia INSERT permite incluir los datos en cada uno de los campos
que se tienen en las tablas de la base de datos creada. Se deben tener en
cuenta algunos detalles al momento de utilizar el INSERT INTO:

1. El nombre de las tablas


2. El orden de los campos
3. El tipo de los campos
4. Las Referencias entre tablas
5. La separacin entre los datos
6. La finalizacin de la instruccin.

Al momento de incluir los registros a una tabla, estos se pueden enviar


de manera individual, por grupo de registros o por medio de un archivo
plano. En este material se trabajar inicialmente el envo de un registro
y el de varios registros.

Su sintaxis es:

insert into tabla (campo1, campo2, campo3, campo4,campo5)


values(valor 1,valor 2,valor 3,valor 4, valor 5);

23
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Enviando valores segn el Tipo de Datos


Para los campos de tipo TEXTO el valor va entre comilla sencilla. Por
ejemplo para el campo PacNombres de tipo varchar el dato se enva
Maria Camila.

Para los campos tipo NUMERICO el valor va sin comilla sencilla Por
ejemplo para el campo ConNumero de tipo int el dato se enva 101.

Para los campos tipo DATE el valor va con comilla sencilla y en el


formato exigido por la respectiva clasificacin. Por ejemplo para el
campo PacFechaNacimiento de tipo Date el dato se enva en formato
ao-mes-dia 1980-04-12.

Caso 1
Insertando un Registro a tablas SIN referencias

Para este ejemplo, se incluirn 2 registros a las tablas MEDICOS y


PACIENTES

Realmente el proceso es bastante sencillo, siempre y cuando se respete


la sintaxis. Recordemos la estructura de las dos tablas con las que se va
a trabajar:
Utilizando la instruccin ya presentada:

24
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

insert into tabla (campo1, campo2, campo3, campo4,campo5)


values(valor 1,valor 2,valor 3,valor 4, valor 5);
Insertar un registro a la tabla PACIENTES se realiza de la siguiente forma:

Para insertar un segundo registro se debe repetir la instruccin, solo es


cuestin de cambiar los values, teniendo cuidado de NO repetir en este
caso la misma identificacin del paciente.

25
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Caso 2
Insertando Varios Registros a tablas SIN referencias
En este caso la instruccin INSERT se utiliza en la forma:
insert into tabla (campo1, campo2, campo3, campo4,campo5)
values
(valor 1,valor 2,valor 3,valor 4, valor 5), ------ Valores de registro 1
(valor 1,valor 2,valor 3,valor 4, valor 5), ------ Valores de registro 2
(valor 1,valor 2,valor 3,valor 4, valor 5); ------ Valores de registro 3

Caso 3
Insertando Registros a tablas CON referencias
Para este ejemplo, se incluirn 2 registros a las tablas TRATAMIENTOS
Se pudo observar en los ejemplos de insercin anteriores que el proceso
es bastante sencillo siempre y cuando se respete la sintaxis y se tengan en
cuenta los seis (6) detalles relacionados en la descripcin de la instruccin
INSERT.
Para el caso de las tablas que contienen llaves forneas, es decir campos
de referencia a otras tabas, el nico cuidado que se debe tener para lograr
una insercin exitosa de registros es que se incluyan datos que estn en
la tabla principal. Un ejemplo de esto se da con el campo TraPaciente el

26
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

cual es una llave fornea que hace referencia al campo PacIdentificacion


de la tabla Pacientes, entonces SOLO se le deben enviar datos que ya se
hayan incluido en el campo PacIdentificacion de la tabla pacientes.
Se va a verificar los registros de la tabla pacientes (select * from
nombre_tabla),

Segn esto los datos que se podran enviar son (37821203, 63502720,
77191950 o 77191957)
Recordemos la estructura de la tabla TRATAMIENTOS, a la cual se le van
a insertar dos registros.

27
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Primero verifique la tabla Pacientes e identifique los datos que se


encuentran en el campo PacIdentificacin (para este ejemplo son
37821203, 63502720, 77191950 o 77191957.
Y ahora la instruccin,

El
campo
TraNumero
de
la
tabla
TRATAMIENTOS
autoincrementable, esto quiere decir que el sistema le va asignando
el valor automticamente y este se va incrementando de 1 en 1, por
ese motivo SE OMITE del listado de campos de la instruccin INSERT,
esto se puede observar en el ejemplo que se acab de presentar.

Por ser un valor que el sistema asigna AUTOMATICAMENTE, TAMPOCO


se relaciona dentro de los values que se incluyen en la sintaxis del
INSERT.

A las tablas con llaves forneas tambin se le pueden insertar varios


registros en una sola instruccin, este proceso se realiza de igual forma
que en el ejemplo de insercin de varios registros, donde un registro se
separa del otro con la coma(;).

28
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

6. Consulta de registros
Para realizar las operaciones de Consulta de Registros se utiliza la sentencia
SELECT del lenguaje de manipulacin de datos (D.M.L.).
La sentencia SELECT permite visualizar la informacin de la Base de
Datos, los datos que se presentan corresponden a una o ms filas de una
tabla o tambin a una o ms filas de una o ms tablas.
La sintaxis bsica es:

Select columna, lista_columnas


From tabla_origen
Esta instruccin, puede ir acompaada de las siguientes clausulas:

Where condicin
Group by columna 1,
Having condicin
Order by columna asc
Order by columna desc
Antes de realizar cualquier consulta a la base de Datos, es muy importante

29
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

tener claro cul o cules son los datos que se requiere visualizar y de que
tabla o tablas se van a extraer.
Para las prcticas que se van a desarrollar en esta sesin se tomarn como
referencia las tablas que se construyeron anteriormente, recordemos la
sintaxis:

use citas;
show tables from citas;
desc nombre_tabla;

Si ha realizado todas las prcticas sugeridas en este Objeto de aprendizaje,


el resultado del sistema ser el siguiente, como lo muestra a prxima
imagen:

30
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

31
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Para los ejercicios que se presentan es necesario que la base de datos


de ejemplo tenga la estructura que se present en la imagen anterior.
En el caso de las tablas que no tengan la estructura presentada, puede
adecuarla utilizando el lenguaje de Definicin de Datos, bien sea para
crear las tablas o para modificar la estructura.
6.1. Consultas bsicas
EJEMPLO 1
Se va a iniciar con una consulta bsica a la tabla pacientes; esta consulta
puede generarse de diferentes maneras dependiendo de los datos que se
necesiten visualizar.
Esta consulta puede requerir TODOS los campos de la tabla, para este
caso se utiliza el comodn * asterisco - todos
La instruccin seria:
Select * From pacientes;

Tambin puede requerirse algn o algunos campos en particular, para este


caso lo que se debe hacer es relacionar el nombre del o de los campos que
desea visualizar.

32
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

EJEMPLO 2
En el presente ejemplo se visualizar SOLO la informacin de los campos
Pacidentificacin, PacNombres y PacApellidos de la tabla pacientes.
Select PacIdentificacion, PacNombres, PacApellidos
From pacientes

EJEMPLO 3
Listar TODA la informacin de los consultorios
Recuerde la estructura de la tabla consultorios (ConNumero, ConNombre),
como esta tabla solo tiene dos campos, se pude utilizar el comodn *, la
instruccin ser:
Select * from consultorios;

33
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

EJEMPLO 4
Generar el listado de TODOS los mdicos de la institucin, el listado debe
visualizar su identificacin junto con los nombres y apellidos
Antes de definir la sintaxis, se va a verificar los campos que tiene la tabla
mdicos, estos son MedIdentificacion, MedNombres, MedApellidos
Para este caso se puede utilizar la siguiente instruccin:
Con el comodn *
Select * from medicos;

Esta consulta tambin se podra realizar relacionando los campos


identificacin, nombres y apellidos segn el requerimiento presentado

Select

MedIdentificacion, MedNombres, MedApellidos

from medicos;

34
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

6.2. Alias de columnas


Los Alias se utilizan para ayudar a la visualizacin del nombre de las
columnas al momento de generar el resultado de la consulta, estos
nombres son temporales.
Una consulta, sin Alias es:

Select

MedIdentificacion, MedNombres, MedApellidos

From medicos

La misma consulta pero configurando la salida por pantalla de los datos


incluidos en la tabla mdicos, de tal forma que la salida sea:

35
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

La columna MedIdentificacion, con ttulo Identificacion.


La columna MedNombres, con ttulo Nombre.
La columna MedApellidos con ttulo Apellidos.
La sintaxis de la consulta utilizando Alias, sera la siguiente:

Select MedIdentificacion as Identificacion,


MedNombres as Nombre ,
MedApellidos as Apellidos
From medicos

En el ejemplo anterior se observa que la salida presenta en la parte superior


de las columnas el nombre de los campos, es decir, MedIdentificacion,
MedNombres, MedApellidos, esto se cambi con el uso del alias, el sistema
tiene como palabra reservada para esta funcin, el termino AS.
6.3. La clausula WHERE
Esta clusula es muy importante porque se utiliza para generar resultados
basados en condiciones. La sintaxis es

Select campo o campos,


From tabla
Where condicin;

36
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Algunos ejemplos de esta clusula podran ser:


Visualizar el nombre y apellido de los pacientes cuyo sexo sea F

Select PacNombres, PacApellidos, Pacsexo


From pacientes
Where Pacsexo=F;

Visualizar el nombre y apellido de los pacientes cuyo sexo sea M


Select PacNombres, PacApellidos, Pacsexo
From pacientes
Where Pacsexo=M;

37
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Visualizar los datos del paciente con identificacin nmero 37821200

Select *
From pacientes
Where PacIdentificacion=37821200;

6.4. Clusula ORDER BY


Esta clusula bsicamente se utiliza para ordenar las filas, este
ordenamiento puede ser de manera ascendente o descendente. Por
defecto el ordenamiento es ascendente, es decir de menor a mayor.
La sintaxis:

Select campo o campos,


From tabla
Order by columna

Algunos ejemplos de esta clusula pueden ser,

Visualizar el los nombres de los pacientes ordenados alfabticamente

38
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Select PacNombres, PacApellidos


From pacientes
Order by PacNombres;

Visualizar los nombres y apellidos de los pacientes ordenados por apellido


alfabticamente

Select PacNombres, PacApellidos


From pacientes
Order by PacApellidos;

39
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Visualizar todos los datos de los pacientes, el reporte debe ordenarse de


mayor a menor por documento de identidad:

Select *
From pacientes
Order by PacIdentificacion asc ;

6.5. Visualizar datos de diferentes tablas


Este tipo de consultas se utiliza frecuentemente, su objetivo es visualizar
datos que estn en diferentes tablas, especficamente los datos de aquellas
que tienen llaves forneas. En este tipo de consultas se vuelven a trabajar
los alias, solo que en esta ocasin el alias es para las tablas y no para las
columnas de una tabla.
EJEMPLO 1
Se tiene el siguiente requerimiento:
Visualizar todos los tratamientos con el nombre y apellido del
paciente.
Para atender el requerimiento se toma como referente la tabla pacientes,
porque es en esta tabla donde est el nombre y apellido de los pacientes
y la tabla tratamientos, que es la tabla donde est la informacin de
los tratamientos. Las tablas mencionadas tienen en comn el campo

40
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

identificacin, en la tabla pacientes se llama PacIdentificacion y en la


tabla tratamientos el campo se llama TraPaciente. La descripcin de las
dos tablas es la siguiente:

La visualizacin de datos de diferentes tablas SIEMPRE debe contener


como mnimo el where donde se compare la llave principal de la tabla
1 con la llave fornea de la tabla 2.

41
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

La Sintaxis es:
Select alias1.campo alias2.campo
From tabla1 alias1 tabla2 alias2
Where alias1.llaveprincipal= alias2.llaveforanea;
Para nuestro ejemplo, la tabla 1 es pacientes y la tabla 2 tratamientos,
la llave principal de la tabla 1 es Pacidentificacion y la llave fornea de la
tabla 2 es Trapaciente, con estos datos la sintaxis quedara de la siguiente
manera:

Select tra.*, pac.PacNombres, pac.PacApellidos


From tratamientos tra, pacientes pac
Where pac.PacIdentificacion = tra.Trapaciente;
El objetivo de esta condicin es asegurar la integridad de los datos entre
tablas. Es decir que el documento de identidad que est registrado en
la tabla tratamientos sea igual al documento de identidad que est
registrado en la tabla.
El sistema como respuesta a esta consulta, visualiza TODOS los campos de
la tabla TRATAMIENTOS (TraNumero, TraFechaAsignado, TraDescripcion,
TraFechaInicio, TraFechafin, TraObservaciones, TraPaciente) y de la tabla
PACIENTES (PacNombres y PacApellidos).

EJEMPLO 2
Si lo que se necesita es cambiar el orden en el que aparecen los datos, se
puede organizar el select de la consulta de manera diferente. En el prximo
ejemplo se tiene el mismo requerimiento, visualizar los tratamientos que
se han realizado los pacientes; se necesita que se visualice el nombre y
apellidos del paciente con los datos de todos los tratamientos que se ha

42
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

realizado.
La sintaxis para esta consulta es la misma del ejemplo anterior, lo que
vara es el orden de los campos en el select.

Select pac.PacNombres, pac.PacApellidos, tra.*


From tratamientos tra, pacientes pac
Where pac.PacIdentificacion = tra.Trapaciente;

Puede observar que el orden de los datos que presenta el sistema es


diferente y est de acuerdo con los parmetros dados en el select.

EJEMPLO 3
Visualizar los tratamientos que se ha realizado el paciente con documento
77191957, del paciente se debe visualizar sus nombres y apellidos

Select

pac.PacNombres, pac.PacApellidos, tra.*

From tratamientos tra, pacientes pac


Where pac.PacIdentificacion
TraPaciente= 77191957;

tra.Trapaciente

and

tra.

En la anterior instruccin se incluy el and tra.TraPaciente= 77191957,


porque el requerimiento es muy puntual SOLO los tratamientos que se ha
realizado el paciente con ese documento de identidad.

43
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

EJEMPLO 4
Visualizar los pacientes que se han realizado un blanqueamiento Dental
como tratamiento; de este tratamiento visualizar las fechas de asignacin,
de inicio y de finalizacin y del paciente visualizar el documento de
identidad, nombre y apellido.
Select pac.PacIdentificacion, pac.PacNombres, pac.PacApellidos,
tra.TraFechaAsignado, tra.TraFechaInicio, tra.TraFechaFin
From tratamientos tra, pacientes pac
Where pac.PacIdentificacion = tra.Trapaciente
TraDescripcion =Blanqueamiento Dental;

and

tra.

Puede observar que para este ejemplo, la condicin en el AND


(Blanqueamiento Dental) est dentro de comillas sencillas, debido a que
el campo es de tipo varchar. Cuando los campos son de tipo numrico la
condicin va sin comillas sencillas.
De los tratamientos que fueron asignados el da 2012-08-17 visualizar los
datos de los pacientes (identificacin, nombres y apellidos), la descripcin
del tratamiento y las observaciones del mismo. Para este requerimiento
la instruccin sera:

Select pac.PacIdentificacion, pac.PacNombres, pac.PacApellidos,


tra.TraDescripcion, tra.TraObservaciones
From tratamientos tra, pacientes pac
Where pac.PacIdentificacion =
TraFechaAsignado =2012-08-17;

tra.Trapaciente

and

tra.

44
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

En el caso que se desee saber los tratamientos de otras fechas, solo es


cuestin de cambiar el dato que est entre comillas sencillas, para este
ejemplo la respuesta seria sin datos porque la tabla TRATAMIENTOS solo
tiene registros con la fecha 2012-08-17
6.6. Subconsultas
Una subconsulta, es una instruccin SELECT anidada dentro de una
instruccin SELECT.
Para estas subconsultas se pueden utilizar las siguientes formas de
sintaxis:
1. Comparacin [ANY | ALL | SOME]: Es una expresin y un
operador de comparacin que compara la expresin con el
resultado de la subconsulta.
2. Expresin [NOT] IN: Es una expresin por la que se busca
el conjunto resultante de la subconsulta.
Para realizar las subconsultas se utiliza una instruccin SELECT, con la
misma sintaxis y reglas que cualquier otra instruccin SELECT, es muy
importante el uso de los parntesis para proporcionar el conjunto del valor
o los valores especificados para evaluar en la expresin de la clusula
WHERE.
Se puede utilizar el predicado ANY o SOME, los cuales son sinnimos, para

45
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

recuperar registros de la consulta principal, que satisfagan la comparacin


con cualquier otro registro recuperado en la subconsulta.
El ejemplo siguiente devuelve todos los productos cuyo precio unitario
es mayor, que el de cualquier producto vendido con un descuento igual o
mayor al 25 por ciento.:
SELECT * FROM Productos WHERE PrecioUnidad > ANY
(SELECT PrecioUnidad FROM DetallePedido WHERE Descuento >= 0
.25);
El predicado ALL se utiliza para recuperar nicamente aquellos registros de
la consulta principal que satisfacen la comparacin con todos los registros
recuperados en la subconsulta.
Si se cambia ANY por ALL en el ejemplo anterior, la consulta devolver
nicamente aquellos productos cuyo precio unitario sea mayor que el de
todos los productos vendidos con un descuento igual o mayor al 25 por
ciento. Esto es mucho ms restrictivo.
El predicado IN se emplea para recuperar nicamente aquellos registros
de la consulta principal para los que algunos registros de la subconsulta
contienen un valor igual. El ejemplo siguiente devuelve todos los productos
vendidos con un descuento igual o mayor al 25 por ciento:

SELECT * FROM Productos WHERE IDProducto IN


(SELECT IDProducto FROM DetallePedido WHERE Descuento >= 0.25);

Muestre el nombre y la edad del estudiante de mayor edad

Select nombre, edad


From estudiante
where edad in (select max (edad) from estudiante);

46
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Glosario

AUTO_INCREMENT: Tipo de Modificador que se utiliza para ir


incrementando automticamente el valor en cada registro.
DDL: Lenguaje de Definicin de Datos.
ENUM: Campos cuyo contenido formen parte de una serie de opciones.
MySQL: Motor de Bases de Datos libre, gratuito que est disponible para
varios sistemas operativos.
NOT NULL: Tipo de identificador utilizado para impide que un campo sea
vaco.
PRIMARY KEY: Tipo de identificador que hace que el campo se considere
la llave primaria de la tabla.
S.Q.L: Structured Query Language - Lenguaje de Consulta Estructurado.
SGBD: Conjunto de programas que permiten el almacenamiento,
modificacin y extraccin de la informacin en una base de datos.
UNIQUE: Tipo de identificador que evita la repeticin de valores.
USE: Palabra utilizada para establecer una base de datos, como base de
datos predefinida.

47
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

Recursos Bibliogrficos
Manual de Referencia MySQL, disponible en
http://dev.mysql.com/doc/refman/5.0/es/index.html

48
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Uso de sentencias SQL para la definicin y manipulacin del modelo de


base de datos en MySQL

CRDITOS
USO DE SENTENCIAS SQL PARA LA DEFINICIN Y MANIPULACIN
DEL MODELO DE BASE DE DATOS EN MYSQL
Desarrollador de contenido
Experto temtico

Magda Milena Garca Gamboa

Asesor Pedaggico

Rafael Neftali Lizcano Reyes

Productor Multimedia

Rafael Ricardo Valds Prada


William Fernando Ramirez

Programador

Daniel Eduardo Martnez Daz

Lder expertos temticos

Ana Yaqueline Chavarro Parra

Lder linea de produccin

Santiago Lozada Garcs

49
FAVA - Formacin en Ambientes Virtuales de Aprendizaje

SENA - Servicio Nacional de Aprendizaje

Você também pode gostar