Sunteți pe pagina 1din 54

SQL

MG. FRANCISCO VIDAL GONZALES


SANCHEZ
Lenguaje SQL
SQL es el lenguaje fundamental de los SGBD relacionales. Se trata
de uno de los lenguajes ms utilizados de la historia de la
informtica.
SQL pretende ser un lenguaje que simula su escritura en lenguaje
normal. De ah que se le considere un lenguaje de cuarta
generacin. Consta de palabras especiales y de expresiones.
Se trata de un lenguaje que intenta agrupar todas las funciones que
se le pueden pedir a una base de datos, por lo que es el lenguaje
utilizado tanto por administradores como por programadores o
incluso usuarios avanzados.
Es un lenguaje de tipo declarativo, se especifica qu es lo que desea
realizar, no el cmo queremos realizarlo (el cmo es la pregunta de
los lenguajes imperativos, como C, C++ o Java).
Modos de utilizacin
Ejecucin directa. SQL interactivo
Las instrucciones SQL se introducen a travs de una
herramienta que las traduce inmediatamente a la base de
datos, por lo que se ejecutan al instante.
Ejecucin incrustada o embebida
Las instrucciones SQL se colocan como parte del cdigo de
otro lenguaje anfitrin (C, Java, Pascal, Visual Basic,...). Estas
instrucciones estn separadas del resto del cdigo de forma
conveniente. Al compilar el cdigo se utiliza un precompilador
de la propia base de datos para traducir el SQL.
Ejecucin dinmica
Se trata de SQL incrustado en mdulos especiales que pueden
ser invocados una y otra vez desde distintas aplicaciones.
Elementos del lenguaje SQL (1/3)
El cdigo SQL consta de los siguientes elementos:

Comandos. Las distintas instrucciones que se pueden realizar


desde SQL

SELECT. Se trata del comando que permite realizar consultas sobre los
datos de la base de datos. Obtiene datos de la base de datos. A sta
parte del lenguaje se la conoce como DQL (Data Query Language,
Lenguaje de consulta de datos); pero es parte del DML del lenguaje.
DML, Data Manipulation Language (Lenguaje de manipulacin de
datos). Modifica filas (registros) de la base de datos. Lo forman las
instrucciones INSERT, UPDATE, MERGE y DELETE.
Elementos del lenguaje SQL (2/3)
DDL, Data Definition Language (Lenguaje de definicin de
datos). Permiten modificar la estructura de las tablas de la
base de datos. Lo forman las instrucciones CREATE, ALTER,
DROP, RENAME y TRUNCATE.
DCL, Data Control Language (Lenguaje de control de
datos). Administran los derechos y restricciones de los
usuarios. Lo forman las instrucciones GRANT y REVOKE.
Instrucciones de control de transacciones. Administran las
modificaciones creadas por las instrucciones DML. Lo
forman las instrucciones ROLLBACK, COMMIT y
SAVEPOINT. Se las considera parte del DCL.
Elementos del lenguaje SQL (3/3)
Clusulas. Son palabras especiales que permiten
modificar el funcionamiento de un comando
(WHERE, ORDER BY,...)
Operadores. Permiten crear expresiones
complejas. Pueden ser aritmticos (+,-,*,/,...)
lgicos (>, <, !=,<>, AND, OR,...)
Funciones. Para conseguir valores complejos
(SUM(), DATE(),...)
Constantes. Valores literales para las consultas,
nmeros, textos, caracteres,...
Datos. Obtenidos de la propia base de datos
Normas de escritura
En SQL no se distingue entre maysculas y
minsculas. Da lo mismo como se escriba.
El final de una instruccin lo determina el signo
del punto y coma
Los comandos SQL (SELECT, INSERT,...) pueden ser
partidos por espacios o saltos de lnea antes de
finalizar la instruccin
Se pueden tabular lneas para facilitar la lectura si
fuera necesario
Los comentarios en el cdigo SQL comienzan por
/* y terminan por */ (excepto en algunos SGBD)
Proceso de las instrucciones SQL
El proceso de una instruccin SQL es el siguiente:
(1) Se analiza la instruccin. Para comprobar la
sintaxis de la misma
(2) Si es correcta se valora si los metadatos de la
misma son correctos. Se comprueba esto en el
diccionario de datos.
(3) Si es correcta, se optimiza, a fin de consumir los
mnimos recursos posibles.
(4) Se ejecuta la sentencia y se muestra el resultado
al emisor de la misma.
Pasos para implementar una base de
datos (1)
1) Definir en el disco duro, el rea fsica que contendr
las tablas de la base de datos.
Sentencia SQL --> CREATE DATABASE.
2) Crear las diferentes tablas de la base de datos.
Sentencia SQL --> CREATE TABLE
3) Insertar las filas de las diferentes tablas, sin violar la
integridad de datos.
Sentencia SQL --> INSERT INTO .
4) Actualizar los datos que cambien con el tiempo en las
diferentes tablas.
Sentencia SQL --> UPDATE.
Pasos para implementar una base de
datos (2)
5) Eliminar las filas que ya no se requieran en las
diferentes tablas.
Sentencia SQL --> DELETE
6) Realizar las consultas deseadas a las tablas de la base
de datos a travs de la poderosa sentencia de consultas
del SQL,
Sentencia SQL SELECT
7) Dar nombre a las consultas. elaboradas en el paso
No.6 cuando se requiera ocultar el diseo y columnas de
las tablas a travs de la creacin de vistas lgicas.
Sentencia SQL ----> CREATE VIEW.
DDL (introduccin 1/2)
Fundamentalmente se encarga de la creacin de esquemas,
tablas y vistas. Por ahora
veremos como crear tablas.
Cada usuario de una base de datos posee un esquema. El
esquema suele tener el
mismo nombre que el usuario y sirve para almacenar los
objetos de esquema, es decir
los objetos que posee el usuario.
Esos objetos pueden ser: tablas, vistas, ndices y otras objetos
relacionados con la
definicin de la base de datos. Los objetos son manipulados y
creados por los usuarios.
DDL (introduccin 2/2)
El DDL es la parte del lenguaje que realiza la funcin de definicin
de datos.
En principio slo los administradores y los usuarios propietarios
pueden acceder a cada
objeto, salvo que se modifiquen los privilegios del objeto para
permitir el acceso a otros
usuarios.
Hay que tener en cuenta que ninguna instruccin DDL puede ser
anulada por una
instruccin ROLLBACK (la instruccin ROLLBACK est relacionada
con el uso de
transacciones que se comentarn ms adelante) por lo que hay que
tener mucha
precaucin a la hora de utilizarlas. Es decir, las instrucciones DDL
son definitivas.
Lenguaje de Definicin de Datos (DDL,
Data Definiton Language)
Grupo de sentencias del SQL que soportan la definicin y declaracin
de los objetos de la base de datos. Objetos tales como:
la base de datos misma(DATABASE),
las tablas(TABLE),
las Vistas (VIEW),
los ndices (INDEX),
los procedimientos almacenados (PROCEDURE),
los disparadores (TRIGGER),
Reglas (RULE),
Dominios (Domain) y
Valores por defecto (DEFAULT).
CREATE,
ALTER y DROP
CREANDO UNA
BASE DE DATOS
Creacin de bases de datos
Crear la base de datos implica indicar los archivos y
ubicaciones que se utilizarn para la misma, adems de otras
indicaciones tcnicas y administrativas.
Lgicamente slo es posible crear una base de datos si se
tienen privilegios DBA (DataBase Administrator) o SYSDBA.
El comando SQL de creacin de una base de datos es CREATE
DATABASE. Este comando crea una base de datos con el
nombre que se indique.
Crear una base de datos:
Sentencia SQL CREATE DATABASE
TIPO DE EXTENSIN
SINTAXIS:
create database nombre_basededatos ON PRIMARY ARCHIVO DE
( NOMBRE
name = nombre_basededatos _data, DE
filename = 'c:\ nombre_basededatos.mdf', /*Direccin donde se crea*/ ARCHIVO
size = 3mb, /*Tamao de la base de datos*/ RECOMEN
maxsize = 7mb, /*Tamao de mximo de la base de datos*/ DADA
filegrowth = 2 mb /*crecimiento de la base de datos*/
) Archivo de .mdf
log on datos
( principal
name = nombre_basededatos _log,
Archivo de .ndf
filename = 'c:\ nombre_basededatos.ldf',
size = 3mb, datos
maxsize = 7mb, secundarios
filegrowth = 2 mb
) Archivo de .ldf
registro de
transacciones
Ejemplos: 1-2
Ejemplo 1:
CREATE DATABASE prueba;
Pero normalmente se indican ms parmetros.
Ejemplo 2:
CREATE DATABASE prueba
LOGFILE prueba.log
MAXLOGFILES 25
MAXINSTANCES 10
ARCHIVELOG
CHARACTER SET WIN1214
NATIONAL CHARACTER SET UTF8
DATAFILE prueba1.dbf AUTOEXTEND ON MAXSIZE 500MB;
Ejemplo 3: Creando base de datos
Ventas
CREATE DATABASE VENTAS ON PRIMARY
( En el ejemplo que se acaba de
NAME=VENTAS_data, presentar se crea un archivo
FILENAME='c:\VENTAS.mdf', principal de extensin mdf de
SIZE=5MB,
tamao inicial de 5 MB, cuando
este espacio se agote, este se
MAXSIZE=10MB, expandir en 1 MB ms para
FILEGROWTH=1MB tener espacio libre y meter ms
) registros o tablas y cuando se
LOG ON agote nuevamente el archivo
( fsico de 1MB, ste se expandir
NAME=VENTAS_log, en 1 MB nuevamente y as en lo
FILENAME='c:\VENTAS.ldf', sucesivo hasta alcanzar el
SIZE=5MB,
mximo 10 MB ya de ah no
crecer ms.
MAXSIZE=10MB,
FILEGROWTH=1MB
)
Estructura del archivo principal .mdf
EJEMPLO 2.
create database ALQUILER on primary
(
name = ALQUILER_data,
filename = 'D:\COCHES\DATA\ALQUILER.mdf',
size = 30 mb,
maxsize = 50 mb,
filegrowth = 5 mb
)
log on
(
name = ventas_log,
filename = 'D:\COCHES\DATA\ALQUILER.ldf',
size = 30 mb,
maxsize = 50 mb,
filegrowth = 5 mb
)
NOTA: ANTES DE CREAR UNA BASE DE
DATOS
Antes de proceder a crear la base de datos debemos
averiguar si existe otra base de datos VENTAS para
borrarla y crear la nuestra. Recuerde no utilizar estas
sentencias en un servidor de produccin de SQL
SERVER.
Ejemplo: Corra el siguiente cdigo en el Query
Analyser de SQLSERVER.

IF DB_ID('VENTAS') IS NOT NULL


BEGIN
DROP DATABASE VENTAS
END
Sentencia CREATE
Dentro del Lenguaje de Definicin (DDL) del SQL, la sentencia CREATE
permiten la definicin o creacin de muchos objetos de la base de datos
tales como:
tablas (esquemas),
ndices,
vistas,
dominios,
ligaduras de integridad y
procedimientos.
En esta oportunidad veremos las sentencias correspondientes a la
creacin las tablas que contendrn los datos de la base de datos, La
sentencia CREATE TABLE.
La sentencia CREATE TABLE, define el nombre de la tabla, las columnas
con su tipo de datos, las ligaduras de intengridad que vigilan el valor que
se guarde como dato en las columnas o atributos sean llaves o no.
CREANDO TABLAS
Creacin de tablas
Nombre de las tablas
Deben cumplir las siguientes reglas (en algunos SGBD podran cambiar):
Deben comenzar con una letra
No deben tener ms de 30 caracteres
Slo se permiten utilizar letras del alfabeto (ingls), nmeros o el signo de
subrayado (tambin el signo $ y #, pero esos se utilizan de manera especial por lo
que no son recomendados)
No puede haber dos tablas con el mismo nombre para el mismo esquema (pueden
coincidir los nombres si estn en distintos esquemas)
No puede coincidir con el nombre de una palabra reservada SQL (por ejemplo no
se puede llamar SELECT a una tabla)
En el caso de que el nombre tenga espacios en blanco o caracteres nacionales
(permitido slo en algunas bases de datos), entonces se suele entrecomillar (en
Oracle con comillas dobles, en SQLServer con comillas simples). En el estndar SQL
99 (respetado por Oracle) se pueden utilizar comillas dobles al poner el nombre de
la tabla a fin de hacerla sensible a las maysculas (se diferenciar entre
FACTURAS y Facturas)
orden CREATE TABLE
Es la orden SQL que permite crear una tabla.
Por defecto ser almacenada en el espacio y
esquema del usuario que crea la tabla.
Sintaxis:

CREATE TABLE [esquema.] nombreDeTabla


(nombreDeLaColumna1 tipoDeDatos [, ...]);
Ejemplo:
CREATE TABLE proveedores (nombre varchar(25));

Crea una tabla con un solo campo de tipo varchar.


Slo se podr crear la tabla si el usuario posee los
permisos necesarios para ello. Si la tabla pertenece a
otro esquema (suponiendo que el usuario tenga
permiso para grabar tablas en ese otro esquema), se
antepone al nombre de la tabla , el nombre del
esquema:
CREATE TABLE otroUsuario.proveedores (nombre varchar2(25));
Para crear una tabla se usa: CREATE
TABLE
SINTAXIS:

CREATE TABLE nombre


(columna {tipo_datos | dominio});

Todas las entradas acaban excepto la ltima en coma


(,).
La ltima va con punto y coma (;)
Se pueden aadir restricciones de columna y de tabla.
Adems las restricciones se pueden nombrar.
Restricciones
Restricciones de columna
Obligar a que los valores de la columna cumplan unas condiciones
Restricciones de tabla
Sobre todo integridad de la tabla con otras tablas

Ejemplos:

NOT NULL
UNIQUE
PRIMARY KEY
CHECK
DEFAULT
FOREIGN KEY
Sintaxis:
CREATE TABLE <nombre_tabla>
(
<nombre_campo> <tipo_datos(tamao)>
[null | not null] [default <valor_por_defecto>]
{
,<nombre_campo> <tipo_datos(tamao)>
[null | not null] [default <valor_por_defecto>]}
[
, constraint <nombre> primary key (<nombre_campo>[ ,...n ])]
[
, constraint <nombre> foreign key (<nombre_campo>[ ,...n ])
references <tabla_referenciada> ( <nombre_campo> [ ,...n ] ) ]
);
Ligaduras

Esto de las ligaduras es muy importante que le


presenten atencin. Ayuda a que dejes la
vigilancia de la entrada de datos al DBMS y no
a que el programa de aplicacin lo haga, que a
veces puede darse que no haga tal validacin
en la entrada de los datos. Esto tiene la ventaja
de ahorrar lneas de cdigos en los programas y
note que se implementan en la sentencia SQL
CREATE TABLE .
Tipo: Integridad de Dominio o
Columna
Especifica un conjunto de valores que son
vlidos a ingresar sobre una columna especfica
para una tabla de la base de datos . Esta
integridad se verifica a travs de una validacin
de los valores de datos que se ingresan y el tipo
de los datos a introducir (numrico,
alfanumrico, alfabtico, etc.).
Tipos de Descripcin Clusula SQL
Restriccin
Por Defecto Esta restriccin asigna DEFAULT
un valor especfico a Por ejemplo, s las reglas del negocio dicen
una columna cuando el que no se contratan a menores de edad, en
valor para ello no haya la columna EDAD en la tabla EMPLEADO se
sido Explcitamente restringe a que si una edad para un
proporcionado para tal empleado que ingresa no es sealada
columna en una explcitamente, el DBMS asigne 18 que es la
sentencia "INSERT" o mayora de edad.
de adicin de un nuevo
registro en la tabla. CREATE TABLE EMPLEADO(
ID_EMPL int
Primary KEY, EDAD int not null default 18)
Por Especfica los valores CHECK
Validacin de datos que el DBMS CREATE TABLE EMPLEADO (
acepta le sean ID INT
ingresados para una PRIMARY KEY, EDAD INT DEFAULT 18,
columna. SEXO VARCHAR(1) CHECK ( SEXO IN ('F','M')
))
Por ejemplo, la columna SEXO, solo
permitir el ingreso del carcter F o M.
Tipos de Descripcin Clusula SQL
Restriccin
Por Especifica los REFERENCES
Referencia valores de datos
que son aceptables CREATE TABLE CARGO (
para actualizar una Num_Car int primary key not null,
columna y que Descripcion_Car Varchar(30),
estn basados en Func_Car_id int unique)
valores de datos
localizados en una CREATE TABLE EMPLEADO (
columna de otra ID INT
tabla. PRIMARY KEY,
EDAD INT DEFAULT 18,
SEXO VARCHAR(1) CHECK ( SEXO IN ('F','M') ) ,
NO_FUNC int REFERENCES CARGO(Func_Car_id))

El valor de lo que entre en la columna NO_FUNC


en la tabla EMPLEADO deber ser uno de los
valores contenido en la columna FUNC_ID en la
Tabla JOBS.
Tipo: Integridad de Entidad o Tabla
Especfica que en una tabla o entidad, todas sus
filas tenga un identificador nico que diferencie
a una fila de otra y tambin que se establezcan
columnas cuyo contenido es un valor nico que
las hace llaves candidatas para un futuro como
por ejemplo: nmero de cdula, nmero de
seguro social o cuenta de email.
Tipos de Descripcin Clusula SQL
Restriccin
Por Llave Este tipo de restriccin se PRIMARY KEY
Primaria aplica a todas las filas
permitiendo que CREATE TABLE CLIENTE (
exista un identificador, NUMCLI INT not null,
que se conoce como llave NOMCLI char(30) not null,
primaria y que se asegura DIRCLI char(30),
que los usuarios no FAX INT,
introduzcan valores E_MAIL CHAR(30) UNIQUE not null,
duplicados. Adems SALD_0_30 DECIMAL (10,2),
asegura que se cree un SALD_31_60 DECIMAL (10,2),
ndice para mejorar el SALD_61_90 DECIMAL (10,2),
desempeo. Los valores primary key (NUMCLI) )
nulos no estn permitidos
para este tipo de En este ejemplo, NUMCLI corresponder a
restriccin. ser la llave primaria de la tabla CLIENTE.
Tipos de Descripcin Clusula SQL
Restricci
n
Por Valor Con esta restriccin se UNIQUE
nico previene la duplicacin de
valores en columnas que CREATE TABLE CLIENTE (
tienen valor nico y que no NUMCLI INT not null,
son llave primaria pero que NOMCLI char(30) not null,
pueden ser una llave DIRCLI char(30),
alternativa o candidata para FAX INT,
el futuro. Asegura que se E_MAIL CHAR(30) UNIQUE not null,
cree (Por parte del DBMS) SALD_0_30 DECIMAL (10,2),
un ndice para mejorar el SALD_31_60 DECIMAL (10,2),
desempeo. Y al igual que SALD_61_90 DECIMAL (10,2),
las llaves primarias, no se le primary key (NUMCLI) )
est permitido que se
introduzcan valores nulos.
En este ejemplo, E_MAIL corresponder a
ser una columna de valores nico en la tabla
CLIENTE
Tipo: Integridad Referencial
La Integridad Referencial asegura que las
relaciones que existe entre llave primaria (en la
tabla referenciada) y la llave fornea (en las tablas
referenciantes) sern siempre mantenidas. Una
fila o registro en la tabla referenciada (tabla donde
reside la llave primaria) no puede ser borrada o su
llave primaria cambiada si existe una fila o registro
con una llave fornea (en la tabla referenciante)
que se refiere a esa llave primaria.
Tipos de Descripcin Clusula SQL
Restriccin
Por Llave En esta restriccin se FOREIGN KEY
Fornea define una columna o
combinacin de CREATE TABLE PEDIDO (
columnas en las NUMPED INT not null PRIMARY KEY,
cuales su valor debe NUMCLI INT not null,
corresponder al valor FECHA_PED DATETIME,
de la llave primaria TOT_DESC DECIMAL (10,2),
en la misma u en otra FOREIGN KEY (NUMCLI) REFERENCES
tabla. CLIENTE(NUMCLI) )

En este ejemplo de la creacin de la tabla


PEDIDO, la columna NUMCLI corresponder a ser
la llave fornea que hace referencia a la llave
primaria NUMCLI (no necesariamente deben
llamarse igual las columnas pero deben tener
igual tipo de datos) en la tabla CLIENTE
Modificacin
En la modificacin de tablas se diferencian las
operaciones de:
Aadir columnas
ALTER TABLE tabla ADD columna tipo
Eliminar columnas
ALTER TABLE tabla DROP columna {CASCADE |
RESTRICT}
Modificar definiciones de columna
ALTER TABLE tabla ALTER columna {DROP
DEFAULT | SET DEFAULT}
Borrado
Borrar restricciones
ALTER TABLE tabla DROP CONSTRAINT restr
Borrar tablas
DROP TABLE tabla {CASCADE | RESTRICT}
CASCADE: se borra la tabla y todos los
elementos de la BD que referencien a la tabla.
RESTRICT: slo se borra la tabla si antes se han
borrado todos los elementos que la
referencien.
Consultas de datos con SQL. DQL
DQL es la abreviatura del Data Query Language (lenguaje
de consulta de datos) de SQL. El nico comando que
pertenece a este lenguaje es el verstil comando SELECT
Este comando permite:
Obtener datos de ciertas columnas de una tabla
(proyeccin)
Obtener registros (filas) de una tabla de acuerdo con
ciertos criterios (seleccin)
Mezclar datos de tablas diferentes (asociacin, join)
Realizar clculos sobre los datos
Agrupar datos
Sintaxis sencilla del comando SELECT
SELECT * | {[DISTINCT] columna | expresin [[AS] alias],

...}

FROM tabla;

Donde:

*. El asterisco significa que se seleccionan todas las columnas


DISTINCT. Hace que no se muestren los valores duplicados.
columna. Es el nombre de una columna de la tabla que se desea mostrar
expresin. Una expresin vlida SQL
alias. Es un nombre que se le da a la cabecera de la columna en el resultado de esta instruccin.

Ejemplos:
/* Seleccin de todos los registros de la tabla clientes */

SELECT * FROM Clientes;

/* Seleccin de algunos campos*/

SELECT nombre, apellido1, apellido2 FROM Clientes;


Clculos
Los operadores + (suma), - (resta), * (multiplicacin) y / (divisin), se pueden utilizar para hacer
clculos en las consultas. Cuando se utilizan como expresin en una consulta SELECT, no
modifican los datos originales sino que como resultado de la vista generada por SELECT, aparece
un nueva columna. Ejemplo:

SELECT nombre, precio, precio*1.16 FROM articulos

Esa consulta obtiene tres columnas. La tercera tendr como nombre la expresin utilizada, para
poner un alias basta utilizar dicho alias tras la expresin:

SELECT nombre, precio, precio*1.16 AS precio_con_iva FROM articulos;

La prioridad de esos operadores es la normal: tienen ms prioridad la multiplicacin y divisin,


despus la suma y la resta. En caso de igualdad de prioridad, se realiza primero la operacin que
est ms a la izquierda. Como es lgico se puede evitar cumplir esa prioridad usando parntesis;
el interior de los parntesis es lo que se ejecuta primero.
Cuando una expresin aritmtica se calcula sobre valores NULL, el resultado de la expresin es
siempre NULL.
Concatenacin de textos
Todas las bases de datos incluyen algn operador para encadenar
textos. En SQLSERVER es el signo + en Oracle son los signos ||
Ejemplo :

SELECT tipo, modelo, tipo + modelo "Clave Pieza FROM piezas;

El resultado puede ser:

TIPO MODELO Clave Pieza


AR 6 AR-6
AR 7 AR-7
AR 8 AR-8
AR 9 AR-9
Condiciones
Se pueden realizar consultas que restrinjan los datos de
salida de las tablas. Para ello se utiliza la clusula
WHERE. Esta clusula permite colocar una condicin
que han de cumplir todos los registros, los que no la
cumplan no aparecen en el resultado.

Ejemplos:
SELECT Tipo, Modelo FROM Pieza WHERE Precio>3;

SELECT * FROM Clientes WHERE nombre=Pepe AND


edad>25
Operadores de comparacin
Se pueden utilizar en la Se pueden utilizar tanto para
comparar nmeros como para
clusula WHERE, son: comparar textos y fechas. En el
Operador Significado caso de los textos, las
comparaciones se hacen en
> Mayor que orden alfabtico.
< Menor que Slo que es un orden
alfabtico estricto. Es decir el
>= Mayor o igual que orden de los caracteres en la
<= Menor o igual que tabla de cdigos.
= Igual En muchas bases de datos hay
problemas con la y otros
<> Distinto smbolos. No obstante es un
!= Distinto problema que tiende a
arreglarse en la mayora de
aplicaciones.
Valores lgicos
Operador Significado
AND Devuelve verdadero si las expresiones a su izquierda y derecha son
ambas verdaderas
OR Devuelve verdadero si cualquiera de las dos expresiones a
izquierda y derecha del OR, son verdaderas
NOT Invierte la lgica de la expresin que est a su derecha. Si era
verdadera, mediante NOT pasa a ser falso.

Ejemplos:

/* Obtiene a las personas de entre 25 y 50 aos*/


SELECT nombre,apellidos FROM personas
WHERE edad>=25 AND edad<=50;

/*Obtiene a la gente de ms de 60 aos o de menos de 20*/


SELECT nombre,apellidos FROM personas
WHERE edad>60 OR edad<20;
BETWEEN
El operador BETWEEN nos permite obtener
datos que se encuentren en un rango. Uso:

SELECT tipo, modelo, precio FROM piezas


WHERE precio BETWEEN 3 AND 8;

Saca piezas cuyos precios estn entre 3 y 8


(ambos incluidos).
IN
Permite obtener registros cuyos valores estn
en una lista:

SELECT tipo,modelo,precio FROM piezas


WHERE precio IN (3,5, 8);

Obtiene piezas cuyos precios sea 3, 5 u 8, slo


uno de esos tres.
LIKE
Se usa sobre todo con textos, permite obtener registros cuyo valor en un campo cumpla una condicin
textual. LIKE utiliza una cadena que puede contener estos smbolos:

Smbolo Significado
% Una serie cualquiera de caracteres
_ Un carcter cualquiera
Ejemplos:

/* Selecciona nombres que empiecen por S */

SELECT nombre FROM personas WHERE nombre LIKE 'A%';

/*Selecciona las personas cuyo apellido sea Sanchez, Senchez, Stnchez,...*/

SELECT apellido1 FROM Personas WHERE apellido1 LIKE 'S_nchez';


IS NULL
Devuelve verdadero si una expresin contiene un
nulo:

SELECT nombre,apellidos FROM personas


WHERE telefono IS NULL

Esa instruccin selecciona a la gente que no tiene


telfono. Se puede usar la expresin IS NOT NULL
que devuelve verdadero cuando una
determinada columna no es nula
Precedencia de operadores
A veces las expresiones que se producen en los
SELECT son muy extensas y es difcil saber que parte
de la expresin se evala primero, por ello se indica
la siguiente tabla de precedencia.
Ordenacin
El orden inicial de los registros obtenidos por un SELECT no guarda ms que una
relacin respecto al orden en el que fueron introducidos. Para ordenar en base a
criterios ms interesantes, se utiliza la clusula ORDER BY.
En esa clusula se coloca una lista de campos que indica la forma de ordenar.
Se ordena primero por el primer campo de la lista, si hay coincidencias por el
segundo, si ah tambin las hay por el tercero, y as sucesivamente.
Se puede colocar las palabras ASC O DESC (por defecto se toma ASC). Esas
palabras significan en ascendente (de la A a la Z, de los nmeros pequeos a los
grandes) o en descendente (de la Z a la a, de los nmeros grandes a los pequeos)
respectivamente.

Sintaxis completa de SELECT:

SELECT expresiones
FROM tabla
[WHERE condicin]
ORDER BY listaDeCamposOAlias;
Subconsultas
Se trata de una tcnica que permite utilizar el resultado de una tabla SELECT en otra consulta SELECT. Permite
solucionar problemas en los que el mismo dato aparece dos veces.
La sintaxis es:

SELECT listaExpresiones
FROM tabla
WHERE expresin operador
(SELECT listaExpresiones
FROM tabla);
Se puede colocar el SELECT dentro de las clusulas WHERE, HAVING o FROM.
El operador puede ser >,<,>=,<=,!=, = o IN.
Ejemplo:

SELECT nombre_empleado, paga


FROM empleados
WHERE paga <
(SELECT paga FROM empleados
WHERE nombre_empleado='Martina')

S-ar putea să vă placă și