আমি কীভাবে সমস্ত কলামকে একটি টেবিলের তালিকা করব?


231

বিভিন্ন জনপ্রিয় ডাটাবেস সিস্টেমের জন্য, আপনি কীভাবে একটি টেবিলের সমস্ত কলাম তালিকাভুক্ত করবেন?


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

উত্তর:


254

মাইএসকিউএলের জন্য, ব্যবহার করুন:

DESCRIBE name_of_table;

আপনি এসকিউএল * প্লাস বা ওরাকল এর এসকিউএল বিকাশকারী যতক্ষণ ব্যবহার করছেন ততক্ষণ এটি ওরাকলের পক্ষে কাজ করে।


16
এই সমাধানটি এমএসএসকিউএল এর জন্য নয় এমএসএসকিউএল
— হামদ খান

2
@ ডিএমভিয়ানা আমি মনে করি না যে অগত্যা সমস্ত ওরাকল, তবে এসকিউএল * প্লাসের ক্ষেত্রে প্রযোজ্য।
— ট্রিপ কাইনেটিক্স

এটি DESCRIBE নাম_ও_ টেবিল`` হওয়া উচিত ;
— বিহ্যাকার

স্ক্লাইটের জন্য - ব্যবহার করুন: প্রগমা টেবিল_ইনফো (টেবিল_নাম) অর্থাৎ স্ক্লাইট> প্রগমা টেবিল_ইনফো (কলাম 1);
— GyRo

সম্পাদনা, যেহেতু DESCRIBEএকটি ওরাকল পিএলএসকিউএল নির্দেশ নয় বরং একটি এসকিউএল * প্লাস কমান্ড এবং যেমন এটি বেশিরভাগ এসকিউএল আইডিইতে কাজ করে না।
— ওয়ালেন

117

ওরাকল (পিএল / এসকিউএল) এর জন্য

SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'

মাইএসকিউএল এর জন্য

SHOW COLUMNS FROM table_name

4
আপনি সম্ভবত ওরাকল ক্যোয়ারীটি কলাম_আইডির মাধ্যমে অর্ডার করতে চান
— ডেভিড অলড্রিজ

6
ওরাকল এর জন্যও বৈধ DESCRIBE name_of_table।
— পিগুয়েরাস

<ডেটাবেস_নাম> ব্যবহার করুন; <table_name> এ '<কলাম / প্রাকফিক্স>%' এর মতো কলামগুলি দেখান; আপনাকে নির্দিষ্ট উপসর্গ দিয়ে শুরু হওয়া কলামগুলিকে কেবল তালিকাবদ্ধ করতে দেবে। অবশ্যই কোণের বন্ধনী ছাড়াই।
— স্টারহাউস

কি user_tab_colsআপনার ক্যোয়ারীতে?
— জোগি

@ জোগি - গুগল "ওরাকল ব্যবহারকারী_ত্যাব_কোলস" - এর বিল্ট ইন ইন ওরাকল ডিবি।
— টুলমেকারস্টেভ

103

এমএস এসকিউএল সার্ভারের জন্য:

select * from information_schema.columns where table_name = 'tableName'

9
এখানে আগ্রহের কলামটি হবে COLUMN_NAME।
— বাগিগিবিয়

4
এটি অনেক ডিবিএমএস-এ কাজ করা উচিত। information_schema.columnsসিস্টেম ভিউ ANSI SQLস্ট্যান্ডার্ড ( লিঙ্ক ) এর অংশ ।
— বোগদান সাহলেয়ান

4
সদুত্তর তবে ডুপ্লিকেট এড়াতে আমি ব্যবহার করব:select COLUMN_NAME from information_schema.columns where table_name = 'tableName' and table_schema = 'databaseName'
— বিলিএনও

এটি এসকিউএল -২২ এএনএসআই অনুবর্তী, এবং সমস্ত ডাটাবেস ইঞ্জিনে কাজ করা উচিত।
— গ্যারেথ ডেভিডসন

39

(পোস্টগ্র্রেএসকিউএল অনার্সের জন্য, কিংডমের সর্বাধিক উন্নত ডিডিবিবি 5 বছর অবধি)

পোস্টগ্র্যাস এসকিউএল এ:

\d table_name

অথবা, এসকিউএল ব্যবহার করে:

select column_name, data_type, character_maximum_length
    from INFORMATION_SCHEMA.COLUMNS 
    where table_name = 'table_name';

4
\ d টেবিল_নাম হওয়া উচিত। t dt টেবিলের নাম সম্পর্কের তালিকা করে।
— l85m

36

আমি জানি দেরি হয়ে গেছে তবে আমি এই কমান্ডটি ওরাকলের জন্য ব্যবহার করি:

select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'


আমি ওরাকলে এটি চেষ্টা করেছি এবং এটি কার্যকর হয়নি। কলাম_নামটি মুদ্রিত হয়েছিল কিন্তু অন্য কিছুই নয়। আমাকে SELECT CAST (COLUMN_NAME AS CHAR (40)) ব্যবহার করতে হয়েছিল || '' || একটি দুর্দান্ত ফর্ম্যাট পেতে এবং একত্রীকরণের সাথে একাধিক কলাম প্রাপ্ত করার জন্য DATA_TYPE।
— ইমন কেনি

27

SQL সার্ভার

SELECT 
    c.name 
FROM
    sys.objects o
INNER JOIN
    sys.columns c
ON
    c.object_id = o.object_id
AND o.name = 'Table_Name'

অথবা

SELECT 
    COLUMN_NAME 
FROM 
    INFORMATION_SCHEMA.COLUMNS
WHERE 
    TABLE_NAME  = 'Table_Name'

দ্বিতীয় উপায়টি একটি এএনএসআই স্ট্যান্ডার্ড এবং সুতরাং সমস্ত এএনএসআই অনুগত ডেটাবেসগুলিতে কাজ করা উচিত ।


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

1
@ জোনব্রেভ - এটি সঠিক, "এখানে আপনার টেবিলের নাম " োকাতে " বোঝানোর জন্য বর্গাকার বন্ধনীগুলি ছিল :) :)
— রাশ ক্যাম

বর্গাকার বন্ধনী হওয়ার কারণে, আমি এটি এখানে " বর্গাকার বন্ধনীর ভিতরে আপনার টেবিলের নামটি সন্নিবেশ করান (সম্ভাব্য সংরক্ষিত শব্দের কারণে) " হিসাবে পড়েছিলাম এবং তার পরে কোনও মিল পাওয়া যায়নি :) সম্ভবত বিএনএফ <Table Name>অস্পষ্টতা এড়াতে পারত। যাইহোক, আমি বুঝতে পেরেছিলাম যে আপনি সম্ভবত লক্ষ্য রেখেছিলেন যে আমি মন্তব্যটি লিখেছি --- এটি কেবল অন্য ক্ষেত্রে সতর্ক করার কোনও ক্ষতি করে না।
— জোনব্রেভ

1
কেবল এমএসএসকিউএল এর জন্য কাজ করে যদি টেবিলের নামের চারপাশে '[]' এবং কোটস '' প্রয়োজন হয় না।
— এক্সভিলেডেড


12

মাইক্রোসফ্ট এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও 2008 আর 2:

কোনও ক্যোয়ারী সম্পাদকটিতে, আপনি যদি সারণির নামের পাঠ্যকে হাইলাইট করেন (প্রাক্তন dbo.MyTable) এবং ALT+ টিপুন F1, আপনি কলামের নাম, টাইপ, দৈর্ঘ্য ইত্যাদির একটি তালিকা পাবেন you'll

ALT+ F1আপনি হাইলাইট করার সময় এই সাইট অনুযায়ীdbo.MyTable চলমান সমানEXEC sp_help 'dbo.MyTable'

INFORMATION_SCHEMA.COLUMNS কে কাজ করার জন্য জিজ্ঞাসা করার প্রকরণগুলি আমি পেতে পারি না, তাই পরিবর্তে আমি এটি ব্যবহার করি।


1
এসএসএমএস ২০১২ সালে কাজ করেনি। বিটিডাব্লু বলতে আপনার কি এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও 2008 বোঝায়?
— হামাদ খান

1
হ্যাঁ, আরও সুনির্দিষ্টভাবে আমি মাইক্রোসফ্ট এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও 2008 আর 2 বোঝাতে চাইছি। আমি সম্পাদনা করব।
— লেসেলি সেজে

4

SQL সার্ভার

একটি ডাটাবেসের সমস্ত ব্যবহারকারীর সংজ্ঞায়িত টেবিল তালিকা করতে:

use [databasename]
select name from sysobjects where type = 'u'

একটি টেবিলের সমস্ত কলাম তালিকাভুক্ত করতে:

use [databasename]
select name from syscolumns where id=object_id('tablename')

হেহ? এটি ঠিক ভুল ... আপনি কেবল ডেটাবেসগুলির জন্য ইউএসই ব্যবহার করতে পারেন ... এবং ক্যোয়ারী ডেটাবেজে সমস্ত ব্যবহারকারীর সংজ্ঞায়িত টেবিলগুলি ফেরত দেয় যা ওপি চেয়েছিল তা নয়।
— ম্যাক্সিমিলিয়ান মায়ারেল


3

এসকিউএল সার্ভারে অন্যদের জন্য কেবল একটি সংশোধন করা (স্কিমা উপসর্গ আরও গুরুত্বপূর্ণ হয়ে উঠছে!):

SELECT name
  FROM sys.columns 
  WHERE [object_id] = OBJECT_ID('dbo.tablename');

3

উদাহরণ:

select Table_name as [Table] , column_name as [Column] , Table_catalog as [Database], table_schema as [Schema]  from information_schema.columns
where table_schema = 'dbo'
order by Table_name,COLUMN_NAME

শুধু আমার কোড

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