Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Editando
SQL
(sección)
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
== Características generales de SQL == SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales y permite así gran variedad de operaciones.<ref name="SQL-Fundamentals">{{cita web | last = Chapple | first = Mike | título = SQL Fundamentals | work = Databases | editor = About.com | url = http://databases.about.com/od/sql/a/sqlfundamentals.htm | fechaacceso = 17 de octubre de 2015 | fechaarchivo = 22 de febrero de 2009 | urlarchivo = https://web.archive.org/web/20090222225300/http://databases.about.com/od/sql/a/sqlfundamentals.htm | deadurl = yes }}</ref> Es un lenguaje declarativo de "[[Lenguaje de alto nivel|alto nivel]]" o "de no procedimiento" que, gracias a su fuerte base teórica y su orientación al manejo de conjuntos de [[registro (base de datos)|registros]] —y no a registros individuales— permite una alta productividad en codificación y la orientación a objetos. De esta forma, una sola sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a registros. SQL también tiene las siguientes características: * '''Lenguaje de definición de datos''': El LDD de SQL proporciona comandos para la definición de esquemas de relación, borrado de relaciones y modificaciones de los esquemas de relación. * '''Lenguaje interactivo de manipulación de datos''': El LMD de SQL incluye lenguajes de consultas basado tanto en álgebra relacional como en cálculo relacional de tuplas. * '''Integridad''': El LDD de SQL incluye comandos para especificar las restricciones de integridad que deben cumplir los datos almacenados en la base de datos. * '''Definición de vistas''': El LDD incluye comandos para definir las vistas. * '''Control de transacciones''': SQL tiene comandos para especificar el comienzo y el final de una transacción. * '''SQL incorporado y dinámico''': Esto quiere decir que se pueden incorporar instrucciones de SQL en [[lenguaje de programación|lenguajes de programación]] como: [[C++]], [[C (lenguaje de programación)|C]], [[Java (lenguaje de programación)|Java]], [[PHP]], [[COBOL]], [[Pascal (lenguaje de programación)|Pascal]] y [[Fortran]]. * '''Autorización''': El LDD incluye comandos para especificar los derechos de acceso a las relaciones y a las vistas. === Tipos de datos === Algunos de los tipos de datos básicos de SQL son: '''Números enteros:''' * '''TINYINT(tamaño):''' -128 a 127 normal. 0 a 255 sin signo. La cantidad máxima de dígitos se puede especificar entre paréntesis * '''SMALLINT(tamaño):''' -32768 a 32767 normal. 0 a 65535 sin signo. La cantidad máxima de dígitos se puede especificar entre paréntesis * '''MEDIUMINT(tamaño):''' -8388608 a 8388607 normal. 0 a 16777215 sin signo. La cantidad máxima de dígitos se puede especificar entre paréntesis * '''INT(tamaño):''' -2147483648 a 2147483647 normal. 0 a 4294967295 sin signo. La cantidad máxima de dígitos se puede especificar entre paréntesis * '''BIGINT(tamaño):''' -9223372036854775808 a 9223372036854775807 normal. 0 a 18446744073709551615 sin signo. La cantidad máxima de dígitos se puede especificar entre paréntesis '''Números en punto flotante:''' * '''FLOAT (tamaño, d):''' Un pequeño número con un punto decimal flotante. La cantidad máxima de dígitos se puede especificar en el parámetro de tamaño. El número máximo de dígitos a la derecha del punto decimal se especifica en el parámetro d * '''DOBLE (tamaño, d)''': Un número grande con un punto decimal flotante. La cantidad máxima de dígitos se puede especificar en el parámetro de tamaño. El número máximo de dígitos a la derecha del punto decimal se especifica en el parámetro d * '''DECIMAL (tamaño, d)''': Un DOBLE almacenado como una cadena, lo que permite un punto decimal fijo. La cantidad máxima de dígitos se puede especificar en el parámetro de tamaño. El número máximo de dígitos a la derecha del punto decimal se especifica en el parámetro d '''Fechas y tiempos''' * '''DATE ():''' Una fecha. Formato: AAAA-MM-DD Nota: el rango admitido es de '1000-01-01' a '9999-12-31' * '''DATETIME ():''' * Una combinación de fecha y hora. Formato: AAAA-MM-DD HH: MI: SS Nota: el rango admitido es de '1000-01-01 00:00:00' a '9999-12-31 23:59:59' * '''TIMESTAMP ():''' * Una marca de tiempo. Los valores de TIMESTAMP se almacenan como el número de segundos desde la época de Unix ('1970-01-01 00:00:00' UTC). Formato: AAAA-MM-DD HH: MI: SS Nota: el rango admitido es de '1970-01-01 00:00:01' UTC a '2038-01-09 03:14:07' UTC * '''TIME ():''' Un tiempo. Formato: HH: MI: SS Nota: el rango admitido es de '-838: 59: 59' a '838: 59: 59' * '''YEAR ():''' Un año en formato de dos o cuatro dígitos. Nota: Valores permitidos en formato de cuatro dígitos: de 1901 a 2155. Valores permitidos en formato de dos dígitos: 70 a 69, que representan los años de 1970 a 2069 '''Cadena de caracteres:''' * '''CHAR (tamaño):''' Tiene una cadena de longitud fija (puede contener letras, números y caracteres especiales). El tamaño fijo se especifica entre paréntesis. Puede almacenar hasta 255 caracteres * '''VARCHAR (tamaño):''' Tiene una cadena de longitud variable (puede contener letras, números y caracteres especiales). El tamaño máximo se especifica entre paréntesis. Puede almacenar hasta 255 caracteres. Nota: si agrega un valor mayor que 255, se convertirá en un tipo de texto * '''TINYTEXT:''' Tiene una cadena con una longitud máxima de 255 caracteres * '''TEXTO:''' Tiene una cadena con una longitud máxima de 65.535 caracteres * '''BLOB:''' Para BLOB (Objetos grandes binarios). Almacena hasta 65.535 bytes de datos * '''MEDIUMTEXT:''' Tiene una cadena con una longitud máxima de 16,777,215 caracteres * '''MEDIUMBLOB:''' Para BLOB (Objetos grandes binarios). Tiene capacidad para 16.777.215 bytes de datos * '''LONGTEXT:''' Tiene una cadena con una longitud máxima de 4.294.967.295 caracteres * '''LONGBLOB:''' Para BLOB (Objetos grandes binarios). Tiene capacidad para 4.294.967.295 bytes de datos '''Enum y set:''' * '''Enum (x, y, z, etc.):''' Permite ingresar una lista de valores posibles. Puede enumerar hasta 65535 valores en una lista ENUM. Si se inserta un valor que no está en la lista, se insertará un valor en blanco. '''Nota:''' los valores se ordenan en el orden en que los ingresas. Ingrese los valores posibles en este formato: ENUM ('X', 'Y', 'Z') * '''Set:''' Similar a ENUM, excepto que SET puede contener hasta 64 elementos de lista y puede almacenar más de una opción '''Binarios:''' * '''bit:''' Entero que puede ser 0, 1 o NULL === Optimización === Como ya se dijo antes, y suele ser común en los lenguajes de acceso a bases de datos de alto nivel, SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden de ejecución. El orden de ejecución interno de una sentencia puede afectar seriamente a la eficiencia del SGBD, por lo que se hace necesario que este lleve a cabo una optimización antes de su ejecución. Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza la actualización de los datos. Dependiendo del uso de la aplicación, se priorizará el acceso indexado o una rápida actualización de la información. La optimización difiere sensiblemente en cada motor de base de datos y depende de muchos factores. Los sistemas de bases de datos modernos poseen un componente llamado [[optimizador de consultas]]. Este realiza un detallado análisis de los posibles planes de ejecución de una consulta SQL y elige aquel que sea más eficiente para llevar adelante la misma. Existe una ampliación de SQL conocida como [[FSQL]] (Fuzzy SQL, SQL difuso) que permite el acceso a [[base de datos|bases de datos]] difusas, usando la [[lógica difusa]]. Este lenguaje ha sido implementado a nivel experimental y está evolucionando rápidamente.
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Editando
SQL
(sección)
Añadir idiomas
Añadir tema