মাইএসকিউএল এর নকশা [টেবিল] এর সমতুল্য কোনও এসকিউএলাইট আছে?


442

আমি সবে এসকিউএলাইট শিখতে শুরু করছি । মাইএসকিউএল-এর মতো কোনও টেবিলের বিশদটি দেখতে সক্ষম হয়ে ভালো লাগবে DESCRIBE [table]PRAGMA table_info [table]যথেষ্ট ভাল নয়, কারণ এটিতে কেবল প্রাথমিক তথ্য রয়েছে (উদাহরণস্বরূপ, এটি কলামটি কোনও সাজানোর ক্ষেত্র কিনা তা তা দেখায় না)। এসকিউএলাইটের এটি করার কোনও উপায় আছে?

উত্তর:


560

SQLite কমান্ড লাইন ইউটিলিটি টি .schema TABLENAMEকমান্ড যে শো আপনি বিবৃতি তৈরি করুন।


65
আপনি কোনও টেবিল ছাড়াই ".schema" ব্যবহার করতে পারেন এবং এটি আপনাকে সমস্ত দেখায়।
ড্যান বেনামি

43
বিবৃতিটির শেষে আধা-কোলনটি ছেড়ে দিতে ভুলবেন না
আরটিএফ

10
একটি আধা-কোলন প্রয়োজন হয় না
সাইমন

40
@ সিমোন একটি আধা-কোলন কমান্ডটি নিঃশব্দে ব্যর্থ করে দেবে
djeikyb

4
@djeikyb। এটিকে কি বাগ হিসাবে বিবেচনা করা উচিত নয়?
মাকান তায়েবী

292
PRAGMA table_info([tablename]);

19
এটি .schema tablenameআমার চেয়ে মাইএসকিউএল এর বর্ণনার সাথে সমান বলে মনে হচ্ছে ।
tybro0103

2
হাঁ। এটি আমার পক্ষে কাজ করেছে। .schema TABLENAME করেনি। একা .schema আপনাকে সমস্ত তৈরি বিবৃতি প্রদর্শন করে তবে PRAGMA এর ফলাফলটি অনেক বেশি কার্যকর যদি আমি কেবল একটি টেবিলটি দেখতে চাই।
দেব কাঞ্চন

15
এটি মনে হয় এটি গ্রহণযোগ্য উত্তর হওয়া উচিত কারণ এটি কোনও কমান্ড লাইন ইন্টারফেসের উপর নির্ভরশীল না হয়ে অনুসন্ধানের মাধ্যমে কাজ করে। আমার কাছ থেকে +1
আকোই মেক্সেক্স

সংযোজন: কেবলমাত্র আমি লক্ষ্য করছি যে আমি প্রাথমিক কী সাথে আউটপুট তৈরি করি না যখন আমি প্রাথমিক প্রাথমিক কী দিয়ে সারণী তৈরি করি, কেবলমাত্র ইন্টিগ্রেইর।
আকোই মেক্সেক্স

3
@ অ্যাকোআইএমএক্সএক্স: আমার আসল প্রশ্ন থেকে: " PRAGMA table_info [table]যথেষ্ট ভাল নয়, কারণ এটিতে কেবল প্রাথমিক তথ্য রয়েছে (উদাহরণস্বরূপ, এটি দেখায় না যে কোনও কলামটি কোনও সাজানোর ক্ষেত্র বা না)"।
ম্যাথু

116

আপনি কি কোনও টেবিল তৈরি করতে ব্যবহৃত এসকিউএল খুঁজছেন? তার জন্য, আপনি টেবিলটি জিজ্ঞাসাsqlite_master করতে পারেন :

sqlite> CREATE TABLE foo (bar INT, quux TEXT);
sqlite> SELECT * FROM sqlite_master;
table|foo|foo|2|CREATE TABLE foo (bar INT, quux TEXT)
sqlite> SELECT sql FROM sqlite_master WHERE name = 'foo';
CREATE TABLE foo (bar INT, quux TEXT)

এই এবং এর মধ্যে কোন পার্থক্য আছে .schema foo?
ম্যাথু

15
@ ম্যাথিউ: .schemaকেবল একটি কমান্ড লাইন থেকে ব্যবহার করা যেতে পারে; উপরের কমান্ডগুলি একটি লাইব্রেরির মাধ্যমে ক্যোয়ারী হিসাবে চালানো যেতে পারে (পাইথন, সি # ইত্যাদি)।
মার্ক রুশাকফ

@ মার্করুশাকফ কিন্তু ফলাফলটি কি একই রকম?
ডিভিবি

2
+1 "করতে sqlite_master থেকে নির্বাচন করুন *" Chrome ডেভ সরঞ্জাম কাজ করে যখন ডিবাগিং WebSql
contactmatt


6

অন্যান্য উত্তরের মন্তব্যে কিছু লোক যাতে বিভ্রান্ত হয় তা রোধ করতে:

  1. যদি .schemaবা query from sqlite_masterকোন আউটপুট দেয় না, এটি একটি অবর্তমান ইঙ্গিত tablenameযেমন এটিও একটি কারণে হয়ে থাকতে পারে ;জন্য শেষে সেমিকোলন .schema, .tables... অথবা শুধু কারণ টেবিল সত্যিই বিদ্যমান নয়। এটি .schemaঠিক কাজ করে না খুব অসম্ভব এবং এরপরে স্ক্লাইট প্রকল্পে একটি বাগ রিপোর্ট দাখিল করা উচিত।

... .schema কেবল একটি কমান্ড লাইন থেকে ব্যবহার করা যেতে পারে; উপরের কমান্ডগুলি> একটি লাইব্রেরির মাধ্যমে ক্যোয়ারী হিসাবে চালানো যেতে পারে (পাইথন, সি # ইত্যাদি)। - মার্ক রুশাকফ জুলাই 25 '10 এ 21:09 এ

  1. 'কেবলমাত্র একটি কমান্ড লাইন থেকে ব্যবহার করা যেতে পারে' মানুষকে বিভ্রান্ত করতে পারে। প্রায় কোনও (সম্ভাব্য প্রতিটি?) প্রোগ্রামিং ভাষা অন্যান্য প্রোগ্রাম / কমান্ড কল করতে পারে call সুতরাং উদ্ধৃত মন্তব্যটি অন্য প্রোগ্রামকে কল করার মতো দুর্ভাগ্য, sqliteএক্ষেত্রে, ভাষা প্রতিটি প্রোগ্রামের জন্য একটি wrapper/ libraryসরবরাহ করে তার চেয়ে বেশি সমর্থিত হওয়ার সম্ভাবনা রয়েছে (যা কেবলমাত্র প্রোগ্রামের জনতার খুব প্রকৃতির দ্বারা অসম্পূর্ণতার ঝুঁকির মধ্যে নেই) , তবে এটি বিশ্বে ডেটা বিশৃঙ্খলা আরও এগিয়ে single-source principle, অভিনয় জটিল, জটিল করে maintenanceতোলে)।

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

আমি সম্মতি জানাই এটি কোনও খারাপ নয়, এটি লাইব্রেরির মতোই। যে কারণে লিনাক্স | বিএসডি শিপ প্যাকেজ ম্যানেজারগুলিকে বিকৃত করে। এবং কেন 0 ইনস্টল ক্রস প্ল্যাটফর্মের প্রধানমন্ত্রী। আমার বক্তব্যটি কেবল স্পষ্ট করেই জানাতে হয়েছিল যে সমস্ত প্রোগ্রামের মোড়কের দরকার নেই। এটি প্রতিবারই বোঝা যায় না। এই ক্ষেত্রে (ডিবি হ্যান্ডলিং) অবশ্যই একটি মোড়ক ব্যবহার করা খারাপ ধারণা নয়।
র‌্যাডগাস্ট

1

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

এখানে চিত্র বর্ণনা লিখুন

রেকর্ড / টেবিল_নামে ডান ক্লিক করুন, অনুলিপি তৈরি বিবৃতিতে ক্লিক করুন এবং সেখানে এটি রয়েছে।

আশা করি এটি এমন কিছু শিক্ষানবিশকে সহায়তা করেছে যারা কমান্ডলাইন নিয়ে কাজ করতে ব্যর্থ হয়েছিল।

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