Documente Academic
Documente Profesional
Documente Cultură
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
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 ().
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
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
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
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
YYYY o YY
CURDATE
CURTIME
DATE
EXTRACT
DATE_ADD
DATE_SUB
DATEDIFF
Formato YYYY-MM-DD
DATETIME
TIMESTAMP
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)
)
papel oficina
2012-02-23 14:05:00
El SQL se compone de sentencias SQL, cada una con una utilidad diferente,
como por ejemplo:
Este punto y coma tambin puede servir para separar una sentencia SQL de otra
sentencia SQL en la misma lnea.
ING JESUS SILVA
consultar (SELECT)
insertar (INSERT)
modificar (UPDATE)
borrar (DELETE)
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
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)
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)
}
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)
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
PEDRO
RUIZ
GOMEZ
dep
1
GONZALEZ 4
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
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) }
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 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
DROP TABLE
Se utiliza DROP TABLE para borrar definitivamente una tabla
DROP TABLE nombretabla
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
apellido1 apellido2
ANTONIO PEREZ
PEDRO
RUIZ
GOMEZ
GONZALEZ
per nombre
apellido1 apellido2
ANTONIO PEREZ
PEDRO
RUIZ
fechadenacimiento
GOMEZ
GONZALEZ
per nombre
apellido1 apellido2
ANTONIO PEREZ
PEDRO
RUIZ
GOMEZ
GONZALEZ
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
apellido1 apellido2
ANTONIO PEREZ
GOMEZ
edad
30
RUIZ
GONZALEZ 50
apellido1 apellido2
ANTONIO PEREZ
GOMEZ
edad
30
ANTONIO PEREZ
LUIS
LOPEZ
30
PEREZ
ANTONIO GARCIA
45
50
nombre
ANTONIO PEREZ
30
ANTONIO GARCIA
50
>
nombre apellido1 apellido2 edad
LUIS
LOPEZ
PEREZ
45
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
GOMEZ
ANTONIO GARCIA
BENITO
LUIS
PEREZ
LOPEZ
GOMEZ
ANTONIO GARCIA
BENITO
LUIS
LOPEZ
PEREZ
Si queremos consulta todos los nombres y primer apellido de todas las personas
SELECT nombre, apellido1 FROM personas
LOPEZ
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
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
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
En la tabla personas
GOMEZ
ANTONIO GARCIA
BENITO
LUIS
PEREZ
LOPEZ
BENITO
GOMEZ
ANTONIO GARCIA
BENITO
BENITO
ING JESUS SILVA
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
apellido1 apellido2
ANTONIO PEREZ
GOMEZ
LUIS
PEREZ
LOPEZ
apellido1
LUIS
LOPEZ
ANTONIO GARCIA
ANTONIO PEREZ
Ejemplo de ordenacin descendiente (DES)
SELECT nombre, apellido1
FROM personas
ORDER BY apellido1 DESC
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
Cualquiera de estas sentencias anteriores produce que se inserte una nueva fila en
la tabla personas, quedando as dicha tabla:
nombre
apellido1 apellido2
ANTONIO PEREZ
GOMEZ
LUIS
PEREZ
LOPEZ
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
RUIZ
GONZALEZ
apellido1 apellido2
ANTONIO PEREZ
GOMEZ
LUIS
PEREZ
LOPEZ
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;
apellido1 apellido2
ANTONIO PEREZ
GOMEZ
LUIS
PEREZ
LOPEZ
RUIZ
GONZALEZ
nombre
apellido1 apellido2
ANTONIO PEREZ
GOMEZ
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
apellido1 apellido2
ANTONIO PEREZ
GOMEZ
ING JESUS SILVA
RUIZ
GONZALEZ
apellido1 apellido2
ANTONIO PEREZ
GOMEZ
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%
GOMEZ
ANTONIO GARCIA
RODRIGUEZ
PEDRO
GONZALEZ
RUIZ
Este es el resultado
nombre apellido1 apellido2
ANTONIO PEREZ
GOMEZ
ANTONIO GARCIA
RODRIGUEZ
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 :
%
[lista]
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
Resultado:
nombre apellido1 apellido2
ANTONIO PEREZ
GOMEZ
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
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
apellido1 apellido2
ANTONIO PEREZ
GOMEZ
RUIZ
GONZALEZ
nombre
apellido1 apellido2
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
GOMEZ
ANTONIO GARCIA
RODRIGUEZ
PEDRO
GONZALEZ
RUIZ
apellido1 apellido2
PEREZ
GOMEZ
GARCIA
RODRIGUEZ
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
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
ADMINISTRACION
INFORMATICA
COMERCIAL
apellido1 apellido2
ANTONIO PEREZ
PEDRO
RUIZ
GOMEZ
dep
1
GONZALEZ 2
ADMINISTRACION
INFORMATICA
COMERCIAL
SELECT nombre, apellido1, departamento FROM personas INNER JOIN departamentos WHERE
personas.dep = departamentos.dep
nombre
apellido1 departamento
ANTONIO PEREZ
ADMINISTRACION
RUIZ
INFORMATICA
per nombre
apellido1 apellido2
ANTONIO PEREZ
PEDRO
RUIZ
GOMEZ
dep
1
GONZALEZ 4
ADMINISTRACION
INFORMATICA
COMERCIAL
nombre
apellido1 departamento
ANTONIO PEREZ
ADMINISTRACION
RUIZ
apellido1 apellido2
ANTONIO PEREZ
PEDRO
RUIZ
GOMEZ
dep
1
GONZALEZ 4
ADMINISTRACION
INFORMATICA
COMERCIAL
nombre
apellido1 departamento
ANTONIO PEREZ
ADMINISTRACION
apellido1 apellido2
ANTONIO PEREZ
PEDRO
RUIZ
GOMEZ
dep
1
GONZALEZ 4
ADMINISTRACION
INFORMATICA
COMERCIAL
nombre
apellido1 departamento
ANTONIO PEREZ
ADMINISTRACION
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
apellido1 apellido2
ANTONIO PEREZ
PEDRO
RUIZ
GOMEZ
GONZALEZ
Tabla personas_empresa2
per nombre
apellido1
JUAN
APARICIO TENS
ANTONIO GARCIA
RODRIGUEZ
LUIS
VAZQUEZ
LOPEZ
apellido2
nombre
apellido1
ANTONIO PEREZ
ANTONIO GARCIA
PEDRO
RUIZ
JUAN
APARICIO
LUIS
LOPEZ
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
apellido1 apellido2
ANTONIO PEREZ
PEDRO
RUIZ
GOMEZ
GONZALEZ
Tabla personas_empresa2
per nombre
apellido1
JUAN
APARICIO TENS
ANTONIO GARCIA
RODRIGUEZ
LUIS
VAZQUEZ
LOPEZ
apellido2
nombre
apellido1
ANTONIO PEREZ
ANTONIO GARCIA
PEDRO
RUIZ
JUAN
APARICIO
ANTONIO GARCIA
LUIS
LOPEZ
COUNT
FIRST
LAST
MAX
MIN
SUM
GROUP
BY
HAVING
UCASE
LCASE
MID
LEN
ROUND
NOW
FORMAT
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
id pedido cliente
precio
2 p2
PEREZ
300
3 p3
GOMEZ
250
4 p4
RODRIGUEZ 490
precio
1 p1
RUIZ
100
2 p2
PEREZ
300
3 p3
GOMEZ
250
4 p4
RODRIGUEZ 490
5 p5
LOPEZ
60
precio
1 p1
RUIZ
100
2 p2
PEREZ
300
3 p3
GOMEZ
250
4 p4
RODRIGUEZ 490
5 p5
LOPEZ
60
precio
1 p1
100
RUIZ
2 p2
PEREZ
300
3 p3
GOMEZ
250
4 p4
RODRIGUEZ 490
5 p5
LOPEZ
60
precio
1 p1
RUIZ
100
2 p2
PEREZ
300
3 p3
GOMEZ
250
4 p4
RODRIGUEZ 490
5 p5
LOPEZ
60
precio
1 p1
RUIZ
100
2 p2
PEREZ
300
3 p3
GOMEZ
250
4 p4
RODRIGUEZ 490
5 p5
LOPEZ
60
precio
1 p1
100
RUIZ
2 p2
PEREZ
300
3 p3
GOMEZ
250
4 p4
RODRIGUEZ 490
5 p5
LOPEZ
60
precio
1 p1
RUIZ
100
2 p2
PEREZ 300
3 p3
GOMEZ 250
4 p4
RUIZ
5 p5
GOMEZ 60
490
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
precio
1 p1
100
RUIZ
2 p2
PEREZ 300
3 p3
GOMEZ 250
4 p4
RUIZ
5 p5
GOMEZ 60
490
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
Ruiz
100
2 p2
Perez 300
ING JESUS SILVA
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
Ruiz
100
2 p2
Perez 300
3 p3
Gomez 250
El resultado sera:
cliente
ruiz
perez
gomez
ING JESUS SILVA
Ruiz
100
2 p2
Perez 300
3 p3
Gomez 250
El resultados ser:
cliente
Rui
Per
Gom
precio
1 p1
Ruiz
100
2 p2
Perez
300
3 p3
Rodriguez 250
cliente
4
5
9
id pedido cliente
precio
1 p1
Ruiz
100.25
2 p2
Perez
305.57
3 p3
Rodriguez 250.84
El resultado sera:
rprecio
100
306
251
10.84
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
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
El resultado ser:
producto precio fecha
ordenador 900.25 2012-02-10
impresora 65.57 2012-02-10
teclado
10.84 2012-02-10