Codigos en Elnguaje SQL
Codigos en Elnguaje SQL
SQL
Introducción
El SQL es un lenguaje estándar de programación 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 SQL, Oracle, DB2, SQL Server, Access.
El SQL es un lenguaje estructurado y un estándar ANSI para el acceso y manipulación de los datos de
cualquier base de datos.
El SQL se compone de sentencias SQL, cada una con una utilidad diferente, como por ejemplo:
Creación de una base de datos (CREATE DATABASE)
Creación de una tabla (CREATE TABLE)
Creación de una vista (CREATE VIEW)
Creación de un índice de una tabla (CREATE INDEX)
Creación de procedimientos almacenados (CREATE PROCEDURE)
Creación 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 transacción de una sentencia SQL (COMMIT)
Retroceder la transacción de una sentencia SQL (ROLLBACK).
Sintaxis
Este punto y coma también puede servir para separar una sentencia SQL de otra sentencia SQL en la
misma línea.
1
Códigos del Lenguaje SQL
DDL está compuesto por sentencias para la creación (CREATE), modificación (ALTER) y borrado
(DROP) de los componentes principales de una base de datos:
consultar (SELECT)
insertar (INSERT)
modificar (UPDATE)
borrar (DELETE)
DCL está compuesto por sentencias SQL para controlar las funciones de administración :
Select
2
Códigos del Lenguaje SQL
Una de las sentencias SQL más importantes es SELECT, ya que permite realizar consultas sobre los
datos almacenados en la base de datos.
nombre apellido1
ANTONIO PEREZ
ANTONIO GARCIA
LUIS LOPEZ
3
Códigos del Lenguaje SQL
DISTINCT
Al realizar una consulta puede ocurrir que existan valores repetidos para algunas columnas. Por
ejemplo
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.
nombre
ANTONIO
LUIS
WHERE
La cláusula WHERE se utiliza para hacer filtros en las consultas, es decir, seleccionar solamente
algunas filas de la tabla que cumplan una determinada condición.
Por ejemplo:
4
Códigos del Lenguaje SQL
AND OR
Los operadores AND y OR se utilizan para filtrar resultados con 2 condiciones.
Condicion1 OR condicion2
En la tabla personas
5
Códigos del Lenguaje SQL
ORDER BY
ORDER BY se utiliza para ordenar los resultados de una consulta, según el valor de la columna
especificada.
Por defecto, se ordena de forma ascendente (ASC) según los valores de la columna.
SELECT nombre_columna(s)
FROM nombre_tabla
ORDER BY nombre_columna(s) ASC|DESC
nombre apellido1
LUIS LOPEZ
ANTONIO GARCIA
ANTONIO PEREZ
Ejemplo de ordenación descendiente (DES)
6
Códigos del Lenguaje SQL
FROM personas
ORDER BY apellido1 DESC
nombre apellido1
ANTONIO PEREZ
ANTONIO GARCIA
LUIS LOPEZ
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:
Ejemplo:
Cualquiera de estas sentencias anteriores produce que se inserte una nueva fila en la tabla personas,
quedando así dicha tabla:
7
Códigos del Lenguaje SQL
UPDATE
La sentencia UPDATE se utiliza para modificar valores en una tabla.
UPDATE nombre_tabla
SET columna1 = valor1, columna2 = valor2
WHERE columna3 = valor3
La cláusula SET establece los nuevos valores para las columnas indicadas.
La cláusula WHERE sirve para seleccionar las filas que queremos modificar.
Ojo: Si omitimos la cláusula WHERE, por defecto, modificará los valores en todas las filas de la tabla.
UPDATE personas
SET apellido2 = 'RODRIGUEZ'
WHERE nombre = 'ANTONIO'
AND apellido1 = 'GARCIA'
AND apellido2 = 'BENITO'
8
Códigos del Lenguaje SQL
DELETE
La sentencia DELETE sirve para borrar filas de una tabla.
Si queremos borrar todos los registros o filas de una tabla, se utiliza la sentencia:
9
Códigos del Lenguaje SQL
SQL AVANZADO
TOP
La sentencia SQL TOP se utiliza para especificar el número de filas a mostrar en el resultado.
Esta cláusula SQL TOP es útil en tablas con muchos registros, para limitar el número de filas a
mostrar en la consulta, y así sea más rápida la consulta, consumiendo también menos recursos en el
sistema.
Esta cláusula se especifica de forma diferente según el sistema de bases de datos utilizado.
10
Códigos del Lenguaje SQL
LITE
El operador LIKE se utiliza en la cláusula WHERE para buscar por un patrón.
11
Códigos del Lenguaje SQL
Este es el resultado
WILDCARDS
Los caracteres Wildcards (comodines) son caracteres especiales que se utilizan para realizar
búsquedas 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 :
12
Códigos del Lenguaje SQL
Ejemplos:
Resultado:
Resultado:
Resultado:
13
Códigos del Lenguaje SQL
IN
El operador IN permite seleccionar múltiples valores en una cláusula WHERE
Sintaxis SQL IN
SELECT columna
FROM tabla
WHERE columna
IN (valor1, valor2, valor3, .)
Ejemplo SQL IN
BETWEEN
El operador BETWEEN se utiliza en la cláusula WHERE para seleccionar valores entre un rango de
datos.
SELECT columna
FROM tabla WHERE columna
BETWEEN valor1 AND valor2
14
Códigos del Lenguaje SQL
SELECT *
FROM personas
WHERE apellido1
BETWEEN 'FERNANDEZ' AND 'HUERTAS'
SELECT *
FROM personas
WHERE apellido1
NOT BETWEEN 'FERNANDEZ' AND 'HUERTAS'
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.
SELECT columna
FROM nombretabla
AS aliastabla
15
Códigos del Lenguaje SQL
SELECT nombrecolumna
AS aliascolumna
FROM tabla
Utilizamos el alias 'p' para la tabla 'personas', para simplificar la sentencia SELECT
apellido1 apellido2
PEREZ GOMEZ
GARCIA RODRIGUEZ
apellido1 apellido2
PEREZ GOMEZ
GARCIA RODRIGUEZ
JOINS
La sentencia SQL JOIN permite consultar datos de 2 o más tablas.
16
Códigos del Lenguaje SQL
Dichas tablas estarán relacionadas entre ellas de alguna forma, a través de alguna de sus columnas.
Una clave primaria es una columna con un valor único para cada registro de una tabla.
El propósito del JOIN es unir información de diferentes tablas, para no tener que repetir datos en
diferentes tablas.
Ejemplo:
dep departamento
1 ADMINISTRACION
2 INFORMATICA
3 COMERCIAL
Si queremos saber los nombres de las personas que trabajan en INFORMATICA, tendríamos que
hacer un JOIN de las 2 tablas "personas" y "departamentos", que se relacionarían por la columna
"dep".
Es decir, que desde la tabla "personas" y mediante la columna "dep", podemos acceder a la
información de la tabla "departamentos".
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
condición.
17
Códigos del Lenguaje SQL
dep departamento
1 ADMINISTRACION
2 INFORMATICA
3 COMERCIAL
SELECT nombre, apellido1, departamento FROM personas INNER JOIN departamentos WHERE
personas.dep = departamentos.dep
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 condición.
18
Códigos del Lenguaje SQL
dep departamento
1 ADMINISTRACION
2 INFORMATICA
3 COMERCIAL
SELECT nombre, apellido1, departamento
FROM personas
LEFT JOIN departamentos
WHERE personas.dep = departamentos.dep
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 condición.
En algunas bases de datos, la sentencia RIGHT JOIN es igual a RIGHT OUTER JOIN
dep departamento
19
Códigos del Lenguaje SQL
1 ADMINISTRACION
2 INFORMATICA
3 COMERCIAL
SELECT nombre, apellido1, departamento
FROM personas
RIGHT JOIN departamentos
WHERE personas.dep = departamentos.dep
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 condición.
dep departamento
1 ADMINISTRACION
2 INFORMATICA
3 COMERCIAL
SELECT nombre, apellido1, departamento
FROM personas
FULL JOIN departamentos
20
Códigos del Lenguaje 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 número de columnas, con el mismo tipo de
dato y en el mismo orden.
Tabla "personas_empresa1"
nombre apellido1
ANTONIO PEREZ
21
Códigos del Lenguaje SQL
ANTONIO GARCIA
PEDRO RUIZ
JUAN APARICIO
LUIS LOPEZ
La persona 'ANTONIO GARCIA RODRIGUEZ' aparecerá solo una vez en el resultado, porque no
aparecerán las filas repetidas.
UNION ALL
La sentencia SQL UNION ALL es utilizada para acumular los resultados de dos sentencias
SELECT, incluso aparecerán las filas que estén repetidas en los resultados de ambas SELECT.
Las dos sentencias SELECT tienen que tener el mismo número de columnas, con el mismo tipo de
dato y en el mismo orden.
Tabla "personas_empresa1"
Tabla "personas_empresa2"
nombre apellido1
22
Códigos del Lenguaje SQL
ANTONIO PEREZ
ANTONIO GARCIA
PEDRO RUIZ
JUAN APARICIO
ANTONIO GARCIA
LUIS LOPEZ
La persona 'ANTONIO GARCIA RODRIGUEZ' aparecerá dos veces, porque está en los dos
resultados de las sentencias SELECT.
CREATE DATABASE
La sentencia CREATE DATABASE se utiliza para crear bases de datos.
CREATE TABLE
La sentencia CREATE TABLE se utiliza para crear una tabla en una base de datos existente.
23
Códigos del Lenguaje SQL
nombre varchar(255),
apellido1 varchar(255),
apellido2 varchar(255),
dep int
}
Las columnas 'nombre', 'apellido1' y 'apellido2' son de tipo 'varchar', es decir, acepta valores
alfanuméricos hasta una longitud máxima de 255 caracteres.
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.
SQL RESTRICCIONES
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.
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
CHECK
DEFAULT
NOT NULL
La restricción NOT NULL sirve para especificar que una columna no acepta el valor NULL, es decir,
que esa columna siempre tiene que tener algún valor, no puede estar vacía.
CREATE TABLE personas { nombre varchar(255) NOT NULL, apellido1 varchar(255) NOT NULL,
apellido2 varchar(255) }
24
Códigos del Lenguaje SQL
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 algún valor para las columnas 'nombre' y 'apellido1'.
UNIQUE
La restricción UNIQUE identifica de manera única a cada fila de una tabla.
Existen varias formas diferentes de sintaxis según el sistema de base de datos utilizado:
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
25
Códigos del Lenguaje SQL
Crea una restricción UNIQUE (valor único en toda la tabla) para la columna 'identificador'.
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 sólo puede tener una clave primaria (PRIMARY KEY).
CREATE TABLE personas { identificador int NOT NULL, nombre varchar(255) NOT NULL,
apellido1 varchar(255) NOT NULL, PRIMARY KEY (identificador) }
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
26
Códigos del Lenguaje SQL
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 también se puede definir después 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)
FOREIGN KEY
La clave externa o FOREIGN KEY, es una columna o varias columnas, que sirven para señalar cual
es la clave primaria de otra tabla.
La columna o columnas señaladas como FOREIGN KEY, solo podrán tener valores que ya existan en
la clave primaria PRIMARY KEY de la otra tabla.
dep departamento
1 ADMINISTRACION
2 INFORMATICA
3 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
27
Códigos del Lenguaje SQL
Si la clave externa o foránea (FOREIGN KEY) está compuesta por varias columnas o queremos
ponerle un nombre, utilizaremos la fórmula siguiente:
Para borrar un clave externa (FOREIGN KEY) utilizamos DROP, pero varía según la base de dato:
28
Códigos del Lenguaje SQL
Borrar FOREIGN KEY en MySQL ALTER TABLE personas DROP FOREIGN KEY dep
CHECK
La restricción CHECK se utiliza para limitar el rango de valores que puede tener una columna.
CREATE TABLE departamentos { dep int NOT NULL, departamento varchar(255), CHECK
(dep>0) }
CREATE TABLE departamentos { dep int NOT NULL CHECK (dep>0) departamento
varchar(255), }
DEFAULT
La restricción DEFAULT se utiliza para establecer un valor por defecto a una columna.
29
Códigos del Lenguaje SQL
Si no se especifica un valor al insertar una fila, entonces se podrá el valor por defecto (DEFAULT) que
tenga cada columna.
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 función, podemos insertar una valor concreto '2001-01-01' o cualquier otro valor.
CREATE INDEX
CREATE INDEX se utiliza para crear índices en una tabla.
Un índice sirve para buscar datos rápidamente, 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 búsqueda así es mucho más óptima en recursos y más rápida en tiempo.
Si esa columna de búsqueda no fuese índice, entonces tendríamos que recorrer de forma secuencial
la tabla en busca de algún dato. Por eso, es importante crear un índice por cada tipo de búsqueda que
queramos hacer en la tabla.
Actualizar una tabla con índices tarda más tiempo porque también hay que actualizar los índices, así
que solo se deben poner índices en las columnas por las que buscamos frecuentemente.
30
Códigos del Lenguaje SQL
Se pueden crear índices ÚNICOS, es decir, índices que no admiten valores duplicados.
La columna que forma parte de este índice admite valores duplicados en su columna.
La columna que forma parte de este índice NO admite valores duplicados en su columna, porque es
una clave única.
Si queremos crear un índice sobre varias columnas, por ejemplo, apellido1 y apellido2
DROP
La sentencia DROP se utiliza para borrar definitivamente un índice, tabla o base de datos.
DROP INDEX
31
Códigos del Lenguaje SQL
DROP TABLE
DROP DATABASE
TRUNCATE
Este comando SQL TRUNCATE se utiliza para eliminar o borrar los datos que contiene una tabla.
Es útil cuando sólo se quiere borrar los datos, pero no se quiere borrar la tabla.
ALTER
La sentencia SQL ALTER se utiliza para añadir, eliminar o modificar columnas de una tabla.
32
Códigos del Lenguaje SQL
Dada la siguiente tabla de 'personas', queremos añadir una nueva columna, denominada
'fechadenacimiento'
Si queremos modificar el tipo de dato de la columna 'fecha', y ponerle tipo 'year' en lugar de tipo
'date'
33
Códigos del Lenguaje SQL
AUTO INCREMENT
AUTO INCREMENT permite generar un número único cuando insertamos un nuevo registro en la
tabla.
Se utiliza para tener una clave primaria de una tabla mediante la generación automática de un número
secuencial único en la tabla.
CREATE TABLE personas { persona int NOT NULL AUTO_INCREMENT, nombre varchar(255),
apellido1 varchar(255), apellido2 varchar(255) }
VIEWS
Una vista es una tabla virtual.
Una vista es una tabla virtual basada en el resultado de una consulta (SELECT) a una tabla.
34
Códigos del Lenguaje SQL
FROM nombretabla
WHERE condición
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.
En la tabla personas
>
nombre apellido1 apellido2 edad
ANTONIO PEREZ GOMEZ 30
ANTONIO GARCIA RODRIGUEZ 45
PEDRO RUIZ GONZALEZ 50
Creamos una vista con las personas que se llaman ANTONIO
>
nombre apellido1 apellido2 edad
ANTONIO PEREZ GOMEZ 30
ANTONIO GARCIA RODRIGUEZ 45
SQL REPLACE VIEW
35
Códigos del Lenguaje SQL
DATES
Existen diferentes formatos para almacenar las fechas y horas en los distintos sistemas de bases de
datos.
36
Códigos del Lenguaje 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 ningún 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 aritméticos
normales (=, >, <, <>), y en su lugar debemos utilizar los operadores IS y IS NOT.
37
Códigos del Lenguaje SQL
En la tabla personas, tenemos la columna 'apellido2' que es opcional y puede tener valores nulos:
>
nombre apellido1 apellido2 edad
ANTONIO PEREZ 30
LUIS LOPEZ PEREZ 45
ANTONIO GARCIA 50
Ejemplo de uso de IS NULL
>
nombre apellido1 apellido2 edad
ANTONIO PEREZ 30
ANTONIO GARCIA 50
Ejemplo de uso de IS NOT NULL
>
nombre apellido1 apellido2 edad
LUIS LOPEZ PEREZ 45
FUNCIONES NULL
Si queremos cambiar un valor NULL por otro valor cualquiera, utilizaremos las siguientes funciones
(ISNULL, IFNULL, NVL, COLACESCE) según el sistema de base de datos.
Para nuestros ejemplos, queremos que si el valor es NULL se cambie por el valor 0
SELECT producto,
preciounidad * (unidadesstock + ISNULL(unidadespedido, 0)
FROM productos
38
Códigos del Lenguaje SQL
SELECT producto,
preciounidad * (unidadesstock + NVL(unidadespedido, 0)
FROM productos
SELECT producto,
preciounidad * (unidadesstock + IFNULL(unidadespedido, 0)
FROM productos
SELECT producto,
preciounidad * (unidadesstock + COALESCE(unidadespedido, 0)
FROM productos
CHAR
El tipo de dato CHAR sirve para almacenar una cadena de datos de longitud fija.
Puede contener caracteres, números y caracteres especiales.
La longitud fija se define entre paréntesis, 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 máxima que podemos definir un campo CHAR es de 255.
VARCHAR
El tipo de datos VARCHAR sirve para almacenar una cadena de datos (caracteres, números y
caracteres especiales) de longitud variable.
La longitud máxima es de 255 caracteres.
Hace un buen uso del espacio en disco, porque no reserva el espacio de la longitud máxima definida,
si no que solo ocupa espacio el tamaño real de los datos almacenados en ese campo.
Es el tipo de dato más utilizado para campos pequeños.
TINYTEXT
El tipo de datos TINYTEXT sirve para almacenar una cadena de datos (solo caracteres, no admite
número ni caracteres especiales) de una longitud máxima de 255 caracteres.
39
Códigos del Lenguaje SQL
TINYINT
El tipo de dato numérico TINYINT permite números desde -128 hasta 127.
También se puede definir como UNSIGNED (sin signo), entonces los valores posibles empiezan
en 0 hasta 255.
Opcionalmente, se puede definir el número máximo de dígitos entre paréntesis (tamaño).
SMALLINT
El tipo de dato numérico SMALLINT permite números desde -32768 hasta 32767.
También se puede definir como UNSIGNED (sin signo), entonces los valores posibles empiezan
en 0 hasta 65535.
Opcionalmente, se puede definir el número máximo de dígitos entre paréntesis
MEDIUMINT
El tipo de dato numérico MEDIUMINT permite números desde -8388608 hasta 8388607.
También se puede definir como UNSIGNED (sin signo), entonces los valores posibles empiezan
en 0 hasta 16777215.
Opcionalmente, se puede definir el número máximo de dígitos entre paréntesis
INT
El tipo de dato numérico INT permite números desde -2147483648 hasta 2147483647.
También se puede definir como UNSIGNED (sin signo), entonces los valores posibles empiezan
en 0 hasta 4294967295.
Opcionalmente, se puede definir el número máximo de dígitos entre paréntesis
BIGINT
El tipo de dato numérico BIGINT permite números desde -9223372036854775808 hasta
9223372036854775807.
También se puede definir como UNSIGNED (sin signo), entonces los valores posibles empiezan
en 0 hasta 18446744073709551615.
Opcionalmente, se puede definir el número máximo de dígitos entre paréntesis
FLOAT
El tipo de dato numérico FLOAT permite almacenar pequeños números decimales (de punto
flotante).
Al ser de punto flotante, sus cálculos son aproximados. Podemos especificar el número máximo de
dígitos (tamaño) y el número de decimales (decimal).
FLOAT(6,2) tendrá 4 dígitos enteros y 2 decimales, por ejemplo, 5467.67
DOUBLE
El tipo de dato numérico DOUBLE permite almacenar grandes números decimales (de punto
flotante).
Al ser de punto flotante, sus cálculos son aproximados. Podemos especificar el número máximo de
dígitos (tamaño) y el número de decimales (decimal).
DOUBLE(5,1) tendrá 4 dígitos enteros y 1 dígito decimal, por ejemplo, 5467.1
DECIMAL
El tipo de dato numéric DECIMAL permite almacenar grandes números decimales de punto fijo,
por tanto, los cálculos con este tipo DECIMAL son exactos.
Podemos especificar el número máximo de dígitos (tamaño) y el número de decimales (decimal).
El número máximo de dígitos es de 65.
Por ejemplo DECIMAL(20,6) quiere decir que tendrá 14 dígitos enteros y 4 dígitos decimales.
40
Códigos del Lenguaje SQL
TEXT
El tipo de dato TEXT sirve para almacenar una cadena de caracteres de longitud máxima de 65,535
caracteres.
BLOB
El tipo de datos BLOB sirve para almacenar datos de tipo BLOB (Binary Large Object).
Admite una longitud máxima de 65,535 bytes de datos.
MEDIUMTEXT
El tipo de dato MEDIUMTEXT sirve para almacenar una cadena con una longitud máxima de
16.777.215 caracteres.
MEDIUMBLOB
El tipo de datos MEDIUMBLOB Sirve para almacenar datos tipo BLOB con longitud máxima
16.777.215 bytes.
LONGTEXT
El tipo de dato LONGTEXT sirve para almacenar una cadena de longitud máxima de 4.294.967.295
caracteres.
LONGBLOB
El tipo de dato LONGBLOB sirve para almacenar un BLOB de longitud máxima de de 4.294.967.295
bytes.
ENUM
El tipo de dato ENUM sirve para introducir una lista de posibles valores.
La longitud máxima 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 vacío ('').
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 vacío, sin valor ('').
SET
El tipo de dato SET es similar a ENUM pero la longitud máxima 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'.
DATE
El tipo de dato DATE sirve para almacenar una fecha con el formato YYYY-MM-DD (4 dígitos para el
año, guión, 2 dígitos para el mes, guión, 2 dígitos para el día).
DATETIME
El tipo de dato DATETIME sirve para almacenar fecha y hora, con el formato YYYY-MM-DD
HH:MM:SS
41
Códigos del Lenguaje SQL
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 año con el formato YYYY
42