আমি কীভাবে দেখতে পাব যে কোনও অক্ষর একটি মাইএসকিউএল ডাটাবেস / টেবিল / কলামটি সেট করে?


652

এর জন্য (ডিফল্ট) অক্ষর কী:

  • মাইএসকিউএল ডাটাবেস

  • মাইএসকিউএল টেবিল

  • মাইএসকিউএল কলাম


1
টেবিল এবং কলামগুলির জন্য, স্ট্যাকওভারফ্লোSHOW CREATE TABLE
রিক জেমস

উত্তর:


743

আমি এখানে এটি কীভাবে করব -

স্কিমাসের জন্য (বা ডেটাবেসগুলি - এগুলি প্রতিশব্দ):

SELECT default_character_set_name FROM information_schema.SCHEMATA 
WHERE schema_name = "schemaname";

টেবিলগুলির জন্য:

SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,
       information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
WHERE CCSA.collation_name = T.table_collation
  AND T.table_schema = "schemaname"
  AND T.table_name = "tablename";

কলামগুলির জন্য:

SELECT character_set_name FROM information_schema.`COLUMNS` 
WHERE table_schema = "schemaname"
  AND table_name = "tablename"
  AND column_name = "columnname";

3
লক্ষ্য করা উচিত যে তথ্য_সেমিমা কেবল মাইএসকিউএল 5-এ রয়েছে যা আমি বিশ্বাস করি।
ভেক্স

4
যতদূর আমি নিকটতমকে বলতে পারি আপনি মাইএসকিউএল <5 তে কলামের নির্দিষ্ট অক্ষর সেট তথ্য পুনরুদ্ধার করতে পারেন <টেবিলের নাম থেকে সম্পূর্ণ কলম দেখাতে হবে
রবিন উইনস্লো

14
এই উত্তরটি খুব সহায়ক ছিল, তবে আপনি যদি একটি চরিত্র_সেট / কোলেশন ইস্যুতে সমস্যা করতে চান তবে আপনার সংযোগের অক্ষর_সেট, ক্লায়েন্ট_চ্যাকার_সেট ইত্যাদিও পরীক্ষা করা প্রয়োজন ...: চলচিত্রগুলি 'চরিত্র_সেট%' পছন্দ করুন; ভ্যারিয়েবলগুলি 'কোলেশন%' পছন্দ করুন;
বেনএল

2
সারণী অপারেশনটি আমার জন্য "খালি সেট (0.00 সেকেন্ড)" দেয়
মিনহাজুল

9
স্কিমা-ডামিগুলির জন্য: দ্রষ্টব্য, এটি schemanameকেবল ডাটাবেসের নাম হতে পারে।
বার্নিনলিও

465

জন্য কলাম :

SHOW FULL COLUMNS FROM table_name;

43
হ্যালো, এটি ভবিষ্যতের কথা! যে কেউ এই উত্তরটি যাচাই করছেন, এই পদ্ধতিটি চরসেটের পরিবর্তে কেবল কোলেশন দেখায়। আমি বিশ্বাস করি এটি মাইএসকিউএল ৫ এ পরিবর্তিত হয়েছে (আরও ভাল পদ্ধতির জন্য আরও পয়েন্ট সহ উত্তর দেখুন)।
ফিদেলোপার

20
@ ফিডেলোপার, জোটের সাহায্যে আপনি চরসেটটি বলতে পারেন। কারণ কোলেশনের প্রথম অংশটিতে চারসেট অন্তর্ভুক্ত রয়েছে, উদাহরণস্বরূপ যদি কোলেশন হয় latin1_swedish_ciতবে চরসেটটি অন্য কিছু হতে পারে না latin1। যদি কোলেশন হয় utf8mb4_general_ciতবে চরসেটটি ছাড়া আর কিছু হতে পারে না utf8mb4
পেসারিয়ার

1
এটি আপনাকে সারণী চরিত্রের সেটটি বলে tells ভবিষ্যতে তৈরি টেবিলের চরিত্রের সেটটি আপনাকে জানায় না যখন তৈরি টেবিল সিনট্যাক্সে কোনও অক্ষর সেট নির্দিষ্ট না করা হয় (এর জন্য আপনার স্কিমা চরিত্রের সেট প্রয়োজন হবে)।
হোল্ডঅফহাঙ্গার

217

জন্য ডাটাবেস :

USE your_database_name;
show variables like "character_set_database";
-- or:
-- show variables like "collation_database";

Cf. এই পৃষ্ঠার । এবং মাইএসকিউএল ম্যানুয়ালটি পরীক্ষা করে দেখুন


3
এটি কেবল প্রশ্নের 1/3 উত্তর দেয়।
টোবিয়াস জে

1
@TobyJ, আমি তোমার দিকে অভিযোগ দেখছি না stackoverflow.com/a/4805510/632951
Pacerier

সিএফ মানে কি? লিঙ্কটি যদিও উপস্থিত নেই। @ পেসারিয়ার
ইয়ানিস ড্রান

এটি শীর্ষ উত্তরে মার্জ করা উচিত। এটা সত্যিই আমাকে সাহায্য করেছে।
beppe9000

150

সার্ভারে থাকা সমস্ত ডাটাবেসের জন্য :

mysql> SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA;

আউটপুট:

+----------------------------+---------+--------------------+
| database                   | charset | collation          |
+----------------------------+---------+--------------------+
| information_schema         | utf8    | utf8_general_ci    |
| my_database                | latin1  | latin1_swedish_ci  |
...
+----------------------------+---------+--------------------+

একটি একক ডাটাবেসের জন্য :

mysql> USE my_database;
mysql> show variables like "character_set_database";

আউটপুট:

    +----------------------------+---------+
    | Variable_name              |  Value  |
    +----------------------------+---------+
    | character_set_database     |  latin1 | 
    +----------------------------+---------+

টেবিলগুলির জন্য কোলেশন পাওয়া :

mysql> USE my_database;
mysql> SHOW TABLE STATUS WHERE NAME LIKE 'my_tablename';

অথবা - তৈরি টেবিলের জন্য সম্পূর্ণ এসকিউএল আউটপুট দেবে:

mysql> show create table my_tablename


কলামের সমাহার পাওয়া :

mysql> SHOW FULL COLUMNS FROM my_tablename;

আউটপুট:

+---------+--------------+--------------------+ ....
| field   | type         | collation          |
+---------+--------------+--------------------+ ....
| id      | int(10)      | (NULL)             |
| key     | varchar(255) | latin1_swedish_ci  |
| value   | varchar(255) | latin1_swedish_ci  |
+---------+--------------+--------------------+ ....

মাইএসকিএলের কোন সংস্করণ এই আউটপুটটি দেখায় type? আমি মাইএসকিউএল 5.7.9 আছে এবং typeদেন data typeকলামের না character set। কিছু পছন্দ int(10) varchar(255)... ইত্যাদি এবং নাutf8
এমটিকে

আমার আউটপুট শো typeহিসাবে data typeভাল @MTK যেমন, সম্ভবত উপরে একটি কপি পেস্ট ত্রুটি "আউটপুট:" বিভাগে।
tronmcp

65

জন্য টেবিল :

SHOW TABLE STATUS সমস্ত সারণী তালিকাবদ্ধ করবে।

ফিল্টার ব্যবহার করে:

SHOW TABLE STATUS where name like 'table_123';

9
দয়া করে নোট করুন শো টেবিলের স্থিতিতে প্রদর্শিত কোলেশনটি টেবিলের অক্ষর সেট নয়। কোলেশন আপনাকে জানায় যে কীভাবে অক্ষরগুলি সাজানো / তুলনা করা হয়। উদাহরণস্বরূপ utf8_bin_ci কেস সম্পর্কিত কোনও তথ্য ছাড়াই তুলনা করে (কেস সংবেদনশীল, সুতরাং "এম" এবং "এম" একই), utf8_bin_cs কেস সংবেদনশীলতার সাথে তুলনা করে (সুতরাং "এম" এবং "এম" স্বতন্ত্র)। এটি কোনও টেবিলের অক্ষর সেটের মতো নয়।
দান

6
@ দান, ভুল তথ্য ছড়ানো বন্ধ করুন। সমাহার দিয়ে আপনি চরসেটটি বলতে পারেন স্ট্যাকওভারফ্লো.com / প্রশ্নগুলি ১০০৯৯7২৪ / দেখুন ।
পেসারিয়ার

44

জন্য ডাটাবেস :

কেবল এই আদেশগুলি ব্যবহার করুন:

USE db_name;
SELECT @@character_set_database;
-- or:
-- SELECT @@collation_database;

34
টেবিল_সেসিএএমএ নির্বাচন করুন,
       TABLE_NAME,
       সিসিএসএ.এইচআরএসিটিআইএসআইএআইএএইএসএএফএএফএএলএইচএইচএইএসএইএস হিসাবে,
       কলাম,
       COLUMN_TYPE,
       C.CHARACTER_SET_NAME
  তথ্য থেকে স্নেহমা। টেবিল হিসাবে এএস
  যোগদানের তথ্য_স্কেমা. COLUMNS AS সি ব্যবহার হিসাবে (TABLE_SCHEMA, TABLE_NAME)
  সিসিএসএ হিসাবে তথ্য_স্কেমা যোগ দিন। COLLATION_CHARACTER_SET_APPLICABILITY
       চালু (T.TABLE_COLLATION = CCSA.COLLATION_NAME)
 যেখানে ট্যাবলেট_সেক্মা = স্কেমা ()
   এবং সিডি ডেটা_ওয়াইপি ইন ('এনাম', 'বর্ণচর', 'চর', 'পাঠ্য', 'মিডিয়ামটেক্সট', 'লম্বটেক্সট')
 ট্যাবলেট_সচেমার অর্ডার
          TABLE_NAME,
          কলাম
;

2
খুব সুন্দর, এরিক। শুধু সেই কোডটি মাইএসকিএল কমান্ড লাইনে পেস্ট করুন,
রিটার্নটি

1
@ জেরি ক্রিনক আপনি বর্তমান ডাটাবেসের প্রতিটি কলাম পাবেন এবং কোনও ডাটাবেস না নির্বাচিত হলে কিছুই পাবেন না।
অরটোমালা লোকনি

24

আমি সবসময় শুধু তাকান SHOW CREATE TABLE mydatabase.mytable

ডাটাবেসের জন্য, এটি আপনার দিকে তাকাতে হবে বলে মনে হচ্ছে SELECT DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA


3
মাইএসকিএল ডেটাবেজে ডিফল্ট অক্ষর সেট থাকতে পারে
জেমস

3
select default_character_set_name from information_schema.schemataযথেষ্ট নয় কারণ আপনি কোন সারিতে কোন ডাটাবেসের সাথে সম্পর্কিত হতে পারবেন তা বলতে পারবেন না। ব্যবহার করুন select default_character_set_name,schema_name from information_schema.schemataঅথবা শুধুমাত্র: select*from information_schema.schemata
পেসারিয়ার

আমি ব্যবহার করেছি SELECT * FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = '<database-name>' \G; এবং এটি দুর্দান্ত কাজ করেছে :) ধন্যবাদ!
সঙ্কল্প

23

ডাটাবেসের ডিফল্ট কল্যানেশন দেখতে:

USE db_name;
SELECT @@character_set_database, @@collation_database;

সারণির সমাহার দেখতে:

SHOW TABLE STATUS where name like 'table_name';

কলামগুলির সমাহার দেখতে:

SHOW FULL COLUMNS FROM table_name;

21

জন্য টেবিল এবং কলাম :

show create table your_table_name

2
এটি আপনাকে সম্পূর্ণ এসকিউএল বলবে যা বর্তমানে টেবিলটি তৈরির জন্য ব্যবহৃত হবে কারণ এটির অক্ষর সেটটি অন্তর্ভুক্ত করা উচিত।
জেমস

এছাড়াও, যদি কলামটি একটি নির্দিষ্ট চরসেটটি বর্ণনা করে না, তবে এটি সারণীর ডিফল্ট অক্ষরেট ব্যবহার করছে।
পেসারিয়ার

18

জন্য ডাটাবেস :

SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA;

উদাহরণ আউটপুট:

mysql> SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA;
+----------------------------+---------+--------------------+
| database                   | charset | collation          |
+----------------------------+---------+--------------------+
| information_schema         | utf8    | utf8_general_ci    |
| drupal_demo1               | utf8    | utf8_general_ci    |
| drupal_demo2               | utf8    | utf8_general_ci    |
| drupal_demo3               | utf8    | utf8_general_ci    |
| drupal_demo4               | utf8    | utf8_general_ci    |
| drupal_demo5               | latin1  | latin1_swedish_ci  |

...

+----------------------------+---------+--------------------+
55 rows in set (0.00 sec)

mysql> 


1
@ পেসারিয়র আপনি কি আমার উত্তরগুলি এর সাথে সঠিকভাবে তুলনা করেছেন?
sjas

15

জন্য ডাটাবেস :

SHOW CREATE DATABASE "DB_NAME_HERE";

একটি ডেটাবেস (মাইএসকিউএল) তৈরি করার সময়, ডিফল্ট অক্ষর সেট / কোলেশন সর্বদা ল্যাটিন থাকে, পরিবর্তে আপনি প্রাথমিকভাবে আপনার ডাটাবেস তৈরির ক্ষেত্রে আলাদা আলাদা নির্বাচন করেছেন


3
মাইএসকিউএলে "ডিফল্ট অক্ষর সেট / কোলেশন সর্বদা ল্যাটিন থাকে" এর জন্য উদ্ধৃতি আবশ্যক
পেসারিয়ার

তথ্যসূত্র প্রয়োজন? আপনি কি কখনও মাইএসকিউএল ডাটাবেস ব্যবহার করেছেন? প্রত্যেকেই জানেন যে ডিফল্ট চরিত্রের সেট / latin1_swedish_ciজোটবদ্ধকরণ কারণ মাইএসকিউএল এর নির্মাতা মন্টি উইদেনিয়াস সুইডিশ এবং তিনি যখন শুরু করেছিলেন তখন তার মতো বড় চিত্রের কথা ভাবছিলেন না।
স্পেনসার উইলিয়ামস

5

যেমনটি অনেকে আগে লিখেছেন, কলামের তথ্য পাওয়ার জন্য পুরো কালামগুলি পছন্দনীয় পদ্ধতি হওয়া উচিত। যা অনুপস্থিত তা হ'ল সরাসরি মেটাডেটা টেবিলগুলিতে না পৌঁছানো পরে চরসেট পাওয়ার একটি উপায়:

SHOW FULL COLUMNS FROM my_table WHERE Field = 'my_field'
SHOW COLLATION WHERE Collation = 'collation_you_got'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.