ЭЭМ, Программалоо
Сол кошулуп (SQL) - үлгү, толук сыпаттамасы, ката пайдалануу
кандайдыр бир реалдуу мамиледеги базасына, бардык маалымат өзүнчө үстөлгө бөлүштүрүлөт. үстөлдөргө көбү бири-бири менен байланыш схемасы менен аныкталат. Ошондой болсо да, жардам менен SQL суроолор ал эмес, райондо киргизилген маалыматтардын ортосунда байланыш үчүн толук мүмкүн. Бул үстөлдөргө бир катар ортосундагы мамиле, ал тургай, көрүнгөн ар түрдүү маалыматтарды байланышууга мүмкүнчүлүк берет байланыш, кошулууга аткаруу менен ишке ашырылат.
сол сырткы кошулуу жөнүндө Бул макалада талкуулайбыз. байланыштуу бул түрү сыпаттап аллы бла, кээ бир маалымат базасы стол толукталсын.
зарыл столдорду даярдоо
Мисалы, биздин маалыматтар базасына, адамдардын жана алардын кыймылсыз мүлк тууралуу маалымат жок. Жыйынтык үч үстөлдөргө негизинде: элдер (адамдар), Realty (кыймылсыз мүлк), Realty_peoples (стол мамилелери, мүлк таандык кандай адам). элдин үстөлдөргө сакталган төмөнкү маалыматтарды берет:
Эл | ||||
ID | L_name | F_name | Middle_name | туулган күн |
1 | Екатерина | Daria | B. | 07/16/2000 |
2 | Пугин | Лента | Nikolaevich | 29.01.1986 |
3 | Evgenin | Александр | Federovich | 04/30/1964 |
4 | Annina | сүйүү | P. | 31.12.1989 |
5 | Gerasimovsky | үмүт | P. | 14.03.1992 |
6 | Gerasimovsky | Олег | Талызин | 01/29/1985 |
7 | Sukhanovskaya | аныктоочулар | A. | 09/25/1976 |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 |
Кыймылсыз мүлк:
Realty | |
ID | дарек |
1 | Нарын, ул. Voronin,-ж. 7-kv.6 |
2 | Нарын, ул. Severodvinskaya, д. 84, с. 9 BR. 5 |
3 | Нарын областы, Бишкек, ул. Ленин, д. 134, С. 85 |
4 | Нарын областы, Novodvinsk, ул. Proletarshaya, д., 16, с. 137 |
5 | Нарын PL. Болонина, д. 89, с. 13 |
Мамилелер, эл - мүлк:
Realty_peoples | ||
id_peoples | id_realty | түрү |
7 | 3 | Жалпы биргелешкен менчик |
8 | 3 | Жалпы биргелешкен менчик |
3 | 5 | мүлк |
7 | 1 | мүлк |
5 | 4 | Common бөлүктөрү |
6 | 4 | Common бөлүктөрү |
Сол кошулууга (Sql) - Description
Сол зат төмөнкүдөй синтаксисин бар:
Table_A LEFT table_B [{ON предикаты} JOIN | {Tolbtsov менен spisok_ ПАЙДАЛАНУУ}] |
Ал схемалык төмөнкүдөй:
Бул сөз айкашы башка эле ", Бардык тандоо деп которулат, дасторкону жана стол Б линия предикаты гана дал катар өзгөрүүлөр. жубун үчүн стол сап столдун табылган болсо, анда жыйынтыгында тилке КР толтуруу - баалуулуктарды ".
Көпчүлүк учурда, байланыш жасоого пландаштырылууда мамыча аттары, ошол эле болгондо сол байланыш көрсөтүлгөн учурда колдонулат аркылуу гана.
Сол жактан кошулуу - пайдалануунун мисалдары
Сол кошуу менен, биз болсо, Эл менчик жок тизмеден бүт эл, көрүүгө болот. сол Бул үчүн SQL суроо үлгү кошулуп:
SELECT Элдер. *, Realty_peoples.id_realty, Realty_peoples.type Эл LEFT JOIN ЧЕЙИН Realty_peoples ON Peoples.id = Realty_peoples.id_peoples; |
төмөнкү жыйынтыгы менен:
Query1 | ||||||
ID | L_name | F_name | Middle_name | туулган күн | id_realty | түрү |
1 | Екатерина | Daria | B. | 07/16/2000 | ||
2 | Пугин | Лента | Nikolaevich | 29.01.1986 | ||
3 | Evgenin | Александр | Federovich | 04/30/1964 | 5 | мүлк |
4 | Annina | сүйүү | P. | 31.12.1989 | ||
5 | Gerasimovsky | үмүт | P. | 14.03.1992 | 4 | Common бөлүктөрү |
6 | Gerasimovsky | Олег | Талызин | 01/29/1985 | 4 | Common бөлүктөрү |
7 | Sukhanovskaya | аныктоочулар | A. | 09/25/1976 | 1 | мүлк |
7 | Sukhanovskaya | аныктоочулар | A. | 09/25/1976 | 3 | Жалпы биргелешкен менчик |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Жалпы биргелешкен менчик |
Биз көрүп тургандай, Екатерина Дарыя Пугин Лента жана Anninoy Lyubovi Жок, кыймылсыз мүлк укуктарын каттаган.
Ал эми биз, ички Ички кошулууга кошулууга колдонуп, кабыл алдык эле? Белгилүү болгондой, ал эмес салыштыруу катар кирбейт, ошондуктан биздин акыркы үлгүдөгү үч жөн гана таштап болот:
Query1 | ||||||
ID | L_name | F_name | Middle_name | туулган күн | id_realty | түрү |
3 | Evgenin | Александр | Federovich | 04/30/1964 | 5 | мүлк |
5 | Gerasimovsky | үмүт | P. | 14.03.1992 | 4 | Common бөлүктөрү |
6 | Gerasimovsky | Олег | Талызин | 01/29/1985 | 4 | Common бөлүктөрү |
7 | Sukhanovskaya | аныктоочулар | A. | 09/25/1976 | 1 | мүлк |
7 | Sukhanovskaya | аныктоочулар | A. | 09/25/1976 | 3 | Жалпы биргелешкен менчик |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Жалпы биргелешкен менчик |
Бул экинчи нускасы, ошондой эле биздин көйгөйдү шарттарына туура эместей сезилген. Бирок, биз башка бир күнү тиркөө баштаса, жана дагы бир стол, натыйжада үч адам буга чейин учурду кое кеткен. Андыктан, иш жүзүндө, ички караганда бир нече столдор алда канча көп жана сол байланыш колдонулган бириктирип, кошулушу.
солго карап SQL мисалдарды кошулууга улантат. Биздин үй-даректери менен дасторкон тиркөө:
SELECT Элдер. *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address улут LEFT Realty_peoples ON Peoples.id = Realty_peoples.id_peoples JOIN LEFT JOIN Realty ON Realty.id = Realty_peoples.id_realty |
Азыр биз мыйзамды гана түрүн жок, бирок ошондой эле кыймылсыз мүлк дареги:
Query1 | |||||||
ID | L_name | F_name | Middle_name | туулган күн | id_realty | түрү | дарек |
1 | Екатерина | Daria | B. | 07/16/2000 | |||
2 | Пугин | Лента | Nikolaevich | 29.01.1986 | |||
3 | Evgenin | Александр | Federovich | 04/30/1964 | 5 | мүлк | Нарын PL. Болонина, д. 89, с. 13 |
4 | Annina | сүйүү | P. | 31.12.1989 | |||
5 | Gerasimovsky | үмүт | P. | 14.03.1992 | 4 | Common бөлүктөрү | Нарын областы, Novodvinsk, ул. Proletarshaya, д., 16, с. 137 |
6 | Gerasimovsky | Олег | Талызин | 01/29/1985 | 4 | Common бөлүктөрү | Нарын областы, Novodvinsk, ул. Proletarshaya, д., 16, с. 137 |
7 | Sukhanovskaya | аныктоочулар | A. | 09/25/1976 | 3 | Жалпы биргелешкен менчик | Нарын областы, Бишкек, ул. Ленин, д. 134, С. 85 |
7 | Sukhanovskaya | аныктоочулар | A. | 09/25/1976 | 1 | мүлк | Нарын, ул. Voronin,-ж. 7-kv.6 |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Жалпы биргелешкен менчик |
Нарын областы, Бишкек, ул. Ленин, д. 134, С. 85 |
Сол жактан кошулуу - ката типтүү пайдалануу: жараксыз тартиби үстөл
сол сырткы негизги каталар үстөлдөрүн кошулуп, эки:
- Туура маалыматтарды жоголгонду үчүн столдор тартибин тандалып алынган.
- үстөлдөрүн каталары менен суроо колдонгондо кайда кошулуп.
биринчи ката карап көрөлү. кандайдыр бир проблеманын чечимине чейин так аягына келсе, эмне деп түшүнүү керек. Жогорудагы мисалда, биз адамдардын ар бирин алып, бирок толугу менен ээси табылган жок, саны 2 объект жөнүндө маалыматты калган.
кээ бир жерлерде бир суроо менен үстөлдөрүн түрткү болсо, кандайдыр бир мүлктү, "... ... From Realty Адамдар кошулуп калган" менен башталат, биз адаштык, силер тууралуу айткан жок эмес.
Ал эми сол байланыштуу коркпогула болбогула, жыйынтыгы менен дал келүүсү эмес, дал багыттар киргизилген толук тышкы, өтүү.
Анткени, үлгүсүндөгү көлөмү өтө чоң болгондуктан, кошумча маалымат, чынында, пайдасыз. башкы нерсе - бир натыйжаны алуу үчүн келген нерселерди жасаш үчүн, алардын ээлери менен болгон мүлкүн же бүткүл мүлкүнүн тизмеси бир тизме менен бардык адамдардын (эгер бар болсо).
Сол жактан кошулуу - ката типтүү пайдалануу: суроо кайда шарттарды коюуда туура
Экинчи ката маалыматтарды жоготуу менен байланышкан, жана ар дайым эле дароо көрүнгөн эмес.
Биз байланыштар бардык адамдар жана алардын учурдагы мүлктүн маалыматтарды алган аркылуу кеткенден кийин, анын суроо үчүн, артка кайрылып көрөлү. сол SQL үлгү кошулуп менен төмөнкү унутпа:
Эл LEFT JOIN ЧЕЙИН Realty_peoples ON Peoples.id = Realty_peoples.id_peoples; |
Биз суроо менен чыгаруу эмес, кандай маалыматтарды тактоо үчүн келет дейли, бул жерде мыйзам түрү - "Кыймылсыз мүлк". Биз жөн гана толуктоого болсо, SQL кошулуп калган колдонуп, төмөнкү абалы бир мисал:
...
Кайсы түрү <> "менчик" |
Биз, анткени нөл балл КР төмөнкүдөй салыштырмалуу эмес, эч кандай мүлкү бар адамдар жөнүндө маалыматтарды жоготот:
Query1 | ||||||
ID | L_name | F_name | Middle_name | туулган күн | id_realty | түрү |
5 | Gerasimovsky | үмүт | P. | 14.03.1992 | 4 | Common бөлүктөрү |
6 | Gerasimovsky | Олег | Талызин | 01/29/1985 | 4 | Common бөлүктөрү |
7 | Sukhanovskaya | аныктоочулар | A. | 09/25/1976 | 3 | Жалпы биргелешкен менчик |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Жалпы биргелешкен менчик |
Бул себептен улам келип чыккан каталарды алдын алуу үчүн, бул тандоо абалына байланыштуу алынаары белгиленген жакшы. Биз сол төмөнкүлөрдү карап SQL үлгү кошулууга сунуштайбыз.
SELECT Элдер. *, Realty_peoples.id_realty, Realty_peoples.type улут LEFT Realty_peoples кошулушу (Peoples.id = Realty_peoples.id_peoples ЖАНА түрү <> "менчик") |
жыйынтыгы төмөнкүдөй болот:
Query1 | ||||||
ID | L_name | F_name | Middle_name | туулган күн | id_realty | түрү |
1 | Екатерина | Daria | B. | 07/16/2000 | ||
2 | Пугин | Лента | Nikolaevich | 29.01.1986 | ||
3 | Evgenin | Александр | Federovich | 04/30/1964 | ||
4 | Annina | сүйүү | P. | 31.12.1989 | ||
5 | Gerasimovsky | үмүт | P. | 14.03.1992 | 4 | Common бөлүктөрү |
6 | Gerasimovsky | Олег | Талызин | 01/29/1985 | 4 | Common бөлүктөрү |
7 | Sukhanovskaya | аныктоочулар | A. | 09/25/1976 | 3 | Жалпы биргелешкен менчик |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Жалпы биргелешкен менчик |
Ошентип, сол жөнөкөй төмөнкүдөй SQL үлгү кошулуп, биз мындан ары жылып, бардык адамдардын тизмесин алган, үлүштүк / биргелешкен менчиктин бул касиеттеринин бири.
корутундусу катары базасына кандайдыр бир маалымат берилген жоопкерчилик алышы керек экенин дагы бир жолу баса белгилеп кетким келет. Сол менен биз алдында ачылган көптөгөн ЖӨӨБ SQL жөнөкөй бир мисал кошулуп, анын түшүндүрмө бири - сиз да негизги суроого туура жазууга киришерден мурда, кунт коюп, биз акыр-каалаган кандай түшүнүү керек. Ийгилик коштосун!
Similar articles
Trending Now