ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
Tipos de datos. Ejercicios en SQL Server
1. Sistemas Gestores de Bases de Datos
Tipos datos. SQL-Server
Tipos de datos en SQL Server
Base de datos Librería
Datos y Funciones.1
2. Sistemas Gestores de Bases de Datos
Tipos datos. SQL-Server
DISTINCIÓN ENTRE LOS ATRIBUTOS DE TIPO CHAR Y VARCHAR
Si en una columna char NOT NULL se inserta un valor más corto que la longitud de la
columna, el valor se rellena a la derecha con blancos hasta completar el tamaño de la
columna. Por ejemplo, si una columna se define como char(10) y el dato que se va a
almacenar es "música", SQL Server almacena este dato como "música_ _ _ _" donde "_"
indica un espacio en blanco.
TD-0.
Realiza una consulta que mediante Instrucciones DDL:
• Cree las Tablas del Diagrama anterior
• Defina la Claves Primarias (PK) mediante restricciones
• Defina la Claves Externas (FK) mediante restricciones
TD-1.
Realiza una consulta que:
• Crees una tabla Prueba con 2 campos:
C_varchar, de tipo varchar, longitud 30
C_char, de tipo char, longitud 30
• Introduzcas mediante SQL tres tuplas con los valores ‘aa’, ‘bb’ y ‘ccc’ en ambos
campos
•
Compruebes que todos los valores del campo C_char, tienen blancos a la derecha
hasta llegar a la longitud 30
Datos y Funciones.2
3. Tipos datos. SQL-Server
Sistemas Gestores de Bases de Datos
CARACTERES UNICODE: TIPOS Nchar y Nvarchar
Recuerda que la B.D “Libreria” la importamos de Access. Observa que todos los campos
que en Access eran de tipo TEXTO, se han importado a SQL Server como de tipo nchar o
nvarchar. Este tipo de datos es para cadenas de caracteres en las que cada carácter se
codifica mediante el código UNICODE. Es un código que ocupa más, pero que garantiza la
compatibilidad de caracteres en distintos equipos y SGBDs.
INTERCALACIONES
En SQL Server, cada campo de tipo char o varchar tiene una intercalación.
Las INTERCALACIONES definen las combinaciones de bits que se utilizan para representar
cada carácter, las reglas de comparación, la distinción entre mayúsculas y minúsculas y la
distinción de los acentos.
Cada base de datos tiene una intercalación predeterminada. A los datos de tipo texto se les
asigna una intercalación. Esta intercalación es, si no se indica lo contrario, la intercalación
predeterminada de la base de datos.
• Mira cuál es la intercalación del servidor SQL Server (Propiedades del servidor.
Página general)
• Comprueba que al crear una nueva base de datos puedes elegir la intercalación
predeterminada. Página Opciones
• Comprueba también que la intercalación de la base de datos “Libreria” es la
misma que la del servidor (Propiedades de la base de datos. Página general).
Datos y Funciones.3
4. Sistemas Gestores de Bases de Datos
Tipos datos. SQL-Server
De todos modos, SQL Server admite que se almacenen en una única base de datos objetos
que tienen distintas intercalaciones.
En la tabla Clientes de la BD “Libreria” verás que todos los campos de tipo texto se han
definido como nvarchar con la intercalación de datos predeterminada de SqlServer porque
así lo definimos en la instalación (SQL-Latin1-General-CP1-CI-AS).
En la tabla libros – campo ISBN, en el diseño de la tabla, propiedades de columna,
Intercalación, cambia <base de datos predeterminada> por Intercalación de Windows
‘Modern Spanish’. Comprueba que NO se hace distinción entre mayúsculas y minúsculas.
Configúralo para que SI se haga esta diferenciación (aparecerá un mensaje de que en la
columna ISBN de detallespedidos también se modificará ya que están relacionados).
TD-2.
Realiza una consulta que:
• Introduce dos Libros nuevos, uno de clave ABC4 y otro de clave ABc4 y los
siguiente datos
•
'ABC4','Mayusculas',5,5
'ABc4','Minuscula',10,10
Realiza las consulta
SELECT * FROM Libros WHERE ISBN = ’ABC4’
SELECT * FROM Libros WHERE ISBN = ’ABc4’
y comprueba que solo nos devuelve un libro.
Datos y Funciones.4
5. Sistemas Gestores de Bases de Datos
•
Tipos datos. SQL-Server
Realiza la consulta
SELECT * FROM Libros WHERE RTRIM(ISBN) LIKE ’AB_4’.
Busca en la ayuda de libros en pantalla información sobre los caracteres
comodín. (Cuando se utilizan datos Unicode (tipos de datos nchar o nvarchar) con LIKE, los
espacios en blanco al final son significativos)
Mediante el Management Studio,
• Intenta eliminar la distinción entre mayúsculas y minúsculas para el campo
ISBN de la tabla libros. Al final del proceso debe darte algún problema, ya que
dispondrías de dos tuplas con clave idéntica
• Elimina las 2 tuplas y elimina la distinción entre mayúsculas y minúsculas.
• Tipos de datos definidos por el usuario
Creación
sp_addtype NombreTipo, TipoBase [, {NULL/NOT NULL}]
TipoBase: Tipo de datos de referencia
Supresión
Sp_droptype NombreTipo
Ejemplos
sp_addtype tiponombre,'varchar(30)'
sp_addtype entero_3,'numeric(3)','not null'
sp_droptype tiponombre
sp_droptype entero_3
Datos y Funciones.5
6. Sistemas Gestores de Bases de Datos
Tipos datos. SQL-Server
Mediante el Management Studio, crea un tipo de datos para todos los identificadores
numéricos de la BD “Libreria” (En BD Libreria; Programación; Tipos; Tipos de datos
definidos por el usuario). Este tipo se llamará identif y equivaldrá a un entero (int) y
no admitirá nulos.
TD-3.
Mediante procedimientos almacenados Elimina ese tipo y vuelve a crearlo.
exec sp_droptype 'identif'
exec sp_addtype 'identif', 'int', 'not null'
Datos y Funciones.6
7. Sistemas Gestores de Bases de Datos
Tipos datos. SQL-Server
A continuación asigna ese tipo de datos a las variables de tipo clave primaria entera y claves
externas que apuntan a estas:
Management Studio: Autores (IdAutor), Clientes(IdCliente), Detallespedidos(Pedido)
TD-4.
Mediante consultas Alter Table: Librerias(IdLibreria), Libros (Autor), Pedidos (
IdPedido, Cliente, Libreria)
TD-5.
Mediante el procedimiento almacenado sp_addtype, añade un tipo de dato de
nombre Tipo_dto, asimilado a un dato numérico de longitud 1, no nulo y comprendido
entre 0 y 100. El valor por defecto será cero
Deberás usar:
sp_addtype, create rule, sp_bindrule, create default, sp_bindefault
Una vez realizado desenlaza la regla, borra el tipo, la regla y el valor por defecto y vuelve a
realizar el ejercicio del enunciado
TD-6.
Posteriormente asignar el tipo Tipo_dto al campo descuento de la tabla de
pedidos
Mediante el Management Studio – Programación; Tipos;Tipos de datos definidos por el
usuario, examina (mediante Ver Dependencias) a qué tablas están actualmente
asignados los 2 tipos de datos.
Datos y Funciones.7
8. Sistemas Gestores de Bases de Datos
Tipos datos. SQL-Server
Comprueba que NO puedes eliminar ningún tipo de datos ni desde el
Management Studio ni mediante sp_droptype ya que están en uso.
Datos y Funciones.8