এসকিউএল এএনএসআই -২২ স্ট্যান্ডার্ড কেন এএনএসআই -৯৯ এর চেয়ে ভাল গ্রহণ করা হচ্ছে না?


107

আমি যে সকল সংস্থায় কাজ করেছি, আমি খুঁজে পেয়েছি যে লোকেরা এখনও তাদের এসকিউএল কোয়েরিগুলি এএনএসআই-89 স্ট্যান্ডার্ডে লিখছে:

select a.id, b.id, b.address_1
from person a, address b
where a.id = b.id

এএনএসআই -২২ স্ট্যান্ডার্ডের চেয়ে:

select a.id, b.id, b.address_1
from person a
inner join address b
on a.id = b.id

এর মতো অত্যন্ত সাধারণ প্রশ্নের জন্য, পঠনযোগ্যতার মধ্যে খুব বেশি পার্থক্য নেই, তবে বড় প্রশ্নের জন্য আমি দেখতে পেয়েছি যে আমার যোগদানের মানদণ্ডটি টেবিলের তালিকাভুক্তকরণের সাথে গোষ্ঠীভুক্ত হওয়া আমার আমার যোগদানের সমস্যাগুলি কোথায় থাকতে পারে তা দেখতে আরও সহজ করে তোলে এবং আসুন আমি আমার সমস্ত ফিল্টারিং আমার WHOE শৃঙ্খলে রাখি। আমি মনে করি না যে আমি মনে করি যে ওরাকল (+) সিনট্যাক্সের চেয়ে বহিরাগত যোগদানগুলি অনেক স্বজ্ঞাত।

আমি যখন লোকদের কাছে এএনএসআই -২২ প্রচার করার চেষ্টা করি তখন এএনএসআই -৯৯ এএনএসআই -৯৯ ব্যবহারের ক্ষেত্রে কী কোনও দৃ concrete় কার্যকারিতা সুবিধা রয়েছে? আমি এটি নিজেই চেষ্টা করব, তবে আমাদের এখানে থাকা ওরাকল সেটআপগুলি আমাদের এক্সপ্ল্যান প্ল্যান ব্যবহার করার অনুমতি দেয় না - লোকেরা তাদের কোডটি সর্বোত্তম করার চেষ্টা করতে চাইবে না, তাই না?


7
এসকিউএল -২২ যোগদানের স্বরলিপিগুলির একটি প্রাথমিক সুবিধা হ'ল বাম আউটর জয়েন এবং রূপগুলি লেখার একটি মানক এবং অপেক্ষাকৃত বুদ্ধিমান উপায়। প্রতিটি ডিবিএমএসের নিজস্ব বৈকল্পিক বাক্য গঠন থাকে (সাধারণত খারাপ; আসলে, আমি মনে করি, ব্যতিক্রম ছাড়া স্বরলিপিগুলি খারাপ ছিল) এবং প্রায়শই কিছুটা ভিন্ন শব্দার্থক শব্দগুলির সাথে থাকে। এসকিউএল -২২ এটি স্থির করে দিয়েছিল এবং নতুন স্বরলিপিটি কেবলমাত্র সেই কারণগুলিতেই ব্যবহারযোগ্য। আমি মনে করি এটি যে কোনওভাবেই পরিষ্কার হয়ে যায়, একবার আপনি অভ্যস্ত হয়ে উঠলে। এটি ব্যবহার করতে একটু অভ্যস্ত হয়ে যায়, তবে এটি শক্ত নয় এবং একবার রূপান্তরিত হয়ে গেলে আর ফিরে আসে না।
জোনাথন লেফলার

শব্দার্থবিজ্ঞান, শেম্যান্টিকস, অ্যান্টি-শেম্যান্টিক্স!
স্যাম

আমি এখানে পার্টিতে কিছুটা দেরি করেছি, তবে কেউই
এটিকে

আমি একটি নতুন উত্তর যুক্ত করেছি যা ডেটে ও সোজা হয়ে গেছে, উত্তরগুলিতে অন্যান্য ভ্রান্ত ধারণা সম্পর্কে স্পষ্টতার সাথে এখানে stackoverflow.com/a/47720615/124486
ইভান ক্যারল

উত্তর:


77

পিটার গুলুতজান এবং ট্রুডি পেলজারের "এসকিউএল পারফরম্যান্স টিউনিং" অনুসারে, তারা যে ছয় বা আটটি আরডিবিএম ব্র্যান্ড পরীক্ষা করেছেন, তাদের মধ্যে এসকিউএল -৯৯ বনাম এসকিউএল -৯৯ স্টাইলের যোগদানের অপ্টিমাইজেশন বা পারফরম্যান্সে কোনও পার্থক্য নেই। কেউ ধরে নিতে পারেন যে বেশিরভাগ আরডিবিএমএস ইঞ্জিন কোয়েরিটি অনুকূলিতকরণ বা সম্পাদন করার আগে সিনট্যাক্সটিকে অভ্যন্তরীণ উপস্থাপনায় রূপান্তরিত করে, তাই মানব-পঠনযোগ্য বাক্য গঠনটি কোনও পার্থক্য করে না।

আমি এসকিউএল -২৯ সিনট্যাক্স প্রচার করার চেষ্টা করি। এটি অনুমোদিত হওয়ার ষোল বছর পরে, মানুষ প্রায়শই এটি ব্যবহার শুরু করে! এবং সমস্ত ব্র্যান্ডের এসকিউএল ডাটাবেস এখন এটি সমর্থন করে, তাই নন-স্ট্যান্ডার্ড (+)ওরাকল সিনট্যাক্স বা *=মাইক্রোসফ্ট / সাইবাস বেস সিনট্যাক্স ব্যবহার চালিয়ে যাওয়ার কোনও কারণ নেই ।

এসকিউএল -৯৯ অভ্যাসের বিকাশকারী সম্প্রদায়টি কেন ভাঙা এত কঠিন, আমি কেবল ধরে নিতে পারি যে প্রোগ্রামারদের একটি বড় "পিরামিডের বেস" রয়েছে যারা বই, ম্যাগাজিনের নিবন্ধগুলি থেকে প্রাচীন উদাহরণগুলি ব্যবহার করে অনুলিপি এবং পেস্ট করে কোড করেন, বা অন্য কোড বেস, এবং এই ব্যক্তিগুলি বিমূর্তভাবে নতুন সিনট্যাক্স শিখেন না। কিছু লোক প্যাটার্ন-ম্যাচ করে, এবং কিছু লোক রোট দিয়ে শিখেন।

যদিও আমি আগে থেকে এসকিউএল -২৯ সিনট্যাক্স ব্যবহার করে মানুষকে ধীরে ধীরে দেখছি। আমি 1994 সাল থেকে অনলাইনে এসকিউএল প্রশ্নের উত্তর দিই।


6
আমি সম্পূর্ণভাবে রাজী. আমি অনেক এসকিউএল কোডারদের সাথে কাজ করি যারা 15 বছর বা তারও বেশি আগে তাদের এসকিউএল শিখেছিল (যেমন আমি নিজেই করেছি) এবং যারা প্রথম শুরু করার পরে কোনও উদ্ভাবনের কিছুই জানে না। তারা খুঁজে বের করতে কোন আগ্রহ অভাব আছে।
টনি অ্যান্ড্রুজ 15

8
সম্মত হন, তবে যুক্ত করুন যে এখানে বেশিরভাগ ডকুমেন্টেড দৃশ্যাবলী রয়েছে যেখানে পুরানো এএনএসআই-89 সংশ্লেষ ভুল ফলাফল দেয় ... বিশেষত বাইরের সাথে যোগ দেয় যখন যোগের "বাহ্যিক" দিক থেকে নন-জয়েন সম্পর্কিত কলামগুলিতে শর্তযুক্ত ফিল্টারিংয়ের পূর্বাভাস থাকে।
চার্লস ব্রেটানা 15

1
আমি এমএস এসকিউএল-এর নির্দিষ্ট ইন্টার্নালগুলি জানি না, তবে এটি এসকিউএল -২৯ সিনট্যাক্সটি সার্থক যে ভাল উপাখ্যান্য প্রমাণ। আমার জন্য কাজ কর!
বিল কারভিন 16

2
বৃহদায়তন? আপনার কাজ পোস্ট করুন। আমার সেরা বাজিটি এটি আপেলের তুলনায় কোনও আপেল নয়, তবে "ওহ হ্যাঁ এটি" এর সাথে প্রতিক্রিয়া জানায় না কেবলমাত্র একটি পরীক্ষার কেস আমরা পুনরুত্পাদন করতে পারি, সংস্করণ, প্যাচ স্তর ইত্যাদি দিয়ে প্রতিক্রিয়া জানাতে পারি

2
তদ্ব্যতীত, "উপাচার্য" প্রমাণগুলি যাইহোক কোনও বৈজ্ঞানিক ব্যবস্থা নয়। এটি সর্বদা লবণের দানা দিয়ে নেওয়া হয়।
বিল কারভিন 19

16

ভাল ANSI092 স্ট্যান্ডার্ড কিছু সুন্দর জঘন্য সিনট্যাক্স অন্তর্ভুক্ত। প্রাকৃতিক যোগদানগুলি এক এবং ব্যবহারের ক্লজ অন্যটি। আইএমএইচও, একটি টেবিলের সাথে একটি কলাম যুক্ত করা কোড ভাঙা উচিত নয় তবে একটি প্রাকৃতিক যোগদান খুব মারাত্মক ফ্যাশনে বিরতি দেয়। "সেরা" ভাঙ্গার উপায় হ'ল সংকলন ত্রুটি। উদাহরণস্বরূপ আপনি যদি কোথাও নির্বাচন করেন *, একটি কলামের সংযোজন পারেসংকলন করতে ব্যর্থ। ব্যর্থ হওয়ার পরবর্তী সেরা উপায়টি একটি রান টাইম ত্রুটি। এটি আরও খারাপ কারণ আপনার ব্যবহারকারীরা এটি দেখতে পাবে, তবে এটি আপনাকে একটি দুর্দান্ত সতর্কতা দেয় যে আপনি কিছু ভঙ্গ করেছেন। যদি আপনি ANSI92 ব্যবহার করেন এবং প্রাকৃতিক যোগদানের সাথে ক্যোয়ারী লিখেন, এটি সংকলন সময়ে ভাঙ্গবে না এবং এটি রান সময়ে ভাঙ্গবে না, ক্যোয়ারীটি হঠাৎ করে হঠাৎ ভুল ফলাফল তৈরি করা শুরু করবে। এই ধরণের বাগগুলি প্রতারণামূলক। রিপোর্টগুলি ভুল হয়, আর্থিকভাবে প্রকাশের সম্ভাব্যতা ভুল।

প্রাকৃতিক সাথে পরিচিতদের সাথে যোগ দেয়। তারা উভয় টেবিলের মধ্যে বিদ্যমান প্রতিটি কলামের নামে দুটি সারণীতে যোগদান করে। কোন 4 টি কলাম কী থাকা অবস্থায় আপনি সত্যিই শীতল হন এবং আপনি এটি টাইপ করে অসুস্থ হন। সমস্যাটি তখন আসে যখন টেবিল 1-এর DESCRIPTION নামে একটি বিদ্যমান বিদ্যমান কলাম রয়েছে এবং আপনি টেবিল 2 নামক একটি নতুন কলাম যুক্ত করেছেন, ওহ আমি জানি না, মিমি, বিবরণের মতো নির্দোষ কিছু এবং এখন আপনি একটি VARCHAR2 এ দুটি সারণীতে যোগদান করছেন (1000) ক্ষেত্র যা বিনামূল্যে ফর্ম।

উপরের বর্ণিত সমস্যাটি ছাড়াও মার্কিন যুক্তরাষ্ট্রে মোট অস্পষ্টতা দেখা দিতে পারে। অন্য একটি এসও পোস্টে , কেউ এই এএনএসআই-92 এসকিউএল দেখিয়েছে এবং এটি পড়ার জন্য সহায়তা চেয়েছিল।

SELECT c.* 
FROM companies AS c 
JOIN users AS u USING(companyid) 
JOIN jobs AS j USING(userid) 
JOIN useraccounts AS us USING(userid) 
WHERE j.jobid = 123

এটি সম্পূর্ণ অস্পষ্ট। আমি উভয় সংস্থা এবং ব্যবহারকারী সারণিতে একটি ইউজারআইডি কলাম রেখেছি এবং কোনও অভিযোগ নেই no যদি সংস্থাগুলিতে থাকা ইউজারআইডি কলামটি সেই সারিটি সংশোধন করার জন্য সর্বশেষ ব্যক্তির আইডি হয়?

আমি সিরিয়াস, কেউ কি এমন ব্যাখ্যা করতে পারে কেন এই ধরনের অস্পষ্টতা দরকার ছিল? কেন এটি স্ট্যান্ডার্ড মধ্যে সোজা নির্মিত?

আমি বিলটিকে সঠিক বলে মনে করি যে বিকাশকারীদের একটি বৃহত বেস রয়েছে যারা কোডিংয়ের মাধ্যমে সেখানে অনুলিপি / পেস্ট করে। আসলে, আমি স্বীকার করতে পারি যে যখন আমি এএনএসআই -২২ এর কথা বলি তখন আমি এক ধরণের। আমি যে উদাহরণটি দেখেছি প্রতিটি উদাহরণই বন্ধুত্বগুলিতে একসাথে যোগদান করে। সততা, এটি স্কেলের মধ্যে সারণীগুলি বাছাই করা সর্বোত্তম করে তোলে। তবে তারপরে একজন এসকিউএল 92 প্রচারকারী ব্যাখ্যা করেছিলেন যা আসলে একটি যোগদানের আদেশকে বাধ্য করবে। যীশু ... আমি দেখেছি এমন সমস্ত অনুলিপি পাস্টাররা এখন আসলে একটি যোগদানের আদেশ জোর করছে - এমন একটি কাজ যা 95% সময়ের চেয়ে আরও ভাল হয় বিশেষত একটি অনুলিপি / পাস্তারের কাছে left

তোমালক ঠিক তখনই বললেন,

লোকেরা কেবল নতুন সিনট্যাক্সে স্যুইচ করে না কারণ এটি রয়েছে

এটি আমাকে কিছু দিতে হবে এবং আমি কোনও উল্টোপাল্টা দেখতে পাচ্ছি না। এবং যদি কোনও উল্টো দিক থাকে তবে theণাত্মক একটি এ্যালবাট্রসকে এড়িয়ে যাওয়া যায় না।


3
আমি ব্যবহারের প্রবণতা কারণ এটি ব্যবহার বা প্রাকৃতিক যোগদানের তুলনায় কম অস্পষ্ট। প্রথম বন্ধনী হিসাবে, যারা মাইক্রোসফ্ট অ্যাক্সেসে "এসকিউএল" শিখেন তারা যদি আপনি বাদ দেন তবে অ্যাক্সেস হোয়াইট হিসাবে এটি ব্যবহার করবে। (এসকিউএল-এর চারপাশের উদ্ধৃতিগুলি আঙুলের উক্তি হওয়া উচিত))
পাওয়ারলর্ড

1
কাশি একটি ব্যবহার ধারা কী? ;-) আমি এসকিউএল সার্ভার ভগ্নাংশ থেকে এসেছি, সুতরাং এটি আমার রাডারে সত্যই নয়। আর। বেমরোজ যেমন বলেছিলেন, সেখানে ওএন ক্লজ রয়েছে, ঠিক কাজ করছে, আমাকে কখনও যোগ দিয়ে ছাড়েনি আমি সিনথেটিকভাবে প্রকাশ করতে পারিনি। কিছু টাইপ বাঁচাতে সিনট্যাক্সের ক্যোয়ারিতে আমার ডিবি ডিজাইনটি খাপ খাইয়ে নেওয়ার দরকার নেই।
টমলাক

3
যদি আপনি প্রাকৃতিক যোগদানের জন্য উপযুক্ত বা উপযুক্ত সময় ব্যবহার করার জন্য আপনার ডেটাটি যথেষ্ট পরিমাণে জানেন না তবে আপনার সম্ভবত এটির জন্য এসকিউএল লেখা উচিত নয়। অজ্ঞতার জন্য -1।
রব

4
আইএমএইচও, প্রাকৃতিকভাবে একই ব্যাগে পড়ে যায় SELECT *(তারপরে ক্লায়েন্টটি মাঠের ক্রমের উপর নির্ভর করে) এটি কেবল কিছুটা
বেসিক

2
প্রাকৃতিক যোগদানের সাথে আপনি যে সমস্যাটি বর্ণনা করছেন তা হ'ল আপনার ডাটাবেস ডিজাইনের সমস্যা - এটি মানের সাথে নয়। আপনার আপনার ডেটা সম্পর্কে সচেতন হওয়া উচিত, এবং কলাম নামের জন্য মান স্থাপন করা উচিত।
ট্র্যাভিস

14

কয়েকটি কারণ মাথায় আসে:

  • লোকেরা অভ্যাসের বাইরে তা করে
  • লোকগুলি অলস এবং "পুরানো স্টাইল" পছন্দ করে কারণ তারা টাইপিং কম জড়িত
  • প্রাথমিকভাবে প্রায়শই এসকিউএল -২৯ এর সিনট্যাক্সে যোগ দেওয়ার জন্য তাদের মাথাটি মুড়ে ফেলাতে সমস্যা হয়
  • লোকেরা কেবল নতুন সিনট্যাক্সে স্যুইচ করে না কারণ এটি রয়েছে
  • মানুষ বেনিফিট অবিদিত নতুন বাক্য গঠন হয়েছে, প্রাথমিকভাবে এটি আপনি একটি টেবিল ফিল্টার করতে সক্ষম (যদি আপনি একে ডাকতে যে চান) সামনে আপনি একটি বাইরের না যোগদান, এবং পরে এটি সব আপনি WHERE বাক্যাংশ যখন।

আমার অংশ হিসাবে, আমি আমার সমস্তগুলি এসকিউএল -92 সিনট্যাক্সে যোগদান করি এবং আমি যেখানে কোড পারি সেখানে রূপান্তর করি। এটি ক্লিনার, আরও পাঠযোগ্য এবং এটি করার শক্তিশালী উপায়। তবে কাউকে নতুন স্টাইলটি ব্যবহার করতে বোঝানো কঠিন, যখন তারা মনে করেন যে ক্যোয়ারির ফলাফল পরিবর্তন না করে আরও টাইপিং কাজের ক্ষেত্রে এটি তাদের ক্ষতি করে।


3
অনেক লোকের জন্য এসকিউএল দেখে মোটেই তাদের ক্ষতি করে। কোনও ওয়ার্কিং কোড পরিবর্তন করা একটি বাগ প্রবর্তনের জন্য ঝুঁকি বহন করে, বিশেষত যখন কোডার তার দৃষ্টি সরিয়ে ফেলছে। :-)
বিল কারভিন

এইচএম ... এমনকি আমার কাছে নিয়মিত জটিল অভিব্যক্তি দেখানো মোটেও ক্ষতি করে না। এসকিউএল আমার ক্ষতি করতে পারে না। ;-)
Tomalak

"শিক্ষানবিশদের প্রায়শই সমস্যা হয় ..." ঠিক আছে এটি একটি বিক্রয়কেন্দ্র

2
কোনও কারণে আমি নিশ্চিত নই যে এটি "প্রো" বা "বিপরীত" মন্তব্য ছিল কিনা ... সম্ভবত আমার বিড়ম্বনা সনাক্তকারীটি ভেঙে গেছে।
Tomalak

10

উপরের প্রাকৃতিক যোগদান এবং ব্যবহারের পোস্টের প্রতিক্রিয়াতে।

আপনি কেন এগুলি ব্যবহারের প্রয়োজন দেখেন - সেগুলি এএনএসআই -৯৯ এ পাওয়া যায় নি এবং এএনএসআই -৯৯ এ যুক্ত করা হয়েছিল যা আমি কেবল শর্টকাট হিসাবে দেখতে পারি।

আমি কখনও যোগদানের সুযোগটি ছেড়ে যাব না এবং সর্বদা সারণী / ওরফে এবং আইডি উল্লেখ করব।

আমার জন্য, একমাত্র উপায় হ'ল এএনএসআই -২২। এটি আরও ভার্বোজ এবং সিনট্যাক্সটি এএনএসআই -৯৯ অনুসারীদের পছন্দ করে না তবে এটি আপনার ফিল্টারিং থেকে জিনসকে আলাদা করে পৃথক করে।


আমি প্রাকৃতিক যোগদানগুলিকে শর্টকাট হিসাবে দেখছি না, তবে কোনও রিলেশনাল ডিবি-তে একটি সেগওয়ে অবজেক্ট ওরিয়েন্টেড ডিবি প্রোগ্রামিংয়ের মধ্যে দেখতে পাচ্ছি।
আরমান্ড

5

প্রথমে আমি বলি যে এসকিউএল সার্ভারে বাইরের জোড় সিনট্যাক্স (* =) পুরো সময় সঠিক ফলাফল দেয় না। এমন সময় আছে যখন এটি ব্যাখ্যা করে যে একটি ক্রস জোড় হিসাবে এবং কোনও বাহ্যিক যোগদান নয়। সুতরাং ঠিক এটি ব্যবহার বন্ধ করার একটি ভাল কারণ আছে। এবং এই বাহ্যিক যোগদানের বাক্য গঠনটি একটি অবচিত বৈশিষ্ট্য এবং এসকিউএল সার্ভার ২০০৮ এর পরে এসকিউএল সার্ভারের পরবর্তী সংস্করণে থাকবে না You আপনি এখনও অভ্যন্তরীণ যোগদান করতে সক্ষম হবেন তবে পৃথিবীতে কেন কেউ চাইবে? এগুলি অস্পষ্ট এবং বজায় রাখা অনেক কঠিন। আপনি সহজেই জানেন না যে যোগদানের অংশ কী এবং সত্যিই কেবল যেখানে ক্লজ।

আমি বিশ্বাস করি যে আপনার পুরানো বাক্য গঠনটি ব্যবহার করা উচিত নয় কারণ হ'ল বোঝার সাথে যোগ দেয় এবং তারা কী করে এবং কী করে না সে যে কেউ এসকিউএল কোড লিখবে তার পক্ষে একটি গুরুত্বপূর্ণ পদক্ষেপ। পুঙ্খানুপুঙ্খভাবে যোগদান না করে আপনার কোনও এসকিউএল কোড লেখা উচিত নয়। আপনি যদি তাদের ভালভাবে বুঝতে পারেন তবে আপনি সম্ভবত এই সিদ্ধান্তে পৌঁছে যাবেন যে এএনএসআই -২৯ বাক্য গঠনটি আরও পরিষ্কার এবং বজায় রাখা সহজ। আমি কখনই কোনও এসকিউএল বিশেষজ্ঞের সাথে দেখা করতে পারি নি, যিনি পুরানো সিনট্যাক্সের পছন্দ হিসাবে ANSI-92 সিনট্যাক্স ব্যবহার করেননি।

বেশিরভাগ লোক যাদের সাথে আমি দেখা করেছি বা তাদের সাথে ডিল করেছি যারা পুরাতন কোডটি ব্যবহার করেন, তারা সত্যিকারের সাথে যোগ দেয় না বুঝতে পারে এবং এইভাবে ডেটাবেস অনুসন্ধানের সময় সমস্যার মধ্যে পড়ে যায়। এটি আমার ব্যক্তিগত অভিজ্ঞতা তাই আমি বলছি না যে এটি সর্বদা সত্য। তবে ডেটা বিশেষজ্ঞ হিসাবে, বিশ্বাস না করার জন্য আমাকে বছরের পর বছর ধরে এই জঞ্জালটি অনেকটা ঠিক করতে হয়েছিল।


1
তোমার সাথে সাক্ষাতে ভালো লাগলো. আপনার প্রথম হতে পেরে আনন্দিত।

4

আমাকে স্কুলে এএনএসআই-89 শেখানো হয়েছিল এবং কয়েক বছর ধরে শিল্পে কাজ করেছি। তারপরে আমি ডিবিএমএসের কল্পিত পৃথিবীটি রেখে গেলাম 8 বছর। তবে আমি ফিরে এসেছি এবং এই নতুন এএনএসআই 92 টি জিনিস শেখানো হচ্ছে। আমি যোগ অন সিনট্যাক্স শিখেছি এবং এখন আমি আসলে এসকিউএল শিখি এবং আমি সিনট্যাক্সে নতুন যোগদানের প্রস্তাব দিই।

তবে আমি যে খারাপ দিকটি দেখছি সেগুলি সংযুক্ত subqueries এএনএসআই 92 এর সাথে যোগ দেয় বলে মনে হয় না। যোগদানের তথ্য যখন WHERE এর সাথে অন্তর্ভুক্ত করা হত এবং পরস্পর সম্পর্কিত সাব-কোয়েরিগুলিকে "যুক্ত" করা হয় যেখানে সমস্তটি সঠিক এবং সামঞ্জস্যপূর্ণ বলে মনে হয়েছিল। এএনএসআই-তে 92 সারণীর যোগদানের মানদণ্ডটি যেখানে ও সাব-কোয়েরিতে "যোগদান" হয় না, সিনট্যাক্সটি বেমানান বলে মনে হয়। অন্যদিকে, এই অসঙ্গতিটি "সংশোধন" করার চেষ্টা করা সম্ভবত এটি আরও খারাপ করবে।


অন্যদিকে, আপনি পি [রোবালি শোনাচ্ছেন যে তারা পারফরম্যান্স হোগের কারণে একে অপরের সাথে সংযুক্ত কোনও সাবক্যারি লিখছেন না। তারা আপনার প্রশ্নের মধ্যে একটি কার্সার রাখার মতো। বিতৃষ্ণা।
এইচএলজিইএম

3

আমি নিশ্চিতভাবে উত্তরটি জানি না .. এটি একটি আধ্যাত্মিক যুদ্ধ (ম্যাক-পিসি বা অন্যদের তুলনায় কম ডিগ্রির আলবিট)

একটি অনুমান যে মোটামুটি সাম্প্রতিক অবধি, ওরাকল (এবং অন্যান্য বিক্রেতারাও) এএনএসআই -92 মান গ্রহণ করেনি (আমার ধারণা এটি ওরাকল ভি 9, বা তার আশেপাশে ছিল) এবং তাই, ডিবিএ / ডিবি বিকাশকারীরা যে সংস্থাগুলিতে কর্মরত তাদের জন্য এখনও এই সংস্করণগুলি ব্যবহার করছিলেন, (বা সার্ভারগুলিতে কোডগুলি বহনযোগ্য হতে পারে যা এই সংস্করণগুলি ব্যবহার করা হতে পারে, তাদের পুরানো স্ট্যান্ডার্ডের সাথে লেগে থাকতে হয়েছিল ...

এটি সত্যিই লজ্জাজনক, কারণ নতুন যোগদানের বাক্য গঠনটি আরও বেশি পাঠযোগ্য এবং পুরানো বাক্য গঠনটি বেশ কয়েকটি ডকুমেন্টেড দৃশ্যে ভুল (ভুল) ফলাফল তৈরি করে।

  • বিশেষত, বাইরের সাথে যোগ দেয় যখন শর্তসাপেক্ষে ফিল্টারিং থাকাকালীন "বাইরের" পাশে থাকা সারণী থেকে নন-যোগ-সম্পর্কিত সম্পর্কিত কলামগুলিতে পূর্বাভাস দেয়।

হ্যাঁ, ওরাকল 9 আই; ২০০১ সালে মুক্তি পেল। পার্টিতে কিছুটা দেরি!

1
এমএস এসকিউএল INNER JOIN1995 এ যুক্ত হয়েছিল, যদিও LEFT JOIN1996 পর্যন্ত নয় 1996 1999 সালে প্রকাশিত মাইএসকিউএল কমপক্ষে 3.23 থেকে এটি সমর্থন করেছে; কমপক্ষে .2.২ পোস্টপ্রেসএসকিউএল ২০০২ সালে প্রকাশিত হয়েছিল। কিছু নৈমিত্তিক গুগলিং আমাকে তেরাডাতার কোনও উত্তর দেয় না।

হ্যাঁ, এটি ছিল নিন্দা যা 1991 সালে ওরাকলের শ্রেষ্ঠত্ব প্রমাণ করেছিল: এমএস অ্যাক্সেসের মতো ডেটাবেস সিস্টেমগুলি যা "বাম" এবং "ডান" সিনট্যাক্স ব্যবহার করেছিল তা এএনএসআই স্ট্যান্ডার্ড এসকিউএল ছিল না। এসকিউএল এর মতো পোস্ট করা অন্য লোকের কাছে আপনার দিকে ঝাঁকুনির সুযোগ ছিল। টুইটার এবং ফেসবুকের মতো এখন।
ডেভিড

2

জড়তা এবং ব্যবহারিকতা।

এএনএসআই -২২ এসকিউএল টাচ-টাইপের মতো। কিছু তাত্ত্বিক উপায়ে এটি কোনও দিন সবকিছুকে আরও ভাল করে তুলতে পারে তবে আমি এখন চারটি আঙ্গুল দিয়ে চাবিগুলি দেখতে আরও দ্রুত টাইপ করতে পারি। আমাকে অগ্রসর হওয়ার জন্য পিছনের দিকে যেতে হবে, কোনও গ্যারান্টি ছাড়াই যে কখনও পে-অফ হবে।

এসকিউএল লেখা আমার কাজের প্রায় 10%। যদি এএনএসআই -৯৯ এসকিউএল সমাধান করতে পারে না এমন সমস্যা সমাধানের জন্য আমার যদি এএনএসআই -৯৯ এসকিউএল প্রয়োজন হয় তবে আমি এটি ব্যবহার করব। (আমি আসলে এটি অ্যাক্সেসে ব্যবহার করি)) যদি এটি সমস্ত সময় ব্যবহার করা আমার বিদ্যমান সমস্যাগুলিকে আরও দ্রুত সমাধান করতে সহায়তা করে, তবে আমি এটির সাথে মিলিত হওয়ার জন্য সময়টি ব্যয় করব। তবে আমি এএনএসআই-89 এসকিউএলটিকে সিনট্যাক্স সম্পর্কে কখনও চিন্তা না করেই শেষ করতে পারি। আমি সমস্যাগুলি সমাধান করার জন্য অর্থ প্রদান করি - এসকিউএল সিনট্যাক্স সম্পর্কে চিন্তা করা আমার সময় এবং আমার নিয়োগকর্তার অর্থের অপচয়।

কোনও দিন, যুবক গ্রাসোপার, আপনি আপনার এসএনএল 3 (বা যাই হোক না কেন) ব্যবহার করা উচিত এমন তরুণদের বিরুদ্ধে এএনএসআই -২৯ এসকিউএল সিনট্যাক্স ব্যবহারের পক্ষে আপনার পক্ষে সুরক্ষিত হবেন। এবং তারপরে আপনি বুঝতে পারবেন। :-)


2
এখানে বর্ণিত পদ্ধতির প্রতিরোধমূলক রক্ষণাবেক্ষণের ধারণাটি রক্ষা করে "বিদ্যুৎ ভেঙে গেলে এটি ঠিক হয়ে যায়" এর মতো প্রচুর শোনায়। হ্যাঁ, সমস্যাগুলি সমাধান করার জন্য আপনাকে অর্থ প্রদান করা হবে তবে আপনি আপনার কোম্পানিকে আরও বেশি মূল্য প্রদানের জন্যও অর্থ প্রদান করবেন। আপনার ক্ষেত্রে এএনএসআই -৯৯ স্বল্প মেয়াদে আরও বেশি মান দেয় তবে দীর্ঘ সময় ধরে এএনএসআই -২২ এ সময় বিনিয়োগ না করা আরও ব্যয়বহুল বিকল্প হবে।
ট্র্যাভিস

আপনি সর্বদা যা করেছেন তার সাথে লেগে থাকার জন্য দরিদ্র লোকটির জন্য ব্যয় হয় যা আপনি চলে গেলে আপনার কোড বজায় রাখতে হয়। এর অর্থ এই নয় যে আপনার মাসের স্বাদে স্যুইচ করা উচিত, তবে সেরা অনুশীলনগুলি গ্রহণ করা প্রায়শই সর্বদা রক্ষণাবেক্ষণে অর্থ প্রদান করবে।

আমি এক্সেলে স্যুইচ করব না (যেখানে আপনি মাউসের তিনটি ক্লিক বা তার চেয়ে কম কিছুতে কিছু করতে পারেন), কারণ আমি যে হাজার হাজার লোটাস 123 কমান্ডের প্রয়োজন তা মুখস্থ করেছি এবং সেগুলি ব্যবহারে আমি স্বাচ্ছন্দ্যবোধ করছি! Hah!
চার্লস ব্রেটানা

2

আমার কাছে একটি ক্যোয়ারী ছিল যা মূলত এসকিউএল সার্ভার 6.5 এর জন্য লেখা হয়েছিল, যা এসকিউএল 92 সমর্থন করে না সিনট্যাক্সে যোগ দেয়, অর্থাত্

select foo.baz
from foo
  left outer join bar
  on foo.a = bar.a

পরিবর্তে হিসাবে লেখা ছিল

select foo.baz
from foo, bar
where foo.a *= bar.a

ক্যোয়ারীটি কিছুক্ষণের জন্য ছিল, এবং কোয়েরিটি খুব ধীরগতিতে চালিত করতে প্রাসঙ্গিক ডেটা একত্রিত হয়েছিল, 90 সেকেন্ড শেষ হতে পারে। এই সমস্যাটি উত্থাপিত হওয়ার সাথে সাথে আমরা এসকিউএল সার্ভার 7-তে আপগ্রেড করেছি।

ইনডেক্স এবং অন্যান্য ইস্টার-ইজিংয়ের সাথে ব্যঙ্গ করার পরে, আমি যুক্ত সংশ্লেষকে এসকিউএল ৯৯ এর সাথে সামঞ্জস্য করে। ক্যোয়ারির সময়টি 3 সেকেন্ডে নেমে গেছে।

স্যুইচ করার একটা ভাল কারণ আছে।

এখান থেকে পোস্ট করা


1

আমি একটি গড় বিকাশকারীর দৃষ্টিকোণ থেকে উত্তর দিতে পারি, উভয় বাক্য গঠন বুঝতে যথেষ্ট পর্যাপ্ত এসকিউএল জেনেছি, তবে এখনও যতবার প্রয়োজন প্রতিবার সন্নিবেশের সঠিক বাক্য গঠনটি গুগল করছি ... :- পি (আমি সারাদিন এসকিউএল করি না , কেবল সময়ে সময়ে কিছু সমস্যা সমাধান করা)

ভাল, আসলে, আমি প্রথম ফর্মটি আরও স্বজ্ঞাত পেয়েছি, যা দুটি টেবিলের মধ্যে কোনও আপাত স্তরবিন্যাস তৈরি করে না। আমি সম্ভবত পুরানো বইগুলির সাথে এসকিউএল শিখেছি, প্রথম ফর্মটি দেখায়, সম্ভবত সাহায্য করে না ... ;-)
এবং গুগলে একটি স্কয়ার সিলেক্ট অনুসন্ধানে আমি প্রথম রেফারেন্স পেয়েছি (যা আমার জন্য বেশিরভাগ ফরাসী উত্তর ফেরত দেয় ... ) প্রথমে পুরানো ফর্মটি দেখায় (তারপরে দ্বিতীয়টি ব্যাখ্যা করুন)।

"কেন" প্রশ্নটি সম্পর্কে কিছু ইঙ্গিত দিচ্ছি ... ^ _ ^ বিষয়টির উপর আমার একটি ভাল, আধুনিক বই (ডিবি অজ্ঞেয়াদি) পড়া উচিত। কারও কাছে যদি পরামর্শ থাকে ...


1

আমি সমস্ত বিদ্যালয়ের পক্ষে কথা বলতে পারি না তবে আমার বিশ্ববিদ্যালয়ে যখন আমরা আমাদের কোর্সের এসকিউএল মডিউলটি করছিলাম তখন তারা এএনএসআই -২৯ শেখায়নি, তারা এএনএসআই -৯৯ শিখিয়েছিল - এটিতে একটি পুরানো ভ্যাক্স সিস্টেমে! কোয়েরি ডিজাইনার ব্যবহার করে কিছু কোয়েরি তৈরি করে এবং তারপরে এসকিউএল কোডটিতে খনন করা না হওয়া পর্যন্ত অ্যাক্সেসের আশেপাশে খনন শুরু না করা পর্যন্ত আমি এএনএসআই -২২ তে উন্মুক্ত ছিলাম না। বুঝতে পেরেছিলাম যে এটি কীভাবে যোগদান করবে এটি সম্পর্কে আমার কোনও ধারণা নেই, বা সিনট্যাক্সের জড়িততাগুলি আরও গভীরভাবে খনন শুরু করেছি যাতে আমি এটি বুঝতে পারি।

প্রদত্ত ডকুমেন্টেশন অনেক ক্ষেত্রে হুবহু স্বজ্ঞাত নয় এবং লোকেদের তারা যা জানে তার প্রতি দৃ to় থাকে এবং অনেক ক্ষেত্রে তারা তাদের কাজটি সম্পাদনের জন্য প্রয়োজনের চেয়ে আরও বেশি কিছু শেখার চেষ্টা করে না, এটি কেন গ্রহণ এত দীর্ঘ সময় নিচ্ছে তা সহজেই দেখা যায়।

অবশ্যই, সেই প্রযুক্তিগত প্রচারকরা আছেন যারা টিঙ্কার এবং বুঝতে পছন্দ করেন এবং এটি সেই ধরণের হয়ে থাকে যা "নতুন" নীতিগুলি গ্রহণ করে এবং বাকীগুলিকে রূপান্তরিত করার চেষ্টা করে।

অদ্ভুতভাবে, আমার কাছে মনে হয় প্রচুর প্রোগ্রামার স্কুল থেকে বেরিয়ে আসে এবং অগ্রসর হওয়া বন্ধ করে দেয়; তাদের ভেবে যেহেতু তাদের এটাই শেখানো হয়েছিল, এটি এভাবেই হয়েছিল। আপনি আপনার ব্লিঙ্কারগুলি বন্ধ না করা পর্যন্ত আপনি বুঝতে পারছেন না যে স্কুলটি কেবল আপনাকে বেসিকগুলি শেখানোর জন্য এবং বাকিটি নিজেকে শিখতে যথেষ্ট বোঝাপড়া দেওয়ার জন্য এবং সেখানে যা জানা আছে তা সত্যই আপনি সবেমাত্র আঁচড়ে গেছেন; এখন সেই পথ চালিয়ে যাওয়া আপনার কাজ।

অবশ্যই এটি আমার অভিজ্ঞতার ভিত্তিতে আমার মতামত।


এটি কেবল প্রোগ্রামারই নয়। অনেক ক্ষেত্রে, লোকেরা তাদের কেরিয়ারে প্রতিষ্ঠিত হয়ে গেলে পুনরায় প্রশিক্ষণের জন্য তাদেরকে বোঝানো শক্ত। ব্যতিক্রমী ব্যক্তিরা অবশ্যই আছেন, আমি প্রতিটি ক্ষেত্রে একই অনুপাত ধরে নিয়েছি।
বিল কারভিন 15

2
কাউকে সফল কিছু থেকে সরিয়ে, অন্যরকম কোনও উপকারের জন্য সরিয়ে নিতে দৃ switch় করা শক্ত। আমাদের বাড়ির নেট পার্শ্বটি 1.0 থেকে 3.5 এ পরিবর্তিত হয়েছে এবং জেরো কাজোলিংয়ের সাথে প্রতিটি পদক্ষেপের মধ্যে রয়েছে। প্রতিটি নতুন সংস্করণ ভাল ছিল। এখানে একই বলতে পারি না।

1

1) আউট জয়েন লেখার স্ট্যান্ডার্ড উপায়, বনাম * = বা (+) =

2) প্রাকৃতিক যোগদান

3) ডাটাবেস ইঞ্জিনে নির্ভর করে, এএনএসআই -92 আরও অনুকূল হওয়ার প্রবণতা।

4) ম্যানুয়াল অপ্টিমাইজেশন:

ধরা যাক যে আমাদের পরবর্তী বাক্য গঠন (এএনএসআই-89) রয়েছে:

(1)select * from TABLE_OFFICES to,BIG_TABLE_USERS btu
where to.iduser=tbu.iduser and to.idoffice=1

এটি লিখিত হতে পারে:

(2)select * from TABLE_OFFICES to
inner join BIG_TABLE_USERS btu on to.iduser=tbu.iduser
where to.idoffice=1

তবে এছাড়াও:

(3)select * from TABLE_OFFICES to
inner join BIG_TABLE_USERS btu on to.iduser=tbu.iduser and to.idoffice=1

তাদের (1), (2), (3) একই ফলাফল ফিরে আসে, তবে তারা আলাদাভাবে অনুকূলিত হয়, এটি ডাটাবেস ইঞ্জিনের উপর নির্ভর করে তবে তাদের বেশিরভাগই এটি করেন:

  • (1) এটি নির্ভর করে ডাটাবেস ইঞ্জিনটি অপ্টিমাইজেশান স্থির করে।
  • (2) এটি উভয় টেবিলের সাথে মিলিত হয় তারপরে অফিসে ফিল্টারটি করে।
  • (3) এটি আইডোফিস ব্যবহার করে বিগ_আবার_এইএলএসএ ফিল্টার করে উভয় টেবিলগুলিতে যোগ দেয়।

5) দীর্ঘ প্রশ্নগুলি কম অগোছালো।


1

পুরানো এবং তরুণ প্রোগ্রামার এবং প্রশিক্ষণার্থী এবং নতুন স্নাতকদের সাথে আমার ব্যবহারিক অভিজ্ঞতা থেকে লোকেরা এএনএসআই-89 ব্যবহার করার কারণগুলি:

  • তারা বিদ্যমান কোড থেকে এসকিউএল শিখেন (বইয়ের চেয়ে) এবং কোড থেকে এএনএসআই-89 শিখেন
  • এএনএসআই-89 কারণ টাইপিং কম
  • তারা এটি সম্পর্কে চিন্তা করে না এবং একটি বা অন্য স্টাইল ব্যবহার করে এবং এমনকি জানে না যে উভয়কেই নতুন বা পুরানো বলে বিবেচনা করা হয় এবং সেগুলির কোনও যত্নও করে না
  • কোডটি এই কোডটি রক্ষণাবেক্ষণের সাথে সাথে আগত প্রোগ্রামারের সাথে যোগাযোগেরও ধারণা। তারা মনে করে যে তারা কম্পিউটারের সাথে কথা বলে এবং কম্পিউটারের কোনও যত্ন নেই।
  • "ক্লিন কোডিং" এর শিল্পটি অজানা
  • প্রোগ্রামিং ল্যাঙ্গুয়েজ এবং এসকিউএল সম্পর্কে বিশেষত জ্ঞান এতটাই দুর্বল যে তারা অন্য কোথাও খুঁজে পায় সেগুলি অনুলিপি করে পেস্ট করে
  • ব্যাক্তিগত পক্ষপাত

আমি ব্যক্তিগতভাবে এএনএসআই -২২ পছন্দ করি এবং এএনএসআই -৯৯ সিনট্যাক্সে আমি যে প্রতিবেদনগুলি দেখি তা কখনও কখনও কেবলমাত্র এসকিউএল বিবৃতিটি আরও ভালভাবে বুঝতে পারি change তবে আমি বুঝতে পেরেছি যে আমি যাদের সাথে কাজ করি তাদের বেশিরভাগ টেবিলের সাথে যোগ দেওয়ার জন্য যথেষ্ট দক্ষ নয়। তারা যতটা পারছে তত কোড দেয় এবং প্রথমবার কোনও এসকিউএল স্টেটমেন্টের মুখোমুখি হয়ে তারা যা মুখস্থ করেছিল তা ব্যবহার করে।


1

এসকিউএল -৯৯, এবং এসকিউএল -৯২ এর তুলনা করে এবং অন্যান্য উত্তরে কিছু ভুল ধারণা পরিষ্কার করার জন্য এখানে কয়েকটি বিষয় রয়েছে are

  1. NATURAL JOINSএকটি ভয়ঙ্কর ধারণা। এগুলি অন্তর্ভুক্ত এবং তাদের টেবিল সম্পর্কে মেটা তথ্য প্রয়োজন। এসকিউএল -২২ সম্পর্কে কোনও কিছুই তাদের ব্যবহারের প্রয়োজন হয় না তাই কেবল তাদের এড়িয়ে যান । তারা এই আলোচনার সাথে প্রাসঙ্গিক নয়।
  2. USING এটি একটি দুর্দান্ত ধারণা, এর দুটি প্রভাব রয়েছে:
    1. এটি একটি ইকুইজয়েন থেকে ফলাফল সেটটিতে কেবল একটি কলাম তৈরি করে।
    2. এটি একটি শব্দ এবং বুদ্ধিমান সম্মেলন কার্যকর করে। এসকিউএল -৯৯ এ আপনার idউভয় টেবিলে লোকেরা কলাম লিখেছিল । আপনি টেবিলগুলিতে যোগদানের পরে এটি দ্ব্যর্থক এবং দ্ব্যর্থক এবং এর জন্য সুস্পষ্ট আলিয়াসিং প্রয়োজন। তদ্ব্যতীত, idযোগদানের এসগুলির অবশ্যই বিভিন্ন ডেটা ছিল। আপনি কোম্পানির ব্যক্তি যোগদানের থাকে, তাহলে আপনি এখন ওরফে এক আছে idকরতে person_idএক, এবং idথেকে company_id, যা ছাড়া যোগদানের দুই দ্ব্যর্থক বেশি কলাম তৈরি হবে। টেবিলের সারোগেট কীটির জন্য বিশ্বব্যাপী-অনন্য শনাক্তকারী ব্যবহার করা হ'ল কনভেনশনটি হ'ল মানক পুরষ্কার USING
  3. এসকিউএল -৯৯ সিনট্যাক্স একটি অন্তর্নিহিত CROSS JOIN। এ CROSS JOINসেটটি হ্রাস করে না, এটি স্পষ্টতই এটি বাড়ায়। FROM T1,T2এর মতোই FROM T1 CROSS JOIN T2, এটি কার্টেসিয়ান জয়েন্ট তৈরি করে যা সাধারণত আপনি চান না। এটি একটি দূরবর্তী WHEREশর্তসাপেক্ষে সরিয়ে ফেলা নির্বাচন করার কারণে আপনার ডিজাইনের সময় ভুল হওয়ার সম্ভাবনা বেশি make
  4. এসকিউএল -৯৯ ,এবং এসকিউএল -২২ স্পষ্ট JOINস্পষ্টের আলাদা আলাদা প্রাধান্য রয়েছে। JOINএকটি উচ্চতর নজির আছে। আরও খারাপ, মাইএসকিউএলের মতো কিছু ডেটাবেস খুব দীর্ঘ সময়ের জন্য এটি ভুল পেয়েছে। । সুতরাং দুটি শৈলীর মিশ্রণ একটি খারাপ ধারণা এবং আজকের চেয়ে অনেক বেশি জনপ্রিয় স্টাইলটি এসকিউএল -২২ স্টাইল।

1) আপনি যদি সম্পর্কের মডেলটি অধ্যয়ন করেন তবে আপনি এটি প্রশংসা করবেন যে কোনও দুর্দান্ত প্রাকৃতিক ধারণাটিই যুক্ত নয়, এটি আপনার একমাত্র ধরণের যোগদানের প্রয়োজন। 2) দেখুন 1 অর্থাৎ প্রয়োজন নেই। ৩) সিনট্যাক্স নির্বিশেষে (এবং উভয়ই এসকিউএল -২৯ সিনট্যাক্স), রিলেশনাল অপারেটরটি পণ্য (গুণ) অর্থাৎ সত্যিকার অর্থে যোগ নয় (কার্তেসিয়ান জয়েন 'এমনকি কোনও জিনিস নয়)। ৪. দেখুন 1 অর্থাৎ প্রয়োজন নেই।
onedaywhen

0

ওরাকল এএনএসআই -২২ তে মোটেও প্রয়োগ করে না। আমার বেশ কয়েকটি সমস্যা হয়েছিল, কমপক্ষে নয় কারণ ওরাকল অ্যাপ্লিকেশনে ডেটা টেবিলগুলি কলামগুলি দিয়ে খুব ভালভাবে সমৃদ্ধ। যদি আপনার যোগদানের কলামগুলির সংখ্যা 1050 কলামের (যা অ্যাপ্লিকেশনগুলিতে করা খুব সহজ) অতিক্রম করে, তবে আপনি এই উত্কৃষ্ট ত্রুটি পাবেন যা একেবারেই কোনও যৌক্তিক ধারণা দেয় না:

ORA-01445: cannot select ROWID from a join view without a key-preserved table.

পুরানো শৈলীতে যোগদানের সিনট্যাক্স ব্যবহারের জন্য ক্যোয়ারীটি পুনরায় লেখার ফলে বিষয়টি অদৃশ্য হয়ে যায়, যা এএনএসআই -২২ এর প্রয়োগের সাথে সাথে দোষের আঙ্গুলের দিকে ইঙ্গিত করে বলে মনে হচ্ছে।

যতক্ষণ না আমি এই সমস্যার মুখোমুখি হয়েছিলাম, ততক্ষণে আমি ASNI-92 এর অবিচলিত প্রচারক ছিলাম, কারণ দুর্ঘটনাক্রমে ক্রস যোগদানের সম্ভাবনা হ্রাস করার সুবিধার কারণে, যা পুরানো-শৈলীর সিনট্যাক্সের সাথে করা খুব সহজ far

তবে এখন আমি এটির উপর জোর দেওয়া আরও কঠিন বলে মনে করি। তারা ওরাকলের খারাপ প্রয়োগের দিকে ইঙ্গিত করে এবং বলে যে "আমরা এটি আমাদের উপায়ে করব, ধন্যবাদ"।


1
ক্রস জয়েন করা সহজ হতে পারে, এটি স্বতঃস্ফূর্তভাবে ঘটে না এমন কিছু এবং এটি অবশ্যই অস্পষ্ট নয়। যে কোনও শালীন এসকিউএল বিকাশকারী এটি স্পট করতে পারে। তবে ব্যবহার এবং প্রাকৃতিক যোগদান হ'ল প্রলোভনসঙ্কুল যা আপনাকে ডাকে এবং আপনার ছোট্ট নৌকাকে যন্ত্রণা ও দুর্দশার পাথরে ভেঙে দেয়।

1
আমার বক্তব্যটি ছিল, দু'টি টেবিলের সাথে একত্রে যোগ হওয়া ধারাটি হারিয়ে না দিয়ে সাফল্যের সাথে একটি দুর্ঘটনাজনক ক্রস জয়েন্ড তৈরি করা সহজ। ক্রস জয়েনটি এএনএসআই -২২ তে ইচ্ছাকৃতভাবে করতে হবে। তবে আমি একমত যে প্রাকৃতিক যোগদান একটি ঘৃণা। :)
জোনাথন

আমি আপনার বক্তব্য বুঝতে পেরেছি। তবে এটি কেবল নীল রঙের বাইরে ঘটে না। আপনার ক্যোয়ারীটি ডিবাগ করার সাথে সাথে আপনি সমস্যাটি লক্ষ্য করুন এবং এটি ঠিক করেছেন। আপনি যদি কোয়েরিতে কোনও পরিবর্তন ছাড়াই প্রাকৃতিক যোগদান ব্যবহার করেন তবে কোনও টেবিল পরিবর্তনের কারণে এটি পরিবর্তন হতে পারে।

0

একটি নতুন এসকিউএল স্ট্যান্ডার্ড পূর্ববর্তী স্ট্যান্ডার্ড, ওরফে 'সামঞ্জস্যের শেকল' থেকে সবকিছু উত্তরাধিকার সূত্রে প্রাপ্ত। সুতরাং 'পুরাতন' / 'কমা-বিচ্ছিন্ন' / 'অযোগ্য' যোগদানের শৈলী পুরোপুরি বৈধ এসকিউএল -২৯ সিট্যাক্স।

এখন, আমি যুক্তি দিচ্ছি যে আপনার প্রয়োজন এসকিউএল -২৯ এর NATURAL JOINএকমাত্র যোগ হতে পারে। উদাহরণস্বরূপ, আমি যুক্তি দিয়েছি এটি এর inner joinথেকেও উচ্চতর কারণ এটি নকল কলাম তৈরি করে না - কলামগুলিকে SELECTছিন্নমূল করার জন্য ক্লোজে আর কোনও পরিসর পরিবর্তনশীল নয় ! তবে আমি প্রতিটি হৃদয় ও মন পরিবর্তন করার আশা করতে পারি না, সুতরাং আমার এমন কোডারদের সাথে কাজ করা উচিত যারা ব্যক্তিগতভাবে আমি উত্তরাধিকার হিসাবে যোগদানের শৈলী হিসাবে বিবেচনা করি তা অব্যাহত রাখবে (এবং তারা এমনকি পরিসীমা পরিবর্তনশীলকে 'এলিয়াস' হিসাবে উল্লেখ করতে পারে!)। এটি টিম ওয়ার্কের প্রকৃতি এবং শূন্যতায় কাজ না করা।

এসকিউএল ভাষার একটি সমালোচনা হ'ল একই ফলাফলটি বেশ কয়েকটি শব্দার্থ-সমতুল্য সিনট্যাক্স ব্যবহার করে প্রাপ্ত করা যেতে পারে (কিছুগুলি রিলেশনাল বীজগণিত ব্যবহার করে, কিছুগুলি রিলেশনাল ক্যালকুলাস ব্যবহার করে), যেখানে 'সেরা' বেছে নেওয়া কেবল ব্যক্তিগত শৈলীতে নেমে আসে where । তাই আমি 'পুরানো-শৈলীর' সাথে যতটুকু স্বাচ্ছন্দ্যবোধ করি তাতে আরাম পাই INNERNATURALপ্রসঙ্গের উপর নির্ভর করে আমি তাদের পুনরায় লেখার জন্য সময় নিই কিনা ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.