06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

© FUOC • 71Z799014MO 14 El lenguaje SQL<br />

Tipos <strong>de</strong> <strong>datos</strong> pre<strong>de</strong>finidos<br />

Tipos <strong>de</strong> <strong>datos</strong><br />

BIT (longitud)<br />

BIT VARYING (longitud)<br />

NUMERIC (precisión, escala)<br />

DECIMAL (precisión, escala)<br />

INTEGER<br />

Descripción<br />

Ca<strong>de</strong>nas <strong>de</strong> bits <strong>de</strong> longitud fija.<br />

Ca<strong>de</strong>nas <strong>de</strong> bits <strong>de</strong> longitud variables.<br />

Número <strong>de</strong>cimales con tantos dígitos<br />

como indique la precisión y tantos <strong>de</strong>cimales<br />

como indique la escala.<br />

Número <strong>de</strong>cimales con tantos dígitos<br />

como indique la precisión y tantos <strong>de</strong>cimales<br />

como indique la escala.<br />

Números enteros.<br />

Los tipos <strong>de</strong> <strong>datos</strong><br />

NUMERIC y DECIMAL<br />

NUMERIC y DECIMAL se <strong>de</strong>scriben<br />

igual, y es posible utilizar<br />

tanto el uno como el otro para<br />

<strong>de</strong>finir números <strong>de</strong>cimales.<br />

SMALLINT<br />

REAL<br />

FLOAT (precisión)<br />

DOUBLE PRECISION<br />

DATE<br />

TIME<br />

TIMESTAMP<br />

Ejemplos <strong>de</strong> asignaciones <strong>de</strong> columnas<br />

Números enteros pequeños.<br />

Números con coma flotante con precisión<br />

pre<strong>de</strong>finida.<br />

Números con coma flotante con la precisión<br />

especificada.<br />

Números con coma flotante con más precisión<br />

pre<strong>de</strong>finida que la <strong>de</strong>l tipo REAL.<br />

Fechas. Están compuestas <strong>de</strong>: YEAR año, MONTH<br />

mes, DAY día.<br />

Horas. Están compuestas <strong>de</strong> HOUR hora, MINUT<br />

minutos, SECOND segundos.<br />

Fechas y horas. Están compuestas <strong>de</strong> YEAR año,<br />

MONTH mes, DAY día, HOUR hora, MINUT<br />

minutos, SECOND segundos.<br />

El tratamiento <strong>de</strong>l tiempo<br />

El estándar SQL92 <strong>de</strong>fine<br />

la siguiente nomenclatura<br />

para trabajar con el tiempo:<br />

YEAR (0001..9999)<br />

MONTH (01..12)<br />

DAY (01..31)<br />

HOUR (00..23)<br />

MINUT (00..59)<br />

SECOND (00..59.precisión)<br />

De todos modos, los sistemas<br />

relacionales comerciales<br />

disponen <strong>de</strong> diferentes<br />

formatos, entre los cuales<br />

po<strong>de</strong>mos elegir cuando<br />

tenemos que trabajar con<br />

columnas temporales.<br />

Veamos algunos ejemplos <strong>de</strong> asignaciones <strong>de</strong> columnas en los tipos <strong>de</strong> <strong>datos</strong> pre<strong>de</strong>finidos<br />

DATE, TIME y TIMESTAMP:<br />

• La columna fecha_nacimiento podría ser <strong>de</strong>l tipo DATE y podría tener como valor<br />

‘1978-12-25’.<br />

• La columna inicio_partido podría ser <strong>de</strong>l tipo TIME y podría tener como valor<br />

‘17:15:00.000000’.<br />

• La columna entrada_trabajo podría ser <strong>de</strong> tipo TIMESTAMP y podría tener como valor<br />

‘1998-7-8 9:30:05’.<br />

1.2.2. Creación, modificación y borrado <strong>de</strong> dominios<br />

A<strong>de</strong>más <strong>de</strong> los dominios dados por el tipo <strong>de</strong> <strong>datos</strong> pre<strong>de</strong>finidos, el SQL92 nos<br />

ofrece la posibilidad <strong>de</strong> trabajar con dominios <strong>de</strong>finidos por el usuario.<br />

Para crear un dominio es necesario utilizar la sentencia CREATE DOMAIN:<br />

CREATE DOMAIN nombre dominio [AS] tipos_<strong>datos</strong><br />

[<strong>de</strong>f_<strong>de</strong>fecto] [restricciones_dominio];<br />

Dominios <strong>de</strong>finidos<br />

por el usuario<br />

Aunque el SQL92 nos ofrece<br />

la sentencia CREATE DOMAIN,<br />

hay pocos sistemas relacionales<br />

comerciales que nos<br />

permitan utilizarla.<br />

don<strong>de</strong> restricciones_dominio tiene el siguiente formato:<br />

[CONSTRAINT nombre_restricción] CHECK (condiciones)<br />

Explicaremos la construcción<br />

<strong>de</strong> condiciones más a<strong>de</strong>lante, en el<br />

subapartado 2.5 cuando hablemos<br />

<strong>de</strong> cómo se hacen consultas a una base<br />

<strong>de</strong> <strong>datos</strong>. Veremos <strong>de</strong>f_<strong>de</strong>fecto en<br />

el subapartado 1.2.3 <strong>de</strong> esta unidad.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!