DDL-(DATA DEFINATION LANGUAGE)
OBJECT
# 1-(TABLE)
টেবিল পরিচিতি- (টেবিল তৈরী, টেবিল সংশোধন, টেবিল মোছা)
|
Sl |
Object |
Description |
|
01 |
Table |
Basic unit of storage: Composed of rows &
Column |
|
02 |
View |
Logically represent subset of data from one or
more table |
|
03 |
Sequence |
Gnerate primary key |
|
04 |
Index |
Improves the performance of some query |
|
05 |
Synonym |
Chose Alternative name to object |
- আমরা এখন টেবিল অবজেক্ট নিয়ে আলোচনা করবো।
1. DATA BASE
OBJECT- 1 (TABLE)
1. ‡Uwej wK? What is Table?
মূল ডাটার আধার। ডাটাবেসের প্রধান অবজেক্ট হচ্ছে টেবিল। সকল ডাটা মূলত এই টেবিলেই সংরক্ষিত হয়। এটি একটি Structure বা Format. কলাম ও রো এর সমন্বয়ে গঠিত হয় টেবিল। সমস্ত Informaion এই টেবিলেই জমা রাখা হয়। ঊীপবষ ডাটাসীট একই রকম। তবে ওরাকল ডাটাবেসের ক্ষেত্রে আমরা টেবিল নিজেরাই তৈরী করি।মূলতঃ আমরা টেবিলের কলাম তৈরী করি (Structure) এবং ডাটা এন্ট্রির সময় রো তৈরী হয়।এই ভাবে কলাম ও রো এর সমন্বয়ে মিলিয়ন, বিলিয়ন ডাটা সংরক্ষন করা যায় এবং তা পরে প্রয়োজনমত প্রসেস করে ব্যবস্থাপনা করা যায়।
কিভাবে এই টেবিল তৈরী করা যায় তা শিখবো, তবে তারপূর্বে টেবিল বা কলামের নাম দেওয়ার পদ্ধতি জেনে নিতে হবে।
চিত্রের মাধ্যমে টেবিলের বিভিন্ন অংশ দেখানো হলো
টেবিল ও কলামের নাম করনের নিয়মাবলী
- টেবিল ও কলামের নাম সর্বোচ্চ ৩০ অক্ষর হতে পারবে।
- অক্ষর দিয়েই (A-Z) নাম শুরু করতে হবে।
- শব্দের মাঝে অর্থাৎ টেবিল বা কলামের নামের মাঝে কোন ফাকা বা স্পেস রাখা যাবে না। তবে মাঝে ও পরে (Numeric) / সংখ্যা লেখা যাবে। তবে নামের শুরুতে কোন
(Numeric-0-9) সংখ্যা বা (Sign-$, #, Ñ) লেখা যাবে না।
- '_'
(Under Score), $ (ডলার) এবং # (Not
Equal to) সাইনগুলিও নিউমেরিক সংখার মত ব্যবহার করা যাবে কিন্তু এগুলি ব্যবহার না করাই উত্তম।
- একই নামে দুইটি টেবিল বা একই টেবিলের দুই কলামের নাম একই (Same) হতে পারবে না। একই ডাটাবেসের অধীনে ভিন্ন ভিন্ন ইউজারে একই নামের টেবিল থাকতে পারে।
- ওরাকল রিজার্ভড (Reserved word-select, connect insert, update etc.) শব্দ- টেবিল বা কলামের নাম হিসাবে ব্যবহার করা যাবেনা।
- টেবিল ও কলামের নাম (ডাটার) বিষয়বস্তুর সংগে সংগতিপূর্ণ হতে হবে, যাতে বুঝতে সুবিধা হয়।
|
টেবিলের নাম |
কলামের নাম |
সঠিক/বেঠিক |
|
07EMP |
07EMP |
X |
|
70EMP |
70EMP |
X |
|
EMP07 |
EMP07 |
√ |
|
EMP70sAL |
EMP70sal |
√ |
|
FATHER'S
NAME |
FATHER'S
NAME |
X |
|
FATHERS_NAME |
FATHERS_NAME |
√ |
|
Emp |
Emp |
√ |
|
EMp |
Emp |
√ |
|
emP |
emP |
√ |
|
Update |
Update |
X -
(Oracle reserved Word) |
|
Date |
Birsth
date |
X –
(Space) |
|
B_date |
Join_date |
√ |
নিচের টেবিল দ্বারা বিষয়টি পরিস্কার করার চেষ্টা করা যাক।
|
WvUv UvBc |
eb©bv |
mvBR |
|
VARCHAR2 |
ভেরিয়েবল-লেন্থ ক্যারেক্ট টাইপ |
ডিফল্ট সাইজ ০। এই কলামের সাইজ ৪০০০ পর্যন্ত হতে পারে। |
|
CHAR |
ফিক্সড-লেন্থ ক্যারেক্ট টাইপ |
ডিফল্ট সাইজ ০। এই কলামের সাইজ ২০০০ পর্যন্ত হতে পারে। |
|
NUMBER |
নিউমেরিক টাইপ ডাটা |
m‡ev©”P 38 msL¨v ch©šÍ †jLv
hvq| |
|
DATE |
তারিখ ও সময় লেখার-ডেট টাইপ |
খৃষ্টপূর্ব ১ জানুয়ারী ৪৭১২ থেকে খৃষ্টাব্দ ৩১, ডিসেন্বর ৯৯৯৯ সালের মধ্যের যে কোন তারিখ ও সময় এন্ট্রি করা যাবে যেকোন ফর্মেটে। |
|
LONG |
ভেরিয়েবল-লেন্থ ক্যারেক্টর টাইপ |
এই কলামে ২ গিগাবাইট পর্যন্ত লেখা যেতে পারে। |
|
CLOB |
সিঙ্গেল-বাইট ক্যারেক্টর টাইপ |
এই কলামে ৪ গিগাবাইট পর্যন্ত লেখা যেতে পারে। |
|
RAW |
লং রো বাইনারি ডাটা টাইপ |
রো বাইনারি ডাটা টাইপ সর্বোচ্চ ২০০০ ক্যারেক্টর |
|
LONG RAW |
লং রো বাইনারি ডাটা টাইপ |
ভেরিয়েবল-লেন্থ ’র’ বাইনারি ডাটা টাইপ ২ গিগাবাইট |
|
BLOB |
বাইনারি ডাটা টাইপ |
এই কলামে ৪ গিগাবাইট পর্যন্ত লেখা যেতে পারে। |
|
BFIE |
বাইনারি ডাটা টাইপ |
অন্য ফাইলের ৪ গিগাবাইট পর্যন্ত ডাটা এই কলামে রাখা যায়। |
উপরে উলেখিত টেবিল থেকে ডাটা টাইপ ও ডাটা লেন্থ (কলামের প্রসস্ততা) জানতে পারলাম। চিহিৃত (মার্ককৃত) চার টাইপের ডাটা সবচেয়ে বেশী ব্যবহার হয়ে থাকে। আমরা সাধারণত ক্যারেক্টর, নিউমেরিক ও ডেট টাইপ ডাটা নিয়ে বেশী কাজ করে থাকি। উপরের টেবিলের তিন ধরনের ডাটা টাইপ সম্পর্কে আরো আলোচনা করা হলো
- Character
data type- (অর্থাৎ A-Z ) শুধু মাত্র অক্ষর দিয়ে লেখার জন্য অর্থাৎ যখন কোন কলামে ক্যারেক্ট লেখার দরকার হবে তখন ডাটা টাইপ নির্ধারন করতে হয়।VARCHAR2ডাটা টাইপ ব্যবহার অনেক সুবিধা জনক। কারণ এই ফিল্ড টাইপে সাইজ ৪০০০ ক্যারেক্টর পর্যন্ত লেখা যায়। কিন্তু সুবিধা হচ্ছে সাইজ যা-ই নির্ধারন করা হোক না কোন ডাটা এন্ট্রির সময়ে আপনি যে পরিমান লিখবেন সেই পরিমানই জায়গা দখল করবে। ভেরিয়েবল-লেন্থ ক্যারেক্ট টাইপ হওয়ার কারনে এই সুবিধা পাওয়া যায়। ডাটবেসে কম স্পেস দখল করে এই টাইপের ডাটা।
পক্ষান্তরে CHAR ফিক্সড লেন্থ ক্যারেক্ট ডাটা টাইপ হওয়ার কারনে- আপনি যত কমই এনিট্র করেন না কেন? টেবিলের কলামে নির্ধারিত পরিমান জায়গা দখল করবে। ফলে স্পেস বেশী লাগবে। কাজেই CHAR †P‡q VARCHAR2 ব্যবহারই উত্তম।
- স্পেস নষ্ট হয় বলে সাধারনত Char টাইপ ব্যবহার করা হয় না।
- নিউমেরিক (Newmeric) ডাটা ফিল্ডে শুধু মাত্র সংখ্যা এন্ট্রি করা যায়। সর্বোচ্চ ৩৮ সংখ্যা এন্ট্রি করা যায়। দশমিকে পূর্বের এবং দশমিকে পরের সংখ্যা সহ সর্বোমোট ৩৮ সংখ্যা এন্ট্রি করা যায়।
- কমা দিয়ে দশমিক সংখ্যার পরের অংশ নির্ধারন করা হয়। (যেমন- (NUMBER (১০,২) দশমিকের পূর্বে ৮ এবং পরে ২ সংখ্যা বোঝা যাবে।
- ডেট/তারিখও সময় ((Date)এন্ট্রি করার জন্য। ১০-১০-২০০৭, ১০/২/০৭, ১৪ এপ্রিল ২০০৭, শনিবার, ১৪ এপ্রিল ২০০৭ ইত্যাদি যে কোন ফর্মেটে ডাটা এনিট্র করা যায়।
আমরা টেবিল তৈরীর জন্য টেবিল ও কলামের নাম দেওয়ার পদ্ধতি, কলামের ডাটা টাইপ এবং কলামের প্রসস্ততা কত বা কেমন হবে ও নাম দেওয়ার পদ্ধতি জানতে পারলাম। কাজেই টেবিল তৈরীর করা যাক নিম্নের মত করে।
*** মনে রাখতে হবে টেবিল তৈরীর প্রয়োজনীয় Privilege /Permission না থাকলে টেবিল তৈরী করা যাবে না। আর এই Privilege DBA Kর্তৃক প্রদত্ত হয়ে থাকে। পরবতী অংশে আরো বিস্তারিত জানা যাবে এ সম্পর্কে।
Create Table (টেবিল তৈরী)
Table তৈরীর মূল সুত্রঃ
Syntax
SQL> Create table
(table name)
(Column name data
type (size),
Clolumn name data
type (size)); এন্টার করলে টেবিল তৈরী হবে।
Create Table
উদাহরন-১আমরা dept10 নামে একটি টেবিল তৈরী করবো।
SQL> CREATE TABLE
dept10
(deptno number(2),
dname varchar2(15),
loc varchar2(20));
Table created.dept10 নামে তৈরীকৃত টেবিলটি দেখতে হলে এভাবে নিচের মত করে কমান্ড দিতে হবে।
SQL> desc dept10;
Name
Null? Type
-----------------------------------------
-------- ----------------------------
DEPTNO NUMBER(2)
DNAME VARCHAR2(15)
LOC
VARCHAR2(20)
এই টেবিলে তিনটি কলাম রয়েছে। যথা-
1. প্রথম কলামের নাম DEPTNO (DEPARTMENT NO), ডাটাটাইপ NUMBER এবং সাইজ হচ্ছে (২)
2. ২য় কলামের নাম DNAME (DEPARTMENT
NAME), ডাটাটাইপ
VARCHAR2 এবং সাইজ (১৫).
3.
এবং ৩য় কলামের নাম LOC (LOCATION), ডাটাটাইপ VARCHAR2 এবং সাইজ (২০)।
প্রথম কলামে DEPARTMENT নং অর্থাৎ ডিপার্টমেন্ট নম্বর, ২য় কলামে DEPARTMENT NAME অর্থাৎ ডিপার্টমেন্টের নাম লেখা হবে এবং ৩য় কলামে DEPARTMENT LOCATION অর্থাৎ কোথায় অবস্থিত তা লেখা হবে।
এভাবে নিচে আরো কয়েকটি টেবিল তৈরীর উদাহরন দেওয়া হলোঃ
SQL> CREATE TABLE STUDENT_REGISTER
(STU_ID NUMBER(3),
STU_NAME VARCHAR2(25),
STU_FATHERS_NAME VARCHAR2(25),
STU_CLASS VARCHAR2(7),
STU_AGE NUMBER(2),
STU_ADD_DATE DATE,
STU_FISH NUMBER(8))
Table created.
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন