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 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
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
Mostrando las entradas con la etiqueta SQL Avanzado. Mostrar todas las entradas
Mostrando las entradas con la etiqueta SQL Avanzado. Mostrar todas las entradas
lunes, 16 de septiembre de 2013
sábado, 14 de septiembre de 2013
SQL DATOS NUMERICOS MySQL
Tipos de datos numéricos para el sistema de gestión de bases de datos MySQL
MySQL admite los siguientes tipos de datos numéricos para sus columnas
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.
MySQL admite los siguientes tipos de datos numéricos para sus columnas
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.
jueves, 12 de septiembre de 2013
SQL DATOS TEXTO MySQL
Tipos de datos y rango de datos para el sistema de gestión 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, 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.
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'.
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, 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.
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'.
jueves, 29 de agosto de 2013
SQL 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
Ejemplo para SQL SERVER se utiliza ISNULL:
Ejemplo para ORACLE se utiliza NVL:
Ejemplo para MySQL, hay 2 funciones equivalentes (IFNULL, COALESCE):
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
preciounidad * (unidadesstock + ISNULL(unidadespedido, 0)
FROM productos
Ejemplo para ORACLE se utiliza NVL:
SELECT producto,
preciounidad * (unidadesstock + NVL(unidadespedido, 0)
FROM productos
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
preciounidad * (unidadesstock + IFNULL(unidadespedido, 0)
FROM productos
SELECT producto,
preciounidad * (unidadesstock + COALESCE(unidadespedido, 0)
FROM productos
preciounidad * (unidadesstock + COALESCE(unidadespedido, 0)
FROM productos
martes, 27 de agosto de 2013
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.
En la tabla personas, tenemos la columna 'apellido2' que es opcional y puede tener valores nulos:
>
Ejemplo de uso de IS NULL
>
Ejemplo de uso de IS NOT NULL
>
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.
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
SELECT * FROM personas WHERE apellido2 IS NULL
>
| 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 |
lunes, 26 de agosto de 2013
SQL DATES
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
Funciones para MySQL sobre estos tipos de datos de fecha anteriores
Tipos de Datos para fechas y horas en la base de datos SQL Server
Funciones para SQL Server sobre los tipos de datos de fecha y hora anteriores
Ejemplos del uso de fecha y hora
Si queremos almacenar solo la fecha (y no la hora) utilizaremos el tipo de datos 'date' en lugar de 'datetime'.
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 expresión fecha/hora | |
| EXTRACT | Muestra una parte de una expresión 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 número de días 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 | |
| TIMESTAMP | Se genera un valor basado en la hora del sistema. Se actualiza automáticamente. |
| 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 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'.
domingo, 25 de agosto de 2013
SQL CREATE VIEW
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.
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
>
Creamos una vista con las personas que se llaman ANTONIO
Para consultar los datos de una vista
>
SQL REPLACE VIEW
Para reemplazar o modificar los datos de una vista:
SQL DROP VIEW
Para borrar una vista
Ejemplo borrado de la vista antes creada:
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 condición
SELECT nombrecolumna(s)
FROM nombretabla
WHERE condición
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 | edad |
|---|---|---|---|
| ANTONIO | PEREZ | GOMEZ | 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'
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 | edad |
|---|---|---|---|
| ANTONIO | PEREZ | GOMEZ | 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
SELECT nombre, apellido1, apellido2, edad
FROM personas
WHERE edad > 20
SQL DROP VIEW
Para borrar una vista
DROP VIEW nombrevista
Ejemplo borrado de la vista antes creada:
DROP VIEW [personas que se llama ANTONIO]
jueves, 22 de agosto de 2013
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.
Sintaxis SQL AUTO INCREMENT
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
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
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.
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
miércoles, 21 de agosto de 2013
SQL ALTER
La sentencia SQL ALTER se utiliza para añadir, eliminar o modificar columnas de una tabla.
Sintaxis SQL ALTER
Para añadir una nueva columna a una tabla
Para borrar una columna de una tabla
Para modificar el tipo de dato de una columna de una tabla
Ejemplos de SQL ALTER
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'
Si queremos borrar la columna 'fechadenacimiento', y dejarlo igual que al principio
Sintaxis SQL ALTER
Para añadir una nueva columna a una tabla
ALTER TABLE nombretabla
ADD nombrecolumna tipodatocolumna
ADD nombrecolumna tipodatocolumna
Para borrar una columna de una tabla
ALTER TABLE nombretabla
DROP COLUMN nombrecolumna
DROP COLUMN nombrecolumna
Para modificar el tipo de dato de una columna de una tabla
ALTER TABLE nombretabla
ALTER COLUMN nombrecolumna tipodatocolumna
ALTER COLUMN nombrecolumna tipodatocolumna
Ejemplos de SQL ALTER
| per | nombre | apellido1 | apellido2 |
|---|---|---|---|
| 1 | ANTONIO | PEREZ | GOMEZ |
| 2 | ANTONIO | GARCIA | RODRIGUEZ |
| 3 | PEDRO | RUIZ | GONZALEZ |
Dada la siguiente tabla de 'personas', queremos añadir una nueva columna, denominada 'fechadenacimiento'
ALTER TABLE personas
ADD fechadenacimiento date
ADD fechadenacimiento date
| per | nombre | apellido1 | apellido2 | fechadenacimiento |
|---|---|---|---|---|
| 1 | ANTONIO | PEREZ | GOMEZ | |
| 2 | ANTONIO | GARCIA | RODRIGUEZ | |
| 3 | PEDRO | RUIZ | 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
DROP COLUMN fechadenacimiento
| per | nombre | apellido1 | apellido2 |
|---|---|---|---|
| 1 | ANTONIO | PEREZ | GOMEZ |
| 2 | ANTONIO | GARCIA | RODRIGUEZ |
| 3 | PEDRO | RUIZ | GONZALEZ |
martes, 20 de agosto de 2013
SQL 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.
Este comando deja vacía una tabla, es decir, sin datos.
Es útil cuando sólo se quiere borrar los datos, pero no se quiere borrar la tabla.
Este comando deja vacía una tabla, es decir, sin datos.
TRUNCATE TABLE nombretabla
sábado, 17 de agosto de 2013
SQL DROP
La sentencia DROP se utiliza para borrar definitivamente un índice, tabla o base de datos.
DROP INDEX
Sintaxis DROP INDEX para MySQL
Sintaxis DROP INDEX para DB2 y ORACLE
Sintaxis DROP INDEX para ACCESS
Sintaxis DROP INDEX para SQLSERVER
DROP TABLE
Se utiliza DROP TABLE para borrar definitivamente una tabla
DROP DATABASE
Se utiliza para borrar una base de datos definitivamente.
DROP INDEX
Sintaxis DROP INDEX para MySQL
ALTER TABLE nombretabla
DROP INDEX nombreindice
DROP INDEX nombreindice
DROP INDEX nombreindice
Sintaxis DROP INDEX para ACCESS
DROP INDEX nombreindice
ON nombretabla
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
DROP DATABASE
Se utiliza para borrar una base de datos definitivamente.
DROP DATABASE nombrebasededatos
viernes, 16 de agosto de 2013
SQL 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.
Se pueden crear índices ÚNICOS, es decir, índices que no admiten valores duplicados.
Sintaxis para SQL CREATE INDEX
La columna que forma parte de este índice admite valores duplicados en su columna.
Sintaxis para SQL CREATE UNIQUE INDEX
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'
Si queremos crear un índice sobre varias columnas, por ejemplo, apellido1 y apellido2
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.
Se pueden crear índices ÚNICOS, es decir, índices que no admiten valores duplicados.
Sintaxis para SQL CREATE INDEX
CREATE INDEX nombreindice
ON nombretabla (nombrecolumna)
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)
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'
CREATE INDEX indicepersonas
ON personas (persona)
ON personas (persona)
Si queremos crear un índice sobre varias columnas, por ejemplo, apellido1 y apellido2
CREATE INDEX indice2personas
ON personas(apellido1, apellido2)
ON personas(apellido1, apellido2)
miércoles, 14 de agosto de 2013
SQL DEFAULT
La restricción 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 función, podemos insertar una valor concreto '2001-01-01' o cualquier otro valor.
SQL DEFAULT en la sentencia ALTER TABLE para MySQL
SQL DEFAULT en la sentencia ALTER TABLE para ORACLE, SQLSERVER, ACCESS:
Para borrar DEFAULT en MySQL
Para borrar DEFAULT en ORACLE, SQLSERVER, ACCESS:
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 función, 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
martes, 13 de agosto de 2013
SQL CHECK
La restricción 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
Ejemplo CHECK en ORACLE, SQLSERVER y ACCESS:
Ejemplo CHECK en ALTER TABLE en MySQL
Ejemplo CHECK (con múltiples columnas) en ALTER TABLE en MySQL
Ejemplo CHECK en ALTER TABLE en ORACLE, SQLSERVER y ACCESS
Ejemplo CHECK en ALTER TABLE con varias columnas
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 múltiples 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')
lunes, 12 de agosto de 2013
SQL 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.
Ejemplo de FOREIGN KEY
Tabla "departamentos", con la clave primaria "dep"
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
Definiciones de FOREIGN KEY en CREATE TABLE para MySQL
Definiciones de FOREIGN KEY en CREATE TABLE para ORACLE, ACCESS, SQLSERVER
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:
Borrar FOREIGN KEY en ORACLE, SQLSERVER y ACCESS
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.
Ejemplo de FOREIGN KEY
Tabla "departamentos", con la clave primaria "dep"
| 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
| per | nombre | apellido1 | apellido2 | dep |
|---|---|---|---|---|
| 1 | ANTONIO | PEREZ | GOMEZ | 1 |
| 2 | ANTONIO | GARCIA | RODRIGUEZ | 2 |
| 3 | PEDRO | RUIZ | GONZALEZ | 4 |
Definiciones de FOREIGN KEY en CREATE TABLE para MySQL
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)
}
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)
}
{
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 foránea (FOREIGN KEY) está compuesta por varias columnas o queremos ponerle un nombre, utilizaremos la fórmula 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 múltiple (varias columnas) con ALTER TABLE:
ALTER TABLE
ADD CONSTRAINT fkpersonas
FOREIGN KEY (dep)
REFERENCES departamentos(dep)
Para borrar un clave externa (FOREIGN KEY) utilizamos DROP, pero varía según 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
domingo, 11 de agosto de 2013
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 sólo puede tener una clave primaria (PRIMARY KEY).
Ejemplo PRIMARY KEY , clave primaria en MySQL
Ejemplo PRIMARY KEY , clave primaria en ORACLE, SQLSERVER, ACCESS
La clave primaria (PRIMARY KEY) puede estar compuesta por varias columnas, por ejemplo por las columnas 'identificador' y 'nombre', entonces se define así:
La clave primaria también se puede definir después de haber creado la tabla, para eso utilizaremos el comando ALTER TABLE
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).
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)
}
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)
jueves, 8 de agosto de 2013
SQL UNIQUE ALTER TABLE
La restricción UNIQUE se puede añadir a una columna de una tabla, después de ser creada, mediante la sentencia ALTER TABLE.
Sintaxis de UNIQUE ALTER TABLE
Crea una restricción UNIQUE (valor único en toda la tabla) para la columna 'identificador'.
Se puede crear también restricciones para varias columnas a la vez
Para eliminar una restricción en la base de datos MySQL
Para eliminar una restricción en ORACLE, SQLSERVER y ACCESS
Sintaxis de UNIQUE ALTER TABLE
ALTER TABLE personas
ADD UNIQUE (identificador)
ADD UNIQUE (identificador)
Se puede crear también restricciones para varias columnas a la vez
ALTER TABLE peronas
ADD CONSTRAINT copersonas
UNIQUE (identificador, apellido1)
ADD CONSTRAINT copersonas
UNIQUE (identificador, apellido1)
ALTER TABLE personas
DROP INDEX copersonas
DROP INDEX copersonas
ALTER TABLE personas
DROP CONSTRAINT copersonas
DROP CONSTRAINT copersonas
martes, 6 de agosto de 2013
SQL UNIQUE
La restricción 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 según el sistema de base de datos utilizado:
Ejemplo SQL UNIQUE para la base de datos MySQL
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
Puede haber varias restricciones UNIQUE en diferentes columnas de una tabla.
Existen varias formas diferentes de sintaxis según el sistema de base de datos utilizado:
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)
}
{
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),
}
{
identificador int NOT NULL UNIQUE,
nombre varchar(255) NOT NULL,
apellido1 varchar(255) NOT NULL,
apellido2 varchar(255),
}
lunes, 5 de agosto de 2013
SQL 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.
Ejemplo SQL NULL
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'.
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 algún valor para las columnas 'nombre' y 'apellido1'.
domingo, 4 de agosto de 2013
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.
Las posibles restricciones son:
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
Suscribirse a:
Entradas (Atom)