ຄອມພິວເຕີດໍາເນີນໂຄງການ

ປະຕິບັດການ SQL ດ້ານໃນເຂົ້າຮ່ວມ: ຕົວຢ່າງຂອງໄວຢາກອນແລະຄຸນສົມບັດ

ພັດທະນາຖານຂໍ້ມູນປະກອບມີບໍ່ພຽງແຕ່ການສ້າງແລະການຕື່ມຂໍ້ມູນຂອງຕາຕະລາງທີ່ມີຂໍ້ມູນຂ່າວສານຕ່າງໆ, ແຕ່ຍັງເຮັດວຽກເພີ່ມເຕີມທີ່ມີຂໍ້ມູນ. ເພື່ອປະຕິບັດຢ່າງຖືກຕ້ອງມີຫຼາກຫຼາຍຂອງວຽກງານໃນການເລືອກຂໍ້ມູນຈາກຕາຕະລາງແລະການລາຍງານ, ການນໍາໃຊ້ການເລືອກການອອກແບບມາດຕະຖານ.

ມາດດຶງຂໍ້ມູນຂໍ້ມູນຈາກຕາຕະລາງ

ຖ້າຫາກວ່າພວກເຮົາພິຈາລະນາບັນຫາຂອງການເລືອກຂອງຂໍ້ມູນຫຼືການກໍ່ສ້າງຂອງບົດລາຍງານດັ່ງກ່າວ, ທ່ານສາມາດກໍານົດລະດັບຂອງຄວາມສັບສົນຂອງການດໍາເນີນງານໄດ້. ອີງຕາມລະບຽບເປັນ, ໃນເວລາທີ່ຈັດການທີ່ຮ້າຍແຮງ (ອີງຕາມປະລິມານ) ຖານຂໍ້ມູນ, ເຊິ່ງໄດ້ຖືກສ້າງຕັ້ງຂຶ້ນ, ສໍາລັບການຍົກຕົວຢ່າງ, ໃນຮ້ານອອນໄລນ໌ຫຼືບໍລິສັດຂະຫນາດໃຫຍ່, ການຄັດເລືອກຂໍ້ມູນບໍ່ຈໍາກັດການຕາຕະລາງດຽວ. ອີງຕາມລະບຽບເປັນ, ຕົວຢ່າງອາດຈະຈາກຈໍານວນຂະຫນາດໃຫຍ່ພົບທົ່ວໄປຂອງຕາຕະລາງບໍ່ໄດ້ຕິດພັນເທົ່ານັ້ນ, ແຕ່ຍັງຊ້ອນການສອບຖາມ / ຍ່ອຍການສອບຖາມ, ຊຶ່ງເຮັດໃຫ້ programmer, ໂດຍອີງຕາມວຽກງານຂອງຕົນ. ສໍາລັບຕົວຢ່າງຂອງຕາຕະລາງຫນຶ່ງສາມາດນໍາໃຊ້ໂຄງສ້າງທີ່ງ່າຍ:

ເລືອກ * ຈາກ Person

ບ່ອນທີ່ບຸກຄົນ - ຊື່ຂອງຕາຕະລາງຈາກທີ່ທ່ານຕ້ອງການທີ່ຈະເຮັດໃຫ້ດຶງຂໍ້ມູນ.

ຖ້າຫາກວ່າ, ແນວໃດກໍ່ຕາມ, ທ່ານຈະຈໍາເປັນຕ້ອງໄດ້ເລືອກເອົາຂໍ້ມູນຈາກຕາຕະລາງຫຼາຍ, ຫນຶ່ງໃນການອອກແບບມາດຕະຖານສາມາດຖືກນໍາໃຊ້ເພື່ອເຂົ້າຮ່ວມຕາຕະລາງຫຼາຍ.

ການເຊື່ອມຕໍ່ວິທີການຕາຕະລາງການເພີ່ມເຕີມ

ຖ້າຫາກວ່າພວກເຮົາພິຈາລະນາການນໍາໃຊ້ໂຄງສ້າງດັ່ງກ່າວໃນລະດັບປະຖົມ, ພວກເຮົາສາມາດຈໍາແນກກົນໄກດັ່ງຕໍ່ໄປນີ້ໃນການເຊື່ອມຕໍ່ຈໍານວນທີ່ກໍານົດໄວ້ສໍາລັບການຕາຕະລາງຕົວຢ່າງ, ຄື:

  1. ປະຕິບັດການພາຍໃນເຂົ້າຮ່ວມ.
  2. ໄວ້ເຂົ້າຮ່ວມຫຼື, ມັນແມ່ນວິທີການບັນທຶກທີສອງ, ຊ້າຍນອກເຂົ້າຮ່ວມ.
  3. Cross ເຂົ້າຮ່ວມ.
  4. Full ເຂົ້າຮ່ວມ.

ການນໍາໃຊ້ຜູ້ປະກອບການເຂົ້າຮ່ວມຕາຕະລາງໃນການປະຕິບັດ, ທ່ານສາມາດຮຽນເອງໂດຍການພິຈາລະນາການນໍາໃຊ້ຄໍາສັ່ງ SQL ໄດ້ - ພາຍໃນເຂົ້າຮ່ວມ. ຕົວຢ່າງຂອງການນໍາໃຊ້ຂອງຕົນຈະເປັນດັ່ງຕໍ່ໄປນີ້:

ເລືອກ * ຈາກ Person

ພາຍໃນເຂົ້າຮ່ວມແບ່ງ on Su_Person = Pe_ID

ພາສາ SQL ແລະເຂົ້າຮ່ວມພາຍໃນເຂົ້າຮ່ວມປະຕິບັດການສາມາດຖືກນໍາໃຊ້ບໍ່ພຽງແຕ່ສໍາລັບການສົມທົບສອງຫຼືຫຼາຍກວ່ານັ້ນຕາຕະລາງ, ແຕ່ຍັງເພື່ອເຊື່ອມຕໍ່ການຍ່ອຍການສອບຖາມອື່ນໆ, ຊຶ່ງຢ່າງໃຫຍ່ຫຼວງສະການເຮັດວຽກຂອງຜູ້ບໍລິຫານຖານຂໍ້ມູນ, ແລະ, ເປັນລະບຽບນັ້ນ, ທີ່ສໍາຄັນສາມາດເລັ່ງການປະຕິບັດສະເພາະໃດຫນຶ່ງ, ໂຄງສ້າງການສອບຖາມຊັບຊ້ອນໄດ້.

ສົມທົບຂໍ້ມູນໃນຕາຕະລາງເສັ້ນບັນທັດ

ຖ້າຫາກວ່າພວກເຮົາພິຈາລະນາການເຊື່ອມຕໍ່ຂອງຈໍານວນຂະຫນາດໃຫຍ່ຂອງອະນຸສອບຖາມ, ແລະຂໍ້ມູນເຂົ້າໄປໃນເສັ້ນຕາຕະລາງດຽວບັນທັດ, ທ່ານຍັງສາມາດນໍາໃຊ້ໄດ້ Union ຜູ້ປະກອບການແລະສະຫະພັນທັງຫມົດ.

ການນໍາໃຊ້ຂອງໂຄງການເຫຼົ່ານີ້ຈະຂຶ້ນກັບການພັດທະນາໃນການກໍານົດວັດຖຸປະສົງແລະຜົນໄດ້ຮັບທີ່ທ່ານຕ້ອງການທີ່ຈະບັນລຸໄດ້ໃນທີ່ສຸດ.

ລາຍລະອຽດພາຍໃນເຂົ້າຮ່ວມປະຕິບັດການ

ໃນກໍລະນີຫຼາຍທີ່ສຸດ, ເພື່ອສົມທົບຕາຕະລາງຫຼາຍໃນພາສາ SQL ການໃຊ້ພາຍໃນເຂົ້າຮ່ວມປະຕິບັດການ. ລາຍລະອຽດພາຍໃນເຂົ້າຮ່ວມໃນ SQL ແມ່ນຂ້ອນຂ້າງງ່າຍທີ່ຈະເຂົ້າໃຈໂຄງການສະເລ່ຍຜູ້ທີ່ພຽງແຕ່ເລີ່ມຕົ້ນທີ່ຈະເຂົ້າໃຈຂໍ້ມູນໄດ້. ຖ້າຫາກວ່າພວກເຮົາພິຈາລະນາລາຍລະອຽດຂອງກົນໄກຂອງການເຮັດວຽກຂອງໂຄງປະກອບການນີ້, ພວກເຮົາໄດ້ຮັບຮູບພາບດັ່ງກ່າວ. ການປະຕິບັດການຢ່າງມີເຫດຜົນທັງຫມົດໄດ້ຖືກສ້າງຂຶ້ນເທິງໄມ້ກາງແຂນແລະຄວາມເປັນໄປໄດ້ຂອງການເກັບຕົວຢ່າງພຽງແຕ່ຂໍ້ມູນທີ່ຢູ່ໃນແຕ່ລະຕາຕະລາງໄດ້ລວມເຂົ້າໃນການສອບຖາມໄດ້.

ຖ້າຫາກວ່າພວກເຮົາຊອກຫາຢູ່ໃນປະເພດຂອງການເຮັດວຽກນີ້ໃນເງື່ອນໄຂຂອງການຕີລາຄາຮູບພາບ, ພວກເຮົາໄດ້ຮັບ SQL ພາຍໃນເຂົ້າຮ່ວມໂຄງປະກອບການປະຕິບັດການ, ຕົວຢ່າງທີ່ສາມາດໄດ້ຮັບການສະແດງໃຫ້ເຫັນໂດຍການດັ່ງຕໍ່ໄປນີ້ເປັນ:

ສໍາລັບຕົວຢ່າງ, ພວກເຮົາມີສອງຕາຕະລາງ, ສະແດງໃຫ້ເຫັນ schematically ໃນຮູບ. ພວກເຂົາເຈົ້າ, ແລະເຮັດໃຫ້ການ, ມີຈໍານວນທີ່ແຕກຕ່າງກັນຂອງການອອກສຽງ. ໃນແຕ່ລະຕາຕະລາງມີນາທີ່ກ່ຽວຂ້ອງ. ຖ້າຫາກວ່າພວກເຮົາພະຍາຍາມອະທິບາຍການເຮັດວຽກຂອງປະຕິບັດການບົນພື້ນຖານຂອງຮູບແຕ້ມດັ່ງກ່າວໄດ້, ຜົນໄດ້ຮັບຈະເປັນທີ່ກໍານົດໄວ້ຂອງການບັນທຶກຈາກສອງຕາຕະລາງ, ທີ່ຫ້ອງແມ່ນມີທົ່ງນາທີ່ເຊື່ອມໂຍງກັນ coincide. ເວົ້າງ່າຍໆກໍຄືການສອບຖາມກັບຄືນມາພຽງແຕ່ການບັນທຶກຜູ້ (ໃນຈໍານວນຕາຕະລາງສອງ), ທີ່ຂໍ້ມູນແມ່ນຢູ່ໃນຈໍານວນຫນຶ່ງໃນຕາຕະລາງໄດ້.

ໄວຢາກອນຂອງພາຍໃນເຂົ້າຮ່ວມ

ດັ່ງທີ່ໄດ້ກ່າວຜ່ານມາ, ປະຕິບັດການພາຍໃນເຂົ້າຮ່ວມ, ຄື, syntax ຂອງຕົນ, ງ່າຍດາຍຜິດປົກກະຕິ. ສໍາລັບອົງການຈັດຕັ້ງຂອງການພົວພັນລະຫວ່າງຕາຕະລາງພາຍໃນຕົວຢ່າງດຽວຈະມີພຽງພໍທີ່ຈະຈື່ຈໍາແລະໃຊ້ແຜນຜງດັ່ງຕໍ່ໄປນີ້ຂອງການກໍ່ສ້າງປະຕິບັດການ, ເຊິ່ງລະບຸໄວ້ໃນບັນທັດດຽວຂອງຊອຟແວ SQL, ລະຫັດ, ຄືຂອງທ່ານ:

  • ພາຍໃນເຂົ້າຮ່ວມ [ຕາຕະລາງຊື່] on [ພາກສະຫນາມທີ່ສໍາຄັນຂອງຕາຕະລາງທີ່ເຊື່ອມຕໍ່] = [ພາກສະຫນາມທີ່ສໍາຄັນ Pluggable ຂອງຕາຕະລາງ].

ສໍາລັບການສື່ສານໃນຖະແຫຼງການນີ້ແມ່ນໃຊ້ຕາຕະລາງສ່ວນໃຫຍ່ແມ່ນການນໍາໃຊ້ used. ອີງຕາມລະບຽບເປັນ, ໃນກຸ່ມຂອງຕາຕະລາງທີ່ເກັບຮັກສາຂໍ້ມູນກ່ຽວກັບພະນັກງານ, ໃນເມື່ອກ່ອນອະທິບາຍບຸກຄົນແບ່ງແລະມີຢ່າງຫນ້ອຍຫນຶ່ງບັນທຶກທີ່ຄ້າຍຄືກັນ. ດັ່ງນັ້ນ, ໃຊ້ເວລາທີ່ໃກ້ຊິດເບິ່ງການປະຕິບັດການ SQL ໃນເຂົ້າຮ່ວມ, ຕົວຢ່າງທີ່ໄດ້ຮັບການສະແດງໃຫ້ເຫັນເປັນພຽງເລັກນ້ອຍກ່ອນຫນ້ານັ້ນ.

ຄໍາອະທິບາຍຕົວຢ່າງແລະການເຊື່ອມຕໍ່ກັບຕາຕະລາງຕົວຢ່າງສຽງ

ພວກເຮົາມີຕາຕະລາງ Person, ເຊິ່ງ stores ຂໍ້ມູນກ່ຽວກັບພະນັກງານທັງຫມົດທີ່ເຮັດວຽກໃນບໍລິສັດ. ພຽງແຕ່ສັງເກດວ່າທີ່ສໍາຄັນຕົ້ນສະບັບຂອງຕາຕະລາງແມ່ນພາກສະຫນາມເປັນ - Pe_ID. ພຽງແຕ່ກ່ຽວກັບມັນແລະຈະໄປມັດ.

ການແບ່ງຕາຕະລາງທີສອງຈະເກັບຮັກສາຂໍ້ມູນກ່ຽວກັບຫ້ອງການທີ່ພະນັກງານເຮັດວຽກ. ນາງ, ແລະເຮັດໃຫ້ການ, ເຊື່ອມຕໍ່ຜ່ານຕາຕະລາງ Person ພາກສະຫນາມ Su_Person. ນີ້ຈະເປັນແນວໃດຫມາຍຄວາມວ່າ? ອີງຕາມການ schema ຂໍ້ມູນສາມາດເວົ້າໄດ້ວ່າໃນຫນ່ວຍຕາຕະລາງສໍາລັບການໃນແຕ່ລະບັນທຶກໃນຕາຕະລາງ "ພະນັກງານ" ຈະມີຂໍ້ມູນກ່ຽວກັບພະແນກການທີ່ພວກເຂົາເຈົ້າເຮັດວຽກ. ມັນແມ່ນສໍາລັບການສື່ສານນີ້ແລະຈະເຮັດວຽກປະຕິບັດການພາຍໃນເຂົ້າຮ່ວມ.

ສໍາລັບການນໍາໃຊ້ງ່າຍຂຶ້ນຂອງພິຈາລະນາປະຕິບັດການ SQL ໃນເຂົ້າຮ່ວມ (ຕົວຢ່າງຂອງການນໍາໃຊ້ຂອງຕົນສໍາລັບຫນຶ່ງຫຼືສອງຕາຕະລາງ). ຖ້າຫາກວ່າພວກເຮົາພິຈາລະນາຕົວຢ່າງຂອງຕາຕະລາງດຽວກັນ, ຫຼັງຈາກນັ້ນທັງຫມົດແມ່ນງ່າຍດາຍດີ:

ເລືອກ * ຈາກ Person

ພາຍໃນເຂົ້າຮ່ວມແບ່ງ on Su_Person = Pe_ID

ຕົວຢ່າງເຊື່ອມຕໍ່ທັງສອງຕາຕະລາງແລະ subquery

ປະຕິບັດການ SQL ໃນເຂົ້າຮ່ວມ, ຕົວຢ່າງຊຶ່ງໃນນັ້ນແມ່ນການນໍາໃຊ້ເພື່ອດຶງຂໍ້ມູນຈາກຕາຕະລາງທີ່ຫຼາກຫຼາຍສາມາດໄດ້ຮັບການຈັດລຽງລັກສະນະທີ່ຂ້າງເທິງນີ້, ມັນກໍາລັງເຮັດວຽກກ່ຽວກັບພາວະແຊກຊ້ອນພຽງເລັກນ້ອຍຂອງຫຼັກການ. ການ complicate ໃນຫນ້າວຽກຂອງທັງສອງຕາຕະລາງ. ສໍາລັບຕົວຢ່າງ, ພວກເຮົາມີຕາຕະລາງ Depart ທີ່ເກັບຂໍ້ມູນກ່ຽວກັບພະແນກການທັງຫມົດໃນແຕ່ລະພະແນກການ. ໃນຕາຕະລາງທີ່ບັນທຶກໄວ້ຈໍານວນພະແນກແລະພະນັກງານຈໍານວນ, ແລະຕ້ອງໄດ້ຮັບການ supplemented ໂດຍຊື່ຂອງຂໍ້ມູນຕົວຢ່າງຂອງແຕ່ລະພະແນກການ. ຊອກຫາລ່ວງຫນ້າ, ມັນເປັນມູນຄ່າບອກວ່າທ່ານສາມາດນໍາໃຊ້ສອງວິທີການເພື່ອແກ້ໄຂບັນຫານີ້.

ວິທີທໍາອິດຄືການເຊື່ອມຕໍ່ຕາຕະລາງພະແນກໃນການລິ້ມລອງ. ຈັດລະບຽບການຮ້ອງຂໍໃນກໍລະນີນີ້ອາດຈະເປັນດັ່ງຕໍ່ໄປນີ້:

ເລືອກ Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name ຈາກ Person

ພາຍໃນເຂົ້າຮ່ວມແບ່ງ on Su_Person = Pe_ID

ພາຍໃນເຂົ້າຮ່ວມ Depart ໃນ Su_Depart = Dep_ID ແລະ Pe_Depart = Dep_ID

ວິທີທີສອງຂອງການແກ້ໄຂບັນຫາ - ແມ່ນເພື່ອນໍາໃຊ້ subquery ທີ່ບໍ່ຂໍ້ມູນທັງຫມົດຈະໄດ້ຮັບການຄັດເລືອກຈາກຕາຕະລາງພະແນກ, ແຕ່ພຽງແຕ່ມີຄວາມຈໍາເປັນ. ນີ້ແມ່ນຢູ່ໃນທາງກົງກັນຂ້າມກັບວິທີການທໍາອິດ, ມັນຈະຫຼຸດຜ່ອນການໃຊ້ເວລາຂອງການຮ້ອງຂໍໄດ້.

ເລືອກ Pe_ID, Pe_Name, Su_Id, Su_Name, Dep_ID, Dep_Name ຈາກ Person

ພາຍໃນເຂົ້າຮ່ວມແບ່ງ on Su_Person = Pe_ID

ພາຍໃນເຂົ້າຮ່ວມ (ເລືອກ Dep_ID, Dep_Name, Pe_Depart ຈາກ Depart) ເປັນ T ກ່ຽວກັບ Su_Depart = Dep_ID ແລະ Pe_Depart = Dep_ID

ມັນເປັນມູນຄ່າບອກວ່າດັ່ງກ່າວການຮ່ວມມືແບບບໍ່ສາມາດສະເຫມີໄປເລັ່ງການຮ້ອງຂໍເຮັດວຽກໄດ້. ບາງຄັ້ງມີກໍລະນີໃນເວລາທີ່ມັນເປັນສິ່ງຈໍາເປັນທີ່ຈະນໍາໃຊ້ຂໍ້ມູນຕົວຢ່າງເພີ່ມເຕີມເຂົ້າໄປໃນຕາລາງຊົ່ວຄາວ (ຖ້າຫາກວ່າປະລິມານແມ່ນຂະຫນາດໃຫຍ່ເກີນໄປ), ແລະຫຼັງຈາກນັ້ນໄດ້ອະນຸຍາດຂອງທີ່ມີຕົວຢ່າງຕົ້ນຕໍ.

ຕົວຢ່າງຂອງການນໍາໃຊ້ພາຍໃນເຂົ້າຮ່ວມປະຕິບັດການຕົວຢ່າງຈາກຈໍານວນຂະຫນາດໃຫຍ່ຂອງຕາຕະລາງ

ການກໍ່ສ້າງມີການນໍາໃຊ້ຂອງຄໍາສັ່ງສະລັບສັບຊ້ອນສໍາລັບປະລິມານທີ່ສໍາຄັນຕົວຢ່າງຂອງຕາຕະລາງຂໍ້ມູນແລະ subqueries interconnected ໄດ້. ຄວາມຕ້ອງການເຫຼົ່ານີ້ສາມາດຕອບສະຫນອງຄວາມ SQL ພາຍໃນເຂົ້າຮ່ວມ syntax. ຕົວຢ່າງຂອງການນໍາໃຊ້ປະຕິບັດການ, ໃນກໍລະນີນີ້ສາມາດໄດ້ຮັບການຊັບຊ້ອນຕົວຢ່າງບໍ່ພຽງແຕ່ສະຖານທີ່ເກັບຮັກສາຈໍານວນຫຼາຍ, ແຕ່ຍັງມີຈໍານວນຂະຫນາດໃຫຍ່ຂອງ subqueries ຊ້ອນກັນ. ສໍາລັບການຍົກຕົວຢ່າງສີມັງ, ທ່ານສາມາດໃຊ້ເວລາຂໍ້ມູນຈາກຕົວຢ່າງຂອງຕາຕະລາງລະບົບ (Inner ເຂົ້າຮ່ວມຄໍາສັ່ງ SQL). ຕົວຢ່າງ - 3 ຂອງຕາຕະລາງ - ໃນກໍລະນີນີ້ຈະມີໂຄງສ້າງສັບສົນແທນທີ່ຈະ.

ໃນກໍລະນີນີ້ໄດ້ເຊື່ອມຕໍ່ (ຕາຕະລາງປະຖົມ) ແລະສາມນໍາສະເຫນີເພີ່ມເຕີມສະພາບການຄັດເລືອກຂໍ້ມູນຈໍານວນຫນຶ່ງ.

ໃນເວລາທີ່ການນໍາໃຊ້ພາຍໃນເຂົ້າຮ່ວມປະຕິບັດການຄວນຈະຈື່ວ່າສະລັບສັບຊ້ອນເພີ່ມເຕີມຄໍາຖາມໄດ້, ໄດ້ຕໍ່ໄປອີກແລ້ວມັນຈະໄດ້ຮັບການປະຕິບັດ, ດັ່ງນັ້ນທ່ານຄວນຈະຊອກຫາວິທີທີ່ຈະໄວປະຕິບັດແລະແກ້ໄຂບັນຫາໄດ້.

ສະຫຼຸບ

ໃນທີ່ສຸດ, ຂ້າພະເຈົ້າຢາກຈະເວົ້າວ່າສິ່ງຫນຶ່ງ: ເຮັດວຽກຮ່ວມກັບຖານຂໍ້ມູນ - ມັນບໍ່ແມ່ນສິ່ງທີ່ມີຄວາມຫຍຸ້ງຍາກທີ່ສຸດໃນການຂຽນໂປຣແກຣມ, ສະນັ້ນຖ້າຫາກວ່າທ່ານຕ້ອງການທຸກຄົນດຽວຈະສາມາດມີຄວາມຮູ້ໃນການສ້າງຖານຂໍ້ມູນ, ແລະໃນໄລຍະທີ່ໃຊ້ເວລາ, ມີປະສົບການ, ທ່ານໄດ້ຮັບການເຮັດວຽກຮ່ວມກັບເຂົາເຈົ້າກ່ຽວກັບລະດັບມືອາຊີບ .

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 lo.delachieve.com. Theme powered by WordPress.