[Powered by Google Translate] [এসকিউএল] [Christopher BARTHOLOMEW] [হার্ভার্ড বিশ্ববিদ্যালয়] [এই CS50] [CS50 টিভি] সুতরাং, প্রোগ্রামারদের একটি হাতিয়ার হিসাবে ডাটাবেস সংরক্ষণ এবং সংগঠিত ব্যবহার আমাদের টেবিলের মধ্যে তথ্য ক্রমাগত. এর মানে হল যে আপনার তথ্য যেমন হার্ড ড্রাইভ হিসাবে অনুদ্বায়ী medians সঞ্চিত থাকে, এবং এমনকি যখন কম্পিউটার চালু হয়, তথ্য এখনও অক্ষত আছে. প্রোগ্রামারদের হিসাবে এবং,, আমাদের প্রোগ্রাম যেমন সংরক্ষণকারী হিসাবে পরিস্থিতিতে জন্য উপাত্ত ব্যবহার ওয়েব ফর্ম থেকে ব্যবহারকারীর তথ্য, খুঁজছি জায় আপ, বা কি সাইটগুলি প্রদর্শন সম্পর্কে তথ্য হালনাগাদ করা হচ্ছে. কিন্তু কিভাবে আমরা আমাদের ডাটাবেসের সাথে আসলে কি মতবিনিময় বা আমরা কি করতে, পড়তে সঞ্চয়, মুছে দিন ব্যবহার করবেন, এবং এই ডাটাবেজ টেবিল মধ্যে আমাদের তথ্য আপডেট? ভাল, তবে উত্তর হবে যে আমরা একটি ডাটাবেস ভাষা বিশেষ ধরনের ব্যবহার যা আমাদের ডাটাবেজ টেবিল সঙ্গে সরাসরি যোগাযোগ. এটি এর নামের প্রশ্নের ভাষা হয় স্ট্রাকচার্ড, [স্ট্রাকচারড কোয়েরির ভাষা] অথবা আমি কি হিসাবে এসকিউএল পড়ুন. এখন, [SE-QueL], অথবা এসকিউএল, একটি প্রোগ্রামিং ভাষা নয়, কিন্তু পরিবর্তে, এটি একটি ভাষা যে একটি কমান্ড মানক সেট প্রদান যাও এবং উদ্ধার ডাটাবেস ম্যানেজমেন্ট সিস্টেম বিভিন্ন তথ্য থেকে নিপূণভাবে. CS50 উদ্দেশ্যে, আমরা চারটি ধাপে কমান্ড উপর যাবেন: নির্বাচন সন্নিবেশ, আপডেট, এবং মুছে দিন. উপরন্তু, আমরা একটি ডাটাবেস ওয়েব ইন্টারফেস নামক phpMyAdmin ব্যবহার করব, যন্ত্র যা আমাদের এসকিউএল স্টেটমেন্ট লিখুন ইনস্টল. সুতরাং, আপনি এই কমান্ড মনে রাখতে সাহায্য যাও, আমি একটি আলমারি আমাদের পরিস্থিতিতে সহায়তার মধ্যে করেছি কিছু cupcakes আনা. বলুন আপনি একটি cupcake এর ডাটাবেস আছে, যেখানে আপনি আপনার cupcakes সম্পর্কে সব তথ্য সংরক্ষণ করা. এখন, উপাত্ত অনেক সারণী থাকতে পারে না এবং সারণী নিজেদের অনেক কলাম থাকতে পারে না. আমাদের cupcake এর ডাটাবেস ইনসাইড, আমরা একটি টেবিল বলা cupcake_cupboard আছে. এই টেবিল ব্যবহার cupcakes সম্পর্কে সব তথ্য সংরক্ষণ করা হবে যে হল, আপনার মধ্যে আলমারি,. কলাম আপনার টেবিল অভ্যন্তরে যে একটি cupcake বৈশিষ্ট্যাবলী প্রতিনিধিত্বকারী. উদাহরণস্বরূপ, cupcake_cupboard এর কলাম রয়েছে পিষ্টক আইডি, CakeType, CakeColor, এবং CakeIsNice. এই বুলিয়ান টাইপ-কলামে যদি পিষ্টক হয় বা না চমৎকার চমৎকার নির্ধারণ করা হয়. আমরা একটি নির্বাচন বিবৃতি লেখা শুরু চলুন. নির্বাচন বিবৃতি একটি বিশেষ ডাটাবেস টেবিলের তথ্য আহরণের জন্য ব্যবহৃত হয়. এই পরিস্থিতিতে, আমরা সবকিছু জানতে চাই আমাদের সম্পর্কে সব cupcakes আলমারি মধ্যে বিদ্যমান. সিনট্যাক্স এই কাজের জন্য "নির্বাচন" স্থান তারকা, বা *, স্থান আমাদের টেবিল থেকে স্থান, যা cupcake_cupboard. চলুন এগিয়ে যান এবং যে চালানো হয়. যেহেতু আমরা দেখতে পারেন, এইসব আমাদের আলমারি আছে সব cupcakes. এটা *, বা তারকাচিহ্ন খেয়াল করা জরুরী, একটি ওয়াইল্ড কার্ড অক্ষর যে সব কিছু টেবিলের কলাম সংগ্রহের উল্লেখ করে. সাধারণত, আমরা একটি নির্দিষ্ট কলাম অথবা কলাম অ্যাক্সেস করতে পারেন দ্বারা প্রকৃত কলামের নামের সাথে প্রতিস্থাপন *. যদি আমরা একাধিক কলাম করতে চান, কিন্তু সব না, আমরা এই অর্জন করতে পারেন দ্বারা কলামটি একটি কমা দ্বারা প্রতিটি কলামের delimiting নাম লেখা. উদাহরণস্বরূপ, আমি কি শুধুমাত্র CakeId cupcake_cupboard টেবিলের এবং CakeType উদ্ধার করে. সিনট্যাক্স এই কাজের জন্য: নির্বাচন করুন স্থান CakeID কমা আমাদের টেবিল, cupcake_cupboard থেকে CakeType স্থান. চলুন এগিয়ে যান এবং এই চালানো হয়. এবং এখানে, এখন আমরা কেবল দুই কলামে আমরা উল্লেখ করা আছে আমাদের জন্য আলমারি প্রতিটি cupcake. আমরা নির্দিষ্ট করে আমাদের প্রশ্নের সাথে ফলাফল পরিমার্জন করতে পারেন "কোথায়" শুধুমাত্র টেবিলের নাম পরে ধারা. উদাহরণস্বরূপ, মনে হচ্ছে আমাদের আলমারি মধ্যে একটি cupcake করা আছে যে ভাল,, খুঁজছি চমৎকার তাই না. যাক এর মধ্যে সব আমাদের আলমারি cupcakes যে, ভাল হয়, তাই না Nice চিত্র আউট খুঁজছি "কোথায়" ধারা ব্যবহার করে. সিনট্যাক্স এই কাজের জন্য: নির্বাচন করুন স্থান থেকে cupcake_cupboard স্থান স্থান * স্থান কোথায় স্থান এই ক্ষেত্রে আমাদের শর্তাধীন কলাম, CakeIsNice =, এবং মিথ্যা বুলিয়ান মান. এটা যে যদি আপনি স্ট্রিং ব্যবহার করে থাকেন, তাহলে আপনাকে সিঙ্গল কোট তা বেষ্টন করা আবশ্যক গুরুত্বপূর্ণ. এই এসকিউএল সমস্ত স্ট্রিং জন্য সত্য হয়, অথবা, এসকিউএল ডাটাবেস পদ, বৈকল্পিক অক্ষর Varchar ডাটাটাইপ হিসাবে পরিচিত. এই ক্ষেত্রে, আমরা সত্য বা মিথ্যা ব্যবহার করে, যা একটি বুলিয়ান মান এবং একটি পংক্তি নির্মিত হয় না. চলুন এগিয়ে যান এবং এই কমান্ড প্রয়োগ করুন. দেখ দেখ এবং দেখ দেখ, এটা কেস যে আমরা 1 চকলেট আছে আমাদের আলমারি মধ্যে cupcake তাই সুন্দর না. এর পরে, আমরা একটি বিবৃতি সন্নিবেশ লিখুন চলুন. সন্নিবেশ বিবৃতি বা সন্নিবেশ যোগ করার জন্য ব্যবহৃত হয় অতিরিক্ত তথ্য আপনার ডেটাবেস টেবিলের মধ্যে সারি. আমাদের দৃশ্যকল্প Revisiting, আসুন আমরা যে মাত্র একটি ব্র্যান্ড নতুন cupcake করেছি নিই না. যেহেতু আমরা খুব cupcake ইটার সংগঠিত হয়, আমরা এই নতুন cupcake সন্নিবেশ আছে চলুন আমাদের cupcake_cupboard টেবিল. সিনট্যাক্স এই কাজের জন্য এই: আমাদের স্থান টেবিলের মধ্যে স্থান ঢোকান, cupcake_cupboard, স্থান (, এবং এখানে আমরা একটি কমা দ্বারা কলাম নাম উল্লেখ, চিহ্নিত, CakeType কমা CakeColor CakeIsNice কমা) স্থান. এই পর, আমরা শব্দ মূল্যবোধ স্থান (লিখুন, এবং এখানে আমরা প্রতিটি কলামের জন্য মান যথাক্রমে লিখুন, এছাড়াও একটি কমা দ্বারা চিহ্নিত. উদ্ধৃতি একা, কারণ তাদের সব Varchar মান আমরা একক উদ্ধৃতি চিহ্ন তাদের পরিবেষ্টন করব, চিনাবাদাম মাখন 'কমা' হালকা বাদামী 'কমা মুক্ত. এখন, এটা একটি যাও চিহ্নিত অনন্য নম্বর দিতে প্রতিটি সারি গুরুত্বপূর্ণ. একটি কলাম Autoincrementing এই হিসাবে উপলব্ধ করা হয়  "কখনও না দুটি একই ID-র টেবিলের মধ্যে. উপস্থিত হতে পারে" চলুন এগিয়ে যান এবং চালানো হয়. এখন পর্যন্ত আমরা সব সংগঠিত যান,. পরের SQL স্টেটমেন্ট যে আমরা লিখতে হবে একটি আপডেট বিবৃতি. আপডেট স্টেটমেন্টটি ব্যবহৃত একটি কলামের মধ্যে তথ্য সংশোধন করতে হতে পারে আপনার জন্য কোনো ডাটাবেস টেবিল বিদ্যমান সারি. এর আগে আমাদের দৃশ্যকল্প, একটি নির্বাচন স্টেটমেন্ট ব্যবহার করে, আমরা একটি cupcake চিহ্নিত যার মূল্য আমাদের CakeIsNice cupcake_cupboard টেবিল এর মধ্যে ছিল মিথ্যা. এর যে সময় আমাদের চিনাবাদাম মাখন cupcake তন্দুর মধ্যে ছিল অনুমান করা যাক, আমরা করেন না, তাই আমাদের-চমৎকার cupcake খুব সুন্দর. বিশেষভাবে সংগঠিত হচ্ছে তাই, আমরা আমাদের cupcake এই মান প্রতিফলিত করতে চান আমাদের cupcake_cupboard টেবিল. অতএব, আসুন এই প্রতিফলিত আমাদের ডাটাবেসের মধ্যে চকলেট cupcake আপডেট. সিন্টেক্স হল: আপডেট স্থান আমাদের টেবিল, cupcake_cupboard, স্থান স্থান সেট করুন কলামের যে আমরা পরিবর্তন করতে চান, CakeIsNice =. তারপর এখানে আমরা আমাদের নতুন মান মুক্ত স্থান লিখুন. এখন, কারণ আমরা এই মান সঙ্গে সব সারি আপডেট করতে না চান, আমরা একটি "কোথায়" ধারা যা আমাদের তুচ্ছ হবে প্রদান করতে চান আপনি সঠিক যে সারি আমরা পরিবর্তন করতে চান. এই ক্ষেত্রে, আমরা জানি যে শুধুমাত্র একটি cupcake আছে যে একটি মিথ্যা মধ্যে CakeIsNice মান আছে. উপরন্তু, আমরা নিশ্চিত করতে হবে যে আমরা সঠিক সারি আপডেট হয় দ্বারা "এবং" ধারা ব্যবহার করে. আমরা আমাদের প্রশ্নের সাথে আরও পরিমার্জন করা "এবং" ধারা ব্যবহার. কারণ এই ক্ষেত্রে, আমরা জানি যে cupcake হয় চকলেট, আমরা এই CakeType কলাম ব্যবহার করতে হবে. কোথায় স্থান আমাদের শর্তাধীন কলামের স্থান CakeIsNice স্থান = মিথ্যা, এবং স্থান CakeType = 'চকলেট.' সুতরাং, এটি নির্বাণ সব একসঙ্গে, এই আপডেটে, বিবৃতি বলা আমাদের cupcake আলমারি সব cupcakes খুঁজে, এবং যদি একটি cupcake যার কলাম CakeIsNice মূল্য ফলস দেওয়া আছে এবং CakeType রয়েছে মান চকলেট, আমরা মুক্ত নির্দিষ্ট সারি CakeIsNice মান আপডেট করতে চান. সুতরাং, আসুন এগিয়ে যান এবং স্টেটমেন্ট চালানো. এবং এখন, আমরা সংগঠিত করছেন. সমস্ত cupcakes এই আলোচনা সম্পর্কে একটি বিট ক্ষুধার্ত করেছে. আমি মনে করি আমি নিজেই এক যাও সাহায্য করা উচিত. কিন্তু যদি আমি আসলে এই cupcake খেতে, আমি অন্তত তার অস্তিত্ব মুছে ফেলা আবশ্যক  থেকে আমাদের cupcake_cupboard টেবিল. এই কাজের জন্য, আমরা "মুছে ফেলুন", বিবৃতি ব্যবহার করতে হবে. "মুছে ফেলুন", বিবৃতি ব্যবহৃত টেবিল থেকে সমস্ত অথবা কিছু সারি মুছে ফেলার জন্য ব্যবহার করা যেতে পারে. আপনি যদি টেবিল থেকে কিছু নির্দিষ্ট সারি সরাতে চান, তারপর আপনি একটি "কোথায়" ধারা প্রদান, এইভাবে একটি কলামে উল্লেখ করতে হবে যে অনন্য সারি যে আপনি মুছে ফেলতে ইচ্ছুক থাকতে হবে. এটি সিনট্যাক্স: স্থান স্থান থেকে আমাদের টেবিল, cupcake_cupboard, স্থান মুছতে. এই সময়ে এখন,, যখনই আপনি আপনার মুছে ফেলা পর্যন্ত বিবৃতিতে এই আপনি খুব যত্নশীল হতে চান. উদাহরণস্বরূপ, যদি আমি এই কোয়েরি চালানো চান হিসাবে কিছু "কোথায়" ধারা ছাড়া হয় আমি এই cupcake_cupboard টেবিলে সব তথ্য হারাবে, কিন্তু কারণ ইতিমধ্যে আমি জানি যে আমার পিষ্টক ID-র জন্য পৃথক হবে, আমি ব্যবহার করব লাল আমার "কোথায়" ধারা জন্য মখমল পিষ্টক আইডি. কোথায় স্থান আমাদের কলাম, CakeID = 1. যেহেতু এটি একটি পূর্ণসংখ্যা মান কোন প্রয়োজন মধ্যে একক উদ্ধৃতি চিহ্ন ঘিরা আছে. সুতরাং, আসুন স্টেটমেন্ট চালানো. অবশ্য, এখন যে আমরা এই cupcake অস্তিত্ব অপনোদিত করেছি আমাদের cupcake_cupboard টেবিল থেকে, আমরা কেবল এক জিনিস বাম আছে: এটিকে উধাও হয়ে যায়. আমি ক্রিস্টোফার BARTHOLOMEW. এটি CS50.