sql >> Base de Datos >  >> RDS >> Access

Introducción a las uniones y relaciones de datos

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

  1. Iniciar Microsoft Access
  2. De los recursos que acompañan a estas lecciones, abra la base de datos de Altair Realtors3
  3. En la cinta, haga clic en Crear y haga clic en Diseño de consulta
  4. En el cuadro de diálogo Mostrar tabla, haga doble clic en Propiedades y haga clic en Cerrar
  5. En la lista de propiedades, haga doble clic en PropertyNumber, City y State
  6. Cambie la consulta a Vista de hoja de datos:

  7. Observe la cantidad de registros:48.
    Cambie la consulta a Vista de diseño
  8. Haga clic derecho en un área vacía en la parte superior de la ventana y haga clic en Mostrar tabla
  9. En el cuadro de diálogo Mostrar tabla, haga doble clic en PropertyTypes y haga clic en Cerrar
  10. En la lista PropertyTypes, haga doble clic en PropertyType

  11. Cambie la consulta a Vista de hoja de datos

  12. 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;
  13. Cambie la consulta a Vista de hoja de datos

  14. Observe la cantidad de registros:38.
    Cierra la consulta sin guardarla
  15. En el panel de navegación, haga doble clic en el formulario PropertyTypes
  16. 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
  17. Cerrar la tabla PropertyTypes
  18. En el panel de navegación, haga doble clic en el formulario Condiciones
  19. 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.
  20. Cerrar la tabla Condiciones
  21. 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
  22. En la parte superior de la ventana, haga clic en PropertyType
  23. En la parte inferior, haga clic en Valor predeterminado y escriba Desconocido
  24. En la parte superior de la ventana, haga clic en Condición
  25. En la parte inferior, haga clic en Valor predeterminado y escriba Desconocido
  26. Guarde la tabla y cámbiela a la Vista de hoja de datos
  27. En la columna PropertyType, para cada celda vacía, seleccione Desconocido
  28. En la columna Condición, para cada celda vacía, seleccione Desconocido
  29. Observe que hay un valor predeterminado para las columnas PropertyType y Condition
  30. 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

  31. Cerrar la mesa
  32. En la cinta, haga clic en Crear y haga clic en Diseño de consulta
  33. En el cuadro de diálogo Mostrar tabla, haga doble clic en Propiedades y haga clic en Cerrar
  34. En la lista de propiedades, haga doble clic en PropertyNumber, City y State
  35. Cambie la consulta a Vista de hoja de datos
  36. Observe la cantidad de registros:51.
    Cambie la consulta a Vista de diseño
  37. Haga clic derecho en un área vacía en la parte superior de la ventana y haga clic en Mostrar tabla
  38. En el cuadro de diálogo Mostrar tabla, haga doble clic en PropertyTypes y haga clic en Cerrar
  39. En la lista PropertyTypes, arrastre PropertyType y suéltelo en Ciudad en la parte inferior
  40. En la lista Propiedades, haga doble clic en Dormitorios y baños.

  41. Cambie la consulta a Vista de hoja de datos

  42. Observe la cantidad de registros esta vez:51.
    Cierra la consulta sin guardarla
  43. Abra la base de datos Lambda Square Apartments1 creada y utilizada anteriormente
  44. En la cinta, haga clic en Crear y haga clic en Diseño de consulta
  45. En el cuadro de diálogo Mostrar tabla, haga doble clic en Pagos y haga clic en Cerrar
  46. En la lista de Pagos, haga doble clic en ReceiptNumber, PaymentDate, ProcessedBy, RegistrationNumber y PaymentAmount
  47. Cambie la consulta a Vista de hoja de datos

  48. Observe la cantidad de registros:63.
    Cambie la consulta a Vista de diseño
  49. Haga clic con el botón derecho en un área vacía de la ventana y haga clic en Mostrar tabla...
  50. En el cuadro de diálogo Mostrar tabla, haga doble clic en Empleados y haga clic en Cerrar
  51. Arrastre EmployeeNumber y suéltelo en ProcessedBy
  52. En la parte inferior de la ventana, reemplace ProcessedBy con
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"

  53. Cambie la consulta a Vista de hoja de datos

  54. Observe la cantidad de registros:46.
    Cierra la consulta sin guardarla
  55. 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
  56. Cerrar la tabla Empleados
  57. 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
  58. En la parte superior de la ventana, haga clic en Procesado por
  59. En la parte inferior, haga clic en Valor predeterminado y escriba "00000"
  60. Guardar y cerrar la tabla
  61. Abrir la tabla Pagos
  62. En la columna Procesado por, en cada celda vacía, escriba 00000
  63. Cerrar la tabla Pagos
  64. En la cinta, haga clic en Crear y haga clic en Diseño de consulta
  65. En el cuadro de diálogo Mostrar tabla, haga doble clic en Pagos y empleados
  66. Haga clic en Cerrar
  67. Arrastre EmployeeNumber y suéltelo en ProcessedBy
  68. En la lista Pagos, haga doble clic en Número de recibo y Fecha de pago
  69. Presione el tabulador y escriba
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  70. En la lista Pagos, haga doble clic en Número de registro y Monto del pago
  71. Cambie la consulta a Vista de hoja de datos
  72. 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

  1. En la cinta, haga clic en Crear y luego en Diseño de formulario
  2. 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
  3. En la Tabla Mostrar, haga doble clic en Empleados, Registros y Apartamentos
  4. Haga clic en Cerrar
  5. Arrastre el número de empleado de la lista de empleados y suéltelo en Procesado por en la lista de registros
  6. Arrastre ApartmentCode de la lista de apartamentos y suéltelo en PropNbr en la lista de registros

  7. En la lista de registros, haga doble clic en RegistrationID y RegistrationDate
  8. Presione Tabulador y escriba
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  9. En la lista de registros, haga doble clic en Nombre, Apellido, Estado civil y Número de hijos
  10. Presione Tabulador y escriba:
    Apartment: "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month"
  11. 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;
  12. Cerrar el Generador de consultas
  13. Cuando se le pregunte si desea guardar los cambios, haga clic en Sí
  14. Guarde el formulario como Asignaciones de alquiler
  15. Haz doble clic en el botón en la intersección de las reglas
  16. 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:
    Botones de navegación:No
  17. En la cinta, haga clic en Diseño
  18. En la sección Herramientas, haga clic en Agregar campos existentes
  19. 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
  20. Arrastra la selección al formulario
  21. En la cinta, haga clic en Organizar y haga clic en Tabular
  22. Arrastre la selección a la izquierda
  23. Presione Ctrl + A para seleccionar todos los controles
  24. En la cinta, haga clic en Quitar diseño
  25. Complete el diseño del formulario. Aquí hay un ejemplo:

  26. 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

  1. Abrir la base de datos de Monson University1 utilizada anteriormente
  2. Para iniciar una consulta, en la cinta, haga clic en Crear y haga clic en Diseño de consulta
  3. En el cuadro de diálogo Mostrar tabla, haga clic en Cerrar
  4. Haga clic derecho en la parte superior de la ventana y haga clic en Vista SQL
  5. 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;
  6. Vista previa de los resultados en la Vista de hoja de datos
  7. 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

  8. Cerrar la consulta sin guardarla
  9. Cerrar Microsoft Access