Opciones sobre uniones de datos
Uniones de datos y nulidad de registros
A veces tendrá una tabla en la que a un campo le faltan algunos registros. Aquí hay un ejemplo de una lista de empleados donde algunos registros no especifican el departamento al que pertenece el empleado:
SELECT Employees.EmployeeNumber AS [Employee #], Employees.FirstName, Employees.LastName, Employees.DepartmentCode AS Department FROM Employees;
Esto produciría:
Si crea una consulta de combinación interna de dos tablas que tienen una relación y a algunos registros de la tabla secundaria les faltan algunos valores en la columna de clave externa, la consulta generará solo los registros que tienen un valor. Aquí hay un ejemplo:
SELECT Employees.EmployeeNumber AS [Employee #], Employees.FirstName, Employees.LastName, Departments.DepartmentName AS Department FROM Departments INNER JOIN Employees ON Departments.DepartmentCode = Employees.DepartmentCode;
Esto produciría:
Observe que la consulta produce menos registros. Da la casualidad de que a los motores de bases de datos no les gustan los registros nulos, especialmente en campos compartidos, campos que están involucrados en relaciones. Para asegurarse de que una consulta produzca todos los registros de una tabla secundaria, genere un valor predeterminado para los registros cuyos valores faltan. Si la relación utiliza un entero simple, cree un registro con el valor 0. Si la relación utiliza una cadena, puede crear un registro con un valor 'N/A'. Si los registros son procesados por una computadora, puede crear un registro con un valor genérico/aleatorio como 00000 o algo así.
Aprendizaje práctico:manejo de uniones de datos y nulidad de registros
- Iniciar Microsoft Access
- De los recursos que acompañan a estas lecciones, abra la base de datos de Altair Realtors3
- En la cinta, haga clic en Crear y haga clic en Diseño de consulta
- En el cuadro de diálogo Mostrar tabla, haga doble clic en Propiedades y haga clic en Cerrar
- En la lista de propiedades, haga doble clic en PropertyNumber, City y State
- Cambie la consulta a Vista de hoja de datos:
- Observe la cantidad de registros:48.
Cambie la consulta a Vista de diseño - Haga clic derecho en un área vacía en la parte superior de la ventana y haga clic en Mostrar tabla
- En el cuadro de diálogo Mostrar tabla, haga doble clic en PropertyTypes y haga clic en Cerrar
- En la lista PropertyTypes, haga doble clic en PropertyType
- Cambie la consulta a Vista de hoja de datos
- Observe la cantidad de registros esta vez:44.
Muestre la vista SQL de la consulta y cambie su código de la siguiente manera:SELECT Properties.PropertyNumber, Properties.City, Properties.State, Conditions.Condition FROM Properties INNER JOIN Conditions ON Properties.Condition = Conditions.Condition;
- Cambie la consulta a Vista de hoja de datos
- Observe la cantidad de registros:38.
Cierra la consulta sin guardarla - En el panel de navegación, haga doble clic en el formulario PropertyTypes
- Cree un nuevo registro de la siguiente manera:
Tipo de propiedad Descripción Desconocido El tipo de propiedad no está disponible o no está claro. Ilustraciones - Cerrar la tabla PropertyTypes
- En el panel de navegación, haga doble clic en el formulario Condiciones
- Cree un nuevo registro de la siguiente manera:
Tipo de propiedad Descripción Desconocido La condición o apariencia actual (interior y/o exterior) de la propiedad no se ha verificado, no se ha evaluado o no se conoce claramente. - Cerrar la tabla Condiciones
- En el panel de navegación, haga clic con el botón derecho en la tabla Propiedades y haga clic en Vista de diseño
- En la parte superior de la ventana, haga clic en PropertyType
- En la parte inferior, haga clic en Valor predeterminado y escriba Desconocido
- En la parte superior de la ventana, haga clic en Condición
- En la parte inferior, haga clic en Valor predeterminado y escriba Desconocido
- Guarde la tabla y cámbiela a la Vista de hoja de datos
- En la columna PropertyType, para cada celda vacía, seleccione Desconocido
- En la columna Condición, para cada celda vacía, seleccione Desconocido
- Observe que hay un valor predeterminado para las columnas PropertyType y Condition
- Al configurar solo los valores indicados, cree nuevos registros de la siguiente manera:
Propiedad # Tipo de propiedad Ciudad Estado Código postal Habitaciones Baños Sótano Terminado Garaje cubierto Condición Valor de mercado 476005 Unifamiliar Hanover PA 17331 3 2.50 Marcado 425790 152466 Martinsburg WV 1 1,00 135670 427048 Condominio Alexandria VA 3 2,00 Necesita reparación 622845 297427 Matinsburg Excelente 729336 Alexandria VA 3 2,50 Necesita reparación 750000 300618 Harrisburg PA 17109 Marcado Marcado Buena Forma 515885 - Cerrar la mesa
- En la cinta, haga clic en Crear y haga clic en Diseño de consulta
- En el cuadro de diálogo Mostrar tabla, haga doble clic en Propiedades y haga clic en Cerrar
- En la lista de propiedades, haga doble clic en PropertyNumber, City y State
- Cambie la consulta a Vista de hoja de datos
- Observe la cantidad de registros:51.
Cambie la consulta a Vista de diseño - Haga clic derecho en un área vacía en la parte superior de la ventana y haga clic en Mostrar tabla
- En el cuadro de diálogo Mostrar tabla, haga doble clic en PropertyTypes y haga clic en Cerrar
- En la lista PropertyTypes, arrastre PropertyType y suéltelo en Ciudad en la parte inferior
- En la lista Propiedades, haga doble clic en Dormitorios y baños.
- Cambie la consulta a Vista de hoja de datos
- Observe la cantidad de registros esta vez:51.
Cierra la consulta sin guardarla - Abra la base de datos Lambda Square Apartments1 creada y utilizada anteriormente
- En la cinta, haga clic en Crear y haga clic en Diseño de consulta
- En el cuadro de diálogo Mostrar tabla, haga doble clic en Pagos y haga clic en Cerrar
- En la lista de Pagos, haga doble clic en ReceiptNumber, PaymentDate, ProcessedBy, RegistrationNumber y PaymentAmount
- Cambie la consulta a Vista de hoja de datos
- Observe la cantidad de registros:63.
Cambie la consulta a Vista de diseño - Haga clic con el botón derecho en un área vacía de la ventana y haga clic en Mostrar tabla...
- En el cuadro de diálogo Mostrar tabla, haga doble clic en Empleados y haga clic en Cerrar
- Arrastre EmployeeNumber y suéltelo en ProcessedBy
- En la parte inferior de la ventana, reemplace ProcessedBy con
Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
- Cambie la consulta a Vista de hoja de datos
- Observe la cantidad de registros:46.
Cierra la consulta sin guardarla - En el Panel de navegación, haga doble clic en la tabla Empleados y cree un nuevo registro de la siguiente manera (esto es para transacciones realizadas en el banco, como un inquilino que deposita el dinero del alquiler directamente en el banco):
Número de empleado Nombre Apellido Título 00000 Transacción electrónica de procesamiento automático - Cerrar la tabla Empleados
- En el panel de navegación, haga clic con el botón derecho en la tabla Pagos y haga clic en Vista de diseño
- En la parte superior de la ventana, haga clic en Procesado por
- En la parte inferior, haga clic en Valor predeterminado y escriba "00000"
- Guardar y cerrar la tabla
- Abrir la tabla Pagos
- En la columna Procesado por, en cada celda vacía, escriba 00000
- Cerrar la tabla Pagos
- En la cinta, haga clic en Crear y haga clic en Diseño de consulta
- En el cuadro de diálogo Mostrar tabla, haga doble clic en Pagos y empleados
- Haga clic en Cerrar
- Arrastre EmployeeNumber y suéltelo en ProcessedBy
- En la lista Pagos, haga doble clic en Número de recibo y Fecha de pago
- Presione el tabulador y escriba
Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
- En la lista Pagos, haga doble clic en Número de registro y Monto del pago
- Cambie la consulta a Vista de hoja de datos
- Observe la cantidad de registros:63.
Cierra la consulta sin guardarla
Unirse a más de dos mesas
Hasta ahora, nuestras declaraciones de unión involucraban solo dos tablas. En realidad, puede usar más tablas que eso. La fórmula básica para unir tres tablas es:
SELECT field-name(s) FROM first-table first-join-type second-table ON condition1 second-join-type third-table ON condition2
La expresión se inicia uniendo la primera a la segunda tabla, lo que significa que ambas tablas deben compartir una columna en un tipo de relación clave principal-clave externa. De la misma manera, puede crear la segunda unión. Por supuesto, la segunda y la tercera tabla deben tener una columna común. En la mayoría de los casos, debe haber una columna que compartan las tres tablas. La mayoría de las veces, la relación comienza con una columna de clave principal de la tabla principal. Luego, esa columna se representa como una clave externa en las otras dos tablas.
Aprendizaje práctico:unir más de dos tablas
- En la cinta, haga clic en Crear y luego en Diseño de formulario
- En la hoja de propiedades, haga clic en la pestaña Todo.
Haga clic en Record Source y haga clic en su botón de puntos suspensivos - En la Tabla Mostrar, haga doble clic en Empleados, Registros y Apartamentos
- Haga clic en Cerrar
- Arrastre el número de empleado de la lista de empleados y suéltelo en Procesado por en la lista de registros
- Arrastre ApartmentCode de la lista de apartamentos y suéltelo en PropNbr en la lista de registros
- En la lista de registros, haga doble clic en RegistrationID y RegistrationDate
- Presione Tabulador y escriba
Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
- En la lista de registros, haga doble clic en Nombre, Apellido, Estado civil y Número de hijos
- Presione Tabulador y escriba:
Apartment: "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month"
- Muestre la vista SQL de la consulta:
SELECT Registrations.RegistrationID AS [Regist #], Registrations.RegistrationDate AS [Regist Date], [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")" AS Employee, Registrations.FirstName, Registrations.LastName, Registrations.MaritalSituation AS Status, Registrations.NumberOfChildren AS Children, "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month" AS Apartment FROM Apartments INNER JOIN (Employees INNER JOIN Registrations ON Employees.EmployeeNumber = Registrations.ProcessedBy) ON Apartments.ApartmentCode = Registrations.PropNbr;
- Cerrar el Generador de consultas
- Cuando se le pregunte si desea guardar los cambios, haga clic en Sí
- Guarde el formulario como Asignaciones de alquiler
- Haz doble clic en el botón en la intersección de las reglas
- En la hoja de propiedades, cambie las siguientes características:
Leyenda:Lambda Square Apartments - Asignación de alquiler
Valor predeterminado:Forma continua
Centro automático:Sí
Botones de navegación:No - En la cinta, haga clic en Diseño
- En la sección Herramientas, haga clic en Agregar campos existentes
- En la Lista de campos, haga clic en Apartamento, presione y mantenga presionada la tecla Mayús, haga clic en Número de registro y suelte la tecla Mayús
- Arrastra la selección al formulario
- En la cinta, haga clic en Organizar y haga clic en Tabular
- Arrastre la selección a la izquierda
- Presione Ctrl + A para seleccionar todos los controles
- En la cinta, haga clic en Quitar diseño
- Complete el diseño del formulario. Aquí hay un ejemplo:
- Guarde y cierre el formulario
Uniones de datos y análisis de registros
Clasificación de registros
En las uniones de datos que hemos creado hasta ahora, consideramos todos los registros y dejamos que el motor de la base de datos los enumere usando solo las reglas de uniones integradas en SQL. Para que dicha lista sea más restrictiva, puede aplicar algunas condiciones para aislar algunos registros. Puede crear visualmente los filtros en la Vista de diseño de una consulta o en una ventana similar. También puede crear un filtro en SQL. Como se hizo en lecciones anteriores, para incluir un criterio en un SELECCIONAR instrucción, puede crear un DONDE cláusula.
Aprendizaje práctico:Introducción a las combinaciones y análisis de datos
- Abrir la base de datos de Monson University1 utilizada anteriormente
- Para iniciar una consulta, en la cinta, haga clic en Crear y haga clic en Diseño de consulta
- En el cuadro de diálogo Mostrar tabla, haga clic en Cerrar
- Haga clic derecho en la parte superior de la ventana y haga clic en Vista SQL
- Cambie la declaración de la siguiente manera:
SELECT EmployeeNumber AS [Employee #], FirstName AS [First Name], LastName AS [Last Name], Title, DepartmentName AS Department FROM Employees, Departments WHERE Employees.DepartmentCode = Departments.DepartmentCode ORDER BY LastName;
- Vista previa de los resultados en la Vista de hoja de datos
- Si es necesario, en la cinta, haga clic en Inicio.
Cambia las siguientes características:
Nombre de la fuente:Californian FB (si no tiene esa fuente, seleccione Times New Roman)
Color de fuente:azul, acento 1, más claro 80 % (colores del tema:5.ª columna, 2.ª fila)
Color de fondo:Más colores:Rojo:195, Verde:95, Azul:15
Líneas de cuadrícula:horizontales
Color de fila alternativo:más colores:rojo:128, verde:0, azul:0 - Cerrar la consulta sin guardarla
- Cerrar Microsoft Access