Example- Create Table
STUDENT_REGISTER নামে তৈরীকৃত টেবিলটির বর্ননা।
এই টেবিলটিতে সাতটি কলাম রয়েছে।
প্রথম কলামের নাম STNUMBER এবং সাইজ (3).
তদ্রুপ ২য় কলামের নাম STU_NAME (STUDENT
NAME, ডাটাটাইপ
VARCHAR2 এবং সাইজ (25).
এবং ৩য় কলামের নাম STU_FATHERS_NAME (STUDENTS FATHER'S NAME), ডাটাটাইপ VARCHAR2 এবং সাইজ (২৫)
এবং ৪র্থ কলামের নাম STU_CLASS (STUDENT'S CLASS), ডাটাটাইপ VARCHAR2 এবং সাইজ (7).
৫ম কলামের নাম STU_AGE (STUDENTS AGE), ডাটাটাইপ NUMBER এবং সাইজ (2)
৬ষ্ঠ কলামের নাম STU_ADD_DATE (STUDENTS ADMISSION (DATE), ডাটাটাইপ ডাটাটাইপ DATE এবং সাইজ (নাই). এক্ষেত্রে ওরাকলের ডিফল্ট যে তারিখ (10-mon-07)
৭ম কলামের নাম STU_FISH (STUDENTS FISH), ডাটাটাইপ NUMBER এবং সাইজ (৮).
ডিফল্ট ভ্যালু সহ টেবিল তৈরী-
(সুবিধা হচ্ছে ডাটা এনিট্রর সময়ে অটোমেটিক্যালি ডিফল্ট ভ্যালু এন্ট্রি হবে।
SQL> create table
product
(product_id number(10) ,
product_name varchar2(100),
P_type varchar2(1),
made_by varchar2(50),
P_unit varchar2(50) default 0,
p_qty number (10) default 10,
P_price number(12,2),
S_price number(12,2),
Re_order_lavel number(10))
Table created
এভাবে
default
option সহ টেবিল তৈরী করার সুবিধা হচ্ছে-এই যে, ডাটা এন্ট্রির সময়ে প্রদত্ত এই default value প্রত্যেক রোতে অটোমেটিক Inset হবে। যদিও ইচ্ছা করলে তা পরিবর্তন করে সেভ করা যাবে। ধরা যাক আমাদের একটি টেবিলে একটি ফিল্ড District (জেলা) আছে । এবং এই টেবিলে বেশীর ভাগই বাগেরহাট জেলার নাম এন্ট্রি হবে। সুতরাং default value যদি Bagerhat হয় তাহলে ডাটা এনিট্রর সময়ে ঐ কলামে ডাটা এন্ট্রি করার দরকার হবে না। কারণ অটোমেটিকই ডাটা এন্ট্রি করার দরকার হবে না। কারণ অটোমেটিকই Bagerhat insert হবে।
DESC কমান্ড দিয়ে উপরের তৈরীকৃত টেবিলটি দেখে নেয়া যাক।
SQL> desc product;
Name
Null? Type
-----------------------------------------
-------- ----------------------
PRODUCT_ID
NUMBER(10)
PRODUCT_NAME
VARCHAR2(100)
P_TYPE
VARCHAR2(1)
MADE_BY
VARCHAR2(50)
P_UNIT
VARCHAR2(50)
P_QTY
NUMBER(10)
P_PRICE
NUMBER(12,2)
S_PRICE NUMBER(12,2)
RE_ORDER_LAVEL NUMBER(10)
ডিফল্ট জিরো থাকায় ডাটা এনিট্রর সময় অটোমেটিক্যাালি টেবিলে জিরো (০) এবং ১০ এন্ট্রি হবে। তবে ইচ্ছা করলে পরিবর্তন করেও সেভ করা যাবে।
নিচের মত করে ডিফল্ট তারিখ সহ টেবিল তৈরী।
SQL> create table purchase_master
(Purchase_id number(10),
purchase_Date date default sysdate,
supplier_Id number(10))
Table created.
DESC কমান্ড দিয়ে দেখে নেই।
SQL> desc
purchase_master;
Name
Null? Type
-----------------------------------------
-------- ----------------------------
PURCHASE_ID
NUMBER(10)
PURCHASE_DATE DATE
SUPPLIER_ID
NUMBER(10)
ডিফল্ট হিসাবে সিস্টেম ডেট থাকায় ডাটা এনিট্রর সময় অটোমেটিক্যাালি সিস্টেমের (কম্পিউটারের) ডেট/তারিখ টেবিলে এন্ট্রি হবে। তবে ইচ্ছা করলে ডেট পরিবর্তন করেও সেভ করা যাবে।
নিচের মত করে আরো একটি ডিফল্ট তারিখ সহ টেবিল তৈরী।
SQL> create table
car_main
(car_id number(10),
car_model varchar2(50),
M_year date,
car_owner varchar2(50),
License_no number(10),
Issue_date date default sysdate,
Expire_date date,
import_date date,
Origin varchar2(50),
Engine_no number(8),
Chassis_no number(12),
Remarks varchar2(200))
Table created.
DESC কমান্ড দিয়ে দেখে নেই।
SQL> desc car_main;
Name
Null? Type
-----------------------------------------
-------- ----------------------------
CAR_ID
NUMBER(10)
CAR_MODEL
VARCHAR2(50)
M_YEAR
DATE
CAR_OWNER
VARCHAR2(50)
LICENSE_NO
NUMBER(10)
ISSUE_DATE DATE
EXPIRE_DATE DATE
IMPORT_DATE DATE
ORIGIN
VARCHAR2(50)
ENGINE_NO NUMBER(8)
CHASSIS_NO
NUMBER(12)
REMARKS
VARCHAR2(200)
এখানেও ডিফল্ট হিসাবে সিস্টেম ডেট থাকায় ডাটা এনিট্রর সময় অটোমেটিক্যাালি সিস্টেমের (কম্পিউটারের) ডেট/ তারিখ টেবিলে এন্ট্রি হবে। তবে ইচ্ছা করলে ডেট পরিবর্তন করেও সেভ করা যাবে।
DESC কমান্ড দিয়ে দেখে নেই।
SQL> desc employee;
Name
Null? Type
-----------------------------------------
-------- ----------------------------
EMPLOYEE_ID
NUMBER(3)
EMPLOYEE_NAME
VARCHAR2(10)
EMPLOYEE_DATE DATE
EMPLOYEE_NO
NUMBER(4)
অন্য টেবিল থেকে টেবিল তৈরী অর্থাৎ অন্য টেবিল থেকে ডাটা কপি করে নতুন টেবিলে রাখার নিয়ম। DEPT
টেবিলের ৩০ নং ডিপার্টমেন্ট নিয়ে DEPT_30
নামে নতুন টেবিল তৈরী করা যাক।
SQL> CREATE TABLE DEPT_30
AS
SELECT empno, ename, sal*12 ANNSAL, hiredate
from emp
where deptno=30;
Table created.
SELECT কমান্ড দিয়ে ডাটা দেখা যেতে পারে।
SQL> select * from
dept_30;
EMPNO ENAME ANNSAL
HIREDATE
---------- ---------- ---------- ---------
7499 ALLEN 19200
20-FEB-81
7521 WARD 15000
22-FEB-81
7654 MARTIN 15000
28-SEP-81
7698 BLAKE 34200
01-MAY-81
7844 TURNER 18000
08-SEP-81
7900 JAMES 11400
03-DEC-81
6 rows selected.