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


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.