Kwamfutocin, Shirye-shirye
Hagu shiga (SQL) - misali, da cikakken bayanin, da yin amfani da kuskure
A wani real zumunci database, duk bayanai da aka rarraba a kan wani raba tebur. Mutane da yawa daga cikin Tables an saita kawo a cikin sadarwar makirci tare da juna. Duk da haka, tare da taimakon SQL queries shi ne quite yiwu ga sa a mahada tsakanin data, ba saka a cikin kewaye. Wannan ne yake aikata ta hanyar aikata wani shiga connection, wanda ba ka damar gina dangantaka tsakanin wani yawan Tables, kuma ko da gama alama disparate bayanai.
Wannan talifin zai yi magana musamman game da hagu m shiga. Kafin a ci gaba da bayanin irin wannan connection, ƙara a wasu database Tables.
Shirya zama dole alluna
Alal misali, a cikin database, akwai bayanai game da mutane da dukiya. Takaitacciyar bisa uku Tables: Peoples (mutane), Realty (dukiya), Realty_peoples (tebur dangantaka, mutanen da suka daga abin da dukiya nasa). Zaton da wadannan bayanai da aka adana a cikin alluna na mutane:
Peoples | ||||
id | L_name | F_name | Middle_name | birthday |
1 | Ivanova | Daria | B. | 07/16/2000 |
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 |
3 | Evgenin | Alexander | Federovich | 04/30/1964 |
4 | Annina | son | P. | 31.12.1989 |
5 | Gerasimovsky | fatan | P. | 14.03.1992 |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 |
7 | Sukhanovskaya | juri | A. | 09/25/1976 |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 |
Real Estate:
Realty | |
id | adireshin |
1 | Arkhangelsk, ul. Voronin, d. 7, kv.6 |
2 | Arkhangelsk, ul. Severodvinskaya, d. 84, q. 9 BR. 5 |
3 | Arkhangelsk yankin, Severodvinsk, st. Lenin, d. 134, q. 85 |
4 | Arkhangelsk yankin, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
5 | Arkhangelsk, pl. Terekhina, d. 89, q. 13 |
Relations mutane - dukiya:
Realty_peoples | ||
id_peoples | id_realty | irin |
7 | 3 | Total hadin gwiwa ikon mallakar |
8 | 3 | Total hadin gwiwa ikon mallakar |
3 | 5 | dukiya |
7 | 1 | dukiya |
5 | 4 | Common sassa |
6 | 4 | Common sassa |
Hagu shiga (SQL) - Description
Hagu fili yana da wadannan ginin kalma:
Table_A hagu JOIN table_B [{ON predicate} | {YIN AMFANI spisok_ da tolbtsov}] |
Kuma schematically kamar haka:
Kuma wannan magana da aka fassara a matsayin "Select All, ba tare da togiya, line na Table A da Table B nuna kawai daidai da layuka na predicate. Idan tebur da aka samu a cikin kirtani tebur domin nau'i-nau'i A, sa'an nan cika sakamakon ginshikan Mara doka - dabi'u ".
Mafi sau da yawa, a lokacin da ya bar connection yana nuna ON, ta amfani da ake amfani kawai idan da shafi sunayen, wanda aka shirya yi dangane ne guda.
Hagu shiga - misalai na amfani
Tare da connection na hagu za mu iya gani, duk da mutane daga cikin jerin idan akwai Peoples dukiya. Don yin wannan, a hagu shiga SQL tambaya misali:
Zabi Peoples. *, Realty_peoples.id_realty, Realty_peoples.type DAGA Peoples hagu JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples. |
Tare da wadannan sakamakon:
Query1 | ||||||
id | L_name | F_name | Middle_name | birthday | id_realty | irin |
1 | Ivanova | Daria | B. | 07/16/2000 | ||
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 | ||
3 | Evgenin | Alexander | Federovich | 04/30/1964 | 5 | dukiya |
4 | Annina | son | P. | 31.12.1989 | ||
5 | Gerasimovsky | fatan | P. | 14.03.1992 | 4 | Common sassa |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | Common sassa |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 1 | dukiya |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 3 | Total hadin gwiwa ikon mallakar |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total hadin gwiwa ikon mallakar |
Kamar yadda muka gani, Ivanova Darya Pugin Vladislav da Anninoy Lyubovi Babu rajista dukiya hakkin.
Kuma abin da zai muka samu, ta yin amfani da wani ciki shiga Inner shiga? Kamar yadda ka sani, shi zame ba-daidai da layuka, don haka uku daga mu karshe samfurin zai kawai a kika aika:
Query1 | ||||||
id | L_name | F_name | Middle_name | birthday | id_realty | irin |
3 | Evgenin | Alexander | Federovich | 04/30/1964 | 5 | dukiya |
5 | Gerasimovsky | fatan | P. | 14.03.1992 | 4 | Common sassa |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | Common sassa |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 1 | dukiya |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 3 | Total hadin gwiwa ikon mallakar |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total hadin gwiwa ikon mallakar |
Zai ze cewa na biyu version ma ya gana da yanayin mu da matsala. Duk da haka, idan muka fara don hašawa a kan sãshe, kuma wani tebur, mutane uku daga cikin sakamakon riga irretrievably tafi. Saboda haka, a yi, a lokacin da hada mahara alluna fiye da sau da yawa amfani Hagu da Dama dangane fiye da Inner shiga.
Zai ci gaba da duba zuwa hagu shiga SQL misalai. A Makala tebur da adiresoshin na gidajenmu:
Zabi Peoples. *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address DAGA Peoples Hagu JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples Hagu JOIN Realty ON Realty.id = Realty_peoples.id_realty |
Yanzu muna samun ba kawai wani nau'i ne na shari'a, amma kuma da adireshin dukiya:
Query1 | |||||||
id | L_name | F_name | Middle_name | birthday | id_realty | irin | adireshin |
1 | Ivanova | Daria | B. | 07/16/2000 | |||
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 | |||
3 | Evgenin | Alexander | Federovich | 04/30/1964 | 5 | dukiya | Arkhangelsk, pl. Terekhina, d. 89, q. 13 |
4 | Annina | son | P. | 31.12.1989 | |||
5 | Gerasimovsky | fatan | P. | 14.03.1992 | 4 | Common sassa | Arkhangelsk yankin, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | Common sassa | Arkhangelsk yankin, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 3 | Total hadin gwiwa ikon mallakar | Arkhangelsk yankin, Severodvinsk, st. Lenin, d. 134, q. 85 |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 1 | dukiya | Arkhangelsk, ul. Voronin, d. 7, kv.6 |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total hadin gwiwa ikon mallakar |
Arkhangelsk yankin, Severodvinsk, st. Lenin, d. 134, q. 85 |
Hagu shiga - hankula amfani da kuskure: mara inganci hanya tebur
Basic kuskure sanya a hagu m shiga Tables, biyu:
- Daidai zaba cikin tsari na Tables ga wanda data aka rasa.
- Ina kurakurai lokacin amfani da query da shiga Tables.
La'akari da farko kuskure. Kafin da hukuncin wani matsala da ya kamata a fili gane cewa abin da muke so don samun a karshen. A wannan misali a sama, za mu dauki kowane daya daya daga cikin mutane, amma gaba daya rasa da bayanai game da abu a karkashin lambar 2, wanda mai shi aka iske ba.
Idan muka koma cikin alluna a cikin wata tambaya a wasu wurare, da kuma za a fara da «... Daga Realty bar shiga Peoples ...» kowane daya dukiya, dã ba mu yi hasara, ba za ka gaya game da mutane.
Amma kada ku kasance firgita daga hagu connection, canzawa zuwa cikakken waje, wanda aka kunshe a cikin sakamakon da matching, kuma ba iri daya Lines.
Bayan duk, ƙara da samfurin ne sau da yawa sosai manyan, da kuma karin data shi ne ainihin m. Babban abu - don gane abin da ka so don samun sakamakon: dukkan mutane tare da wani jerin su akwai dukiya, ko da dukan dukiya da jerin tare da su masu (idan wani).
Hagu shiga - hankula amfani da kuskure: Request daidai ne a lokacin da kafa da yanayi a cikin Inda
Na biyu kuskure ne kuma hade tare da asarar data, kuma ba ko da yaushe nan da nan ya bayyana.
Bari mu koma ga tambaya a lokacin da muka bar via sadarwa samu data domin dukan mutanen da su data kasance dukiya. Ka tuna da wadannan tare da hagu shiga SQL misali:
DAGA Peoples hagu JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples. |
Misali muna so mu bayyana bukatar, kuma ya aikata ba fitarwa da bayanai, inda da irin dokar - "Property". Idan muka kawai jimlar, ta amfani bar shiga SQL, wani misali daga cikin wadannan yanayin:
...
Inda irin <> "Property" |
za mu rasa da bayanai a kan mutanen da basu da dukiya, saboda null darajar Mara doka ba idan aka kwatanta kamar haka:
Query1 | ||||||
id | L_name | F_name | Middle_name | birthday | id_realty | irin |
5 | Gerasimovsky | fatan | P. | 14.03.1992 | 4 | Common sassa |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | Common sassa |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 3 | Total hadin gwiwa ikon mallakar |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total hadin gwiwa ikon mallakar |
Don hana kurakurai daga abin da ke faruwa ga wannan dalili, shi ne mafi kyau ga kafa zabin yanayin nan da nan bisa connection. Mun bayar da shawarar a yi la'akari da wadannan tare da hagu shiga SQL misali.
Zabi Peoples. *, Realty_peoples.id_realty, Realty_peoples.type DAGA Peoples Hagu JOIN Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples AND irin <> "Property") |
A sakamakon zai zama kamar haka:
Query1 | ||||||
id | L_name | F_name | Middle_name | birthday | id_realty | irin |
1 | Ivanova | Daria | B. | 07/16/2000 | ||
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 | ||
3 | Evgenin | Alexander | Federovich | 04/30/1964 | ||
4 | Annina | son | P. | 31.12.1989 | ||
5 | Gerasimovsky | fatan | P. | 14.03.1992 | 4 | Common sassa |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | Common sassa |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 3 | Total hadin gwiwa ikon mallakar |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total hadin gwiwa ikon mallakar |
Saboda haka, da wadannan da sauki to hagu shiga SQL misali, mun samu wani jerin dukan mutane, motsi kara, daya daga cikin wadannan kaddarorin, a wani ãdalci / hadin gwiwa ikon mallakar.
Kamar yadda a ƙarshe Ina son in jaddada sake cewa wani samfuri na duk wani bayani daga cikin database bukatar da za a dauka responsibly. Mutane da yawa nuances bude a gaban mu da hagu shiga SQL sauki misali, da bayani na wanda daya - kafin ka fara rubuta ko da asali tambaya, dole ne ka a hankali don gane da abin da muke so don samun a karshen. Good luck!
Similar articles
Trending Now