SQL DROP INDEX, DROP TABLE, and DROP DATABASE

Title: SQL DROP INDEX, DROP TABLE, and DROP DATABASE
অনুবাদক: ফয়সাল রকি (এম.এ)
Total word count: 164

DROP statement এর সাহায্যে Indexes, tables কিংবা databases কে সহজেই deleted বা removed করা যায়।
The DROP INDEX Statement
DROP INDEX statement ব্যবহার করে একটি table এর একটি index কে delete করা যায়।
MS Access এর ক্ষেত্রে ব্যবহৃত DROP INDEX সিনট্যাক্স (Syntax) হলো:
DROP INDEX index_name ON table_name

MS SQL Server এর ক্ষেত্রে ব্যবহৃত DROP INDEX সিনট্যাক্স (Syntax) হলো:
DROP INDEX table_name.index_name

DB2/Oracle এর ক্ষেত্রে ব্যবহৃত DROP INDEX সিনট্যাক্স (Syntax) হলো:
DROP INDEX index_name

MySQL এর ক্ষেত্রে ব্যবহৃত DROP INDEX সিনট্যাক্স (Syntax) হলো:
ALTER TABLE table_name DROP INDEX index_name

The DROP TABLE Statement
DROP TABLE statement কোনো একটি table কে delete করার ক্ষেত্রে ব্যবহৃত হয়।

The DROP DATABASE Statement
DROP DATABASE Statement কোনো একটি database কে delete করার ক্ষেত্রে ব্যবহৃত হয়।

The TRUNCATE TABLE Statement
যখন আমরা কোনো table হতে নির্দিষ্ট কিছু data delete করতে চাইবো তখন TRUNCATE TABLE Statement এর সাহায্যে তা করা হয়। উল্লেখ্য যে, এক্ষেত্রে পুরো table টিকে delete করা হয় না। TRUNCATE TABLE Statement নিম্নে দেখানো হলো:
TRUNCATE TABLE table_name

SQL Date Functions

নাম-শরিফুল ইসলাম
Job category-Php Coder

বিষয়- SQL Date Functions
এটি একটি কঠিন বিষয় যখন আমরা date নিয়ে কাজ করব নির্দিষ্ট ভাবে আমাদের date format জেনে নিতে হবে।আমরা date নিয়ে কাজ করতে গেলে এর কয়েকটি ফরম্যাট আমাদের জানতে হবে।
Now()-বর্তমান সময় এবং তারিখ পাওয়া যাবে
CURDATE()-বর্তমান তারিখ পাওয়া যাবে
CURTIME()-বর্তমান সময় পাওয়া যাবে
EXTRACT()-সময়/তারিখ এর একটি single পার্ট পাওয়া যাবে।
DATEDIFF()-দুটি তারিখের মাঝের সময় নির্ধারণ করবে।
DATE_FORMAT()-ভিন্ন ভিন্ন format এর date/time ডিসপ্লে করবে।
এখন আমরা NOW() কাজে লাগিয়ে একটি টেবিল তৈরি করব। যেকোনো একটি নাম দিয়ে একটি ডাটাবেস তৈরি করি। SQL window তে গিয়ে নিচের query টি চালনা করি
CREATE TABLE Orders
(
OrderId int NOT NULL,
ProductName varchar(50) NOT NULL,
OrderDate datetime NOT NULL DEFAULT NOW(),
PRIMARY KEY (OrderId)
)
Save বাটন এ ক্লিক করার পর আবার sql window তে গিয়ে নিচের কোড টুকু টাইপ করি
INSERT INTO Orders (ProductName) VALUES (‘Jarlsberg Cheese’)
এবং রান করলে আমরা নিচের মতন দেখতে পাব
OrderId ProductName OrderDate
1 Jarlsberg Cheese 2015-01-25 13:23:44.657
মানে orderdate সময় এবং তারিখ সহ ইনপুট হয়েছে।একটু যদি লক্ষ্য করি আমরা orderdate এ কোন ডাটা কিন্ত ইনপুট সে অটোমেটিক কম্পিউটার থেকে টাইম ও তারিখ জেনে নিয়ে নিজেই বসিয়েছে। অর্থাৎ যদি
NOW() ব্যবহার করতে চাইলে লিখতে হবে
OrderDate datetime NOT NULL DEFAULT NOW()
CURDATE()ব্যবহার করতে চাইলে লিখতে হবে
OrderDate datetime NOT NULL DEFAULT CURDATE()
CURTIME()ব্যবহার করতে চাইলে লিখতে হবে
OrderDate datetime NOT NULL DEFAULT CURTIME()
SQL QUERY এর মাধ্যমে যদি আমরা date select করে কোন ডাটা বের করতে চাই
তাহলে লিখতে হবে
SELECT NOW(),CURDATE(),CURTIME()
এবং আমরা যে ফলাফল তা পাব
NOW() CURDATE() CURTIME()
2015-01-25 12:45:34 2015-01-25 12:45:34

যদি আমরা দুটি date এর মাঝে difference খুজে পেতে চাই তাহলে ব্যবহার করব
SELECT DATEDIFF(‘2014-11-30′,’2014-11-29′) AS DiffDate
তাহলে ফলাফল আসবে ১
এখন আসা যাক কিভাবে date format ঠিক করতে হয়
SYNTAX
DATE_FORMAT(date,format)
date ফরম্যাট ঠিক রাখার জন্য আমরা কিছু ফিচার ব্যবহার করতে পারি
%a=সপ্তাহের দিনের নাম
%b=মাসের নাম
%c=মাস numeric
%D=দিন ইংলিশ suffix অনুযায়ী
%d= দিন numeric(00-31)
%e=দিন numeric(0-31)
%H=ঘণ্টা (00-23)
%h=ঘণ্টা (01-12)
%I= ঘণ্টা (01-12)
%i=minutes numeric(00-59)
%M=মাসের নাম
%m=মাসের নাম numeric(01-12)
%p=AM/PM
%s=সেকেন্ড (00-59)
%W=সপ্তাহের নাম
%w=সপ্তাহের নাম numeric(01-07)
%Y=বছর ৪ ডিজিট
%y=বছর ২ ডিজিট
SQL query এর মধ্যে যদি আমরা লিখি
DATE_FORMAT(NOW(),’%b %d %Y %h:%i %p’)
DATE_FORMAT(NOW(),’%m-%d-%Y’)
DATE_FORMAT(NOW(),’%d %b %y’)
DATE_FORMAT(NOW(),’%d %b %Y %T:%f’)
তাহলে আমাদের ফলাফল আসবে
Nov 04 2014 11:45 PM
11-04-2014
04 Nov 14
04 Nov 2014 11:45:34:243

SQL Not Null Constraint

নাম-শরিফুল ইসলাম
Job category-Php Coder

বিষয়- SQL Not Null Constraint
Null এর অর্থ কোন জাইগা ফাকা থাকা।সাধারনত কোন টেবিল এর ফিল্ড যদি আমরা কোন কিছু না ইনপুট করে থাকি এবং সেভ করি তাহলে জাইগা টা ফাকা থাকে কিন্তু mysql database এ সেটিংস্‌ ঠিক করে দিলে সেই জাইগা আমরা যতক্ষণ পর্যন্ত কোন ডাটা না ইনপুট করব ততখন সম্পূর্ণ রো কখনই অ্যাড হবে না। সেই ক্ষেত্রে আমাদের টেবিল এর কোন ফিল্ড কে বলে দিতে হবে যে এই ফিল্ড টি not null ।তাহলেই আমাদের এই নিয়মটি কাজে লাগবে। প্রথমে আমরা একটি ডাটাবেস তৈরি করি। এরপর create বাটন এ ক্লিক করি। ডাটাবেস তৈরি হয়ে যাওয়ার পর উপরের উপরের মেনু থেকে SQL বাটন এ ক্লিক করি একটি উইন্ডো আসবে। সেখানে নিচের কোড টুকু টাইপ করি
CREATE TABLE PersonsNotNull
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
এবং সবশেষে go button এ ক্লিক করলে আমাদের ডাটাবেসের টেবিল তৈরি হয়ে গেল। এরপর আবার উপড়ের মেন্যু ত্থেকে insert বাটন এ ক্লিক করলে নতুন ডাটা এন্ট্রি করার জাইগা দেখা যাবে। একটি রো insert করুন শুধু LastName ঘরটা ফাকা রেখে এবং go button এ ক্লিক করুন দেখবেন কোন ডাটাই যোগ হচ্ছে না মানে আপনের not null ব্যবহার করার কারনে এই রকম টি হচ্ছে যদি আগে আপনি not null না সেটিংস্‌ করতেন তাহলে সহজেই যেকোনো ডাটা ফাকা রেখেই পুরন করতে পারবেন।

SQL (এসকিউএল) CHECK Constraint (কনস্‌স্ট্রেইন্ট)

SQL (এসকিউএল) CHECK Constraint (কনস্‌স্ট্রেইন্ট)

Article By: Protap Chandra

CHECK constraint ব্যবহার করা হয় একটি কলামে কোন ধরনের বা কোন ডাটা ইনপুট দেয়া যাবে তার উপর নজর রাখার জন্য। যদি একটি কলামে CHECK constraint বেধে দেয়া হয় তবে সেই কলামে কেবলমাত্র ওইজাতীয় ডাটাই ইনপুট দেয়া সম্ভব হবে।

CREATE TABLE স্টেটমেন্টের সাথে CHECK Constraint প্রয়োগ:

নিচের এসকিউএল স্টেটমেন্টটি “Persons” টেবিলটি তৈরী করার সময় “P_Id” কলামে একটি CHECK constraint যুক্ত করবে। এই constraint এর কাজ হবে “P_Id” কলামে যেন কেবল পূর্ণসংখ্যা (integer) প্রবেশ করানো হয় এবং তার মান হবে শুন্যের চেয়ে বড়, সেদিকে নজর রাখা।

MySQL এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CHECK (P_Id>0)

)

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Persons

(

P_Id int NOT NULL CHECK (P_Id>0),

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

একাধিক কলামে CHECK constraint যুক্ত করতে নিচের SQL স্টেটমেন্টের syntax বা গঠনরীতি হবে নিম্নরূপ:

MySQL / SQL Server / Oracle / MS Access এর বেলায় প্রযোজ্য:

CREATE TABLE Persons

(

P_Id int NOT NULL,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255),

CONSTRAINT chk_Person CHECK (P_Id>0 AND City=’Sandnes’)

)

ALTER TABLE স্টেটমেন্টের মাধ্যমে CHECK Constraint যুক্ত করা:

ধরা যাক Persons টেবিলটি আগেই তৈরী হয়ে গেছে। তৈরীর সময় এতে CHECK constraint দেয়া হয়নি। এখন সেই কাজটি করতে হবে। “P_Id” কলামে CHECK constraint যুক্ত করতে নিচের SQL স্টেটমেন্টটি ব্যবহার করতে হবে।

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে প্রযোজ্য:

ALTER TABLE Persons

ADD CHECK (P_Id>0)

টেবিল তৈরী করার পর একাধিক কলামে CHECK constraint যুক্ত করতে গেলে এসকিউএল স্টেটমেন্টের গঠনরীতি হবে নিম্নরূপ:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে প্রযোজ্য:

ALTER TABLE Persons

ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City=’Sandnes’)

CHECK Constraint মুছে ফেলা:

CHECK constraint মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

SQL Server / Oracle / MS Access এর ক্ষেত্রে প্রযোজ্য:

ALTER TABLE Persons

DROP CONSTRAINT chk_Person

MySQL এর ক্ষেত্রে:

ALTER TABLE Persons

DROP CHECK chk_Person

SQL (এসকিউএল) DROP INDEX, DROP TABLE এবং DROP DATABASE স্টেটমেন্ট . SQL Drop Index, Drop Table & Drop Database

SQL (এসকিউএল) DROP INDEX, DROP TABLE এবং DROP DATABASE স্টেটমেন্ট

Article By: Protap Chandra

ডাটাবেজে ডাটা ধরে রাখার এবং তা ব্যবহারে সুবিধার জন্য টেবিল, ইনডেক্স ইত্যাদি তৈরী করা হয়। কিন্তু এগুলো যদি প্রয়োজন না হয় তবে ইচ্ছা করলে মুছেও ফেলা যায়। এমনটি ডাটাবেজটিকেও প্রয়োজনে মুছে ফেলা সম্ভব। এখন আমরা শিখব কিভাবে এই কাজগুলো করা যায়।

নামের আগে DROP কমান্ড প্রয়োগ করে আমরা এগুলো মুছে ফেলতে পারি।

DROP INDEX স্টেটমেন্ট

DROP INDEX স্টেটমেন্ট ব্যবহার করা হয় টেবিল থেকে ইনডেক্স বা সূচি (index) মুছে ফেলার জন্য।

DROP INDEX গঠনরীতি:

MS Access এর ক্ষেত্রে:

DROP INDEX index_name ON table_name

MS SQL Server এর ক্ষেত্রে:

DROP INDEX table_name.index_name

DB2/Oracle এর ক্ষেত্রে:

DROP INDEX index_name

MySQL এর ক্ষেত্রে:

ALTER TABLE table_name DROP INDEX index_name

DROP TABLE স্টেটমেন্ট:

ডাটাবেজ থেকে কোনো একটি টেবিল মুছে ফেলতে DROP TABLE স্টেটমেন্ট ব্যবহার করা হয়। যেমন:

DROP TABLE table_name

DROP DATABASE স্টেটমেন্ট:

গোটা ডাটাবেজটিই মুছে ফেলতে DROP DATABASE স্টেটমেন্ট ব্যবহার করা হয়:

DROP DATABASE database_name

TRUNCATE TABLE স্টেটমেন্ট:

যদি কখনো টেবিল থেকে কেবল ডাটাগুলো মুছে দেয়ার প্রয়োজন হয় তখন আমরা কি করব? আমরা টেবিলটি মুছতে চাই না। সেক্ষেত্রে TRUNCATE TABLE স্টেটমেন্ট ব্যবহার করতে হবে:

TRUNCATE TABLE table_name

SQL (এসকিউএল) FOREIGN KEY কনস্ট্রেইন্টস্. SQL Foreign Key Constraint

SQL (এসকিউএল) FOREIGN KEY কনস্ট্রেইন্টস্

Article By: Protap Chandra

FOREIGN KEY কনস্ট্রেইন্ট ব্যবহার করা যায় টেবিলগুলোর মধ্যে আন্ত:সংযোগ যাতে নষ্ট না হয় তা নিশ্চিত করার জন্য। এছাড়া FOREIGN KEY কনস্ট্রেইন্ট foreign key যুক্ত কলামে অগ্রহণযোগ্য ডাটা ইনপুটে দেয়ার হাত থেকেও ব্যবহারকারীদের বিরত রাখে। কারণ FOREIGN KEY সঙ্গায়িত কলামে কেবল সেই ডাটা ইনপুট দেয়া যাবে যে ডাটা PRIMARY KEY তে আছে।

একটি টেবিলের FOREIGN KEY অন্য টেবিলে PRIMARY KEY এর সংগে সংযুক্ত।

নিচের দু’টি টেবিলের সাহায্যে আমরা FOREIGN KEY সম্পর্কে ধারণা নিব।

প্রথমটি হচ্ছে “Persons” টেবিল:

P_Id

LastName

FirstName

Address

City

1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

দ্বিতীয়টি হচ্ছে “Orders” টেবিল:

O_Id

OrderNo

P_Id

1 77895 3
2 44678 3
3 22456 2
4 24562 1

লক্ষ্য করুন, “Orders” টেবিলের “P_Id” কলাম “Persons” টেবিলের “P_Id” কলাম থেকে এসেছে। একারণে “Persons” টেবিলের “P_Id” কলাম “Persons” টেবিলের PRIMARY KEY.

অন্যদিকে, “Orders” টেবিলের “P_Id” কলাম “Orders” টেবিলের FOREIGN KEY.

নিচের SQL স্টেটমেন্টটি “Orders” টেবিল তৈরী করার সময় “P_Id” কলামটিকে FOREIGN KEY হিসেবে তৈরী করবে।

MySQL এর ক্ষেত্রে:

CREATE TABLE Orders

(

O_Id int NOT NULL,

OrderNo int NOT NULL,

P_Id int,

PRIMARY KEY (O_Id),

FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)

)

SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Orders

(

O_Id int NOT NULL PRIMARY KEY,

OrderNo int NOT NULL,

P_Id int FOREIGN KEY REFERENCES Persons(P_Id)

)

একাধিক কলামে FOREIGN KEY কনস্ট্রেইন্ট তৈরী করতে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

CREATE TABLE Orders

(

O_Id int NOT NULL,

OrderNo int NOT NULL,

P_Id int,

PRIMARY KEY (O_Id),

CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)

REFERENCES Persons(P_Id)

)

যদি আগে থেকে তৈরী করা একটি টেবিলের কোনো কলামে FOREIGN KEY কনস্ট্রেইন্ট যোগ করার প্রয়োজন হয় তবে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Orders

ADD FOREIGN KEY (P_Id)

REFERENCES Persons(P_Id)

যদি আগে থেকে তৈরী করা একটি টেবিলের FOREIGN KEY তে কোনো নাম যুক্ত করার প্রয়োজন হয়, তবে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL / SQL Server / Oracle / MS Access এর ক্ষেত্রে:

ALTER TABLE Orders

ADD CONSTRAINT fk_PerOrders

FOREIGN KEY (P_Id)

REFERENCES Persons(P_Id)

FOREIGN KEY কনস্ট্রেইন্ট মুছে ফেলতে চাইলে নিচের SQL স্টেটমেন্ট ব্যবহার করতে হবে:

MySQL এর ক্ষেত্রে:

ALTER TABLE Orders

DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access ক্ষেত্রে:

ALTER TABLE Orders

DROP CONSTRAINT fk_PerOrders

এসকিউএল চেক কন্সট্রেইন্ট. SQL Check Constraint

এসকিউএল চেক কন্সট্রেইন্ট

এসকিউএল(SQL) কনস্ট্রেইন্টগুলোর(Constraint) মধ্যে অন্যতম হলো CHECK কন্সট্রেইন্ট। CHECK কন্সট্রেইন্ট একটি কলামে রাখার মতো ভ্যালু রেঞ্জকে সীমিত করে দেয়ার জন্য ব্যবহৃত হয়। যদি আপনি একটি কলামে CHECK কন্সট্রেইন্ট সংজ্ঞায়িত করে দেন তাহলে ঐ কলাম শুধুমাত্র নির্দিষ্ট কতগুলো ভ্যালু গ্রহন করতে পারবে। যদি একটি টেবলে CHECK কন্সট্রেইন্ট সংজ্ঞায়িত করে দেয়া হয় তাহলে সেটি নির্দিষ্ট কলামগুলোকে ঐ রো বা সারির অন্য কলামগুলোর ভ্যালু অনুসারে ভ্যালু গ্রহন করার যোগ্যতা সীমিত করে দেয়।

CREATE TABLE এ এসকিউএল CHECK কন্সট্রেইন্টঃ
নিচের এসকিউএল সিন্টেক্সটটি যখন “Persons” টেবল তৈরি করা হয় তখন “P_Id” কলামে একটি চেক কন্সট্রেইন্ট তৈরি করে। CHECK কন্সট্রেইন্টটি নির্ধারিত করে দেয় যে “P_Id” কলাম শুধুমাত্র শূন্য থেকে বড় পূর্ণ সংখ্যা(Integer) অন্তর্ভূক্ত করতে পারবে।

MySQL:

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CHECK (P_Id>0)
)

SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL CHECK (P_Id>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

CHECK কন্সট্রেইন্টের নামকরন করার জন্য এবং অনেকগুলো কলামে একটি CHECK কন্সট্রেইন্ট সংজ্ঞায়িত করার জন্য নিচের এসকিউএল সিন্ট্যাক্সট ব্যবহার করুনঃ

MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (P_Id>0 AND City=’Sandnes’)
)

ALTER TABLE এ এসকিউএল CHECK কন্সট্রেইন্ট
যখন টেবলটি ইতোমধ্যেই তৈরি করা হয়ে গেছে তখন “P_Id” কলামে CHECK কন্সট্রেইন্ট তৈরি করতে নিচের এসকিএউএল সিন্টেক্সটি ব্যবহার করুনঃ

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (P_Id>0)

CHECK কন্সট্রেইন্টের নামকরন করার জন্য এবং অনেকগুলো কলামে একটি CHECK কন্সট্রেইন্ট সংজ্ঞায়িত করার জন্য নিচের এসকিউএল সিন্ট্যাক্সট ব্যবহার করুনঃ

MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City=’Sandnes’)

CHECK কন্সট্রেইন্ট ড্রপ(DROP) করার জন্য নিচের এসকিউএলটি ব্যবহার করুনঃ

SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT chk_Person
MySQL:
ALTER TABLE Persons
DROP CHECK chk_Person

SQL প্রাইমারি Constraint . SQL Primary Key Constraint

SQL প্রাইমারি Constraint
RIAZ-UL-HAQUE MIAN
প্রাইমারি Constraint একটি টেবিল এর যেকোনো একটি কলাম এর স্বতন্ত্রতা/ uniqueness কে বুঝায় .
টেবিল এর প্রাইমারি কি অবশই ইউনিক হতে হবে এবং NULL হতে পারবেনা . প্রতিটা টেবিল এ ই একটা প্রাইমারি key থাকা উচীঠ
একটা টেবিল এর একটা মাত্র কলাম কে ই প্রাইমারি কি করতে পারবেন
এখন আমরা দেখব টেবিল তৈরী করার সময় কি ভাবে প্রাইমারি Constraint সেট করে |
ধরে নেই আমাদের একটা টেবিল তৈরী করতে হবে যার নাম Persons এবং সেই টেবিল এর একটা কলাম P_Id যাকে আমরা SQL প্রাইমারি Constraint সেট করব |
SQL Server / Oracle / MS Access queary টি হবে :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)
আর MySQL জন্য হবে :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
UNIQUE (P_Id)
)

এই কাজ টি একাধিক কলাম এর জন্য করতে হলে নিচের queary টি লিখতে হবে (MySQL / SQL Server / Oracle / MS Access:)
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
)
এত্তক্ষন আমরা দেখলাম কিভাবে একটা টেবিল তৈরী করার সময় প্রাইমারি Constraint
সেট করে। এবার মনে করি Persons টেবিল টি আগে থাকে ই তৈরী করা আছে এখন আমাদের কে P_Id প্রাইমারি Constraint সেট করতে হবে। এক্ষেত্রে আমরা অল্টার টেবিল statement ব্যবহার করব
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
এক্ষেত্রে টেবিল cloumn আগে থেকে ই not NULL করা থাকতে হবে
সব শেষে দেখব কিভাবে কে প্রাইমারি Constraint রিমুভ করে । এক্ষেত্রে MySQL ও SQL Server / Oracle / MS Access SQL starement নিচে দিয়া হলো
MySQL ক্ষেত্রে query টি হবে নিন্মরূপ :
ALTER TABLE Persons
DROP PRIMARY KEY
আর SQL Server / Oracle / MS Access ক্ষেত্রে quraery টি হবে নিন্মরূপ :
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

SQL default (ডিফল্ট) Constraint . SQL Default Constraint

SQL default (ডিফল্ট) Constraint
RIAZ-UL-HAQUE MIAN
টেবিল এ যখন কোনো নতুন ভ্যালু insert করা হয় তখন কোনো টেবিল এর কোনো ফিল্ড এ ফিক্সড কোনো ভ্যালু সেট করতে হলে default (ডিফল্ট) Constraint ব্যবহার করতে হবে | যখন কোনো নিউ ভ্যালু টেবিল এ insert করা হবে তখন default (ডিফল্ট) Constraint টি row insert সাথে insert হয়ে যাবে |
এখন আমরা দেখব টেবিল তৈরী করার সময় কি ভাবে সেট করে | উধারণ সরূপ আমরা Persons Table এর city (সিটি) কলাম এ সব সময় Dhaka (ঢাকা) সেট করতে চাই সেক্ষেত্রে SQL syntax হবে :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT ‘Dhaka’
)
default (ডিফল্ট) Constraint এ SQL server function ও ব্যবহার করা যায় যেমন
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
OrderDate date DEFAULT GETDATE()
)
এত্তক্ষন আমরা দেখলাম কিভাবে একটা টেবিল তৈরী করার সময় default (ডিফল্ট) Constraint সেট করে। এবার মনে করি Persons টেবিল টি আগে থাকে ই তৈরী করা আছে এখন আমাদের কে city column এর ডিফল্ট ভ্যালু Dhaka (ঢাকা) করতে হবে এক্ষেত্রে আমরা অল্টার টেবিল statement ব্যবহার করব
MySQL:
ALTER TABLE Persons
ALTER City SET DEFAULT ‘SANDNES’
SQL Server / MS Access:
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT ‘SANDNES’
Oracle:
ALTER TABLE Persons
MODIFY City DEFAULT ‘SANDNES’

সব শেষে দেখব কিভাবে কে default (ডিফল্ট) Constraint রিমুভ করে । এক্ষেত্রে MySQL ও SQL Server / Oracle / MS Access SQL starement নিচে দিয়া হলো
MySQL ক্ষেত্রে query টি হবে নিন্মরূপ :
ALTER TABLE Persons
ALTER City DROP DEFAULT
আর SQL Server / Oracle / MS Access ক্ষেত্রে quraery টি হবে নিন্মরূপ :
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT

SQL (এসকিউএল) ALTER TABLE স্টেটমেন্ট . SQL Alter Table Statement

SQL (এসকিউএল) ALTER TABLE স্টেটমেন্ট

Article By : Protap Chandra

ডাটাবেজে বিদ্যমান একটি টেবিলের পুরাতন ডাটার সঙ্গে নতুন ডাটা যোগ করতে, বর্তমান ডাটা মুছে ফেলতে কিংবা কলামে কোনো ধরনের পরিবর্তন আনতে ALTER TABLE স্টেটমেন্ট ব্যবহার করা হয়।

SQL ALTER TABLE সিনট্যাক্স (Syntax)

ALTER TABLE স্টেটমেন্ট ব্যবহার করে টেবিলে পরিবর্তন আনতে গেলে একেক কাজের জন্য একেক রকম বাক্যরীতি বা সিনট্যাক্স ব্যবহার করা হয়। নিচের উদাহরণগুলো আমাদের এ ব্যাপারে পরিষ্কার ধারণা দেবে।

টেবিলে একটি নতুন কলাম যোগ করতে নিচের সিনট্যাক্স প্রয়োগ করা হয়:

ALTER TABLE table_name

ADD column_name datatype

এখানে table_name বলতে বুঝানো হয়েছে যে টেবিল যোগ করবেন তার নাম। আর column_name হচ্ছে যে কলাম যোগ করা হবে তার নাম। কলামে কোন ধরনের ডাটা সংগ্রহ করা হবে তার প্রকৃতি (varchar, date, number ইত্যাদি) datatype এর স্থলে লেখা হয়।

টেবিল থেকে কোনো কলাম মুছে ফেলতে চাইলে নিচের সিনট্যাক্স প্রয়োগ করতে হবে (এখানে উল্লেখ্য যে, কিছু কিছু ডাটাবেজ সিস্টেমে কলাম মুছে ফেলার সুযোগ থাকে না):

ALTER TABLE table_name

DROP COLUMN column_name

আর টেবিলের কোনো কলামের ডাটাটাইপ পরিবর্তন করতে গেলে ডাটাবেজ ভেদে নিচের সিনট্যাক্সগুলি ব্যবহার করা হয়:

SQL Server / MS Access এর ক্ষেত্রে:

ALTER TABLE table_name

ALTER COLUMN column_name datatype

My SQL / Oracle এর ক্ষেত্রে:

ALTER TABLE table_name

MODIFY COLUMN column_name datatype

Oracle 10G এবং এর পরবর্তী ভার্সনগুলোর ক্ষেত্রে:

ALTER TABLE table_name

MODIFY column_name datatype

Persons নামের নিচের টেবিলটির দিকে খেয়াল করুন:

P_Id

LastName

FirstName

Address

City

1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

টেবিলটিতে ৫টি কলাম আছে। টেবিলটিতে আমরা DateOfBirth নামে একটি নতুন কলাম যোগ করতে চাই। এই কাজ করতে আমরা নিচের SQL স্টেটমেন্টটি ব্যবহার করব:

ALTER TABLE Persons

ADD DateOfBirth date

লক্ষ্য করুন টেবিলে DateOfBirth নামের নতুন যে কলাম যোগ করা হয়েছে তার ডাটাটাইপ হচ্ছে date এবং এই কলামে কেবল তারিখ যোগ করা যাবে। MS Access, MySQL এবং SQL Server এর ডাটাটাইপ সম্পর্কে পূর্ণ ধারণা পেতে Data Types reference লিংকটি ব্রাউজ করতে পারেন।

নতুন কলাম যোগ করার পর Persons টেবিলটির চেহারা এমন হবে:

P_Id

LastName

FirstName

Address

City

DateOfBirth

1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Data Type পরিবর্তনের উদাহরণ:

এখন আমরা Persons টেবিলের DateOfBirth কলামের ডাটাটাইপ পরিবর্তন করব। এজন্য নিচের SQL টেস্টমেন্ট ব্যবহার করতে হবে:

ALTER TABLE Persons

ALTER COLUMN DateOfBirth year

লক্ষ্য করুন DateOfBirth কলামের ডাটাটাইপ এখন year যার ফলে এটি এখন দুই কিংবা চার অঙ্কের ফরম্যাটে year ডাটা ধারণ করবে।

DROP COLUMN স্টেটমেন্টের উদাহরণ:

এখন আমরা Persons টেবিল থেকে DateOfBirth কলামটি মুছে ফেলতে চাই। এজন্য নিচের এসকিউএল স্টেটমেন্টটি প্রয়োগ করব:

ALTER TABLE Persons

DROP COLUMN DateOfBirth

Persons টেবিলটি এবার আগের চেহারায় ফিরে যাবে:

P_Id

LastName

FirstName

Address

City

1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger