Sunteți pe pagina 1din 66

SENTENCIAS SQL - MANUAL COMPLETO

TABLA DE CONTENIDO
SQL TIPOS DE DATOS DE TEXTO EN MYSQL ....................................................................... 3
SQL TIPOS DE DATOS DE NUMRICOS EN MYSQL ............................................................ 5
SQL TIPOS DE DATOS FECHA EN MYSQL ............................................................................. 7
SQL DATE......................................................................................................................................... 8
SQL INTRODUCCIN.................................................................................................................... 9
SQL SINTAXIS ............................................................................................................................... 10
SQL CREATE DATABASE .......................................................................................................... 11
SQL CREATE TABLE................................................................................................................... 12
SQL RESTRICCIONES (CONSTRAINTS) ................................................................................ 13
SQL NOT NULL ............................................................................................................................. 13
SQL UNIQUE .................................................................................................................................. 13
SQL UNIQUE ALTER TABLE..................................................................................................... 14
SQL PRIMARY KEY ..................................................................................................................... 15
SQL FOREIGN KEY ..................................................................................................................... 16
SQL CHECK ................................................................................................................................... 18
SQL DEFAULT ............................................................................................................................... 19
SQL CREATE INDEX ................................................................................................................... 20
SQL DROP ...................................................................................................................................... 21
SQL TRUNCATE ........................................................................................................................... 22
SQL ALTER .................................................................................................................................... 22
SQL AUTO INCREMENT ............................................................................................................ 24
SQL VIEWS .................................................................................................................................... 24
SQL VALORES NULL .................................................................................................................. 26
SQL FUNCIONES NULL .............................................................................................................. 27
SQL SELECT .................................................................................................................................. 28
SQL SELECT INTO ....................................................................................................................... 29
SQL DISTINCT .............................................................................................................................. 30
SQL WHERE .................................................................................................................................. 31
SQL AND OR .................................................................................................................................. 31
SQL ORDER BY ............................................................................................................................. 33
SQL INSERT ................................................................................................................................... 34
SQL UPDATE ................................................................................................................................. 35
SQL DELETE.................................................................................................................................. 36

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


SQL TOP.......................................................................................................................................... 37
SQL LIKE ........................................................................................................................................ 38
SQL WILDCARDS ......................................................................................................................... 39
SQL IN ............................................................................................................................................. 41
SQL BETWEEN.............................................................................................................................. 42
SQL ALIAS...................................................................................................................................... 43
SQL JOINS ...................................................................................................................................... 44
SQL INNER JOIN .......................................................................................................................... 45
SQL LEFT JOIN ............................................................................................................................. 46
SQL RIGHT JOIN .......................................................................................................................... 47
SQL FULL JOIN............................................................................................................................. 48
SQL UNION .................................................................................................................................... 49
SQL UNION ALL ........................................................................................................................... 50
FUNCIONES SQL .......................................................................................................................... 52
FUNCIN SQL AVG ..................................................................................................................... 52
FUNCIN SQL COUNT ................................................................................................................ 53
FUNCIN SQL FIRST .................................................................................................................. 55
FUNCIN SQL LAST .................................................................................................................... 55
FUNCIN SQL MAX..................................................................................................................... 56
FUNCIN SQL MIN ...................................................................................................................... 57
FUNCIN SQL SUM ..................................................................................................................... 57
FUNCION SQL GROUP BY ......................................................................................................... 58
FUNCION SQL HAVING .............................................................................................................. 59
FUNCIN SQL UCASE................................................................................................................. 60
FUNCIN SQL LCASE ................................................................................................................. 61
FUNCIN SQL MID ...................................................................................................................... 62
FUNCIN SQL LEN ...................................................................................................................... 63
FUNCIN SQL ROUND................................................................................................................ 63
FUNCIN SQL NOW .................................................................................................................... 64
FUNCIN SQL FORMAT ............................................................................................................ 65

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

SQL Tipos de datos de texto en MySQL


Tipos de datos y rango de datos para el sistema de gestin de bases de
datos MySQL
Tipos de datos de TEXTO en MySQL
CHAR
El tipo de dato CHAR sirve para almacenar una cadena de datos de longitud fija.
Puede contener caracteres, nmeros y caracteres especiales.
La longitud fija se define entre parntesis, y siempre reservar espacio para esta
longitud aunque no se utilice.
Por ejemplo, CHAR(50), ser un campo de longitud fija de 50 posiciones.
La longitud mxima que podemos definir un campo CHAR es de 255.
VARCHAR
El tipo de datos VARCHAR sirve para almacenar una cadena de datos
(caracteres, nmeros y caracteres especiales) de longitud variable.
La longitud mxima es de 255 caracteres.
Hace un buen uso del espacio en disco, porque no reserva el espacio de la
longitud mxima definida, si no que solo ocupa espacio el tamao real de los
datos almacenados en ese campo.
Es el tipo de dato ms utilizado para campos pequeos.
TINYTEXT
El tipo de datos TINYTEXT sirve para almacenar una cadena de datos (solo
caracteres, no admite nmero ni caracteres especiales) de una longitud mxima
de 255 caracteres.
TEXT
El tipo de dato TEXT sirve para almacenar una cadena de caracteres de longitud
mxima de 65,535 caracteres.
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

BLOB
El tipo de datos BLOB sirve para almacenar datos de tipo BLOB (Binary Large
Object).
Admite una longitud mxima de 65,535 bytes de datos.
MEDIUMTEXT
El tipo de dato MEDIUMTEXT sirve para almacenar una cadena con una
longitud mxima de 16.777.215 caracteres.
MEDIUMBLOB
El tipo de datos MEDIUMBLOB Sirve para almacenar datos tipo BLOB con
longitud mxima 16.777.215 bytes.
LONGTEXT
El tipo de dato LONGTEXT sirve para almacenar una cadena de longitud
mxima de 4.294.967.295 caracteres.
LONGBLOB
El tipo de dato LONGBLOB sirve para almacenar un BLOB de longitud
mxima de de 4.294.967.295 bytes.
ENUM
El tipo de dato ENUM sirve para introducir una lista de posibles valores.
La longitud mxima es de 65.535 posibles valores.
Si se intenta introducir un valor en este campo, que no est incluido en la lista, no
se insertar nada y tendr un valor vaco ().
Por ejemplo si definimos una columna como ENUM(uno, dos), entonces en
esta columna solo puede almacenar los valores uno o dos.
Si queremos insertar cualquier otro valor (por ejemplo tres), no se grabar tres
y en su lugar quedar el campo vaco, sin valor ().

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

SET
El tipo de dato SET es similar a ENUM pero la longitud mxima de valores
posibles es de 64, y los valores posibles se pueden combinar.
Por ejemplo, si definimos una columna como SET (uno, dos) entonces esa
columna podr tomar los siguientes valores uno o dos o uno,dos, dos,uno.
SQL Tipos de datos de numricos en MySQL
Tipos de datos numricos para el sistema de gestin de bases de datos MySQL
MySQL admite los siguientes tipos de datos numricos para sus columnas
TINYINT
El tipo de dato numrico TINYINT permite nmeros desde -128 hasta 127.
Tambin se puede definir como UNSIGNED (sin signo), entonces los valores
posibles empiezan en 0 hasta 255.
Opcionalmente, se puede definir el nmero mximo de dgitos entre parntesis
(tamao).
SMALLINT
El tipo de dato numrico SMALLINT permite nmeros desde -32768 hasta
32767.
Tambin se puede definir como UNSIGNED (sin signo), entonces los valores
posibles empiezan en 0 hasta 65535.
Opcionalmente, se puede definir el nmero mximo de dgitos entre parntesis
MEDIUMINT
El tipo de dato numrico MEDIUMINT permite nmeros desde -8388608 hasta
8388607.
Tambin se puede definir como UNSIGNED (sin signo), entonces los valores
posibles empiezan en 0 hasta 16777215.
Opcionalmente, se puede definir el nmero mximo de dgitos entre parntesis
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

INT
El tipo de dato numrico INT permite nmeros desde -2147483648 hasta
2147483647.
Tambin se puede definir como UNSIGNED (sin signo), entonces los valores
posibles empiezan en 0 hasta 4294967295.
Opcionalmente, se puede definir el nmero mximo de dgitos entre parntesis
BIGINT
El tipo de dato numrico BIGINT permite nmeros desde 9223372036854775808 hasta 9223372036854775807.
Tambin se puede definir como UNSIGNED (sin signo), entonces los valores
posibles empiezan en 0 hasta 18446744073709551615.
Opcionalmente, se puede definir el nmero mximo de dgitos entre parntesis
FLOAT
El tipo de dato numrico FLOAT permite almacenar pequeos nmeros
decimales (de punto flotante).
Al ser de punto flotante, sus clculos son aproximados. Podemos especificar el
nmero mximo de dgitos (tamao) y el nmero de decimales (decimal).
FLOAT(6,2) tendr 4 dgitos enteros y 2 decimales, por ejemplo, 5467.67
DOUBLE
El tipo de dato numrico DOUBLE permite almacenar grandes nmeros
decimales (de punto flotante).
Al ser de punto flotante, sus clculos son aproximados. Podemos especificar el
nmero mximo de dgitos (tamao) y el nmero de decimales (decimal).
DOUBLE(5,1) tendr 4 dgitos enteros y 1 dgito decimal, por ejemplo, 5467.1

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

DECIMAL
El tipo de dato numric DECIMAL permite almacenar grandes nmeros
decimales de punto fijo, por tanto, los clculos con este tipo DECIMAL son
exactos.
Podemos especificar el nmero mximo de dgitos (tamao) y el nmero de
decimales (decimal). El nmero mximo de dgitos es de 65.
Por ejemplo DECIMAL(20,6) quiere decir que tendr 14 dgitos enteros y 4
dgitos decimales.
SQL Tipos de datos fecha en MySQL
En MySQL pueden existir los siguientes tipos de datos para fechas
DATE
El tipo de dato DATE sirve para almacenar una fecha con el formato YYYYMM-DD (4 dgitos para el ao, guin, 2 dgitos para el mes, guin, 2 dgitos para
el da).
DATETIME
El tipo de dato DATETIME sirve para almacenar fecha y hora, con el formato
YYYY-MM-DD HH:MM:SS
TIMESTAMP
El tipo de dato TIMESTAMP es equivalente al tipo anterior, DATETIME,
YYYY-MM-DD HH:MM:SS
TIME
El tipo de dato TIME sirve para almacenar la hora con el formato HH:MM:SS
YEAR
El tipo de dato YEAR sirve para almacenar el ao con el formato YYYY

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

SQL DATE
Existen diferentes formatos para almacenar las fechas y horas en los distintos
sistemas de bases de datos.
Los tipos de datos de cada columna se definen cuando se crea la tabla.
Tipos de Datos para las fechas y horas en la base de datos MySQL
Tipo

Formato

Ejemplo

DATE

YYYY-MM-DD

2008-11-11

DATETIME YYYY-MM-DD HH:MM:SS 2008-11-11 13:23:44


TIMESTAMP YYYY-MM-DD HH:MM:SS
YEAR

YYYY o YY

Funciones para MySQL sobre estos tipos de datos de fecha anteriores


NOW

Muestra la fecha y hora actuales. Por ejemplo: 2008-11-11


12:45:34

CURDATE

Muestra la fecha actual. Por ejemplo: 2008-11-11

CURTIME

Muestra la hora actual. Por ejemplo: 12:45:34

DATE

Muestra la parte fecha de una expresin fecha/hora

EXTRACT

Muestra una parte de una expresin fecha/hora

DATE_ADD

Muestra una fecha como suma de un intervalo de tiempo a


una fecha

DATE_SUB

Muestra una fecha como resta de un intervalo de tiempo a


una fecha

DATEDIFF

Muestra el nmero de das entre 2 fechas

DATE_FORMAT Muestra una fecha y hora con diferentes formatos


Tipos de Datos para fechas y horas en la base de datos SQL Server
DATE

Formato YYYY-MM-DD

DATETIME

Formato YYYY-MM-DD HH:MM:SS

SMALLDATETIME Formato YYYY-MM-DD HH:MM:SS

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

TIMESTAMP

Se genera un valor basado en la hora del sistema. Se


actualiza automticamente.

Funciones para SQL Server sobre los tipos de datos de fecha y hora anteriores
GETDATE Muestra la fecha y hora actuales
DATEPART Muestra parte de una fecha y hora
DATEADD Muestra una fecha como suma o resta de un intervalo de tiempo
sobre una fecha
DATEDIFF Muestra el tiempo entre 2 fechas
CONVERT Muestra la fecha y hora en diferentes formatos
Ejemplos del uso de fecha y hora
CREATE TABLE pedidos
(
idpedido int NOT NULL,
nombreproducto varchar(50) NOT NULL,
fechapedido datetime NOT NULL
PRIMARY KEY (idpedido)
)

idpedido nombreproducto fechapedido


1

papel oficina

2012-02-23 14:05:00

Si queremos almacenar solo la fecha (y no la hora) utilizaremos el tipo de datos


date en lugar de datetime.
SQL Introduccin
El SQL es un lenguaje estndar de programacin para el acceso a bases de datos.
El lenguaje SQL se utiliza para acceder y manipular datos en cualquier base de
datos del mercado, como por ejemplo, para las bases de datos MySQL, Oracle,
DB2, SQL Server, Access.
El SQL es un lenguaje estructurado y un estndar ANSI para el acceso y
manipulacin de los datos de cualquier base de datos.

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

El SQL se compone de sentencias SQL, cada una con una utilidad diferente,
como por ejemplo:

Creacin de una base de datos (CREATE DATABASE)


Creacin de una tabla (CREATE TABLE)
Creacin de una vista (CREATE VIEW)
Creacin de un ndice de una tabla (CREATE INDEX)
Creacin de procedimientos almacenados (CREATE PROCEDURE)
Creacin de disparadores (CREATE TRIGGER)
Consultar los datos almacenados en una tabla (SELECT)
Insertar datos en una tabla (INSERT)
Modificar datos ya existentes en una tabla (UPDATE)
Borrar datos almacenados en una tabla (DELETE)
Dar permiso de acceso a los datos de una tabla (GRANT)
Eliminar permisos de acceso a datos de una tabla (REVOKE)
Finalizar la transaccin de una sentencia SQL (COMMIT)
Retroceder la transaccin de una sentencia SQL (ROLLBACK).
SQL SINTAXIS

Un sistema de base de datos suele contener varias bases de datos.


Cada base de datos suele contener varias tablas.
Las tablas almacenan los datos organizados por filas.
Cada fila contiene varios campos.
Cada campo tiene una serie de propiedades, como por ejemplo, el nombre del
campo, su longitud, tipo de dato que se va a almacenar, etc.
Las sentencias SQL no son sensibles a maysculas y minsculas, es decir,
SELECT y select son dos palabras iguales para SQL.
Algunos sistemas de bases de datos necesitan un punto y coma despus de cada
sentencia SQL para ejecutarse correctamente
CREATE DATATABASE mibasedeatos;

Este punto y coma tambin puede servir para separar una sentencia SQL de otra
sentencia SQL en la misma lnea.
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


CREATE DATATABASE mibasedeatos; CREATE TABLE mitabla1;

Las sentencias SQL se pueden agrupar por funcionalidades:


1.- Lenguaje de definicin de datos (DDL).
DDL est compuesto por sentencias para la creacin (CREATE), modificacin
(ALTER) y borrado (DROP) de los componentes principales de una base de
datos:

base de datos (DATABASE)


tablas (TABLE)
vistas (VIEW)
ndices (INDEX)
procedimientos almacenados (PROCEDURE)
disparadores (TRIGGER).

2.- Lenguaje de manipulacin de datos (DML).


DML est compuesto por sentencias que sirven para :

consultar (SELECT)
insertar (INSERT)
modificar (UPDATE)
borrar (DELETE)

3.- Lenguaje de control de datos (DCL).


DCL est compuesto por sentencias SQL para controlar las funciones de
administracin :

Confirmar la operacion (COMMIT)


Retroceder la operacion (ROLLBACK)
Dar permisos (GRANT)
Quitar permisos (REVOKE)
SQL CREATE DATABASE

La sentencia CREATE DATABASE se utiliza para crear bases de datos.


Sintaxis CREATE DATABASE:
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


CREATE DATABASE nombreBaseDatos

Ejemplo CREATE DATABASE


CREATE DATABASE mibasededatos

SQL CREATE TABLE


La sentencia CREATE TABLE se utiliza para crear una tabla en una base de
datos existente.
Sintaxis CREATE TABLE
CREATE TABLE nombretabla
{
nombrecolumna1 tipodato1,
nombrecolumna2 tipodato2,
nombrecolumna3 tipodato3,
.
}

Ejemplo CREATE TABLE


CREATE TABLE personas
{
nombre varchar(255),
apellido1 varchar(255),
apellido2 varchar(255),
dep int
}

Esta sentencia crear la base de datos personas con 4 columnas.


Las columnas nombre, apellido1 y apellido2 son de tipo varchar, es decir,
acepta valores alfanumricos hasta una longitud mxima de 255 caracteres.
La columna dep es de tipo int, es decir, acepta slo nmeros.
Existen diferentes tipos de datos, algunos son iguales en todas las bases de datos
(MySQL, ORACLE, DB2, ..) y otros pueden ser particulares para ser usados
nicamente en alguna de estas bases de datos.

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

SQL RESTRICCIONES (CONSTRAINTS)


Las CONSTRAINTS son restricciones que se utilizan para limitar el tipo de dato
que puede recibir una columna de una tabla.
Las restricciones se puede definir cuando creamos la tabla (CREATE TABLE) o
posteriormente con la sentencia ALTER TABLE.
Las posibles restricciones son:

NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
SQL NOT NULL

La restriccin NOT NULL sirve para especificar que una columna no acepta el
valor NULL, es decir, que esa columna siempre tiene que tener algn valor, no
puede estar vaca.
Ejemplo SQL NULL
CREATE TABLE personas { nombre varchar(255) NOT NULL, apellido1 varchar(255) NOT NULL,
apellido2 varchar(255) }

Esta sentencia crea una tabla denominada personas, donde tenemos 3 columnas.
Las columnas nombre y apellido llevan NOT NULL, esto quiere decir que
cualquier fila insertada en esta tabla tiene que tener algn valor para las columnas
nombre y apellido1.
SQL UNIQUE
La restriccin UNIQUE identifica de manera nica a cada fila de una tabla.
Puede haber varias restricciones UNIQUE en diferentes columnas de una tabla.
Existen varias formas diferentes de sintaxis segn el sistema de base de datos
utilizado:
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Ejemplo SQL UNIQUE para la base de datos MySQL


CREATE TABLE personas { identificador int NOT NULL, nombre varchar(255) NOT NULL,
apellido1 varchar(255) NOT NULL, apellido2 varchar(255), UNIQUE (identificador) }

La sentencia anterior crea la tabla personas con 4 columnas, donde la columna


identifcador tiene un valor diferente para cada fila de la tabla.
Si intentamos insertar un fila con un identificador que ya exista, nos dar un
error, y no nos dejar insertarlo.
Ejemplo SQL UNIQUE para las bases de datos ORACLE, SQLSERVIR,
ACCESS
CREATE TABLE personas { identificador int NOT NULL UNIQUE, nombre varchar(255) NOT
NULL, apellido1 varchar(255) NOT NULL, apellido2 varchar(255), }

SQL UNIQUE ALTER TABLE


La restriccin UNIQUE se puede aadir a una columna de una tabla, despus de
ser creada, mediante la sentencia ALTER TABLE.
Sintaxis de UNIQUE ALTER TABLE
ALTER TABLE personas
ADD UNIQUE (identificador)

Crea una restriccin UNIQUE (valor nico en toda la tabla) para la columna
identificador.
Se puede crear tambin restricciones para varias columnas a la vez
ALTER TABLE peronas
ADD CONSTRAINT copersonas
UNIQUE (identificador, apellido1)

Para eliminar una restriccin en la base de datos MySQL


ALTER TABLE personas
DROP INDEX copersonas

Para eliminar una restriccin en ORACLE, SQLSERVER y ACCESS


ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


ALTER TABLE personas
DROP CONSTRAINT copersonas

SQL PRIMARY KEY


La clave primaria, PRIMARY KEY, identifica de manera nica cada fila de una
tabla.
La columna definida como clave primaria (PRIMARY KEY) debe ser UNIQUE
(valor nico) y NOT NULL (no puede contener valores nulos).
Cada tabla slo puede tener una clave primaria (PRIMARY KEY).
Ejemplo PRIMARY KEY , clave primaria en MySQL
CREATE TABLE personas
{
identificador int NOT NULL,
nombre varchar(255) NOT NULL,
apellido1 varchar(255) NOT NULL,
PRIMARY KEY (identificador)
}

Ejemplo PRIMARY KEY , clave primaria en ORACLE, SQLSERVER,


ACCESS
CREATE TABLE personas
{
identificador int NOT NULL PRIMARY KEY,
nombre varchar(255) NOT NULL,
apellido1 varchar(255) NOT NULL,
}

La clave primaria (PRIMARY KEY) puede estar compuesta por varias columnas,
por ejemplo por las columnas identificador y nombre, entonces se define as:
CREATE TABLE personas
{
identificador int NOT NULL,
nombre varchar(255) NOT NULL,
apellido1 varchar(255) NOT NULL,
CONSTRAINT pers PRIMARY KEY (identificador, nombre)
}

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

La clave primaria tambin se puede definir despus de haber creado la tabla, para
eso utilizaremos el comando ALTER TABLE
Ejemplo PRIMARY KEY con ALTER TABLE ALTER TABLE personas
ADD PRIMARY KEY (identificador)
Ejemplo PRIMARY KEY multiple ALTER TABLE ALTER TABLE personas
CONSTRAINT pers PRIMARY KEY (identificador, nombre)

SQL FOREIGN KEY


La clave externa o FOREIGN KEY, es una columna o varias columnas, que
sirven para sealar cual es la clave primaria de otra tabla.
La columna o columnas sealadas como FOREIGN KEY, solo podrn tener
valores que ya existan en la clave primaria PRIMARY KEY de la otra tabla.
Ejemplo de FOREIGN KEY
Tabla departamentos, con la clave primaria dep
dep departamento
1

ADMINISTRACION

INFORMATICA

COMERCIAL

Tabla personas, con una clave externa FOREIGN KEY dep, que hace
referencia a la clave primaria dep de la tabla anterior departamentos y por
tanto, solo puede tener un valor de los que tiene en esa tabla

per nombre

apellido1 apellido2

ANTONIO PEREZ

ANTONIO GARCIA RODRIGUEZ 2

PEDRO

RUIZ

GOMEZ

dep
1

GONZALEZ 4

Definiciones de FOREIGN KEY en CREATE TABLE para MySQL

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


CREATE TABLE departamentos { dep int NOT NULL,
departamento varchar(255),
PRIMARY KEY (dep)
}

CREATE TABLE personas


{
per int NOT NULL,
nombre varchar(255),
apellido1 varchar(255),
dep int NOT NULL,
PRIMARY KEY (per),
FOREIGN KEY (dep) REFERENCES departamentos(dep)
}

Definiciones de FOREIGN KEY en CREATE TABLE para ORACLE,


ACCESS, SQLSERVER
CREATE TABLE departamentos
{
dep int NOT NULL PRIMARY KEY,
departamento varchar(255),
}

CREATE TABLE personas


{
per int NOT NULL PRIMARY KEY,
nombre varchar(255),
apellido1 varchar(255),
dep int FOREIGN KEY REFERENCES departamentos (dep)
}

Si la clave externa o fornea (FOREIGN KEY) est compuesta por varias


columnas o queremos ponerle un nombre, utilizaremos la frmula siguiente:
CONSTRAINT fkpersonas FOREIGN KEY (dep, id) REFERENCES departamentos(dep,id).

Ejemplo FOREIGN KEY con ALTER TABLE


ALTER TABLE ADD FOREIGN KEY (dep) REFERENCES departamentos(dep)

Ejemplo FOREIGN KEY mltiple (varias columnas) con ALTER TABLE:


ALTER TABLE ADD CONSTRAINT fkpersonas FOREIGN KEY (dep) REFERENCES
departamentos(dep)

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Para borrar un clave externa (FOREIGN KEY) utilizamos DROP, pero vara
segn la base de dato:
Borrar FOREIGN KEY en MySQL ALTER TABLE personas DROP FOREIGN KEY dep

Borrar FOREIGN KEY en ORACLE, SQLSERVER y ACCESS


ALTER TABLE personas DROP CONSTRAINT dep

SQL CHECK
La restriccin CHECK se utiliza para limitar el rango de valores que puede tener
una columna.
Se pueden definir varias restricciones CHECK en una tabla.
Ejemplo CHECK en MySQL
CREATE TABLE departamentos { dep int NOT NULL, departamento varchar(255), CHECK (dep>0) }

Ejemplo CHECK en ORACLE, SQLSERVER y ACCESS:


CREATE TABLE departamentos { dep int NOT NULL CHECK (dep>0) departamento varchar(255), }

Ejemplo CHECK en ALTER TABLE en MySQL


ALTER TABLE departamentos ADD CHECK (dep>0)

Ejemplo CHECK (con mltiples columnas) en ALTER TABLE en MySQL


ALTER TABLE personas ADD CHECK (per>0, edad>35)

Ejemplo CHECK en ALTER TABLE en ORACLE, SQLSERVER y ACCESS


ALTER TABLE departamentos ADD CONSTRAINT ckdepart CHECK (dep>0)

Ejemplo CHECK en ALTER TABLE con varias columnas


ALTER TABLE personas ADD CONSTRAINT ckpersona CHECK (pers>0, nombre=antonio)

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

SQL DEFAULT
La restriccin DEFAULT se utiliza para establecer un valor por defecto a una
columna.
Si no se especifica un valor al insertar una fila, entonces se podr el valor por
defecto (DEFAULT) que tenga cada columna.
SQL DEFAULT en la sentencia CREATE TABLE
CREATE TABLE pedidos { idpedido int, producto int, cantidad int, fecha date
DEFAULT GETDATE() }
Si al crear un pedido, no especificamos el valor de la columna fecha, entonces
para esa columna se insertar por defecto obtenido de ejecutar la funcion
GETDATE(), que devuelve la fecha del sistema
En lugar de una funcin, podemos insertar una valor concreto 2001-01-01 o
cualquier otro valor.
SQL DEFAULT en la sentencia ALTER TABLE para MySQL
ALTER TABLE pedidos ALTER fecha DEFAULT 2012-01-01

SQL DEFAULT en la sentencia ALTER TABLE para ORACLE, SQLSERVER,


ACCESS:
ALTER TABLE pedidos ALTER COLUMN fecha SET DEFAULT 2012-01-01

Para borrar DEFAULT en MySQL


ALTER TABLE pedidos ALTER fecha DROP DEFAULT

Para borrar DEFAULT en ORACLE, SQLSERVER, ACCESS:


ALTER TABLE pedidos ALTER COLUMN fecha DROP DEFAULT

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

SQL CREATE INDEX


CREATE INDEX se utiliza para crear ndices en una tabla.
Un ndice sirve para buscar datos rpidamente, y no tener que recorrer toda la
tabla secuencialmente en busca alguna fila concreta.
Si una columna es ndice de una tabla, al buscar por un valor de esa columna,
iremos directamente a la fila correspondiente. La bsqueda as es mucho ms
ptima en recursos y ms rpida en tiempo.
Si esa columna de bsqueda no fuese ndice, entonces tendramos que recorrer de
forma secuencial la tabla en busca de algn dato. Por eso, es importante crear un
ndice por cada tipo de bsqueda que queramos hacer en la tabla.
Actualizar una tabla con ndices tarda ms tiempo porque tambin hay que
actualizar los ndices, as que solo se deben poner ndices en las columnas por las
que buscamos frecuentemente.
Se pueden crear ndices NICOS, es decir, ndices que no admiten valores
duplicados.
Sintaxis para SQL CREATE INDEX
CREATE INDEX nombreindice
ON nombretabla (nombrecolumna)

La columna que forma parte de este ndice admite valores duplicados en su


columna.
Sintaxis para SQL CREATE UNIQUE INDEX
CREATE UNIQUE INDEX nombreindice
ON nombretabla (nombrecolumna)

La columna que forma parte de este ndice NO admite valores duplicados en su


columna, porque es una clave nica.
Ejemplos para SQL CREATE INDEX
Creamos la ndice indicepersonas sobre la columna persona de la tabla
personas
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


CREATE INDEX indicepersonas
ON personas (persona)

Si queremos crear un ndice sobre varias columnas, por ejemplo, apellido1 y


apellido2
CREATE INDEX indice2personas
ON personas(apellido1, apellido2)

SQL DROP
La sentencia DROP se utiliza para borrar definitivamente un ndice, tabla o base
de datos.
DROP INDEX
Sintaxis DROP INDEX para MySQL
ALTER TABLE nombretabla
DROP INDEX nombreindice

Sintaxis DROP INDEX para DB2 y ORACLE


DROP INDEX nombreindice

Sintaxis DROP INDEX para ACCESS


DROP INDEX nombreindice
ON nombretabla

Sintaxis DROP INDEX para SQLSERVER


DROP INDEX nombretabla.nombreindice

DROP TABLE
Se utiliza DROP TABLE para borrar definitivamente una tabla
DROP TABLE nombretabla

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

DROP DATABASE
Se utiliza para borrar una base de datos definitivamente.
DROP DATABASE nombrebasededatos

SQL TRUNCATE
Este comando SQL TRUNCATE se utiliza para eliminar o borrar los datos que
contiene una tabla.
Es til cuando slo se quiere borrar los datos, pero no se quiere borrar la tabla.
Este comando deja vaca una tabla, es decir, sin datos.
TRUNCATE TABLE nombretabla

SQL ALTER
La sentencia SQL ALTER se utiliza para aadir, eliminar o modificar columnas
de una tabla.
Sintaxis SQL ALTER
Para aadir una nueva columna a una tabla
ALTER TABLE nombretabla
ADD nombrecolumna tipodatocolumna

Para borrar una columna de una tabla


ALTER TABLE nombretabla
DROP COLUMN nombrecolumna

Para modificar el tipo de dato de una columna de una tabla


ALTER TABLE nombretabla
ALTER COLUMN nombrecolumna tipodatocolumna

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Ejemplos de SQL ALTER


per nombre

apellido1 apellido2

ANTONIO PEREZ

ANTONIO GARCIA RODRIGUEZ

PEDRO

RUIZ

GOMEZ
GONZALEZ

Dada la siguiente tabla de personas, queremos aadir una nueva columna,


denominada 'fechadenacimiento'
ALTER TABLE personas
ADD fechadenacimiento date

per nombre

apellido1 apellido2

ANTONIO PEREZ

ANTONIO GARCIA RODRIGUEZ

PEDRO

RUIZ

fechadenacimiento

GOMEZ
GONZALEZ

Si queremos modificar el tipo de dato de la columna fecha, y ponerle tipo 'year'


en lugar de tipo 'date'
ALTER TABLE personas
ALTER COLUMN fechadenacimiento year

Si queremos borrar la columna fechadenacimiento, y dejarlo igual que al


principio
ALTER TABLE personas
DROP COLUMN fechadenacimiento

per nombre

apellido1 apellido2

ANTONIO PEREZ

ANTONIO GARCIA RODRIGUEZ

PEDRO

RUIZ

GOMEZ
GONZALEZ

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

SQL AUTO INCREMENT


AUTO INCREMENT permite generar un nmero nico cuando insertamos un
nuevo registro en la tabla.
Se utiliza para tener una clave primaria de una tabla mediante la generacin
automtica de un nmero secuencial nico en la tabla.
Sintaxis SQL AUTO INCREMENT
CREATE TABLE personas { persona int NOT NULL AUTO_INCREMENT, nombre varchar(255),
apellido1 varchar(255), apellido2 varchar(255) }

El valor inicial de una valor auto incremental (AUTO_INCREMENT) es 1, y se


le va sumando 1 cada nuevo registro grabado en la tabla.
Si queremos que el valor inicial sea 100 en lugar de 1
ALTER TABLE personas AUTO_INCREMENT=100

Para SQL SERVER se utiliza IDENTITY en lugar de AUTO_INCREMENT


Para ACCESS se utiliza AUTOINCREMENT en lugar de AUTO_INCREMENT
Para ORACLE se define de forma diferente
CREATE SEQUENCE persona MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10

SQL VIEWS
Una vista es una tabla virtual.
SQL CREATE VIEW
Una vista es una tabla virtual basada en el resultado de una consulta (SELECT) a
una tabla.
CREATE VIEW nombrevista AS
SELECT nombrecolumna(s)
FROM nombretabla
WHERE condicin

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Las vista muestran siempre datos reales de una o varias tablas.


Cada vez que un usuario pregunta o consulta una vista, el sistema de base de
datos, actualiza los datos de la vista, para mostrar siempre datos reales.
Ejemplo SQL CREATE VIEW
En la tabla personas
>
nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

edad
30

ANTONIO GARCIA RODRIGUEZ 45


PEDRO

RUIZ

GONZALEZ 50

Creamos una vista con las personas que se llaman ANTONIO


CREATE VIEW [personas que se llaman ANTONIO] AS
SELECT nombre, apellido1, apellido2,edad
FROM personas
WHERE nombre = ANTONIO

Para consultar los datos de una vista


SELECT * FROM [personas que se llama ANTONIO]

En la vista [personas que se llama ANTONIO] tenemos los datos siguientes:


>
nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

edad
30

ANTONIO GARCIA RODRIGUEZ 45


SQL REPLACE VIEW
Para reemplazar o modificar los datos de una vista:
REPLACE VIEW [personas que se llama ANTONIO] AS
SELECT nombre, apellido1, apellido2, edad
FROM personas
WHERE edad > 20

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

SQL DROP VIEW


Para borrar una vista
DROP VIEW nombrevista

Ejemplo borrado de la vista antes creada:


DROP VIEW [personas que se llama ANTONIO]

SQL VALORES NULL


El valor NULL representa a un valor desconocido.
Este valor NULL puede ser asignado como valor a cualquier columna de una
tabla.
Si el valor de una columna es opcional, quiere decir, que podemos insertar una
fila en la tabla sin asignarle ningn valor a esa columna opcional, as que esa
columna tomar el valor NULL.
El valor NULL es un valor especial, y por tanto, no se puede comparar con los
operadores aritmticos normales (=, >, <, <>), y en su lugar debemos utilizar los
operadores IS y IS NOT.
En la tabla personas, tenemos la columna apellido2 que es opcional y puede
tener valores nulos:
>
nombre

apellido1 apellido2 edad

ANTONIO PEREZ
LUIS

LOPEZ

30
PEREZ

ANTONIO GARCIA

45
50

Ejemplo de uso de IS NULL


SELECT * FROM personas WHERE apellido2 IS NULL

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

nombre

apellido1 apellido2 edad

ANTONIO PEREZ

30

ANTONIO GARCIA

50

Ejemplo de uso de IS NOT NULL


SELECT * FROM personas WHERE apellido2 IS NOT NULL

>
nombre apellido1 apellido2 edad
LUIS

LOPEZ

PEREZ

45

SQL FUNCIONES NULL


Si queremos cambiar un valor NULL por otro valor cualquiera, utilizaremos las
siguientes funciones (ISNULL, IFNULL, NVL, COLACESCE) segn el sistema
de base de datos.
Para nuestros ejemplos, queremos que si el valor es NULL se cambie por el valor
0
Ejemplo para SQL SERVER se utiliza ISNULL:
SELECT producto,
preciounidad * (unidadesstock + ISNULL(unidadespedido, 0)
FROM productos

Ejemplo para ORACLE se utiliza NVL:


SELECT producto,
preciounidad * (unidadesstock + NVL(unidadespedido, 0)
FROM productos

Ejemplo para MySQL, hay 2 funciones equivalentes (IFNULL, COALESCE):


SELECT producto,
preciounidad * (unidadesstock + IFNULL(unidadespedido, 0)
FROM productos

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


SELECT producto,
preciounidad * (unidadesstock + COALESCE(unidadespedido, 0)
FROM productos

SQL Select
Una de las sentencias SQL ms importantes es SELECT, ya que permite realizar
consultas sobre los datos almacenados en la base de datos.
Sintaxis SQL SELECT
SELECT * FROM nombretabla
SELECT columna1, columna2 FROM nombretabla

Para los ejemplos, tendremos la siguiente tabla de personas denominada


personas
Estos son los datos almacenados en la tabla personas
nombre apellido1 apellido2
ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

BENITO

LUIS

PEREZ

LOPEZ

Si queremos consultar todos los datos de la tabla personas


SELECT * FROM personas

Este ser el resultado:


nombre apellido1 apellido2
ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

BENITO

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

LUIS

LOPEZ

PEREZ

Si queremos consulta todos los nombres y primer apellido de todas las personas
SELECT nombre, apellido1 FROM personas

Esta ser el resultado:


nombre apellido1
ANTONIO PEREZ
ANTONIO GARCIA
LUIS

LOPEZ

SQL SELECT INTO


La sentencia SQL SELECT INTO se utiliza para seleccionar datos de una tabla
y copiarlos en otra tabla diferente.
Se suele utilizar para hacer una copia de seguridad (backup) de los datos de una
tabla.
Sintaxis SQL SELECT INTO
SELECT * INTO nuevatabla FROM tablaactual

Esta sentencia copiar todos los registros de la tabla tablaactual en la tabla


nuevatabla.
La nueva tabla puede incluso estar en una base de datos diferente
SELECT *
INTO nuevatabla [IN nuevabasedatos]
FROM tablaactual

Si queremos hacer un backup de una tabla en otra


ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


SELECT *
INTO personasBackup
FROM personas

Tambin se pueden seleccionar slo algunas columnas


SELECT columna1, columna2
INTO personasBackup
FROM personas

Tambin se puede incluir una condicin (WHERE)


SELECT *
INTO personasBackup
FROM personas
WHERE nombre = ANTONIO

Se puede utilizar SELECT INTO con JOIN


SELECT personas.nombre, personas.apellido1, departamentos.departamento
INTO personasInformatica
FROM personas INNER JOIN departamentos
ON personas.dep = INFORMATICA

SQL DISTINCT
Al realizar una consulta puede ocurrir que existan valores repetidos para algunas
columnas. Por ejemplo
SELECT nombre FROM personas

nombre
ANTONIO
LUIS
ANTONIO
Esto no es un problema, pero a veces queremos que no se repitan, por ejemplo, si
queremos saber los nombre diferentes que hay en la tabla personas, entonces
utilizaremos DISTINCT.
SELECT DISTINCT nombre FROM personas

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

nombre
ANTONIO
LUIS

SQL WHERE
La clusula WHERE se utiliza para hacer filtros en las consultas, es decir,
seleccionar solamente algunas filas de la tabla que cumplan una determinada
condicin.
El valor de la condicin debe ir entre comillas simples .
Por ejemplo:
Seleccionar las personas cuyo nombre sea ANTONIO
SELECT * FROM personas WHERE nombre = ANTONIO

nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA BENITO

SQL AND OR
Los operadores AND y OR se utilizan para filtrar resultados con 2 condiciones.
El operador AND mostrar los resultados cuando se cumplan las 2 condiciones.
Condicin1 AND condicin2

El operador OR mostrar los resultados cuando se cumpla alguna de las 2


condiciones.
Condicion1 OR condicion2

En la tabla personas

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

nombre apellido1 apellido2


ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

BENITO

LUIS

PEREZ

LOPEZ

La siguiente sentencia (ejemplo AND) dar el siguiente resultado:


SELECT * FROM personas
WHERE nombre = ANTONIO
AND apellido1 = GARCIA

nombre apellido1 apellido2


ANTONIO GARCIA

BENITO

La siguiente sentencia (ejemplo OR) dar el siguiente resultado:


SELECT * FROM personas
WHERE nombre = ANTONIO
OR apellido1 = GARCIA

nombre apellido1 apellido2


ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

BENITO

Tambin se pueden combinar AND y OR, como el siguiente ejemplo:


SELECT * FROM personas
WHERE nombre = ANTONIO
AND (apellido1 = GARCIA OR apellido1 = LOPEZ)

nombre apellido1 apellido2


ANTONIO GARCIA

BENITO
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

SQL ORDER BY
ORDER BY se utiliza para ordenar los resultados de una consulta, segn el valor
de la columna especificada.
Por defecto, se ordena de forma ascendente (ASC) segn los valores de la
columna.
Si se quiere ordenar por orden descendente se utiliza la palabra DES
SELECT nombre_columna(s)
FROM nombre_tabla
ORDER BY nombre_columna(s) ASC|DESC

Por ejemplo, en la tabla personas :


nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

LUIS

PEREZ

LOPEZ

ANTONIO GARCIA BENITO


SELECT nombre, apellido1
FROM personas
ORDER BY apellido1 ASC

Esta es la consulta resultante:


nombre

apellido1

LUIS

LOPEZ

ANTONIO GARCIA
ANTONIO PEREZ
Ejemplo de ordenacin descendiente (DES)
SELECT nombre, apellido1
FROM personas
ORDER BY apellido1 DESC

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Esta es la consulta resultante:


nombre

apellido1

ANTONIO PEREZ
ANTONIO GARCIA
LUIS

LOPEZ

SQL INSERT
La sentencia INSERT INTO se utiliza para insertar nuevas filas en una tabla.
Es posible insertar una nueva fila en una tabla de dos formas distintas:
INSERT INTO nombre_tabla
VALUES (valor1, valor2, valor3, )
INSERT INTO nombre_tabla (columna1, columna2, columna3,)
VALUES (valor1, valor2, valor3, )

Ejemplo:
Dada la siguiente tabla personas:
nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

LUIS

PEREZ

LOPEZ

ANTONIO GARCIA BENITO


Si queremos insertar una nueva fila en la tabla personas, lo podemos hacer con
cualquiera de las dos sentencias siguientes:
INSERT INTO personas
VALUES (PEDRO, RUIZ, GONZALEZ)
INSERT INTO personas (nombre, apellido1, apellido2)
VALUES (PEDRO, RUIZ, GONZALEZ)

Cualquiera de estas sentencias anteriores produce que se inserte una nueva fila en
la tabla personas, quedando as dicha tabla:

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

LUIS

PEREZ

LOPEZ

ANTONIO GARCIA BENITO


PEDRO

RUIZ

GONZALEZ

SQL UPDATE
La sentencia UPDATE se utiliza para modificar valores en una tabla.
La sintaxis de SQL UPDATE es:
UPDATE nombre_tabla
SET columna1 = valor1, columna2 = valor2
WHERE columna3 = valor3

La clusula SET establece los nuevos valores para las columnas indicadas.
La clusula WHERE sirve para seleccionar las filas que queremos modificar.
Ojo: Si omitimos la clusula WHERE, por defecto, modificar los valores en
todas las filas de la tabla.
Ejemplo del uso de SQL UPDATE
nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

LUIS

PEREZ

LOPEZ

ANTONIO GARCIA BENITO


PEDRO

RUIZ

GONZALEZ

Si queremos cambiar el apellido2 BENITO por RODRIGUEZ ejecutaremos:


UPDATE personas
SET apellido2 = RODRIGUEZ
WHERE nombre = ANTONIO
AND apellido1 = GARCIA
AND apellido2 = BENITO

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Ahora la tabla personas quedar as:


nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

LUIS

PEREZ

LOPEZ

ANTONIO GARCIA RODRIGUEZ


PEDRO

RUIZ

GONZALEZ

SQL DELETE
La sentencia DELETE sirve para borrar filas de una tabla.
La sintaxis de SQL DELETE es:
DELETE FROM nombre_tabla
WHERE nombre_columna = valor

Si queremos borrar todos los registros o filas de una tabla, se utiliza la sentencia:
DELETE * FROM nombre_tabla;

Ejemplo de SQL DELETE para borrar una fila de la tabla personas


nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

LUIS

PEREZ

LOPEZ

ANTONIO GARCIA RODRIGUEZ


PEDRO

RUIZ

GONZALEZ

Si queremos borrar a la persona LUIS LOPEZ PEREZ, podemos ejecutar el


comando:
DELETE FROM personas
WHERE nombre = LUIS
AND apellido1 = LOPEZ
AND apellido2 = PEREZ

La tabla personas resultante ser:


ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA RODRIGUEZ


PEDRO

RUIZ

GONZALEZ

SQL TOP
La sentencia SQL TOP se utiliza para especificar el nmero de filas a mostrar en
el resultado.
Esta clusula SQL TOP es til en tablas con muchos registros, para limitar el
nmero de filas a mostrar en la consulta, y as sea ms rpida la consulta,
consumiendo tambin menos recursos en el sistema.
Esta clusula se especifica de forma diferente segn el sistema de bases de datos
utilizado.
Clusula SQL TOP para SQL SERVER
SELECT TOP nmero
PERCENT nombre_columna
FROM nombre_tabla

Clusula SQL TOP para MySQL


SELECT columna(s) FROM tabla
LIMIT nmerofilas

Clusula SQL TOP para ORACLE


SELECT columna(s) FROM tabla
WHERE ROWNUM <= nmerofilas

Ejemplo SQL TOP para MySQL:


Dada la siguiente tabla personas, quiero obtener los 2 primeros valores.
nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

ANTONIO GARCIA RODRIGUEZ


PEDRO

RUIZ

GONZALEZ

SELECT * FROM personas LIMIT 2

Obtendramos el siguiente resultado:


nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA RODRIGUEZ

SQL LIKE
El operador LIKE se utiliza en la clusula WHERE para buscar por un patrn.
Sintaxis de SQL LIKE
SELECT columna(s) FROM tabla WHERE columna LIKE %patron%

Ejemplos del uso de SQL LIKE


Dada la siguiente tabla personas
nombre apellido1 apellido2
ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

RODRIGUEZ

PEDRO

GONZALEZ

RUIZ

Si quiero seleccionar los nombres que empiezan por AN en la tabla personas,


ejecutara el comando siguiente:
SELECT * FROM personas
WHERE nombre LIKE AN%

El character % es un comodn, que sirve para uno o ms caracteres.


ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Este es el resultado
nombre apellido1 apellido2
ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

RODRIGUEZ

Otro ejemplo de SQL LIKE


Para seleccionar las personas que tienen un Z en su apellido1, ejecutaramos:
SELECT * FROM personas
WHERE apellido1 LIKE %Z%
nombre apellido1 apellido2
ANTONIO PEREZ

GOMEZ

PEDRO

GONZALEZ

RUIZ

SQL WILDCARDS
Los caracteres Wildcards (comodines) son caracteres especiales que se utilizan
para realizar bsquedas especiales, como por ejemplo, buscar palabras que
empiecen por una letra determinada (letra%) o que contengan la letra a (%a%), o
que contengan alguna vocal ([aeiou]), etc.
Los caracteres Wildcards se utilizan con el operador SQL LIKE en una sentencia
SELECT.Los caracteres Wildcards son :
%

sustituye a cero o ms caracteres

sustituye a 1 carcter cualquiera

[lista]

sustituye a cualquier carcter de la lista

[^lista] o [!lista] sustituye a cualquier carcter excepto los caracteres de la lista


ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Ejemplos:
Dada la siguiente tabla personas
nombre apellido1 apellido2
ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

RODRIGUEZ

PEDRO

GONZALEZ

RUIZ

Ejemplos Wildcards
Seleccionar las personas cuyo nombre contenga una R
SELECT * FROM personas
WHERE nombre LIKE %R%

Resultado:
nombre apellido1 apellido2
PEDRO RUIZ

GONZALEZ

Seleccionar las personas cuyo apellido1 empiece por GA


SELECT * FROM personas
WHERE apellido1 LIKE PE_EZ

Resultado:
nombre apellido1 apellido2
ANTONIO PEREZ

GOMEZ

Seleccionar las personas cuyo apellido1 empiece por P o G

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


SELECT * FROM personas
WHERE apellido1 LIKE [PG]%

Resultado:
nombre apellido1 apellido2
ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

RODRIGUEZ

SQL IN
El operador IN permite seleccionar mltiples valores en una clusula WHERE
Sintaxis SQL IN
SELECT columna
FROM tabla
WHERE columna
IN (valor1, valor2, valor3, )

Ejemplo SQL IN
Dada la siguiente tabla personas
nombre apellido1 apellido2
ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

RODRIGUEZ

PEDRO

GONZALEZ

RUIZ

Queremos seleccionar a las personas cuyo apellido1 sea PEREZ o RUIZ


SELECT * FROM personas
WHERE apellido1
IN (PEREZ,RUIZ)

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

nombre apellido1 apellido2


ANTONIO PEREZ

GOMEZ

PEDRO

GONZALEZ

RUIZ

SQL BETWEEN
El operador BETWEEN se utiliza en la clusula WHERE para seleccionar
valores entre un rango de datos.
Sintaxis de SQL BETWEEN
SELECT columna
FROM tabla WHERE columna
BETWEEN valor1 AND valor2

Ejemplo de SQL BETWEEN


Dada la siguiente tabla personas
nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA RODRIGUEZ


PEDRO

RUIZ

GONZALEZ

Seleccionar personas cuyo apellido1 est entre FERNANDEZ y HUERTAS


SELECT *
FROM personas
WHERE apellido1
BETWEEN FERNANDEZ AND HUERTAS

nombre

apellido1 apellido2

ANTONIO GARCIA RODRIGUEZ


Seleccionar personas cuyo apellido1 no est entre FERNANDEZ y HUERTAS

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


SELECT *
FROM personas
WHERE apellido1
NOT BETWEEN FERNANDEZ AND HUERTAS

nombre

apellido1 apellido2

ANTONIO PEREZ

GOMEZ

PEDRO

GONZALEZ

RUIZ

SQL ALIAS
Un alias, es otra forma de llamar a una tabla o a una columna, y se utiliza para
simplificar las sentencias SQL cuando los nombre de tablas o columnas son
largos o complicados.
Sintaxis SQL ALIAS para una tabla:
SELECT columna
FROM nombretabla
AS aliastabla

Sintaxis SQL ALIAS para una columna


SELECT nombrecolumna
AS aliascolumna
FROM tabla

Ejemplos SQL ALIAS


Dada la siguiente tabla personas
nombre apellido1 apellido2
ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

RODRIGUEZ

PEDRO

GONZALEZ

RUIZ

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Utilizamos el alias p para la tabla personas, para simplificar la sentencia


SELECT
SELECT p.apellido1, p.apellido2
FROM personas
AS p
WHERE p.nombre = ANTONIO

apellido1 apellido2
PEREZ

GOMEZ

GARCIA

RODRIGUEZ

Sin utilizar el alias, la sentencia SELECT quedara un poco ms larga:


SELECT personas.apellido1, personas.apellido2
FROM personas
WHERE personas.nombre = ANTONIO

apellido1 apellido2
PEREZ

GOMEZ

GARCIA

RODRIGUEZ

SQL JOINS
La sentencia SQL JOIN permite consultar datos de 2 o ms tablas.
Dichas tablas estarn relacionadas entre ellas de alguna forma, a travs de alguna
de sus columnas.
Existen 3 tipos de JOINS: JOIN interno, JOIN externo y JOIN cruzado.
Una clave primaria es una columna con un valor nico para cada registro de una
tabla.
El propsito del JOIN es unir informacin de diferentes tablas, para no tener que
repetir datos en diferentes tablas.
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Ejemplo:
Si tenemos las siguientes tablas
Tabla personas, con la clave primaria per
per nombre apellido1 apellido2

dep

ANTONIO PEREZ

GOMEZ

ANTONIO GARCIA

RODRIGUEZ 2

PEDRO

GONZALEZ 2

RUIZ

Tabla departamentos, con la clave primaria dep


dep departamento
1

ADMINISTRACION

INFORMATICA

COMERCIAL

Si queremos saber los nombres de las personas que trabajan en INFORMATICA,


tendramos que hacer un JOIN de las 2 tablas personas y departamentos, que
se relacionaran por la columna dep.
Es decir, que desde la tabla personas y mediante la columna dep, podemos
acceder a la informacin de la tabla departamentos.
SQL INNER JOIN
La sentencia INNER JOIN es el sentencia JOIN por defecto, y consiste en
combinar cada fila de una tabla con cada fila de la otra tabla, seleccionado
aquellas filas que cumplan una determinada condicin.
SELECT * FROM tabla1 INNER JOIN tabla2 WHERE tabla1.columna1 = tabla2.columna1

Ejemplo SQL INNER JOIN


ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Tabla personas, con la clave primaria per


per nombre

apellido1 apellido2

ANTONIO PEREZ

ANTONIO GARCIA RODRIGUEZ 2

PEDRO

RUIZ

GOMEZ

dep
1

GONZALEZ 2

Tabla departamentos, con la clave primaria dep


dep departamento
1

ADMINISTRACION

INFORMATICA

COMERCIAL

SELECT nombre, apellido1, departamento FROM personas INNER JOIN departamentos WHERE
personas.dep = departamentos.dep

nombre

apellido1 departamento

ANTONIO PEREZ

ADMINISTRACION

ANTONIO GARCIA INFORMATICA


PEDRO

RUIZ

INFORMATICA

SQL LEFT JOIN


La sentencia LEFT JOIN combina los valores de la primera tabla con los
valores de la segunda tabla. Siempre devolver las filas de la primera tabla,
incluso aunque no cumplan la condicin.
SELECT * FROM tabla1
LEFT JOIN tabla2
WHERE tabla1.columna1 = tabla2.columna1

Ejemplo de SQL LEFT JOIN


Tabla personas, con la clave primaria per

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

per nombre

apellido1 apellido2

ANTONIO PEREZ

ANTONIO GARCIA RODRIGUEZ 2

PEDRO

RUIZ

GOMEZ

dep
1

GONZALEZ 4

Tabla departamentos, con la clave primaria dep


dep departamento
1

ADMINISTRACION

INFORMATICA

COMERCIAL

SELECT nombre, apellido1, departamento


FROM personas
LEFT JOIN departamentos
WHERE personas.dep = departamentos.dep

nombre

apellido1 departamento

ANTONIO PEREZ

ADMINISTRACION

ANTONIO GARCIA INFORMATICA


PEDRO

RUIZ

Aunque el departamento 4 de PEDRO RUIZ no existe en la tabla de


departamentos, devolver la fila con esa columna departamento en blanco.
SQL RIGHT JOIN
La sentencia RIGHT JOIN combina los valores de la primera tabla con los
valores de la segunda tabla. Siempre devolver las filas de la segunda tabla,
incluso aunque no cumplan la condicin.
En algunas bases de datos, la sentencia RIGHT JOIN es igual a RIGHT OUTER
JOIN
SELECT * FROM tabla1 RIGHT JOIN tabla2 WHERE tabla1.columna1 = tabla2.columna1

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

EJEMPLO SQL RIGHT JOIN


per nombre

apellido1 apellido2

ANTONIO PEREZ

ANTONIO GARCIA RODRIGUEZ 2

PEDRO

RUIZ

GOMEZ

dep
1

GONZALEZ 4

Tabla departamentos, con la clave primaria dep


dep departamento
1

ADMINISTRACION

INFORMATICA

COMERCIAL

SELECT nombre, apellido1, departamento


FROM personas
RIGHT JOIN departamentos
WHERE personas.dep = departamentos.dep

nombre

apellido1 departamento

ANTONIO PEREZ

ADMINISTRACION

ANTONIO GARCIA INFORMATICA


COMERCIAL
Aunque no exista ninguna persona del departamento COMERCIAL (3), esta
fila aparecer con las otras columnas en blanco
SQL FULL JOIN
La sentencia FULL JOIN combina los valores de la primera tabla con los
valores de la segunda tabla. Siempre devolver las filas de las dos tablas, aunque
no cumplan la condicin.
La sentencia FULL JOIN es la unin de LEFT JOIN y RIGHT JOIN
SELECT * FROM tabla1 FULL JOIN tabla2 WHERE tabla1.columna1 = tabla2.columna1

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

EJEMPLO SQL FULL JOIN


per nombre

apellido1 apellido2

ANTONIO PEREZ

ANTONIO GARCIA RODRIGUEZ 2

PEDRO

RUIZ

GOMEZ

dep
1

GONZALEZ 4

Tabla departamentos, con la clave primaria dep


dep departamento
1

ADMINISTRACION

INFORMATICA

COMERCIAL

SELECT nombre, apellido1, departamento


FROM personas
FULL JOIN departamentos
WHERE personas.dep = departamentos.dep

nombre

apellido1 departamento

ANTONIO PEREZ

ADMINISTRACION

ANTONIO GARCIA INFORMATICA


PEDRO

RUIZ

COMERCIAL

SQL UNION
La sentencia SQL UNION es utilizada para acumular los resultados de dos
sentencias SELECT.
Las dos sentencias SELECT tienen que tener el mismo nmero de columnas, con
el mismo tipo de dato y en el mismo orden.
Sintaxis SQL UNION
SELECT columna1, columna2 FROM tabla1
UNION
SELECT columna1, columna2 FROM tabla2

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Ejemplo SQL UNION


Tabla personas_empresa1
per nombre

apellido1 apellido2

ANTONIO PEREZ

ANTONIO GARCIA RODRIGUEZ

PEDRO

RUIZ

GOMEZ
GONZALEZ

Tabla personas_empresa2
per nombre

apellido1

JUAN

APARICIO TENS

ANTONIO GARCIA

RODRIGUEZ

LUIS

VAZQUEZ

LOPEZ

apellido2

SELECT nombre, apellido1 FROM personas_empresa1


UNION
SELECT nombre, apellido1 FROM personas_empresa2

nombre

apellido1

ANTONIO PEREZ
ANTONIO GARCIA
PEDRO

RUIZ

JUAN

APARICIO

LUIS

LOPEZ

La persona ANTONIO GARCIA RODRIGUEZ aparecer solo una vez en el


resultado, porque no aparecern las filas repetidas.
SQL UNION ALL
La sentencia SQL UNION ALL es utilizada para acumular los resultados de dos
sentencias SELECT, incluso aparecern las filas que estn repetidas en los
resultados de ambas SELECT.

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Las dos sentencias SELECT tienen que tener el mismo nmero de columnas, con
el mismo tipo de dato y en el mismo orden.
Sintaxis SQL UNION
SELECT columna1, columna2 FROM tabla1
UNION ALL
SELECT columna1, columna2 FROM tabla2

Ejemplo SQL UNION ALL


Tabla personas_empresa1
per nombre

apellido1 apellido2

ANTONIO PEREZ

ANTONIO GARCIA RODRIGUEZ

PEDRO

RUIZ

GOMEZ
GONZALEZ

Tabla personas_empresa2
per nombre

apellido1

JUAN

APARICIO TENS

ANTONIO GARCIA

RODRIGUEZ

LUIS

VAZQUEZ

LOPEZ

apellido2

SELECT nombre, apellido1 FROM personas_empresa1


UNION ALL
SELECT nombre, apellido1 FROM personas_empresa2

nombre

apellido1

ANTONIO PEREZ
ANTONIO GARCIA
PEDRO

RUIZ

JUAN

APARICIO

ANTONIO GARCIA
LUIS

LOPEZ

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

La persona ANTONIO GARCIA RODRIGUEZ aparecer dos veces, porque


est en los dos resultados de las sentencias SELECT.
Funciones SQL
SQL tiene funciones predefinidas para realizar ciertos clculos con un mayor
rendimiento.
AVG

Devuelve el valor medio de una columna.

COUNT

Devuelve el nmero de filas de la consulta.

FIRST

Devuelve el primer valor de la consulta.

LAST

Devuelve el ltimo valor de la consulta.

MAX

Devuelve el mayor valor de una columna.

MIN

Devuelve el menor valor de una columna.

SUM

Devuelve la suma de los valores de una columna.

GROUP
BY

Agrupar filas con el mismo valor de una columna.

HAVING

Incluir condiciones con funciones SQL.

UCASE

Convierte un valor a maysculas.

LCASE

Convierte un valor a minsculas.

MID

Extrae caracteres de un campo de texto.

LEN

Devuelve la longitud de un campo de texto.

ROUND

Redondea un campo numrico a un nmero de decimales


especificado.

NOW

Devuelve la fecha y hora actuales del sistema.

FORMAT

Formatea un campo segn se quiera mostrar.

Funcin SQL AVG


La funcin AVG devuelve el valor medio de una columna de tipo numrico.
Sintaxis SQL AVG:
SELECT AVG(columna) FROM tabla

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Ejemplo SQL AVG:


Tabla pedidos
id pedido cliente

precio

1 p1

RUIZ

100

2 p2

PEREZ

300

3 p3

GOMEZ

250

4 p4

RODRIGUEZ 490

5 p5

LOPEZ

60

Si quieres saber el valor medio del campo precio, usa la siguiente funcin SQL
SELECT AVG(precio)
AS preciomedio
FROM pedidos

La tabla resultante sera


preciomedio
240
Si quieres seleccionar los clientes con el precio del pedido superior al precio
medio de los pedidos.
SELECT * FROM pedidos
WHERE precio > (SELECT AVG(precio) FROM pedidos)

id pedido cliente

precio

2 p2

PEREZ

300

3 p3

GOMEZ

250

4 p4

RODRIGUEZ 490

Funcin SQL COUNT


La funcin COUNT devuelve el nmero de filas de la consulta, es decir, el
nmero de registros que cumplen una determinada condicin.
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Los valores nulos no sern contabilizados.


Sintaxis de SQL COUNT:
SELECT COUNT(columna) FROM tabla

Para obtener el nmero de filas de una tabla


SELECT COUNT(*) FROM tabla

Para obtener el nmero de valores distintos de la columna especificada.


SELECT COUNT(DISTINCT columna) FROM tabla.

Ejemplos de SQL COUNT:


Dada la siguiente tabla pedidos
id pedido cliente

precio

1 p1

RUIZ

100

2 p2

PEREZ

300

3 p3

GOMEZ

250

4 p4

RODRIGUEZ 490

5 p5

LOPEZ

60

SELECT COUNT(*) FROM pedidos

Devolver el nmero de filas de la tabla, es decir, 5


SELECT COUNT(*) FROM pedidos
WHERE cliente = RUIZ

Devolver el nmero de filas del resultado de la consulta, es decir, 1


SELECT COUNT(*) FROM pedidos
WHERE precio > 270

Devolver el nmero de filas del resultado de la consulta, es decir, 2

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Funcin SQL FIRST


La funcin SQL FIRST devuelve el primer valor de la columna seleccionada.
Sintaxis SQL FIRST:
SELECT FIRST(columna) FROM table

Ejemplo SQL FIRST:


Dada la siguiente tabla pedidos
id pedido cliente

precio

1 p1

RUIZ

100

2 p2

PEREZ

300

3 p3

GOMEZ

250

4 p4

RODRIGUEZ 490

5 p5

LOPEZ

60

SELECT FIRST(precio) FROM pedidos

Devolver el valor 100, que es el valor de la columan precio de la primera fila


de la tabla.
Funcin SQL LAST
La funcin SQL LAST sirve para obtener el valor de una columna de la ltima
fila de la seleccin.
Sintaxis SQL LAST:
SELECT LAST(columna) FROM table

Ejemplo SQL LAST:


Dada la siguiente tabla pedidos
id pedido cliente

precio

1 p1

100

RUIZ

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

2 p2

PEREZ

300

3 p3

GOMEZ

250

4 p4

RODRIGUEZ 490

5 p5

LOPEZ

60

SELECT LAST(precio) FROM pedidos

Devolver el valor 60, que es el valor de la columna precio de la ltima fila de


la tabla.
Funcin SQL MAX
La funcin MAX sirve para obtener el mayor valor para una columna
determinada.
Sintaxis SQL MAX:
SELECT MAX(columna) FROM tabla

Ejemplo SQL MAX:


Dada la siguiente tabla pedidos
id pedido cliente

precio

1 p1

RUIZ

100

2 p2

PEREZ

300

3 p3

GOMEZ

250

4 p4

RODRIGUEZ 490

5 p5

LOPEZ

60

SELECT MAX(precio) FROM pedidos

Devolver el valor 490, que es mximo valor de la columna precio de la


consulta.

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Funcin SQL MIN


La funcin MIN sirve para obtener el valor ms pequeo para una columna
determinada.
Sintaxis SQL MIN:
SELECT MIN(columna) FROM tabla

Ejemplo SQL MIN:


Dada la siguiente tabla pedidos
id pedido cliente

precio

1 p1

RUIZ

100

2 p2

PEREZ

300

3 p3

GOMEZ

250

4 p4

RODRIGUEZ 490

5 p5

LOPEZ

60

SELECT MIN(precio) FROM pedidos

Devolver el valor 60, que es valor ms pequeo de la columna precio de la


consulta.
Funcin SQL SUM
La funcin SUM permite obtener la suma total de los valores de una columna de
tipo numrico.
Sintaxis SQL SUM
SELECT SUM(columna) FROM tabla

Dada la siguiente tabla pedidos


id pedido cliente

precio

1 p1

100

RUIZ

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

2 p2

PEREZ

300

3 p3

GOMEZ

250

4 p4

RODRIGUEZ 490

5 p5

LOPEZ

60

SELECT SUM(precio) FROM pedidos

Devolver el valor 1200, que es la suma de todos los valores de la columna


precio de la consulta realizada, en este caso, de toda la tabla.
FUNCION SQL GROUP BY
La funcin GROUP BY se utiliza para juntar filas de resultados que coincidan en
el valor de alguna columna seleccionada.
Sintaxis GROUP BY
SELECT columna, funcion(columna)
FROM tabla
GROUP BY columna

Ejemplo de uso de GROUP BY


Dada la siguiente tabla pedidos
id pedido cliente

precio

1 p1

RUIZ

100

2 p2

PEREZ 300

3 p3

GOMEZ 250

4 p4

RUIZ

5 p5

GOMEZ 60

490

SELECT cliente, SUM(precio)


FROM pedidos
GROUP BY cliente

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

El resultado ser el siguiente:


cliente

SUM(precio)

RUIZ

590

PEREZ 300
GOMEZ 310
El cliente RUIZ se repite 2 veces, se suman sus valores para la columna
precio 490 + 100 = 590
El cliente PEREZ se queda igual, con el valor para precio de 300.
El cliente GOMEZ se repite 2 veces, y se suman sus valores para la columna
precio 250 + 60 = 310
Nota: Se puede agrupar tambin por varias columnas.
GROUP BY columna1, columna2

FUNCION SQL HAVING


La funcin HAVING se utiliza para incluir condiciones con alguna funcin SQL
del tipo SUM, MAX, ..
Como la clusula WHERE no se puede utilizar con funciones SQL del tipo SUM,
MAX, entonces utilizamos en su lugar, HAVING.
Sintaxis HAVING
SELECT columna1, SUM(columna2)
FROM tabla
GROUP BY columna1
HAVING SUM(columna2) < nmero

Ejemplo de SQL HAVING


Dada la siguiente tabla pedidos
id pedido cliente

precio

1 p1

100

RUIZ

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

2 p2

PEREZ 300

3 p3

GOMEZ 250

4 p4

RUIZ

5 p5

GOMEZ 60

490

SELECT cliente, SUM(precio)


FROM pedidos
GROUP BY cliente
HAVING SUM(precio) > 500

El resultado sera:
cliente SUM(precio)
RUIZ 590
Solamente el cliente RUIZ suma en sus valores para precio 490 + 100 = 590
un valor superior a 500
El cliente GOMEZ suma en sus valores para la columna precio 250 + 60 =
310, que tambin es menor de 500, y por tanto, no aparece en la tabla resultante.
El cliente PEREZ obtiene un valor de 300, y tampoco aparece en la tabla,
porque es menor de 500.
Funcin SQL UCASE
La funcin UCASE sirve para convertir a maysculas el valor de una columna.
Sintaxis SQL UCASE
SELECT UCASE(columna)
FROM tabla

Ejemplo SQL UCASE:


Dada la siguiente tabla pedidos
id pedido cliente precio
1 p1

Ruiz

100

2 p2

Perez 300
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

3 p3

Gomez 250

SELECT UCASE(cliente)
FROM pedidos

El resultado sera:
cliente
RUIZ
PEREZ
GOMEZ
Funcin SQL LCASE
La funcin LCASE sirve para convertir a minsculas el valor de una columna.
Sintaxis SQL LCASE
SELECT LCASE (columna) FROM tabla

Ejemplo SQL LCASE:


Dada la siguiente tabla pedidos
id pedido cliente precio
1 p1

Ruiz

100

2 p2

Perez 300

3 p3

Gomez 250

SELECT LCASE (cliente) FROM pedidos

El resultado sera:
cliente
ruiz
perez
gomez
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Funcin SQL MID


La funcin MID se utiliza para extraer caracteres de un campo de texto
Sintaxis SQL MID
SELECT MID(columna, inicio, longitud)
FROM tabla

columna es la columna donde se quiere extraer datos de su valor.


inicio es la posicin desde la que empezar a extraer.
longitud es el nmero de caracteres a extraer. En caso de no especificarlo,
coger hasta el final del campo de texto.
Ejemplo de SQL MID:
Dada la siguiente tabla pedidos
id pedido cliente precio
1 p1

Ruiz

100

2 p2

Perez 300

3 p3

Gomez 250

Si queremos extraer los primeros 3 caracteres de los valores de la columna


cliente:
SELECT MID(cliente,1,3) FROM pedidos

El resultados ser:
cliente
Rui
Per
Gom

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

Funcin SQL LEN


La funcin LEN sirve para calcular la longitud del valor de un campo de texto.
Sintaxis SQL LEN
SELECT LEN(columna) FROM tabla

Ejemplo SQL LEN


Dada la siguiente tabla pedidos
id pedido cliente

precio

1 p1

Ruiz

100

2 p2

Perez

300

3 p3

Rodriguez 250

Si queremos saber la longitud de cada valor de la columna cliente:


SELECT LEN(cliente) AS cliente FROM pedidos

cliente
4
5
9

Funcin SQL ROUND


La funcin ROUND se utiliza para redondear un campo numrico en un nmero
de decimales especificado.
Sintaxis SQL ROUND
SELECT ROUND(columna, decimales) FROM tabla

Ejemplo SQL ROUND


Dada la siguiente tabla pedidos
ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

id pedido cliente

precio

1 p1

Ruiz

100.25

2 p2

Perez

305.57

3 p3

Rodriguez 250.84

Si queremos los precios de los pedidos sin nmeros decimales, ejecutaremos:


SELECT ROUND(precio,0) AS rprecio
FROM pedidos

El resultado sera:
rprecio
100
306
251

Funcin SQL NOW


La funcin NOW devuelve la fecha y hora actuales.
Sintaxis SQL NOW
SELECT NOW() FROM table

Ejemplo SQL NOW


Dada la siguiente tabla productos
id producto precio
1 ordenador 1200.25
2 impresora 65.57
3 teclado

10.84

Si queremos saber los precios de los productos a fecha de hoy

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO


SELECT producto, precio, NOW() AS fecha
FROM productos

El resultado ser:
producto precio fecha
ordenador 900.25 10/2/2012 10:15:42 AM
impresora 65.57 10/2/2012 10:15:42 AM
teclado

10.84 10/2/2012 10:15:42 AM

Funcin SQL FORMAT


La funcin FORMAT se utiliza para especificar como se mostrar un campo en
el resultado de la consulta.
Sintaxis SQL FORMAT
SELECT FORMAT(columna, formato) FROM tabla

Ejemplo SQL FORMAT


Dada la siguiente tabla productos
id producto precio
1 ordenador 1200.25
2 impresora 65.57
3 teclado

10.84

Si queremos saber los precios de los productos a fecha de hoy, pero queremos
que la fecha tenga el formato YYYY-MM-DD, es decir, 4 caracteres para el
ao, guin, 2 caracteres para el mes, guin y 2 caracteres para el da.
SELECT producto, precio,
FORMAT(NOW(), YYYY-MM-DD)
AS fecha
FROM productos

ING JESUS SILVA

SENTENCIAS SQL - MANUAL COMPLETO

El resultado ser:
producto precio fecha
ordenador 900.25 2012-02-10
impresora 65.57 2012-02-10
teclado

10.84 2012-02-10

ING JESUS SILVA

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