এসকিউএলে একক এবং ডাবল উদ্ধৃতিগুলির মধ্যে পার্থক্য কী?


224

এসকিউএল একক উদ্ধৃতি এবং ডাবল উদ্ধৃতি মধ্যে পার্থক্য কি?

উত্তর:


153

একক উদ্ধৃতি এসকিউএল-এ স্ট্রিংয়ের শুরু এবং শেষ নির্দেশ করতে ব্যবহৃত হয়। ডাবল উদ্ধৃতিগুলি সাধারণত এসকিউএল-তে ব্যবহৃত হয় না, তবে এটি ডাটাবেস থেকে ডাটাবেসে পরিবর্তিত হতে পারে।

একক উদ্ধৃতি ব্যবহারে লেগে থাকুন।

এটি যাইহোক প্রাথমিক ব্যবহার। আপনি কলামের জন্য একটি একক উক্তি ব্যবহার করতে পারেন ওরফে - যেখানে আপনি চান যে কলামের নামটি আপনি নিজের অ্যাপ্লিকেশন কোডটিতে উল্লেখ করেছেন কলামটি আসলে ডাটাবেসে ডাকা হয় তার চেয়ে অন্য কিছু হতে পারে। উদাহরণস্বরূপ: PRODUCT.idহিসাবে আরও পঠনযোগ্য হবে product_id, সুতরাং আপনি নিম্নলিখিত দুটি ব্যবহার করুন:

  • SELECT PRODUCT.id AS product_id
  • SELECT PRODUCT.id 'product_id'

হয় আরাকল, এসকিউএল সার্ভার, মাইএসকিউএল…

কলামের উলেফে কোনও স্থানের অক্ষর অন্তর্ভুক্ত থাকলে আপনাকে একক উদ্ধৃতি ব্যবহার করতে হবে, উদাহরণস্বরূপ product id, তবে কলামের একটি নাম উচ্চারণের জন্য এটি একাধিক শব্দের চেয়ে বেশি হওয়া বাঞ্ছনীয় নয়।


31
ডাবল উদ্ধৃতি সাধারণত নাম বস্তুর জন্য ব্যবহৃত হয় (যেমন কলামের নাম "প্রথম নাম")। এটি এসকিউএল -২২ স্ট্যান্ডার্ডের একটি অংশ।
LukLed

19
না। আমি কলামের নাম বোঝাতে চাইছি তবে এটি অন্যান্য উপকরণগুলি নিয়েও উদ্বেগ প্রকাশ করে। এসকিউএল -২২ স্ট্যান্ডার্ডের কারণে, আমি উপাধি এবং অস্বাভাবিক অক্ষরের সাথে নামের জন্য ডাবল উদ্ধৃতি চিহ্ন ব্যবহার করার পরামর্শ দেব। SELECT * FROM USERS 'Users'এসকিউএল সার্ভারে কাজ করে না, তবে SELECT * FROM USERS "Users"করে।
LukLed

122
আমি যখনই একটি সাধারণ নিয়ম উপলব্ধি না করি তখন পর্যন্ত আমি সর্বদা এই ভুলটি করি: [এস] ট্রাইংয়ের জন্য [এস] ইনগ্যাল কোট, [ডি] অ্যাটাবেসে থাকা জিনিসগুলির জন্য উওল উক্তি
স্পেসডম্যান

4
সনাক্তকারীদের জন্য আপনার দ্বিগুণ উক্তি ব্যবহার করা উচিত। একক উদ্ধৃতি মান বিরুদ্ধে।
এরউইন ব্র্যান্ডসটেটার

6
SELECT PRODUCT.id 'product_id'ওরাকলে কাজ করবে না । একক উদ্ধৃতি কেবল চরিত্রের অক্ষরের জন্য।
এগুলিকে

80

কোন ক্ষেত্রে কী ব্যবহার করবেন তা আমাদের মনে রাখার জন্য একটি সহজ নিয়ম:

  • [ এস ] ইনগেল কোটগুলি [ এস ] ট্রিংয়ের জন্য; [ ডি ] আউটডে কোটগুলি হ'ল [ ডি ] ডাটাবেস শনাক্তকারীদের জন্য;

মাইএসকিউএল এবং MariaDB সালে ` (ব্যাকটিক) প্রতীক হিসাবে একই " প্রতীক। আপনি ব্যবহার করতে পারেন " যখন আপনার SQL_MODEকরেছে ANSI_QUOTESসক্ষম করা হয়েছে।


4
স্পষ্ট করার জন্য, ব্যাকটিক (`) শনাক্তকারীদের এএনএসআই_কিউটিএস সক্ষম আছে কিনা তা সীমাবদ্ধ করতে ব্যবহার করা যেতে পারে, তবে যদি এএনএসআই_কোটিস সক্ষম হয়, তবে" আপনি আক্ষরিক স্ট্রিংয়ের উদ্ধৃতিতে ডাবল উদ্ধৃতি চিহ্ন ব্যবহার করতে পারবেন না, কারণ এটি সনাক্তকারী হিসাবে ব্যাখ্যা করা হয়েছে। " ( উত্স ) (এই সমস্ত অনুমান করে আপনি মাইএসকিউএল, মাইন্ড) সম্পর্কে কথা বলছেন))
স্যাম

কি দারুন! দুর্দান্ত মেমো!
অ্যালেক্স ইউ

তবে [ এস ] ইনগেল উদ্ধৃতিগুলি [ ডি ] আক্ষরিক খাওয়ার জন্যও । : - /
বিল কারভিন

তারিখের
আক্ষরিক

64

একক উদ্ধৃতিগুলি একটি স্ট্রিং ধ্রুবক বা তারিখ / সময় ধ্রুবককে সীমিত করে দেয়।

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

আরো দেখুন:

আপনি মাইএসকিউএল এএনএসআই মান অনুযায়ী ডাবল-কোট ব্যবহার করতে পারেন:

SET GLOBAL SQL_MODE=ANSI_QUOTES

আপনি মাইক্রোসফ্ট এসকিউএল সার্ভারকে এএনএসআই স্ট্যান্ডার্ড অনুযায়ী ডাবল-কোট ব্যবহার করতে পারেন:

SET QUOTED_IDENTIFIER ON

36

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

একক উদ্ধৃতি স্ট্রিং জন্য।

যাইহোক, মাইএসকিউএল স্ট্যান্ডার্ড সম্পর্কে অসচেতন (যদি না এর এসকিউএল_মোডি পরিবর্তন হয়) এবং সেগুলি স্ট্রিংয়ের জন্য আন্তঃব্যক্তভাবে ব্যবহার করার অনুমতি দেয়।

তদুপরি, সাইডবেস এবং মাইক্রোসফ্ট সনাক্তকারী উদ্ধৃতিগুলির জন্য বর্গাকার বন্ধনী ব্যবহার করে।

সুতরাং এটি কিছুটা বিক্রেতা নির্দিষ্ট।

পোস্টগ্রিস এবং আইবিএম এর মতো অন্যান্য ডাটাবেসগুলি আসলে আনসির মান মেনে চলে :)


4
মাইএসকিউএল সনাক্তকারী উদ্ধৃতি হিসাবে ব্যাকটিক uses ব্যবহার করে। (কেবলমাত্র সমাপ্তির জন্য)
dar7yl

1
উদাহরণ: আপনি যদি কোনও পোস্টগ্রিস কলামের "তারিখ" (যা সংরক্ষিত) নাম রাখতে চান তবে আপনার এটি দ্বিগুণ করতে হবে।
fny

9

আমি এই স্মৃতিচারণ ব্যবহার:

  • একক উদ্ধৃতিগুলি স্ট্রিংয়ের জন্য (একটি জিনিস)
  • ডাবল উদ্ধৃতিগুলি সারণীর নাম এবং কলামের নামগুলির জন্য (দুটি জিনিস)

চশমা অনুসারে এটি 100% সঠিক নয়, তবে এই স্মৃতিচন্দ্র আমাকে (মানুষকে) সহায়তা করে।


1

পার্থক্যটি তাদের ব্যবহারের মধ্যে রয়েছে। একক উদ্ধৃতিগুলি বেশিরভাগ WHERE, HAVING এবং কিছু অন্তর্নির্মিত এসকিউএল ফাংশন যেমন কনক্যাট, স্ট্রপপস, পজিশন ইত্যাদিতে স্ট্রিং উল্লেখ করতে ব্যবহৃত হয়

আপনি যখন কোনও কোনও উপনামের মধ্যবর্তী স্থান ব্যবহার করতে চান তখন আপনি সেই উপন্যাসটি উল্লেখ করতে ডাবল উদ্ধৃতি ব্যবহার করতে পারেন।

উদাহরণ স্বরূপ

(select account_id,count(*) "count of" from orders group by 1)sub 

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

এখন আসুন যেখানে "গণনা" 20 এর চেয়ে বেশি সারিগুলি প্রদর্শন করতে একটি বাহ্যিক ক্যোয়ারী লিখি।

select "count of" from 
(select account_id,count(*) "count of" from orders group by 1)sub where "count of" >20;

আপনি সাধারণ টেবিলের মত প্রকাশের ক্ষেত্রেও একই কেস প্রয়োগ করতে পারেন।

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