23
FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Lenguaje Estructurado de consultas SQL Introducción Un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de pro- gramas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, lo que permite el almacenamiento, manipulación y consulta de datos pertenecientes a una base de datos. Estos sistemas proporcionan una interfaz que facilita a los usuarios la rea- lización de diferentes actividades sobre los datos. Sin embargo las tareas de manipulación de datos se realizan a través del denominado Lenguaje Estructurado de consultas (SQL por sus siglas en inglés: Structured Query Language). Este lenguaje proporciona la manera de acceder directamente a los datos no sólo a través de los lenguajes de programación, sino desde el mismo SGBD. En este material encontrará las características principales de este lenguaje y la sintaxis para construir estructuras y objetos de datos, inser- tar datos, modificarlos, borrar información y la estructura de consulta básica. Lenguaje estructurado de consultas

Lenguaje estructurado de consultas sql

Embed Size (px)

DESCRIPTION

Lenguaje estructurado de consultas sql

Citation preview

Page 1: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

Lenguaje Estructurado de consultasSQL

Introducción

Un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de pro-gramas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, lo que permite el almacenamiento, manipulación y consulta de datos pertenecientes a una base de datos. Estos sistemas proporcionan una interfaz que facilita a los usuarios la rea-lización de diferentes actividades sobre los datos. Sin embargo las tareas de manipulación de datos se realizan a través del denominado Lenguaje Estructurado de consultas (SQL por sus siglas en inglés: Structured Query Language).

Este lenguaje proporciona la manera de acceder directamente a los datos no sólo a través de los lenguajes de programación, sino desde el mismo SGBD. En este material encontrará las características principales de este lenguaje y la sintaxis para construir estructuras y objetos de datos, inser-tar datos, modificarlos, borrar información y la estructura de consulta básica.

Lenguaje estructuradode consultas

Page 2: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

2

Estructura de contenido

Introducción 1 Mapa 31. Generalidades 41.1. Características 51.2. Lenguaje de definición de datos - DDL 51.2.1. Creación de la Base de Datos 61.2.2. Creación de las tablas 61.2.3. Modificaciones a las Tablas 91.2.4. Eliminación de Tablas 101.3. Lenguaje de manipulación de datos - DML 111.3.1. Inserción de datos 111.3.2. Modificación de Datos 121.3.3. Eliminación de Registros 131.3.4. Consulta de datos 131.3.4.1. Alias de columnas 151.3.4.2. La cláusula WHERE 161.3.4.2.1. Predicados Simples 161.3.4.2.2. Predicados compuestos 191.3.5. Clausula ORDER BY 19 Glosario 21 Bibliografía 22 Créditos 23

Lenguaje estructurado de consultas SQL

Page 3: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

3

MAPA CONCEPTUAL

Lenguaje estructurado de consultas SQL

divi

dido

en

Leng

uaje

Est

ruct

urad

o de

Con

sulta

sSQ

L

Leng

uaje

par

a de

�nir

los

dato

sD

DL

Crea

r BD

y ta

blas

Tipo

s de

Dat

osCR

EATE

DAT

ABA

SECR

EATE

TABL

EA

LTER

TABL

ED

ROP

TABL

EIN

SERT

UPD

ATE

DEL

ETE

Mod

i�ca

rla

s ta

blas

Borr

arta

blas

Leng

uaje

par

a m

anip

ular

los

dato

sD

ML

Inse

rtar

dato

sM

odi�

car

dato

sEl

imin

arRe

gist

ros

Visu

aliz

arD

atos

Asi

gnar

perm

isos

Revo

car

perm

isos

Den

egar

perm

isos

sele

ct

whe

reA

SO

rder

By

GRA

NT

REVO

KED

ENY

Leng

uaje

de

cont

rol d

e da

tos

DCL

perm

itepe

rmite

perm

ite

Man

ejan

dous

ando

usan

dous

ando

usan

dous

ando

usan

do

usan

con

dici

ones

con

claú

siul

as c

omo

usan

dous

ando

usan

dous

ando

Page 4: Lenguaje estructurado de consultas sql

Lenguaje de control de datos DCL

Lenguaje de manipulación de datos DML

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

4

1. GENERALIDADES

El lenguaje Estructurado de consultas, más comúnmente conocido como SQL por sus siglas en inglés (Structured Query Language), es el lenguaje por el cual se puede acceder a las bases de datos relacionales. Proporciona a través del uso de instrucciones que se denominan “sentencias”, la manera de construir el modelo relacional, consultar datos, eliminar o agregar nuevos datos, modificar los existentes y en general actividades de administración sobre los diferentes objetos que componen las bases de datos.

Creado en los laboratorios de IBM () en la década de los 70, se denominó inicialmente SEQUEL (Structured English Query Language), el cual se basaba en la propuesta de modelo relacional proporcionada por Codd, posteriormente este lenguaje fue liberado y se estandarizó como el lenguaje a ser usado por los diferentes Sistemas de Gestión de Base de Datos que se crearon.

En 1986 fue estandarizado por el ANSI (American National Estándar Institute), lo que comúnmente se conoce como “SQL-86” y posteriormente adoptado por la ISO.

Con el paso del tiempo ha sufrido la adición de nuevas características relacionadas con la programación Orientada a Objetos, uso de XML y diferentes elementos que le han permitido seguir vigente en el procesamiento de datos, siendo la más reciente la del 2008.

Lenguaje estructurado de consultas SQL

Lenguaje de de�cinicón de datos DDL

Page 5: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

5

1.1. Características

El SQL se comporta como un lenguaje de “alto nivel”, con una estructura declarativa de sentencias que posee una sintaxis particular y estándar. Se han clasificado sus instrucciones de acuerdo con su funcionalidad generando las siguientes categorías:

Lenguaje de definición de datosConocido como DDL por sus siglas en inglés (Data Definition Language), contienen todas las instrucciones relacionadas con la creación, modificación y eliminación de objetos de la base de datos, como son la base de datos, tabla, índices, vistas, procedimientos, funciones, triggers, etc.

Lenguaje de manipulación de datosSe identifica por las siglas DML (Data Manipulation Language), en la cual se encuentran las sentencias que permiten manipular los datos a partir de sentencias de inserción, modificación, eliminación y consulta de registros de datos.

Lenguaje de control de datos Se identifica por las siglas DCL (Data Control Language), y contiene todas las sentencias relacionadas con la seguridad de acceso a los datos.

1.2. Lenguaje de definición de datos - DDL

El lenguaje de definición de datos puede tener algunas variaciones respecto al SMBD (Sistema Manejador de Base de Datos) que se utilice para manipularlo, sin embargo existe una codificación estándar que nos permite identificar una serie de características del lenguaje y las sentencias utilizadas en él. A continuación se describe la construcción de bases de datos, tablas, la modificación y eliminación de las mismas.

Lenguaje estructurado de consultas SQL

Lenguaje de de�cinicón de datos DDL

Page 6: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

6

Lenguaje estructurado de consultas SQL

1.2.1. Creación de la Base de Datos

La base de datos es la estructura de almacenamiento principal, la sentencia que se utiliza para su construcción es CREATE. Su sintaxis y modo de uso genérico es:

Sintaxis:

CREATE DATABASE <Nombre de la Base de Datos>

Ejemplo

Para crear la base de datos CITAS, la sentencia sería:

create database citas

Una vez que se ha construido la base de datos, se deben construir las tablas en su interior, es decir que debe estar predefinida o seleccionado ese espacio de trabajo.

La sentencia que se utiliza para establecer como la base de datos activa es USE, a continuación su sintaxis:

USE <Nombre de la Base de Datos>

Ejemplo

Para realizar actividades con los objetos de la base de datos cita, debemos dejarla como la base de datos activa:

use citas

1.2.2. Creación de las tablas

Para construir las tablas que conforman las bases de datos, se utiliza la sentencia CREATE TABLE. Con ésta se crea la estructura de la tabla, lo cual permite definir las columnas que tiene y definir ciertas restricciones que deben cumplir esas columnas.

Antes de presentar la sentencia es necesario hacer claridad respecto a las posibles restricciones que se manejan para las columnas de una tabla.

Page 7: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

7

Las restricciones también conocidas como constraints representan características particulares que tiene una columna y determinan entre otras, reglas sobre los contenidos, tipos de datos, limites, relación de la columna con otras columnas, otros registros de la misma tabla o en otras tablas.

A continuación se presenta a manera de resumen las restricciones que se pueden asignar a las columnas en una tabla, el nivel identifica si afecta a nivel de registro (fila).

Sintaxis:

CREATE TABLE <Nombre_de_la_tabla> ( <Nombre_de_la_columna1> <tipo de dato> <Restricción>, <Nombre_de_la_columna2> <tipo de dato> <Restricción>, . . . <Nombre_de_la_columnan> <tipo de dato> <Restricción>)

Lenguaje estructurado de consultas SQL

Nivel Constraint – Palabra Clave

Descripción

Registro NOT NULL La columna o campo deberá contener obligatoriamente un valor. Los campos que se encuentran sin ningún tipo de información se denomina campos nulos y se identifican como NULL

Registro PRIMARY KEY Esta columna es la que identifica en forma única cada fila de la tabla, se denomina como clave principal o llave primaria.

Columna UNIQUE Identifica una columna que no puede tener valores repetidos en toda la tabla

Registro DEFAULT Permite definir un valor preestablecido para esa columna, es decir que si no se insertan datos en ese campo, el sistema almacenará el valor que por defecto se definió.

Registro CHECK Corresponde a condiciones que se pueden definir para aceptar o no datos en los campos. Estas reglas pueden referirse a la misma columna, p.e. (edad > 18) o a otras columnas de la misma tabla.

Tabla FOREIGN KEY Define la llave foránea de la tabla que puede ser un campo o una combinación de ellos y representa el enlace o relación con otras tablas. El valor que se almacena en esta columna debe estar contenido en otra tabla.

Page 8: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

8

Consideraciones:Los nombres de la tabla y columnas, deben conservar las mismas característica de un identificador, es decir, no espacios en blanco, de preferencia usar los nemotécnicos definidos en la organización, nombres significativos, no iniciar con números, etc.

Los tipos de datos están directamente relacionados con el SMBD que se utilice, para los ejemplos que se presentan a continuación se utilizarán tipos de datos y expresiones propias de MySql.

Ejemplo

Ya con “CITAS” como base de datos predeterminada, se procede a crear las respectivas tablas, para crear la tabla “MEDICO”, se debe tener previamente definida la estructura de datos, producto de los procesos de modelamiento o normalización vista anteriormente:

Create table TblMedico (MedIdentificacion Char(10) Primary Key not null,MedNombres Varchar (50) not null,MedApellidos Varchar(50) not null )

Lenguaje estructurado de consultas SQL

Nombre del Campo Tipo de Dato Long. Modificador

MedIdentificacion Char 10 primary key, not null MedNombres Varchar 50 not null MedApellidos Varchar 50 not null

Base de Datos

Campo1 Campo2 Campo3 Campo4

Campo1 Campo2 Campo3 Campo4

Tabla 1

Tabla 2

Page 9: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

9

1.2.3. Modificaciones a las Tablas

El comando utilizado es ALTER TABLE, este comando tiene algunos atributos que nos permite realizar cambios a una tabla ya creada. Las posibles modificaciones a realizar son: adición de nuevas columnas, eliminación de columnas, cambio de tipo de dato, adición de constraints (restricciones) a las columnas previamente creadas o la eliminación de restricciones.

Sin embargo para proceder a incorporar el cambio el SMBD realiza una serie de verificaciones para que estos cambios no afecten los datos previamente registrados (si ya existieran) o entren en contravención con reglas anteriores. Por ejemplo, para que una columna pueda modificarse y convertirse en llave primaria, debe tener la restricción de not null y los datos (si los hubiese) no podrían tener valores repetidos.

En esta sentencia se utilizan expresiones que determinan el tipo de cambio a incorporar, de la siguiente forma:

• ADD (COLUMN o CONSTRAINT): para agregar columnas o restricciones• DROP (COLUMN o CONSTRAINT): para eliminar columnas o restricciones • ALTER / MODIFY : para modificar columnas existentes

Sintaxis:ALTER TABLE <Nombre_de_la_tabla>ADD (COLUMN) <Nombre_de_la_columna> <tipo de dato> <Restricción>ADD(CONSTRAINT) <Nombre_restricción> <tipo_restricción> <texto_restricción> DROP (COLUMN) <Nombre_ de_la_columna>DROP (CONSTRAINT) <Nombre_de_la_restricción>

Lenguaje estructurado de consultas SQL

Page 10: Lenguaje estructurado de consultas sql

Ejemplo

Se requiere agregar una columna a la tabla Medico, para almacenar el registro médico del doctor, que es un número de tipo entero y no puede repetirse.

Alter table TblMedico Add Column MedRegistro int

Alter table TblMedico Add Constraint UNIQUE ( MedRegistro)

1.2.4. Eliminación de Tablas

La sentencia DROP TABLE permite eliminar una tabla, siempre y cuando se tengan permisos sobre el objeto, no se encuentre abierta o siendo accesada por algún usuario o si al eliminarla se infringe alguna regla. El caso más común está relacionado con las llaves foráneas, cuando el contenido de una tabla es referenciada por otra a través de las llaves foráneas.

Sintaxis:

DROP TABLE <Nombre_de_ la_ tabla>

Ejemplo

Si se deseara eliminar la tabla Medico y no existieran referencias de otras tablas, la sentencia a utilizar es:

Drop table TblMedico

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

10

Lenguaje estructurado de consultas SQL

Page 11: Lenguaje estructurado de consultas sql

1.3. Lenguaje de manipulación de datos - DML

Este lenguaje se utiliza para “manipular” los datos de una base de Datos, es decir Insertar, Borrar, Modificar y Consultar los registros de las tablas que conforman una base de Datos.

Las sentencias DML son:

• Insert• Update• Delete• Select

1.3.1. Inserción de datos

La sentencia INSERT se utiliza para agregar los registros a una tabla, es decir que se agregan filas completas de datos a la tabla, previa a la inserción se realiza un proceso de verificación de las restricciones presentes en cada campo, es decir que si el campo es llave primaria, el valor a insertar no sea nulo o repetido y así sucesivamente con cada dato a insertar. La fila siempre es agregada al final de la tabla y el valor de cada campo debe coincidir con el tipo de dato establecido para cada columna.

Sintaxis INSERT INTO <Nombre_de_la_tabla> (<Nombre_columna1>, <Nombre_columna2> <Nombre_columnaN>) VALUES (valor1, valor2, valorN)

Ejemplo

En la tabla Medico se va a insertar los datos del doctor Germán Fernández, con identificación 19208547 y registro medico 854632. La sentencia de inserción sería:

INSERT INTO TblMedico (MedIdentificacion, MedNombres, MedApellidos, MedRegistro) VALUES (19208547, ‘German’, ‘Fernandez’, 854632)

Los datos de tipo alfanumérico, así como las fechas, generalmente se escriben entre comillas simples o dobles dependiendo del SMBD a usar.

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

11

Lenguaje estructurado de consultas SQL

Lenguaje de manipulación de datos DML

Page 12: Lenguaje estructurado de consultas sql

1.3.2. Modificación de Datos

La sentencia UPDATE se utiliza para realizar modificaciones sobre los datos que se encuentran en los campos de una tabla. El sistema realiza una validación de la integridad de los campos, verificando que los nuevos datos no infrinjan ninguna de las restricciones asociadas a los campos. Se debe tener especial cuidado en proporcionar adecuadamente la condición que determina sobre cual o cuales de los registros deben aplicarse los cambios.

Sintaxis

UPDATE <Nombre_de_la_tabla> SET <Nombre_columna a cambiar valor> = <Nuevo_Valor>WHERE <condición>

Ejemplo

Se desea modificar la dirección de residencia del médico Antonio Mejía, su nueva dirección es: “avenida de las flores con calle 23”. La sentencia de modificación de datos entonces sería:

UPDATE TblMedico SET MedDireccion = “avenida de las flores con calle 23”

Si se dejara hasta aquí, se modificarían todos las direcciones de los médicos, de otro modo al agregar la condición se especifican los registros sobre los cuales se debe hacer el cambio.

UPDATE TblMedico SET MedDireccion = “avenida de las flores con calle 23” WHERE MedNombres = “Antonio” AND MedApellidos = “Mejía”

Más adelante en este material encontrará los aspectos más relevantes a considerar para construir los filtros o condiciones de las sentencias SQL.

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

12

Lenguaje estructurado de consultas SQL

Page 13: Lenguaje estructurado de consultas sql

1.3.3. Eliminación de Registros

La sentencia DELETE se utiliza para borrar filas de datos de una tabla. El sistema realiza una validación de la integridad referencial antes de ejecutar la acción. Así como con la modificación se debe tener especial cuidado en proporcionar adecuadamente la condición que determine cual o cuales de los registros deben ser borrados.

Sintaxis

DELETEFROM <Nombre_de_la_tabla> WHERE <condición>

Ejemplo

Se desea retirar de la base de datos al médico German Fernandez, con registro médico 854632. La sentencia de modificación de datos entonces sería:

DELETE FROM TblMedico WHERE MedNombres = “German” AND MedApellidos = “fernandez” AND MedRegistro = 854632

Aunque no es necesario proporcionar todos los datos, se debe asegurar que la condición filtra únicamente el o los registros que se desean eliminar. Se recomienda entonces realizar una consulta previa y utilizar la misma condición para filtrarlo posteriormente.

1.3.4. Consulta de datos

Con la sentencia SELECT se visualiza la información de la base de Datos. Los datos que se presentan corresponden a una o más filas de una tabla o también a una o más filas de una o más tablas.

La sintaxis básica es:

SELECT <Nombre_columna> o <lista de columnas>FROM <Nombre_de_la_tabla>

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

13

Lenguaje estructurado de consultas SQL

Page 14: Lenguaje estructurado de consultas sql

Ejemplo

Se desea consultar los nombres y apellidos de todos los médicos, la sentencia para hacer esta consulta sería:

SELECT MedNombres, MedApellidos FROM TblMedico

Esta instrucción, puede ir acompañada de las siguientes clausulas:

WHERE <condición> GROUP BY <Nombre_columna1>, …HAVING <condición> ORDER BY <Nombre_columna> <Modo de ordenamiento>

Antes de realizar cualquier consulta a la base de Datos, es muy importante tener claro cuál o cuáles son los datos que se requiere visualizar y de que tabla o tablas se van a extraer.

En caso de que se deseara consultar TODOS los campos de la tabla, no es necesario escribir todos los campos, a menos que se desee escribirlo en un orden particular, si no es así se utiliza el comodín * (asterisco) que representa todos los campos.

En el ejemplo anterior se requería solo nombre y apellido, en caso de desear visualizar todos los campos de una tabla, utilizando el comodín *, quedaría la sentencia de la siguiente manera:

Select * From TblMedico;

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

14

Lenguaje estructurado de consultas SQL

Page 15: Lenguaje estructurado de consultas sql

1.3.4.1. Alias de columnas

Estos alias se utilizan para ayudar a la visualización del nombre de las columnas al momento de generar el resultado de la consulta, estos nombres son temporales, es decir que sólo se reflejan en salida, bien sea pantalla o impresión, pero no afectan los nombres que los campos tienen en la tabla. Para asignar el alias a un campo se utiliza la cláusula AS (como)

Una consulta, sin alias es:

Select MedIdentificacion, MedNombres, MedApellidosFrom TblMedicos

Vamos ahora a configurar la salida por pantalla a los datos incluidos en la tabla medicos, La salida debe ser, la columna MedIdentificacion con título Identificacion; la columna MedNombres, con título Nombre y la columna MedApellidos con título Apellidos, la sintaxis sería la siguiente:

Select MedIdentificacion as Identificacion,MedNombres as Nombre , MedApellidos as ApellidosFrom Tblmedicos

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

15

Lenguaje estructurado de consultas SQL

Identificacion

111111111191290102

Nombres

ReinaldoOswaldo

Apellidos

RojasArenas

2 rows in set (0.03 sec)

Select con alias

MedIdentificacion

111111111191290102

MedNombres

ReinaldoOswaldo

MedApellidos

RojasArenas

2 rows in set (0.00 sec)

Select sin alias

MedApellidos, esto se cambió con el uso del alias, el sistema tiene como palabra reservada para esta función, el término “AS”.

Page 16: Lenguaje estructurado de consultas sql

1.3.4.2. La cláusula WHERE

Esta cláusula es muy importante porque se utiliza para generar resultados basados en condiciones, ya que filtra verticalmente las filas a presentar.

La sintaxis es:

SELECT <Nombre_columna> o <lista de columnas>FROM <Nombre_de_la_tabla> WHERE <condición>

Cuando se van a comparar dos valores se realizan según las siguientes reglas:

•Solo se pueden comparar dos valores cuando son del mismo tipo.•Todos los datos de tipo numérico pueden ser comparados unos con otros (por ejemplo un decimal con un entero)•Se pueden comparar dos valores alfanuméricos, tomando como referencia el código de cada uno de los caracteres que conforman la cadena.

La selección de filas se especifica en la cláusula WHERE mediante predicados. Un predicado expresa una condición y su resultado puede ser verdadero, falso o desconocido.

1.3.4.2.1. Predicados Simples

• Operadores de Comparación: predicados simples que expresan condiciones de comparación entre valores. Se especifican con los signos que se detallan en la siguiente tabla:

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

16

Lenguaje estructurado de consultas SQL

=><>=<=<>!<!>

Igual aMayor queMenor queMayor o igual queMenor o igual queDistinto aNo menor queNo mayor que

Page 17: Lenguaje estructurado de consultas sql

• Comparación de caracteres: Se utiliza el predicado LIKE. Cuando se requiere precisar buscar campos que contengan combinaciones de caracteres que cumplan ciertas condiciones. Para ello se utiliza el predicado LIKE, según el siguiente formato:

<Nombre_columna> [NOT] LIKE <constante_alfanumerica>

Donde <Nombre_columna> debe ser de tipo alfanumerico.

La constante alfanumérica puede ser caracteres normales, caracteres con significado espacial, caracteres comodines o wildcards. La siguiente tabla presenta los posibles comodines a utilizar:

Ejemplos

• Las ciudades que empiecen por S SELECT … FROM…WHERE ciudad LIKE ‘S%’

• Las referencias que no tengan un 4 SELECT … FROM…WHERE referencia LIKE ‘%[^4]%’

• Las referencias que no tengan un 4, 5 o 6

SELECT … FROM…WHERE ciudad LIKE ‘%[4-6]%’

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

17

Lenguaje estructurado de consultas SQL

%_

[x-y][^x-y]

Cadena de longitud aleatoriaCarácter no nulo (1 Carácter)Carácter en el rango x hasta yCarácter fuera del rango x hasta y

Page 18: Lenguaje estructurado de consultas sql

• Detección de valores nulos: En ocasiones es necesario discriminar las filas en función de si en una de sus celdas existe un valor o no, esto es si dicha celda contiene un valor nulo.

<Nombre_columna> IS [NOT] NULL

Ejemplo

• Listar los clientes a los que no se le haya registrado dirección SELECT * FROM TblClientesWHERE direccion IS NULL

• Predicado BETWEEN: Sirve para determinar si un valor está comprendido o no entre otros dos valores, ambos inclusive.

<Nombre_columna> [NOT] BETWEEN <expr1> AND <expr2>

Ejemplo

• Los pacientes de estrato 1 al 3 SELECT * FROM TblPacientesWHERE estrato BETWEEN 1 AND 3

• Predicado IN: Sirve para averiguar si el resultado de una expresión está incluido en la lista de valores especificados.

<Nombre_columna> [NOT] IN ( Constante1, constante2, ....)<Nombre_columna> [NOT] IN ( Subconsulta )

Ejemplo

• Los clientes de Bogotá, Tunja, Villavicencio e Ibague.

SELECT * FROM TblClientesWHERE ciudad IN ( ‘Bogota’, ‘Tunja’, ‘Villavicencio’, ‘Ibague’)

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

18

Lenguaje estructurado de consultas SQL

Page 19: Lenguaje estructurado de consultas sql

1.3.4.2.2. Predicados compuestos

Son combinaciones de otros predicados, con los operadores lógicos And, OR y NOT.

Ejemplo:

• Los clientes de Tunja, que NO tengan registrada alguna dirección.

SELECT * FROM TblClientesWHERE ciudad = ‘Bogota’ AND dirección IS NULL

1.3.5. Clausula ORDER BY

Esta cláusula básicamente se utiliza para ordenar las filas, este ordenamiento puede ser de manera ascendente (cláusula ASC ) o descendente (Cláusula DESC). Por defecto el ordenamiento es ascendente, es decir de menor a mayor.

La sintaxis,

SELECT <Nombre_columna> o <lista de columnas>FROM <Nombre_de_la_tabla> WHERE <condición> ORDER BY <Nombre_columna> o <Número de columnas>

Algunos ejemplos de esta cláusula pueden ser:

Visualizar el los nombres de los pacientes ordenados alfabéticamente

SELECT PacNombres, PacApellidosFROM TblpacientesORDER by PacNombres;

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

19

Lenguaje estructurado de consultas SQL

PacNombres

Carlos JoseCarlos JoseCarolinaEveliaMari FernandaMaria CarolinaMaria Alejandra

PacIdentificación

1098765678378212003782120363602720635027307719195077191957

PacFechaNacimiento

1984-06-281970-03-251970-07-281980-04-121972-07-151980-04-121980-04-12

PacApellidos

Arias RojasArias RojasRojas ZabalaArias MendozaRodríguez PerezRojas PerezTorres Cañas

Page 20: Lenguaje estructurado de consultas sql

PacFechaNacimiento

1984-06-281970-03-251970-07-281980-04-121972-07-151980-04-121980-04-12

PacNombres

FFMMFMM

Visualizar los nombres y apellidos de los pacientes ordenados por apellido alfabéticamente

Select PacNombres, PacApellidosFrom TblpacientesOrder by PacApellidos;

Visualizar todos los datos de los pacientes, el reporte debe ordenarse de mayor a menor por documento de identidad:

Select *From pacientesOrder by PacIdentificacion asc ;

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

20

Lenguaje estructurado de consultas SQL

PacNombres

EveliaCarlos JoseCarlos JoseMari FernandaMaria CarolinaCarolinaMaria Alejandra7 rows in set (0.00 sec)

PacIdentificación

1098765678378212003782120363602720635027307719195077191957

PacFechaNacimiento

1984-06-281970-03-251970-07-281980-04-121972-07-151980-04-121980-04-12

PacApellidos

Arias MendozaArias RojasArias RojasRodríguez PerezRojas PerezRojas ZabalaTorres Cañas

PacNombres

CarolinaEveliaMari FernandaMaria CarolinaMaria AlejandraCarlos JoseCarlos Jose

PacIdentificación

1098765678378212003782120363602720635027307719195077191957

PacFechaNacimiento

1984-06-281970-03-251970-07-281980-04-121972-07-151980-04-121980-04-12

PacNombres

FFMMFMM

PacApellidos

Rojas ZabalaArias MendozaRodríguez PerezRojas PerezTorres CañasArias RojasArias Rojas

Page 21: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

21

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

10

GLOSARIO

AUTO_INCREMENT: tipo de Modificador que se utiliza para ir incremen-tando automáticamente el valor en cada registro.

DDL: Lenguaje de Definición 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 vacío.

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, modifi-cación y extracción de la información en una base de datos.

UNIQUE: Tipo de identificador que evita la repetición de valores.

USE: Palabra utilizada para establecer una base de datos, como base de datos predefinida.

Lenguaje estructurado de consultas SQL

Page 22: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

9

BIBLIOGRAFÍA

Beaulieu, A. (2010). Aprende SQL. Segunda Edición. Grupo Anaya Comercial.

Ojeda, F. C. (s.f.). SQL. Anaya Multimedia-Anaya Interactiva.

Lenguaje estructurado de consultas SQL

22

Page 23: Lenguaje estructurado de consultas sql

FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje

23

CREDITOS

Control de documentoConstrucción Objeto de AprendizajeLenguaje de cosulta de datos SQL

Carlos Alberto Espinosa GómezVictor Hugo Tabares Carreño

Producción multimedia

Programador

Líder expertos temáticos

Líder línea de producción Santiago Lozada Garcés

Ana Yaqueline Chavarro Parra

Daniel Martínez

Magda Milena García Gamboa Ana Yaqueline Chavarro Parra

Desarrollador de contenidoExperto temático

Asesor pedagógico Claudia Milena Hernández Naranjo

Lenguaje estructurado de consultas SQL