Está en la página 1de 20

INTRODUCCION A SQL SERVER

TEMA Nº 2
SQL SERVER OPERACIONES CON BASES DE DATOS, TABLAS Y REGISTROS
INTRODUCCIÓN
SQL Server es un sistema de gestión de bases de datos relacionales (RDBMS)
desarrollado por Microsoft. Una base de datos en SQL Server es un conjunto
estructurado de datos organizados en tablas, con relaciones predefinidas entre
ellas.
Las bases de datos en SQL Server pueden contener múltiples tablas, cada una de
las cuales se compone de una serie de columnas que definen los tipos de datos que
se almacenan y las restricciones que se aplican a esos datos. También es posible
definir relaciones entre tablas, lo que permite que los datos de diferentes tablas se
relacionen entre sí y se consulten juntos.
En resumen, una base de datos en SQL Server es un contenedor de datos
estructurado y organizado, diseñado para permitir el almacenamiento, la
manipulación y la recuperación de grandes cantidades de información de manera
eficiente
CREACION DE BASE DE DATOS
La sentencia CREATE DATABASE crea una nueva base de datos

Normalmente, el nombre de la base de datos tiene un máximo de 128 caracteres.

SINTAXIS:

CREATE DATABASE NOMBRE_BASE_DE_DATOS

EJEMPLO:
CREATE DATABASE OFICINA

Si la nueva base de datos no aparece, puedes hacer clic en el botón Actualizar o presionar
el teclado F5 para actualizar la lista de objetos.

Para consultar el listado de base de datos en SQL Server puedes usar la siguiente
declaración con un SELECT:

SELECT
name
FROM
master.sys.databases
ORDER BY
name;

ING. EDITH GUTIERREZ 1


INTRODUCCION A SQL SERVER

EXEC sp_databases;

CREACION DE TABLAS
La sentencia CREATE TABLE en SQL Server se utiliza para crear una tabla en una
base de datos. Una tabla en SQL Server es una estructura que contiene información
organizada en filas y columnas. Se utiliza para almacenar y manipular datos en una
base de datos relacional.
Las tablas se utilizan para almacenar datos en la base de datos. Las tablas tienen
nombres únicos dentro de una base de datos y un esquema. Cada tabla contiene
una o más columnas y cada columna tiene un tipo de datos asociado que define el
tipo de datos que puede almacenar, por ejemplo, números, cadenas o datos
temporales.
Para crear una nueva tabla, use la instrucción CREATE TABLE de la siguiente
manera:
SINTAXIS:
USE NOMBRE_BASE_DE_DATOS

CREATE TABLE NOMBRE_TABLA


(
NOMBRE_CAMPO TIPO_DE_DATO,
NOMBRE DE CAMPO TIPO_DE_DATO,

NOMBRE DE CAMPO TIPO_DE_DATO
)
Ver anexos para tipos de datos
Primero, especifica el nombre de la base de datos en la que se crea la tabla. La
database_name debe ser el nombre de una base de datos existente. Si no
específicas el database_name se predetermina a la base de datos seleccionada
actualmente.

ING. EDITH GUTIERREZ 2


INTRODUCCION A SQL SERVER

En segundo lugar, especifique el esquema al que pertenece la nueva tabla.


Tercero, especifique el nombre de la nueva tabla.
Cuarto, cada tabla debe tener una llave primaria o PRIMARY KEY que consta de una
o más columnas.
Por lo general, primero se enumeran las columnas que son llave principal y luego
otras columnas. Si la llave principal contiene solo una columna, puede usar las
palabras clave PRIMARY KEY después del nombre de la columna. Si la clave
primaria consta de dos o más columnas, debe especificar la restricción PRIMARY
KEY como una restricción de tabla. Cada columna tiene un tipo de datos asociado
especificado después de su nombre en la declaración. Una columna puede tener
una o más restricciones de columna, como NOT NULL y UNIQUE.
Quinto, una tabla puede tener algunas restricciones especificadas en la sección de
restricciones de la tabla, como FOREIGN KEY, PRIMARY KEY, UNIQUE y CHECK.
EJEMPLO 1:

CREATE TABLE Estudiantes


(
ID INT PRIMARY KEY,
Nombre VARCHAR(50) NOT NULL,
Apellido VARCHAR(50) NOT NULL,
Edad INT,
CorreoElectronico VARCHAR(100)
);
En este ejemplo, se está creando una tabla llamada "Estudiantes" con cinco columnas:

ID: esta columna es de tipo INT y se ha definido como clave primaria mediante la declaración
PRIMARY KEY. Esto significa que no puede haber valores duplicados en esta columna y se
utiliza para identificar de manera única a cada estudiante en la tabla.

Nombre: esta columna es de tipo VARCHAR y tiene una longitud máxima de 50 caracteres.
Se ha definido como "NOT NULL", lo que significa que se requiere un valor para esta
columna en cada fila de la tabla.

Apellido: esta columna es similar a la columna Nombre en términos de tipo de datos y


longitud, pero también se ha definido como "NOT NULL".

Edad: esta columna es de tipo INT y se utiliza para almacenar la edad de cada estudiante. A
diferencia de las columnas Nombre y Apellido, esta columna no se ha definido como "NOT
NULL", lo que significa que se pueden dejar valores nulos en esta columna en algunas filas
de la tabla.

CorreoElectronico: esta columna es de tipo VARCHAR y tiene una longitud máxima de 100
caracteres. Se utiliza para almacenar la dirección de correo electrónico de cada estudiante
y también se permite que tenga valores nulos.

ING. EDITH GUTIERREZ 3


INTRODUCCION A SQL SERVER

EJEMPLO 2:

CREATE TABLE sales.visitas


(
visita_id INT PRIMARY KEY IDENTITY (1, 1),
first_name VARCHAR (50) NOT NULL,
last_name VARCHAR (50) NOT NULL,
visited_at DATETIME,
phone VARCHAR(20),
store_id INT NOT NULL,
FOREIGN KEY (store_id) REFERENCES sales.stores (store_id)
);

La tabla de visitas contiene seis columnas:

La columna visita_id es la columna de llave principal de la tabla. IDENTITY (1,1) indica a SQL
Server que genere automáticamente números enteros para la columna comenzando desde
uno y aumentando en uno para cada nueva fila.

Las columnas first_name y last_name son columnas de cadena de caracteres con el tipo
VARCHAR. Estas columnas pueden almacenar hasta 50 caracteres.

Visit_at es una columna DATETIME que registra la fecha y la hora en que el cliente visita la
tienda.

La columna del teléfono es una columna de cadena de caracteres variable que acepta NULL.

La columna store_id almacena los números de identificación que identifican la tienda donde
visitó el cliente.

Al final de la definición de la tabla hay una restricción FOREIGN KEY. Esta clave foránea
asegura que los valores en la columna store_id de la tabla de visitas deben estar disponibles
en la columna store_id en la tabla de tiendas. Aprenderá más sobre la restricción FOREIGN
KEY en este link.

EJEMPLO:

USE OFICINA

CREATE TABLE DEPARTAMENTO


(
DEPTO_NO INT PRIMARY KEY,
NOMBRE_DEPTO VARCHAR(25),
LOCALIZACION VARCHAR(15)
)

CREATE TABLE EMPLEADO


(
CODIGO_C VARCHAR(20) PRIMARY KEY,
NOMBRE VARCHAR(50),
EDAD INT,
OFICIO VARCHAR(15),
DIR VARCHAR(15),

ING. EDITH GUTIERREZ 4


INTRODUCCION A SQL SERVER

FECHA DATETIME,
SALARIO INT,
COMISION INT,
DEPTO_NO INT,
FOREIGN KEY(DEPTO_NO) REFERENCES DEPARTAMENTO(DEPTO_NO)
)

MODIFICAR UNA TABLA EN UNA BASE DE DATOS


ALTER TABLE
ALTER TABLE en SQL se utiliza para agregar una columna, modificar una columna,
borrar una columna, cambiar el nombre de una columna o cambiar el nombre de
una tabla con la sintaxis y ejemplos.
El SQL ALTER TABLE se utiliza para agregar, modificar o eliminar columnas en una
tabla.
AÑADIR COLUMNA DE LA TABLA
Puede utilizar la sentencia ALTER TABLE en SQL Server para agregar una columna
a una tabla.
SINTAXIS
La sintaxis para añadir una columna en una tabla en SQL Server (Transact-SQL) es:
ALTER TABLE table_name
ADD COLUMN column_name column-definition;
EJEMPLO
Veamos un ejemplo que muestra cómo agregar una columna en una tabla de SQL
Server utilizando la sentencia ALTER TABLE.
ALTER TABLE empleados
ADD apellidos VARCHAR(50);
Este ejemplo tabla de SQL Server ALTER añadirá una columna a la tabla empleados
llamada apellidos.
AÑADIR VARIAS COLUMNAS DE LA TABLA
Puede utilizar la sentencia ALTER TABLE en SQL Server para agregar varias
columnas a una tabla.
SINTAXIS
La sintaxis para agregar varias columnas a una tabla existente en SQL Server
(Transact-SQL) es:

ING. EDITH GUTIERREZ 5


INTRODUCCION A SQL SERVER

ALTER TABLE table_name


ADD column_1 column-definition,
column_2 column-definition,
...
column_n column_definition;
EJEMPLO
Veamos un ejemplo que muestra cómo agregar varias columnas a una tabla en SQL
Server utilizando la sentencia ALTER TABLE.
ALTER TABLE empleados
ADD apellidos VARCHAR(50),
nombres VARCHAR(40);

MODIFICAR LA COLUMNA EN LA TABLA


Puede utilizar la sentencia ALTER TABLE en SQL Server para modificar una
columna de una tabla.
SINTAXIS
La sintaxis para modificar una columna en una tabla existente en SQL Server
(Transact-SQL) es:
ALTER TABLE table_name
ALTER COLUMN column_name column_type;
EJEMPLO
Veamos un ejemplo que muestra cómo modificar una columna en una tabla en SQL
Server utilizando la sentencia ALTER TABLE.
ALTER TABLE empleados
ALTER COLUMN apellidos VARCHAR(75) NOT NULL;

ELIMINAR UNA COLUMNA EN LA TABLA


Puede utilizar la sentencia ALTER TABLE en SQL Server para borrar una columna
de una tabla.
SINTAXIS
La sintaxis para caer una columna en una tabla existente en SQL Server (Transact-
SQL) es:

ING. EDITH GUTIERREZ 6


INTRODUCCION A SQL SERVER

ALTER TABLE table_name


DROP COLUMN column_name;
EJEMPLO
Veamos un ejemplo que muestra cómo caer una columna en una tabla en SQL
Server utilizando la sentencia ALTER TABLE.
ALTER TABLE empleados
DROP COLUMN apellidos;

CAMBIAR EL NOMBRE DE LA COLUMNA EN LA TABLA


No se puede utilizar la sentencia ALTER TABLE de SQL Server para cambiar el
nombre de una columna en una tabla. Sin embargo, puede utilizar sp_rename,
aunque Microsoft recomienda que se le cae y vuelve a crear la mesa para que los
scripts y los procedimientos almacenados no están rotos.
SINTAXIS
La sintaxis para cambiar el nombre de una columna en una tabla existente en SQL
Server (Transact-SQL) es:
sp_rename 'table_name'.'old_column_name', 'new_column_name', 'COLUMN';
EJEMPLO
Veamos un ejemplo que muestra cómo cambiar el nombre de una columna en una
tabla en SQL Server mediante sp_rename.
sp_rename 'employees.last_name', 'lname', 'COLUMN';
Este ejemplo de SQL Server utilizará sp_rename para cambiar el nombre de la
columna en la tabla de employees.last_name a lname.
CAMBIAR EL NOMBRE DE LA TABLA
No se puede utilizar la sentencia ALTER TABLE de SQL Server para cambiar el
nombre de una tabla. Sin embargo, puede utilizar sp_rename, aunque Microsoft
recomienda que se le cae y vuelve a crear la mesa para que los scripts y los
procedimientos almacenados no están rotos.
SINTAXIS
La sintaxis para cambiar el nombre de una tabla en SQL Server (Transact-SQL) es:
sp_rename 'old_table_name', 'new_table_name';
EJEMPLO
Veamos un ejemplo que muestra cómo cambiar el nombre de una tabla en SQL
Server mediante sp_rename.
ING. EDITH GUTIERREZ 7
INTRODUCCION A SQL SERVER

sp_rename 'employees', 'emps';


Este ejemplo de SQL Server utilizará sp_rename para cambiar el nombre de la
mesa a los empleados a las EMP
TAREA: escribir 2 ejemplos para cada uno de los siguientes casos:
- Añadir columnas a una tabla
- Cambiar el nombre de una columna
- Cambiar el tipo de una columna
- Eliminar una columna
- Cambiar el nombre de una tabla

INSERTAR REGISTROS A UNA TABLA


Para insertar registros a una tabla cree la siguiente base de datos COLEGIO

Utilizaremos la tabla Alumnos de la Base de Datos COLEGIO creada, esta tabla tiene 5
columnas, que son: Id, Nombre, Apellido, Direccion y Fecha_nacimiento.

INSERT INTO
Para agregar datos a una tabla es necesario hacer uso de la instrucción Insert into, que es
uno de los comandos más usado del código Sql. Para insertar los registros lo podemos hacer
de uno en uno, o podemos agregar varios registros a través de una misma instrucción.

ING. EDITH GUTIERREZ 8


INTRODUCCION A SQL SERVER

SINTAXIS

La sintaxis para insertar un registro en una tabla es la siguiente:

INSERT INTO «Nombre_Tabla» («columna1», «columna2», etc)

VALUES («Dato1», «Dato2», etc);

DONDE:

Nombre_tabla: Es el nombre de la tabla en la que vamos a insertar registros.

columna1, columna2,..: Son las columnas de la tabla en la que vamos a insertar datos.

«Dato1», «Dato2» ,..: Son los valores que vamos a guardar en cada columna especificada.

Es importante mencionar que la sintaxis vista anteriormente se puede acortar en los casos
que vamos a insertar registros a todas las columnas, ya que podemos hacerlo de la forma
siguiente:

En los casos que hacemos uso de esta sintaxis, debemos tomar en cuenta el orden de las
columnas y además debemos enviar todos los datos según la cantidad de columnas de la
tabla, ya que dicha sintaxis indica que se van agregar registros a todas las columnas. Por lo
tanto, debemos respetar el orden que especificamos en las columnas y en values enviar los
datos exactamente como los hemos especificado en las columnas.

Existe otra opción de insertar registros y es mencionando columnas específicas, para este
caso debemos tomar en cuenta que las columnas que omitimos deben tener la propiedad
null, es decir que aceptan valores nulos.

EJEMPLO:

A continuación vamos a realizar algunos ejemplos en los que agregaremos registros a la


tabla alumnos:

INSERT INTO Alumnos (Id, Nombre, Apellido, Direccion, Fecha_nacimiento)

VALUES ('0101', 'Franklin', 'Garcia', 'avenida 01', '12/01/80')

INSERT INTO Alumnos

VALUES ('0102', 'Juan', 'Hernandez', 'avenida 01', '12/01/80')

INSERT INTO Alumnos (Id, Nombre, Apellido)

VALUES ('0103', 'Juan', 'Perez')

En la primera instrucción insertamos un registro a todas las columnas, citándolas una a una.

El segundo ejercicio, aplicamos el acortamiento de la instrucción y omitimos especificar las


columnas, automáticamente se entiende que insertaremos datos en todas las columnas

El tercer ejemplo no hemos asignado valores a las columnas Direccion y Fecha_Nacimiento,


por tanto tomará automáticamente el valor NULL.

ING. EDITH GUTIERREZ 9


INTRODUCCION A SQL SERVER

Nota: Si una columna está definida como NOT NULL (es decir, que no admite valores vacíos),
en ese caso debemos especificar y enviar siempre un dato para insertar. Caso contrario se
producirá un error al ejecutar la instrucción INSERT en Management Studio

INSERTAR VARIOS REGISTROS EN UN SOLO INSERT

Si queremos agregar varios registros a través de un un mismo insert, basta con agregar una
coma en los valores que le enviamos en values, y especificar los datos a insertar. Ejemplo:

INSERT INTO Alumnos (Id, Nombre, Apellido, Direccion, Fecha_nacimiento)

VALUES

('0104', 'Franklin2', 'Garcia', 'avenida 01', '12/01/80'),

('0105', 'Franklin3', 'Garcia', 'avenida 01', '12/01/80')

INSERTAR DATOS EN TABLAS RELACIONADAS

La Base de Datos creada tiene mas de dos tablas relacionadas, en ese caso hay ciertos
aspectos que debemos tomar en cuenta:

Si revisamos el diagrama nos podemos dar cuenta que la tabla inscripción es la que recibe
las llaves foráneas de las tablas Alumnos, Profesor y Asignatura. Por lo tanto, la lógica para
agregarles registros es que primero debemos agregar asignaturas, agregar profesores y
agregar alumnos; posteriormente podemos insertar datos a la tabla Inscripción, ya que los
campos que están en la tabla inscripción (que relacionan las demás tablas), tiene las llaves
primarias e inicialmente deben existir en sus respectivas tablas de origen, es decir el
IdAsignatura debe estar agregado en la tabla Asignatura.

A continuación, agregaremos registros a las dos tablas que se relacionan con la tabla
inscripción, y que por el momento no tiene datos:

INSERT INTO Asignatura (Id, Nombre)

VALUES ('BD01', 'Base de Datos 1')

INSERT INTO Profesor

VALUES ('PF01', 'Antonio','Perez', 'avenida 01', '12/01/80','Licenciado')

Ya habiendo registrado datos en la tabla asignatura y profesor, podemos agregar datos a la


tabla inscripción, ya que deben ser datos agregados previamente:

INSERT INTO Inscripcion

VALUES ('INS01', 'BD01','0101', 'PF01', '12/01/80')

Si únicamente tuviéramos dos tablas relacionadas, la lógica seria la misma: primero


debemos crear un registro en la tabla que tiene la llave primaria, y posteriormente debemos
agregar un registro en la tabla que tiene la llave foránea.

ING. EDITH GUTIERREZ 10


INTRODUCCION A SQL SERVER

EJEMPLO 1:

Tabla Aeropuerto

----Insertar registros en la tabla aeropuerto


insert into aeropuerto (idaeropuerto,idpais,nombre)
values ('AE01','0003','Bariloche'),
('AE02','0003','Mar del Plata'),
('AE03','0001','Jorge Chávez')
go

----Verificando los registros insertados en la tabla aeropuerto


select * from AEROPUERTO

Tabla Reserva

--Insertar registros en la tabla reserva


insert into RESERVA (idreserva,costo,fecha,observacion)
values ('1','140','01-27-2013','')
go
ING. EDITH GUTIERREZ 11
INTRODUCCION A SQL SERVER

insert into RESERVA (idreserva,costo,fecha,observacion)


values ('2','100','01-01-2013','')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('3','300','03-04-2014','')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('4','800','04-05-2014','')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('5','250',getdate(),'')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('6','1150',getdate(),'')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('7','700',getdate(),'')
go

Tabla Pago

--Insertar registro en la tabla pago


insert into pago (idreserva,fecha,idpasajero,monto,tipo_comprobante,n
um_comprobante,impuesto)
values ('1','01-27-2013','P0000001',40,'Ticket','0010007',0.18),
('5','05-05-2014','P0000002',250,'Factura','001-0002',0.18),
('7',getdate(),'P0000007',700,'Factura','001-0003',0.18)

go
--Verificando registros insertados en la tabla pago
select * from pago

ING. EDITH GUTIERREZ 12


INTRODUCCION A SQL SERVER

Tabla Tarifa

--Insertar tarifa
insert into tarifa
values ('1','Supervip',1200,12),
('2','Vip',1000,12),
('3','Nacional',800,12),
('4','Económica',500,0)
go
--Verificando registros insertados en la tabla tarifa
select * from tarifa

MODIFICAR REGISTROS A UNA TABLA


SENTENCIA UPDATE (Modificación y actualización de Datos): Permite modificar o
actualizar un conjunto de registros de una Tabla o vista dependiendo de una
condición.
SINTAXIS
UPDATE TABLA O VISTA
[SET] {column name =expresión}
[WHERE <Search_Condition>]
EJEMPLOS
1. Actualizar los Valores de la columna impuesto por el valor 11 a todos los
registros de la tabla TARIFA.

ING. EDITH GUTIERREZ 13


INTRODUCCION A SQL SERVER

Tabla Tarifa

update tarifa
Set impuesto=11
go

2. Actualizar los valores de la columna impuesto aumentado en 2 a todos los registros de la


tabla TARIFA.

update tarifa
set impuesto=impuesto + 2
go
3. Asignar el impuesto a cero sólo a los registros cuya clase sea Económico de la tabla tarifa.

update tarifa
set impuesto=0
where clase='Económica'
go

4. Actualizar los costos de la tabla RESERVA disminuyendo en 50 a los registros cuyo


ingreso se realizó el año 2013, utilizar variables.

Tabla Reserva

ING. EDITH GUTIERREZ 14


INTRODUCCION A SQL SERVER

update reserva
set costo=costo - 50
where year(fecha)=2013
go

5. Asignar el texto ‘SIN FONO’ en el campo teléfono de los pasajeros que sean de Perú
Todo esto deberá ser realizado en la tabla Pasajero.

Tabla Pasajero

update pasajero
set telefono = 'Sin Fono'
where idpais= (select idpais from pais where nombre='Perú')
go

ELIMINAR REGISTROS A UNA TABLA

SENTENCIA DELETE (Eliminación de Registros de una tabla): Permite eliminar todos los
registros específicados en una determinada tabla.

SINTAXIS

DELETE
[TOP { Expresión } ]
FROM TABLE
[WHERE <Search_Condition>]

ING. EDITH GUTIERREZ 15


INTRODUCCION A SQL SERVER

EJEMPLOS

1. Eliminar todos los registros de la Tabla AEROLÍNEA.

Tabla Aerolínea

delete from aerolinea


go

2. Eliminar el registro de la tabla Pasajero cuyo idpasajero sea P0000004.

Tabla Pasajero

delete from pasajero


where idpasajero='P0000004'
go

ING. EDITH GUTIERREZ 16


INTRODUCCION A SQL SERVER

3. Eliminar los registros de la tabla PASAJERO cuyo país sea México, utilizar subconsultas.

delete from pasajero


where idpais = (select idpais from pais where nombre = 'México')
go

4. Eliminar los registros de la tabla RESERVA que sean del año 2013 y que no superen los $
70.

Tabla Reserva

delete from reserva


where year(fecha)= 2013 and costo>70
go

5. Eliminar los registros de la tabla PAGO, que se han efectuado en el año 2012 ó 2013.

Tabla Pago

delete from pago


where year(fecha)=2012 or year(fecha)=2013
go

ING. EDITH GUTIERREZ 17


INTRODUCCION A SQL SERVER

ANEXOS
TIPOS DE DATOS COMUNES

• char(tamaño) - cadena de tamaño fijo que puede contener letras, números, caracteres
especiales
• varchar(tamaño) - cadena de tamaño variable que puede contener letras, números, y
caracteres especiales
• boolean - Cero (o valores que son igual a 0) es falso, no-cero es verdadero
• int(tamaño opcional) - un número de hasta 10 caracteres en longitud, acepta números
negativos y positivos
• bigint(tamaño opcional) - un numero de hasta 19 caracteres en longitud, acepta números
negativos y positivos.
• float(tamaño, d) - un número donde el tamaño total del número es representado por el
tamaño y la cantidad de caracteres después del punto decimal representado por una d
• date - fecha en el formato YYYY-MM-DD
• datetime - fecha y hora en el formato YYYY-MM-DD hh:mm:ss
• time - tiempo en el formato hh:mm:ss

TIPOS DE DATOS DE SQL SERVER

Tipos de datos de cadena

Tipo de
Descripción Tamaño máximo Almacenamiento
datos

Cadena de caracteres de ancho


char (n) 8,000 caracteres Ancho definido
fijo
Cadena de caracteres de ancho 2 bytes + número de
varchar (n) 8,000 caracteres
variable caracteres
Cadena de caracteres de ancho 1,073,741,824 2 bytes + número de
varchar (max)
variable caracteres caracteres
Cadena de caracteres de ancho 4 bytes + número de
text 2 GB de datos de texto
variable caracteres
nchar Cadena Unicode de ancho fijo 4.000 caracteres Ancho definido x 2
nvarchar Ancho de cadena Unicode 4.000 caracteres
nvarchar 536,870,912
Ancho de cadena Unicode
(max) caracteres
ntext Ancho de cadena Unicode 2 GB de datos de texto
binary (n) Cadena binaria de ancho fijo 8,000 bytes
Cadena binaria de ancho
varbinary 8,000 bytes
variable
varbinary Cadena binaria de ancho
2 GB
(max) variable
Cadena binaria de ancho
image 2 GB
variable

ING. EDITH GUTIERREZ 18


INTRODUCCION A SQL SERVER

Tipos de datos numéricos

Tipo de datos Descripción Almacenamiento

bit Entero que puede ser 0, 1 o NULL


tinyint Permite números enteros de 0 a 255 1 byte
smallint Permite números enteros entre -32,768 y 32,767 2 bytes
int Permite números enteros entre -2,147,483,648 y 2,147,483,647 4 bytes
Permite números enteros entre -9,223,372,036,854,775,808 y
bigint 8 bytes
9,223,372,036,854,775,807
Números de escala y precisión fijos.
Permite números de -10 ^ 38 +1 a 10 ^ 38 -1.

El parámetro p indica el número total máximo de dígitos que se


pueden almacenar (tanto a la izquierda como a la derecha del

decimal (p, s) punto decimal). p debe ser un valor de 1 a 38. El valor 5-17 bytes
predeterminado es 18.

El parámetro s indica la cantidad máxima de dígitos almacenados


a la derecha del punto decimal. s debe ser un valor de 0 a p. El valor
predeterminado es 0

Números de escala y precisión fijos.


Permite números de -10 ^ 38 +1 a 10 ^ 38 -1.

El parámetro p indica el número total máximo de dígitos que se


pueden almacenar (tanto a la izquierda como a la derecha del

numeric (p, s) punto decimal). p debe ser un valor de 1 a 38. El valor 5-17 bytes
predeterminado es 18.

El parámetro s indica la cantidad máxima de dígitos almacenados


a la derecha del punto decimal. s debe ser un valor de 0 a p. El valor
predeterminado es 0

smallmoney Datos monetarios de -214,748.3648 a 214,748.3647 4 bytes


Datos monetarios de -922,337,203,685,477.5808 a
money 8 bytes
922,337,203,685,477.5807

ING. EDITH GUTIERREZ 19


INTRODUCCION A SQL SERVER

Datos del número de precisión flotante desde -1.79E + 308 a 1.79E


+ 308.
El parámetro n indica si el campo debe contener 4 u 8 bytes. float
float (n) 4 u 8 bytes
(24) contiene un campo de 4 bytes y float (53) contiene un campo
de 8 bytes. El valor predeterminado de n es 53.

Datos numéricos de precisión flotante desde -3.40E + 38 a 3.40E +


real 4 bytes
38

Tipos de datos de fecha

Tipo de datos Descripción Almacenamiento

Del 1 de enero de 1753 al 31 de diciembre de 1999, con una


datetime 8 bytes
precisión de 3,33 milisegundos
Desde el 1 de enero de 0001 hasta el 31 de diciembre de 1999,
datetime2 6-8 bytes
con una precisión de 100 nanosegundos
Del 1 de enero de 1900 al 6 de junio de 2079 con una precisión de
smalldatetime 4 bytes
1 minuto
Almacenar una fecha solamente. Del 1 de enero de 0001 al 31 de
date 3 bytes
diciembre de 9999
Almacenar un tiempo solo con una precisión de 100
time 3-5 bytes
nanosegundos
Lo mismo que datetime2 con la adición de un desplazamiento de
datetimeoffset 8-10 bytes
zona horaria
Almacena un número único que se actualiza cada vez que se crea
o modifica una fila. El valor de la marca de tiempo se basa en un
timestamp
reloj interno y no corresponde a tiempo real. Cada tabla puede
tener una sola variable de marca de tiempo

Otros tipos de datos

Tipo de datos Descripción


Almacena hasta 8,000 bytes de datos de varios tipos de datos, excepto texto, ntext
sql_variant
e indicación de fecha y hora
uniqueidentifier Almacena un identificador único global (GUID)
xml Almacena datos formateados en XML. Máximo 2 GB
Almacena una referencia a un cursor utilizado para las operaciones de la base de
cursor
datos
table Almacena un conjunto de resultados para un procesamiento posterior

ING. EDITH GUTIERREZ 20

También podría gustarte