বর্গাকার বন্ধনীর ব্যবহার কী?


163

আমি লক্ষ্য করেছি যে ভিজ্যুয়াল স্টুডিও ২০০৮ বর্গাকার বন্ধনী বর্গক্ষেত্রে বর্গাকারে রাখছে। বন্ধনীগুলি কোনও সুবিধা দেয়? আমি টি-এসকিউএল কোড দিলে আমি কখনই তাদের সাথে বিরক্ত করি না।

উদাহরণ:

ভিসুয়াল স্টুডিও:

SELECT [column1], [column2] etc...

আমার নিজের পথ:

SELECT column1, column2 etc...

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

সংশ্লিষ্ট উত্তর আলোচনা QUOTED_IDENTIFIER সেটিং: stackoverflow.com/questions/19657101/...
জ্যারেড অঙ্গুলিনির্দেশ

8
আমি যুক্ত করতে পারি যে বন্ধনীগুলি একটি মাইক্রোসফ্ট quirk হয়। এসকিউএল স্ট্যান্ডার্ড আসলে উদ্ধৃতি চিহ্ন (ব্যবহার "), যা মাইক্রোসফট এছাড়াও সমর্থন করে। যদি, মাইক্রোসফ্ট সমস্ত কিছু সীমিত করার প্রয়োজনীয়তা অনুভব করে, তবে পরিবর্তে স্ট্যান্ডার্ড ডাবল-কোট ব্যবহার করা আরও ভাল ফর্ম হতে পারে। তবে আমি অনুমান করি যে অন্য ডিবিএমএসে পোর্ট করা খুব সহজ হয়ে গেছে, এবং এটি কখনই করবে না ...
মানঙ্গো

উত্তর:


181

যদি আপনি কলামের নাম বা সনাক্তকারীগুলিতে কীওয়ার্ড বা বিশেষ অক্ষর ব্যবহার করেন তবে বন্ধনীগুলির প্রয়োজন। আপনি কোনও কলামটির নাম রাখতে পারেন [First Name](একটি স্থান সহ) - তবে তারপরে আপনি যখনই এই কলামটি উল্লেখ করেছেন তখনই আপনাকে বন্ধনী ব্যবহার করা দরকার।

নতুন সরঞ্জামগুলি কেবলমাত্র ক্ষেত্রে বা ধারাবাহিকতার জন্য এগুলি সর্বত্র যুক্ত করে।


3
এটি কি বর্গাকার বন্ধনীগুলির একমাত্র উদ্দেশ্য?

1
@ হ্যাঁ, এটি সেভাবে মনে হয় তবে আমার কাছে এ জাতীয় স্পষ্টভাবে নির্দেশ করে এমন কোনও রেফারেন্স নেই।
মাইকেল হরেন

2
সম্পর্কিত প্রশ্ন: স্ট্যাকওভারফ্লো.com
মাইকেল হরেন

2
নিয়মিত এক্সপ্রেশন ব্যবহার করে ফলাফল সীমাবদ্ধ করতে একটি নির্বাচন করা ক্যোয়ারির লাইক-অপারেটরে স্কয়ার স্কয়ার বন্ধনীও ব্যবহার করে। কোডেপ্রজেক্ট
জেনস ফ্রেন্ডসেন

2
আপনি নামক একটি কলামের নামও সংজ্ঞায়িত করতে পারেন selectতবে select select from mytableএকটি ত্রুটি নিক্ষেপ select [select] from mytableকরতে পারেন তাই এটি একটি বৈধ কোয়েরি করে। আপনার এসকিউএল পরিচালনার স্টুডিওতে যে কোনও শব্দ রঙিন হয়ে উঠেছে, আপনি যদি কলাম / টেবিল / এসপি / ইত্যাদি নাম হিসাবে ব্যবহার করতে চান তবে বন্ধনী দ্বারা ঘিরে থাকা উচিত। মাইএসকিউএলে কোণযুক্ত একক উদ্ধৃতিগুলি এর সমতুল্য হবে।
ব্যারি গুভেনকায়া

59

আপনার কলামগুলিতে এসকিউএল কীওয়ার্ডের মতো একই নাম থাকলে বা সেগুলিতে ফাঁকা স্থান থাকলে তারা কার্যকর।

উদাহরণ:

create table test ( id int, user varchar(20) )

ওহ না! 'ব্যবহারকারী' কীওয়ার্ডের নিকটে ভুল সিনট্যাক্স। কিন্তু এই:

create table test ( id int, [user] varchar(20) )

ঠিকভাবে কাজ করে.


@ ব্লর্ডবার্ড এটি মাইক্রোসফ্ট এসকিউএল সার্ভারের সাথে নির্দিষ্ট কিছু বা স্কয়ার বন্ধনীগুলিও ওরাকল, মাইএসকিউএল, পোস্টগ্রিসকিউএল ইত্যাদির জন্য একই কাজ করে?
ব্যবহারকারী 3700562

4
বন্ধনীগুলি স্ট্যান্ডার্ড এসকিউএল নয়, সমস্ত ডিবি ইঞ্জিনগুলি কোন অক্ষর ব্যবহার করে তা নিশ্চিত নয়। উদাহরণস্বরূপ: মাইএসকিউএল ব্যাকটিক ব্যবহার করে: stackoverflow.com/questions/2889871/...
Blorgbeard বাইরে

12

উদাহরণস্বরূপ আপনি নির্দিষ্ট অক্ষরের সাথে কলামের নাম ব্যবহার করে (কোনও কারণে) থাকলে সেগুলি কার্যকর।

Select First Name From People

কাজ করবে না, তবে কলামের নামের চারপাশে বর্গাকার বন্ধনী স্থাপন কাজ করবে

Select [First Name] From People

সংক্ষেপে, এটি কোনও সামগ্রীর নাম স্পষ্টভাবে ঘোষণা করার একটি উপায়; কলাম, টেবিল, ডাটাবেস, ব্যবহারকারী বা সার্ভার।


6

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


5

কলামের নামগুলি সংরক্ষিত শব্দের সাথে বন্ধনী ব্যবহার করা যেতে পারে।

আপনি যদি নিয়ন্ত্রণ করেন না এমন কলামের নাম সংগ্রহ থেকে যদি আপনি প্রগতিগতভাবে এসকিউএল বিবৃতি তৈরি করে থাকেন তবে আপনি সর্বদা বন্ধনী ব্যবহার করে সমস্যাগুলি এড়াতে পারেন।


5

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

আপনি যখন স্ক্রিপ্টে সমস্ত প্রতিস্থাপন করতে চান তখন বন্ধনীগুলিও কার্যকর হতে পারে। যদি আপনার ব্যাচে @ স্ট্রিং নামের একটি ভেরিয়েবল এবং [স্ট্রিং] নামের একটি কলাম রয়েছে, আপনি @ স্ট্রিংকে @ নিউ স্ট্রিংয়ের নাম পরিবর্তন না করেই কলামটির নাম [নিউস্ট্রিং] করতে পারেন।


5

1990 এর দশকে এসকিউএল-এর অন্ধকার যুগে এটি একটি ভাল অনুশীলন ছিল কারণ এসকিউএল ডিজাইনাররা অভিধানের প্রতিটি শব্দকে নতুন বৈশিষ্ট্যগুলির অফুরন্ত ভারসাম্যের জন্য কীওয়ার্ড হিসাবে যুক্ত করার চেষ্টা করছিলেন এবং তারা এটিকে এসকিউএল 3 খসড়া বলেছিলেন।

সুতরাং এটি সামঞ্জস্যতা এগিয়ে রাখে।

এবং আমি দেখতে পেয়েছি যে এটির আরও একটি দুর্দান্ত পার্শ্ব প্রতিক্রিয়া রয়েছে, আপনি কোড রিভিউ এবং রিফ্যাক্টরিংয়ে গ্রেপ ব্যবহার করার সময় এটি অনেক সহায়তা করে।


4

এছাড়াও কিছু শেয়ারপয়েন্ট ডাটাবেসে তাদের নামে হাইফেন থাকে। এসকিউএল স্টেটমেন্টগুলিতে বর্গাকার বন্ধনী ব্যবহার করে নামগুলি সঠিকভাবে বিশ্লেষণের অনুমতি দেয়।


3

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

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