<Предыдущая | Содержание: | Следующая>
присоединиться
В какой-то степени, присоединиться , как макаронные изделия в том, что он добавляет столбцы в файл, но использует уникальный способ сделать это. А присоединиться это операция, обычно связанная с реляционные базы данных где данные из нескольких Эта таблица с общим ключом поле объединяется для получения желаемого результата.
Ассоциация присоединиться программа выполняет ту же операцию. Он объединяет данные из нескольких файлов на основе поля общего ключа.
Чтобы увидеть, как операция соединения используется в реляционной базе данных, давайте представим очень небольшую базу данных, состоящую из двух таблиц, каждая из которых содержит одну запись. Первая таблица, называемая CUSTOMERS, имеет три поля: номер клиента (CUSTNUM), имя клиента (FNAME) и фамилию клиента (LNAME):
CUSTNUM | ФИМЯ | LИМЯ |
======== | ===== | ====== |
4681934 | John | Smith |
Вторая таблица называется ORDERS и содержит четыре поля: номер заказа (ORDER-NUM), номер клиента (CUSTNUM), количество (QUAN) и заказанный товар (ITEM).
НОМЕР ЗАКАЗА | CUSTNUM | QUAN | ПУНКТ |
======== | ======= | ==== | ==== |
3014953305 | 4681934 | 1 | Синий виджет |
Обратите внимание, что в обеих таблицах используется общее поле CUSTNUM. Это важно, поскольку позволяет установить связь между таблицами.
Выполнение операции соединения позволит нам объединить поля в двух таблицах для достижения полезного результата, такого как подготовка счета-фактуры. Используя совпадающие значения в полях CUSTNUM обеих таблиц, операция соединения может привести к следующему:
ФИМЯ | LИМЯ | QUAN | ПУНКТ |
===== | ===== | ==== | ==== |
John | Smith | 1 | Синий виджет |
Чтобы продемонстрировать присоединиться программе, нам нужно создать пару файлов с общим ключом. Для этого воспользуемся нашим дистрибутивы по дате.txt файл. Из этого файла мы создадим два дополнительных файла, один из которых будет содержать даты выпуска (который будет нашим общим ключом для этой демонстрации) и названия выпусков:
[я @ linuxbox ~] $ вырезать -f 1,1 дистрибутивы по-дате.txt> имена-дистрибутивов.txt [я @ linuxbox ~] $ вставьте distros-date.txt distros-names.txt> distros- key-names.txt
[я @ linuxbox ~] $ глава distros-key-names.txt
11 Fedora 25 Ubuntu 2008 SUSE
05 Fedora 13 Ubuntu 2008 Fedora 04 Ubuntu
[я @ linuxbox ~] $ вырезать -f 1,1 дистрибутивы по-дате.txt> имена-дистрибутивов.txt [я @ linuxbox ~] $ вставьте distros-date.txt distros-names.txt> distros- key-names.txt
[я @ linuxbox ~] $ глава distros-key-names.txt
11 Fedora 25 Ubuntu 2008 SUSE
05 Fedora 13 Ubuntu 2008 Fedora 04 Ubuntu
10 SUSE
05 Fedora 31 Ubuntu
10 SUSE
05 Fedora 31 Ubuntu
и второй файл, содержащий даты выпуска и номера версий:
[я @ linuxbox ~] $ вырезать -f 2,2 дистрибутивы-по-дате.txt> дистрибутивы-vernums.txt [я @ linuxbox ~] $ вставить distros-date.txt distros-vernums.txt> distro s-key-vernums.txt
[я @ linuxbox | ~] $ голова distros-key-vernums.txt |
11/25/2008 | 10 |
10/30/2008 | 8.10 |
06/19/2008 | 11.0 |
05/13/2008 | 9 |
04/24/2008 | 8.04 |
11/08/2007 | 8 |
10/18/2007 | 7.10 |
10/04/2007 | 10.3 |
05/31/2007 | 7 |
04/19/2007 | 7.04 |
Теперь у нас есть два файла с общим ключом (поле «дата выпуска»). Важно отметить, что файлы должны быть отсортированы по ключевому полю для присоединиться чтобы работать должным образом.
[я @ linuxbox ~] $ присоединиться к distros-key-names.txt distros-key-vernums.txt | голова
11 Fedora 25
10 Ubuntu 30
06 SUSE 19
05 Fedora 13
04 Ubuntu 24
11 Fedora 08
10 Ubuntu 18
10 SUSE 04
05 Fedora 31
04 Ubuntu 19
[я @ linuxbox ~] $ присоединиться к distros-key-names.txt distros-key-vernums.txt | голова
11 Fedora 25
10 Ubuntu 30
06 SUSE 19
05 Fedora 13
04 Ubuntu 24
11 Fedora 08
10 Ubuntu 18
10 SUSE 04
05 Fedora 31
04 Ubuntu 19
Также обратите внимание, что по умолчанию присоединиться использует пробел в качестве разделителя поля ввода и одиночный пробел в качестве разделителя поля вывода. Это поведение можно изменить, указав параметры. Увидеть присоединиться справочную страницу для получения подробной информации.