মাইএসকিউএল: টিনিইন্ট (2) বনাম টিনিনেন্ট (1) - পার্থক্য কী?


183

আমি মাইএসকিএল তে বুলিয়ান জানতাম tinyint (1)

আজ আমি মত একটি পূর্ণসংখ্যা সংজ্ঞায়িত সঙ্গে একটি টেবিল দেখতে tinyint(2), এবং এছাড়াও অন্যদের পছন্দ int(4), int(6)...

টাইপ পূর্ণসংখ্যা এবং টিনিনেন্টের ক্ষেত্রে আকারটি কী বোঝায়?


4
মাইএসকিউএল পূর্ণসংখ্যার ডেটা প্রকার সম্পর্কে এখানে পড়ুন
বুড দামায়ানোভ

2
@ আমিরর এর উত্তরটি সঠিক একটি
অশুভরিকো

1
@ এভিলেরিকো জিরোফিল কীভাবে মানটি সংরক্ষণ করা হয় তাতে কোনও পার্থক্য তৈরি করে না, এটি সত্যিই উপস্থাপনের বিষয়ে ... স্পেসস বা জিরো সত্যিকার অর্থে কারও উত্তর সঠিকভাবে কোনও পার্থক্য তৈরি করে না
জ্যাক ২

উত্তর:


94

এর অর্থ ডিসপ্লে প্রস্থ

আপনি টিনিনেন্ট (1) বা টিনিনেন্ট (2) ব্যবহার করুন না কেন, এতে কোনও তফাত আসে না।

আমি সর্বদা টিনিন্যান্ট (1) এবং ইন্ট (11) ব্যবহার করি, আমি বেশ কয়েকটি মাইএসকিএল ক্লায়েন্ট ব্যবহার করেছি (নাভিচ্যাট, সিক্যুয়াল প্রো)।

এটি সব কিছুই মানে না! আমি একটি পরীক্ষা চালিয়েছি, উপরের সমস্ত ক্লায়েন্ট বা এমনকি কমান্ড-লাইন ক্লায়েন্ট এটিকে উপেক্ষা করছে বলে মনে হচ্ছে।

তবে, আপনি যদি বিকল্পটি ব্যবহার করে থাকেন তবে প্রস্থের প্রস্থটি সর্বাধিক গুরুত্বপূর্ণ ZEROFILL, উদাহরণস্বরূপ আপনার টেবিলটিতে 2 টি কলাম রয়েছে:

একটি টিনিনেন্ট (2) জিরোফিল

বি টিনিয়েন্ট (4) জিরোফিল

উভয় কলাম 1 মান আছে, কলামের জন্য আউটপুট একটি হবে 01এবং 0001এর জন্য বি , স্ক্রিনশট দেখা নীচে :)

ডিসপ্লেউইথ সহ জিরোফিল


20
অদ্ভুতভাবে ধারণা করা হয়েছিল আমি সবেমাত্র আবিষ্কার করেছি যে সি # অফিসিয়াল মাইএসকিউএল সংযোজক টিনিনেন্ট (1) কখনও 0 এবং 1 এর চেয়ে আলাদা মান দেয় না এটি সম্ভবত টিনিনেন্ট (1) এর সাথে স্বয়ংক্রিয়ভাবে বুলিয়ান হিসাবে স্বীকৃত হওয়ার সাথে সম্পর্কিত। এটি একটি মাথা আপ কখনও কখনও গুরুত্বপূর্ণ।
ড্যানিয়েল শার্প

একটি পূর্ণসংখ্যার প্রকার এবং দৈর্ঘ্য যতটা সম্ভব ছোট ব্যবহার করা ভাল নয়? আমি মাইএসকিউএলে এই সংরক্ষিত মেমরিটির ছাপে ছিলাম।
nclsvh

@ ড্যানিয়েল-শার্প নির্দেশ করে যেহেতু এটি সংযোগকারীদের পক্ষে গুরুত্বপূর্ণ মনে হতে পারে। জেডিবিসি ব্যবহার করে হাইবারনেট সবেমাত্র একটি সমস্যা হয়েছিল এটি একটি বিআইএন হিসাবে একটি টিআইএনআইএনটি (1) এর ব্যাখ্যা করে বলেছিল।
sfj

2
@ ড্যানিয়েলশার্প সম্ভবত সংযোগ বিকল্পের ক্ষুদ্র আইট1 আইসবিটের কারণে যা সত্যকে ডিফল্ট করে। Dev.mysql.com/doc/connector-j/8.0/en/…
প্যারিসে 5-5

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

226

(m)কলাম প্রদর্শন প্রস্থ ইঙ্গিত; মাইএসকিউএল ক্লায়েন্টের মতো অ্যাপ্লিকেশনগুলি কোয়েরির ফলাফলগুলি দেখানোর সময় এটি ব্যবহার করে।

উদাহরণ স্বরূপ:

| v   | a   |  b  |   c |
+-----+-----+-----+-----+
| 1   | 1   |  1  |   1 |
| 10  | 10  | 10  |  10 |
| 100 | 100 | 100 | 100 |

এখানে a, bএবং cব্যবহার করা হয় TINYINT(1), TINYINT(2)এবংTINYINT(3) যথাক্রমে। আপনি দেখতে পাচ্ছেন, এটি ডিসপ্লে প্রস্থ ব্যবহার করে বাম পাশে মানগুলি প্যাড করে।

এটি লক্ষণীয় যে এটি নির্দিষ্ট ধরণের জন্য স্বীকৃত মানের পরিসীমাটিকে প্রভাবিত করে না, অর্থাত্ TINYINT(1)এখনও গ্রহণ করে [-128 .. 127]


15
এর অর্থ 'কলামের প্রস্থ' কী?
রিয়েলটিবো

8
@ রিলতেবো এটি মূলত প্রদর্শনের উদ্দেশ্যে মাইএসকিএল কমান্ড লাইন ক্লায়েন্ট ব্যবহার করে।
জ্যাক 23

3
ইন্টারফেস দ্বারা প্রদর্শিত "সংখ্যা" এর সংখ্যা number অন্য কথায়, এটি বামে জিরোগুলিকে প্যাড করবে। এই জাতীয় বৈশিষ্ট্য ডেটাবেসের প্রথম দিনগুলিতে কিছুটা উপলব্ধি করেছিল, তবে এখন এটি কেবল উত্তরাধিকার।
ডেনিলসন সা মিয়া

2
@ কৈলাস আপনি যদি মাইএসকিএল ক্লায়েন্ট ব্যবহার না করেন? কিছুই না।
জ্যাক

11
@ কৈলাস না! টিনিনেন্ট (1) কেবল 0-9 গ্রহণ করে না। টিনিনেন্ট কী ধারণ করতে পারে তার পুরো ব্যাপ্তি এটি গ্রহণ করে।
জ্যাক

18
mysql> CREATE TABLE tin3(id int PRIMARY KEY,val TINYINT(10) ZEROFILL);
Query OK, 0 rows affected (0.04 sec)

mysql> INSERT INTO tin3 VALUES(1,12),(2,7),(4,101);
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM tin3;
+----+------------+
| id | val        |
+----+------------+
|  1 | 0000000012 |
|  2 | 0000000007 |
|  4 | 0000000101 |
+----+------------+
3 rows in set (0.00 sec)

mysql>

mysql> SELECT LENGTH(val) FROM tin3 WHERE id=2;
+-------------+
| LENGTH(val) |
+-------------+
|          10 |
+-------------+
1 row in set (0.01 sec)


mysql> SELECT val+1 FROM tin3 WHERE id=2;
+-------+
| val+1 |
+-------+
|     8 |
+-------+
1 row in set (0.00 sec)

11
কিছু ব্যাখ্যা অন্তর্ভুক্ত করতে দয়া করে আপনার উত্তর সম্পাদনা করুন। কোড-কেবলমাত্র উত্তরগুলি ভবিষ্যতের এসও পাঠকদের শিক্ষিত করতে খুব কম করে। আপনার উত্তরটি নিম্নমানের হওয়ার জন্য সংযম কাতারে।
মিকম্যাকুসা

14

INT, TINYINT সম্পর্কে ... এটি বিভিন্ন উপাত্তের ধরণ, INT হ'ল 4-বাইট নম্বর, TINYINT 1-বাইট নম্বর। এখানে আরও তথ্য - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT

TINYINT ডেটা টাইপের বাক্য গঠনটি TINYINT (এম), যেখানে এম সর্বাধিক ডিসপ্লে প্রস্থকে নির্দেশ করে (কেবলমাত্র আপনার মাইএসকিউএল ক্লায়েন্ট এটি সমর্থন করলে ব্যবহৃত হয়)।

সংখ্যার ধরণের বৈশিষ্ট্য


1
এর অর্থ 'ডিসপ্লে প্রস্থ' কী ?!
রিয়েলটিবো

2
রেফারেন্স থেকে - উদাহরণস্বরূপ, INT (4) চার অঙ্কের ডিসপ্লে প্রস্থ সহ একটি INT নির্দিষ্ট করে। এই alচ্ছিক প্রদর্শনের প্রস্থটি অ্যাপ্লিকেশনগুলি কলামের জন্য স্পেসের সাথে বাম-প্যাডিং করে নির্দিষ্ট স্তরের প্রশস্ততার চেয়ে কম প্রস্থের পূর্ণ সংখ্যার মান প্রদর্শন করতে ব্যবহার করতে পারে।
ডিভার্ট

2
তবে আমি অ্যাপ্লিকেশন বা মাইএসকিউএল ক্লায়েন্টগুলি দেখিনি যা এই বৈশিষ্ট্যটি ব্যবহার করে। আমি সর্বদা INT (11) ব্যবহার করি এবং আউটপুট কাস্টমাইজ করতে ফর্ম্যাটিং ফাংশন ব্যবহার করি।
ডিভার্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.