Category Archives: এস কিউ এল – ০০১ । SQL – 001

SQL(এসকিউএল) Wildcards (ওয়াইল্ডকার্ড) . SQL Wildcards

SQL(এসকিউএল) Wildcards (ওয়াইল্ডকার্ড)

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

ডাটাবেজ সিস্টেমে ডাটা তল্লাশি বা সার্চ করার ক্ষেত্রে wildcard (ওয়াইল্ডকার্ড) একটি গুরুত্বপূর্ণ টার্ম। স্ট্রিং ডাটার কোনো অংশ ‌‌'অজ্ঞাত' উল্লেখ করে ডাটা তল্লাশি করতে ওয়াইল্ডকার্ড ব্যবহার করা হয়। এই অজ্ঞাত অংশ এক থেকে বহু character (অক্ষর) পর্যন্ত হতে পারে।
একটি টেবিলের ভেতর থেকে ডাটা তল্লাশি করার জন্য এসকিউএল LIKE অপারেটরের সঙ্গে ওয়াইল্ডকার্ড character ব্যবহার করা হয়। SQL এ ব্যবহৃত wildcard গুলো হচ্ছে:

Wildcard

Description

%

শুন্য কিংবা যে কোনো এক বা একাধিক character খুঁজতে ব্যবহার করা হয়

_

একটিমাত্র character খুঁজতে ব্যবহার করা হয়

[charlist]

একাধিক character এর লিস্ট উল্লেখ করা হয় যেগুলো দিয়ে শুরু হওয়া ডাটা বাছাই করে

[^charlist]
or
[!charlist]

একাধিক character এর লিস্ট উল্লেখ করা হয় যেগুলো বাদ রেখে অন্য সব অক্ষর দিয়ে শুরু হওয়া ডাটা বাছাই করে

এই টিউটিরিয়ালে আমরা Northwind স্যাম্পল ডাটাবেজটি ব্যবহার করব, যেটি মাইক্রোসফট Excel এবং MS SQL Server এর সাথে শিক্ষার্থীদের জন্য তৈরী অবস্থায় (readymade) সংযুক্ত করা থাকে। সেই ডাটাবেজের "Customers" টেবিল থেকে কিছু ডাটা নির্বাচন করা হল:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1

Alfreds Futterkiste

Maria Anders

Obere Str. 57

Berlin

12209

Germany

2

Ana Trujillo Emparedados y helados

Ana Trujillo

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Antonio Moreno

Mataderos 2312

México D.F.

05023

Mexico

4

Around the Horn

Thomas Hardy

120 Hanover Sq.

London

WA1 1DP

UK

5

Berglunds snabbköp

Christina Berglund

Berguvsvägen 8

Luleå

S-958 22

Sweden

SQL “%” ওয়াইল্ডকার্ড এর ব্যবহার:

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "ber" দিয়ে।

SELECT * FROM Customers
WHERE City LIKE 'ber%';

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নামের মাঝে কোথাও "es" আছে:

SELECT * FROM Customers
WHERE City LIKE '%es%';

SQL “ _” ওয়াইল্ডকার্ডের ব্যবহার:

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে যেকোন অক্ষর দিয়ে, কিন্তু তার পরের অবস্থানেই "erlin" আছে:

SELECT * FROM Customers
WHERE City LIKE '_erlin';

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে “L” দিয়ে, তারপরের অবস্থানে যেকোন অক্ষর, তার পরের অবস্থানে “n”, তার পরের অবস্থানে যেকোন অক্ষর, তার পরেই একসাথে থাকবে "on".

SELECT * FROM Customers
WHERE City LIKE 'L_n_on';

SQL [charlist] ওয়াইল্ডকার্ডের ব্যবহার:

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "b", "s" কিংবা "p" দিয়ে।

SELECT * FROM Customers
WHERE City LIKE '[bsp]%';

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "a", "b" কিংবা "c" দিয়ে।

SELECT * FROM Customers
WHERE City LIKE '[a-c]%';

নিচের SQL স্টেটমেন্টটি customers টেবিল থেকে সেইসকল কাস্টমারদের তথ্য তুলে আনবে যাদের City এর নাম শুরু হয়েছে "b", "s" কিংবা "p" বাদ দিয়ে

SELECT * FROM Customers
WHERE City LIKE '[!bsp]%';

or

SELECT * FROM Customers
WHERE City NOT LIKE '[bsp]%';

এসকিউএল Aliases এর টিউটোরিয়ালঃ SQL Aliases

এসকিউএল Aliases এর টিউটোরিয়ালঃ

কোয়েরির সুবিধার্থে Alias ব্যবহার করা হয়। টেবিল, কলাম দুটোরই এলিয়াস ব্যবহার করা যায়। এলিয়াসকে বলতে পারেন ছোটনাম বা ডাকনামের মত। বিশেষ করে কোয়েরিতে যখন একাধিক কলাম ব্যবহার করে ক্যালকুলেশন করা হয়ে থাকে তখন বেশ ভালই উপকার হয় এলিয়াস ব্যবহার করলে। এছাড়া কোয়েরিও আকারে অনেক ছোট হয়ে যায়। যেমন লেফট জয়েনে ব্যবহৃত কোয়েরি টি যদি এলিয়াস ব্যবহার করি তাহলে নিচের মত হবেঃ
1.SELECT u.username AS UserName, u.age AS Age, p.favorite_color FavColor FROM users AS u LEFT JOIN profiles AS p ON u.user_id = p.user_id;
কোয়েরিতে এভাবে কলামের নামের সামনে ডট (.) দিয়ে টেবিলের নাম বসিয়ে দেয়া ভাল অভ্যাস, এভাবেই কোয়েরি করা উচিৎ বিশেষ করে যখন সম্পর্কযুক্ত টেবিল থেকে ডেটা কোয়েরি করা হয় তখন দুটো টেবিলেই একই নামের ফিল্ড/কলাম থাকতে পারে তখনতো অবশ্যই এভাবে কলামের নামের আগে ডট দিয়ে টেবিলের নাম দিতে হবে।
ব্যাখ্যা: users টেবিলে এলিয়াস ব্যবহারের জন্য users AS u এভাবে দিয়েছি এতে করে আর কোথাও পুরো টেবিলের নামটি ব্যবহার করতে হয়নি বরং শুধু u দেয়াতেই পুরো users লেখার কাজ হয়ে গেছে এভাবে দেখুন profiles টেবিলেরও কাজ শুধু p দিয়ে হচ্ছে। এই u হচ্ছে এখানে users টেবিলের এলিয়াস আর p হচ্ছে profiles টেবিলের এলিয়াস।
ধন্যবাদ।

SQL (এসকিউএল) IN(ইন) অপারেটর . SQL IN Operator

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

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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 uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

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

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

ALTER TABLE Persons

DROP INDEX uc_PersonID

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

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL LIKE (লাইক) Operator (অপারেটর) . SQL Like Operator

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

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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 uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

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

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

ALTER TABLE Persons

DROP INDEX uc_PersonID

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

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

এসকিউএল ডিলেট স্টেটমেন্ট . SQL Delete Statement

এসকিউএল ডিলেট স্টেটমেন্ট
Name: Sheikh Mahfuzur Rahman
এসকিউএল প্রোগ্রামিং লেংগুয়েজে একটি টেবলের রেকর্ড সমূহ যেমন টেবলের রো বা সারি মুঁছে ফেলার জন্য ডিলেট(DELETE) স্টেটমেন্ট ব্যবহার করা হয়। নিচে এ সম্পর্কে বিস্তারিত আলোচনা করা হলোঃ

এসকিউএল ডিলেট স্টেটমেন্ট

ডিলেট স্টেটমেন্ট একটি টেবলের রো বা সারিগুলো মুঁছে ফেলার কাজে ব্যবহার করা যায়।

এসকিউএল ডিলেট সিন্ট্যাক্সঃ

DELETE FROM table_name
WHERE some_column=some_value;

ডিলেট স্টেটমেন্ট এ হোয়ার(WHERE) ক্লজটি লক্ষ করুন!
হোয়ার(WHERE) ক্লজটি কোন কোন রেকর্ড বা রেকর্ডসমূহ মুঁছে ফেলা হবে তা নির্দিষ্ট করে দেয়। আপনি যদি হোয়ার(WHERE) ক্লজটি বাদ দেন তাহলে সবগুলো রেকর্ডই মুঁছে যাবে!

ডেমো ডাটাবেজঃ

এই টিউটোরিয়ালে আমরা বহুল-পরিচিত "নর্থউইন্ড(Northwind)" স্যাম্পল ডাটাবেজ ব্যবহার করবো।
নিচে কাস্টমার্স টেবলের একটি নির্বাচিত অংশ তুলে ধরা হলোঃ

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
1

Alfreds Futterkiste
Maria Anders
Obere Str. 57
Berlin
12209
Germany
2
Ana Trujillo Emparedados y helados
Ana Trujillo
Avda. de la Constitución 2222
México D.F.
05021
Mexico
3
Antonio Moreno Taquería
Antonio Moreno
Mataderos 2312
México D.F.
05023
Mexico
4
Around the Horn
Thomas Hardy
120 Hanover Sq.
London
WA1 1DP
UK
5
Berglunds snabbköp
Christina Berglund
Berguvsvägen 8
Luleå
S-958 22
Sweden

এসকিউএল ডিলেট একজাম্পলঃ

ধরা যাক, আমরা কাস্টমার্স টেবল থেকে কাস্টমার "Alfreds Futterkiste" কে মুঁছে দিতে চাই।
আমরা নিম্নরূপ এসকিউএল স্টেইটমেন্ট ব্যবহার করবোঃ

DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste' AND ContactName='Maria Anders';

এখন কাসস্টমার্স টেবলটি নিচের মতো দেখাবেঃ

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
2
Ana Trujillo Emparedados y helados
Ana Trujillo
Avda. de la Constitución 2222
México D.F.
05021
Mexico
3
Antonio Moreno Taquería
Antonio Moreno
Mataderos 2312
México D.F.
05023
Mexico
4
Around the Horn
Thomas Hardy
120 Hanover Sq.
London
WA1 1DP
UK
5
Berglunds snabbköp
Christina Berglund
Berguvsvägen 8
Luleå
S-958 22
Sweden

ডিলেট অল ডাটা বা সব ডাটা মুঁছে দেয়াঃ

একটি টেবলকে না মুঁছে তার সব রো বা সারি মুঁছে ফেলা সম্ভব। অর্থাৎ এর ফলে টেবল স্ট্রাকচার, এট্রিবিউট, এবং ইন্ডেক্সগুলো মুঁছে যাবেনাঃ

DELETE FROM table_name;

or

DELETE * FROM table_name;

লক্ষ্য করুন, রেকর্ডস মুঁছে ফেলার সময় সতর্ক হোন কারণ আপনি এসকিউএল ডিলেট স্টেটমেন্ট আন্ডু(Undo) করতে পারবেন না।

SQL Update Statement

নাম-শরিফুল ইসলাম
PHP Coder

বিষয়- SQL Update Statement

SQL Update statement ব্যবহার করা হয় ডাটাবেস এর ভিতরে টেবিল এর ডাটা কে পরিবরতন করার জন্য। এই statement এর কিভাবে অ্যাপ্লাই করতে হয় তা দেখার জন্য আমাদের localhost>phpmyadmin এর আন্ডার এ ডাটাবেস তৈরি করতে হবে এবং একটি টেবিল তৈরি করতে হবে। প্রথমে ডাটাবেস এ ক্লিক করলে একটি ফিল্ড পাওয়া যাবে সেইখানে product নামে একটি ডাটাবেস তৈরি করি। এরপর ওপরের মেনু থেকে sql এ ক্লিক করি অনেক বড় একটা textarea পাওয়া যাবে। সেইখানে নিচের কোড টি paste করি
-- Database: `product`
--

-- --------------------------------------------------------

--
-- Table structure for table `product`
--

CREATE TABLE IF NOT EXISTS `product` (
`name` varchar(11) NOT NULL,
`price` int(11) NOT NULL,
`date` date NOT NULL,
`customer_id` int(250) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data for table `product`
--

INSERT INTO `product` (`name`, `price`, `date`, `customer_id`) VALUES
('shirt', 100, '2015-01-01', 4),
('jeans', 120, '2015-01-03', 2),
('salowar', 300, '2015-01-10', 3),
('bag', 150, '2015-01-07', 1);
ফলে আমাদের টেবিল তৈরি হয়ে গেল
Name price date customer_id
Bag 150 2015-01-07 1
Shirt 100 2015-01-03 2
Salowar 300 2015-01-10 3
Jeans 120 2015-01-01 4
আমদের এই টেবিল টির নাম product. মনে করুন আমি name ফিল্ড এর আন্ডার প্রথম কলামে bag নামটা পরিবরতন করে sports bag নামটা লিখব। এই জন্য উপরের মেনু থেকে sql ক্লিক করি কোড উইন্ডো তে টাইপ করি
UPDATE `product`.`product` SET `name` = 'sports bag' WHERE `product`.`name` = 'bag' AND `product`.`price` =150 AND `product`.`date` = '2015-01-07' AND`product`.`customer_id` =1 LIMIT 1 ;
এবং go বাটন এ ক্লিক করলে bag এর পরিবর্তে sports bag হয়ে যাবে।
এই
Statement টি যদি আমরা explain করি তাহলে নিম্মের মতন হবে
Product database এর product table এর name ফিল্ড এ bag এর পরিবর্তে sports bag পরিবরতন করতে হবে যেখানে price=150 এবং date=2015-01-07 এবং customer_id=1.এইভাবে আমরা আমাদের ডাটাবেস এর যেকোনো ফিল্ড কে আপডেট করতে পারি।

SQL Insert Into Statement

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

বিষয়- SQL Insert Into Statement
Database এর টেবিল এ কোন ডাটা insert করার জন্য আমরা insert statement ব্যবহার করে থাকি।
এরজন্ন আগে আমাদের ডাটাবেস তৈরি করে নিতে হবে। আমরা প্রোডাক্ট নামে একটা ডাটাবেস তৈরি করব এবং তার মধ্যে একটি টেবিল তৈরি করব। প্রথমে ডাটাবেস এ ক্লিক করলে একটি ফিল্ড পাওয়া যাবে সেইখানে product নামে একটি ডাটাবেস তৈরি করি। এরপর ওপরের মেনু থেকে sql এ ক্লিক করি অনেক বড় একটা textarea পাওয়া যাবে। সেইখানে নিচের কোড টি paste করি
-- Database: `product`
--

-- --------------------------------------------------------

--
-- Table structure for table `product`
--

CREATE TABLE IF NOT EXISTS `product` (
`name` varchar(11) NOT NULL,
`price` int(11) NOT NULL,
`date` date NOT NULL,
`customer_id` int(250) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- --------------------------------------------------------

--
-
এবং go বাটন এ ক্লিক করার সাথে সাথে ডাটাবেস তৈরি হয়ে গেল।এখন আমরা sql query এর মাধ্যমে এই ডাটাবেস এ ডাটা যোগ করব।
উপড়ের মেন্যু থেকে SQL ক্লিক করলে একটি উইন্ডো আসবে। সেখানে টাইপ করি
-- Dumping data for table `product`
--

INSERT INTO `product` (`name`, `price`, `date`, `customer_id`) VALUES
('shirt', 100, '2015-01-01', 4),
('jeans', 120, '2015-01-03', 2),
('salowar', 300, '2015-01-10', 3),
('bag', 150, '2015-01-07', 1);
এবং go বাটন এ ক্লিক করলে নিচের টেবিল এর মতন একটি টেবিল পাওয়া যাবে

Name price date customer_id
Bag 150 2015-01-07 1
Shirt 100 2015-01-03 2
Salowar 300 2015-01-10 3
Jeans 120 2015-01-01 4
অনেক সময় দেখা যায় আমাদের সবগুলো ফিল্ড এ ডাটা ইনপুট না করে কিছু নির্দিষ্ট ফিল্ডে ডাটা ইনপুট করতে হয়। যেমন আমরা শুধু product table এর name and price এই দুটি ফিল্ডে ডাটা যোগ করতে চাই।
এর জন্য sql query
INSERT INTO `product` (`name`, `price`) VALUES
('shirt', 100),
('jeans', 120),
('salowar', 300),
('bag', 150);
এবং এর query রান করলে আমরা পাব
Name price date customer_id
Bag 150 - -
Shirt 100 - -
Salowar 300 - -
Jeans 120 - -

SQL ORDER BY কীওয়ার্ড . SQL ORDER BY Keyword

SQL ORDER BY কীওয়ার্ড

Article By: Pratap Chandra

ডাটাবেজের একটি টেবিল থেকে তুলে আনা ডাটাকে প্রয়োজন মতো সাজাতে ORDER BY কীওয়ার্ড ব্যবহার করা হয়। এক কিংবা একাধিক কলাম ধরে এই কীওয়ার্ডের সাহায্যে ডাটা সাজানো যায় এবং সজ্জার প্রকৃতি (উর্ধ্বক্রম কিংবা অধ:ক্রম) উল্লেখ না করলে স্বয়ংক্রিভাবে উর্ধ্বক্রম (ascending) অনুসারে সাজায়। প্রাপ্ত ডাটাকে অধ:ক্রম (descending) অনুসারে সাজাতে গেলে DESC কীওয়ার্ড ব্যবহার করতে হবে।

SQL ORDER BY সিনট্যাক্স

SELECT column_name,column_name

FROM table_name

ORDER BY column_name,column_name ASC|DESC;

এই সিনট্যাক্সে column_name বলতে বুঝানো হয়েছে আপনি যেটি বা যেসব কলামের ডাটা তুলে আনতে চান তার নাম। table_nameএর স্থলে ডাটাবেজের নির্দিষ্ট টেবিলের নাম লিখতে হবে। ORDER BY এর পর লিখতে হবে আপনি কোন কলাম ধরে কিংবা অগ্রাধিকার অনুসারে কোন কলামগুলো ধরে ডাটা সাজাতে চান। উর্ধ্বক্রমে সাজাতে চাইলে ASC এবং অধ:ক্রম অনুসারে সাজাতে চাইলে DESC ব্যবহার করা হয়।

ডাটা নির্বাচনের উদাহরণ:

এই টিউটিরিয়ালে আমরা বহুল পরিচিত Northwind স্যাম্পল ডাটাবেজটি ব্যবহার করব, যেটি মাইক্রোসফট Excel এবং MS SQL Server এর সাথে শিক্ষার্থীদের জন্য তৈরী অবস্থায় (readymade) সংযুক্ত করা থাকে।

Northwind ডাটাবেজের Customers টেবিল থেকে কিছু ডাটা নির্বাচন করা হলো:

AlfredsFutterkisteObereStr.57Ana TrujilloEmparedados yheladosAvda. de laConstitución2222México D.F.Mataderos 2312México D.F.WA1 1DPBerglundssnabbköpBerguvsvägen 8

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1 Maria Anders Berlin 12209 Germany
2 Ana Trujillo 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London UK
5 Christina Berglund Luleå S-958 22 Sweden

ORDER BY এর উদাহরণ:

নিচের SQL স্টেটমেন্টটি প্রয়োগ করলে Customers টেবিল থেকে সব customer এর তথ্য উঠে আসবে। আর এই তথ্যগুলো Country কলাম ধরে উধ্বর্ক্রম অনুসারে সাজাবে।

SELECT * FROM Customers

ORDER BY Country;

ORDER BY DESC এর উদাহরণ:

নিচের SQL স্টেটমেন্টটি প্রয়োগ করলে Customers টেবিল থেকে সব customers এর তথ্য উঠে আসবে। এই তথ্যগুলো Country কলাম ধরে অধ:ক্রম অনুসারে সাজাবে।

SELECT * FROM Customers

ORDER BY Country DESC;

একাধিক কলাম অনুসারে ডাটা সাজানোর উদাহরণ:

নিচের SQL স্টেটমেন্টটি প্রয়োগ করলে Customers টেবিল থেকে সব customer এর তথ্য উঠে আসবে। তবে এই তথ্যগুলো Country এবং CustomerName কলাম ধরে সাজাবে। প্রথম অগ্রাধিকার পাবে Country এবং দ্বিতীয় অগ্রাধিকার পাবে CustomerName।

SELECT * FROM Customers

ORDER BY Country,CustomerName;

SQL (এসকিউএল) WHERE ক্লজ . SQL WHERE Clause

<h1>SQL (এসকিউএল) WHERE ক্লজ</h1>

Article By: Pratap Chandra
<p>ডাটাবেজ থেকে ডাটা ফিল্টার (filter) বা পরিশোধন করার জন্য WHERE ক্লজ ব্যবহার করা হয়। এখানে পরিশোধন করা বলতে বুঝানো হয়েছে শর্ত প্রয়োগ করে কেবল প্রয়োজনীয় ডাটাগুলো তুলে আনা। আপনি যে শর্ত প্রয়োগ করবেন শুধু সেই শর্ত পূরণ করতে পারা ডাটাই কেবল বাছাই হবে।</p>
<h3>এসকিউএল WHERE সিনট্যাক্স বা গঠনরীতি: </h3>
<p>SELECT <em>column_name</em>,<em>column_name</em><br />
FROM <em>table_name</em><br />
WHERE <em>column_name operator value</em>;</p>

এই টিউটিরিয়ালে আমরা Northwind স্যাম্পল ডাটাবেজটি ব্যবহার করব, যেটি মাইক্রোসফট Excel এবং MS SQL Server এর সাথে শিক্ষার্থীদের জন্য তৈরী অবস্থায় (readymade) সংযুক্ত করা থাকে।  সেই ডাটাবেজের Customers টেবিল থেকে কিছু ডাটা SELECT কমান্ড প্রয়োগ করে বাছাই করা হয়েছে, যা নিচের টেবিলে দেখানো হলো:
<table border="1" cellpadding="2">
<tr>
<td><p align="center"><strong>CustomerID</strong></p></td>
<td><p align="center"><strong>CustomerName</strong></p></td>
<td><p align="center"><strong>ContactName</strong></p></td>
<td><p align="center"><strong>Address</strong></p></td>
<td><p align="center"><strong>City</strong></p></td>
<td><p align="center"><strong>PostalCode</strong></p></td>
<td><p align="center"><strong>Country</strong></p></td>
</tr>
<tr>
<td><p>1</p></td>

Alfreds Futterkiste
<td><p>Maria Anders</p></td>

Obere Str. 57
<td><p>Berlin</p></td>
<td><p>12209</p></td>
<td><p>Germany</p></td>
</tr>
<tr>
<td><p>2</p></td>

Ana Trujillo Emparedados y helados
<td><p>Ana Trujillo</p></td>

Avda. de la Constitución 2222

 

México D.F.
<td><p>05021</p></td>
<td><p>Mexico</p></td>
</tr>
<tr>
<td><p>3</p></td>
<td><p>Antonio Moreno Taquería</p></td>
<td><p>Antonio Moreno</p></td>

Mataderos 2312

 

México D.F.
<td><p>05023</p></td>
<td><p>Mexico</p></td>
</tr>
<tr>
<td><p>4</p></td>
<td><p>Around the Horn</p></td>
<td><p>Thomas Hardy</p></td>
<td><p>120 Hanover Sq.</p></td>
<td><p>London</p></td>

WA1 1DP
<td><p>UK</p></td>
</tr>
<tr>
<td><p>5</p></td>

Berglunds snabbköp
<td><p>Christina Berglund</p></td>

Berguvsvägen 8
<td><p>Luleå</p></td>
<td><p>S-958 22</p></td>
<td><p>Sweden</p></td>
</tr>
</table>
<h3>WHERE ক্লজ এর উদাহরণ:</h3>
<p>এখন Customers টেবিল থেকে আমরা কেবল Mexico এর Customer গুলো তুলে আনব। এই কাজ করতে আমাদের নিচের SQL স্টেটমেন্ট প্রয়োগ করতে হবে: <br />
</p>
<p>SELECT * FROM Customers<br />
WHERE Country='Mexico';</p>
<p>SQL স্টেটমেন্ট লেখার সময় যে শর্ত প্রয়োগ করা হয় তা single quote এর ভেতরে লেখা হয় (যদিও অনেক ডাটাবেজ double quote ও সাপোর্ট করে)। তবে numeric ডাটার ক্ষেত্রে কোনো quote ব্যবহার করার প্রয়োজন নেই। <br />
</p>
<h3>উদাহরণ: <br />
</h3>
<p>SELECT * FROM Customers<br />
WHERE CustomerID=1;<br />
<br />
<strong>WHERE ক্লজ প্রয়োগ করার সময় যে operator গুলো ব্যবহার করা হয়:</strong></p>
<table border="1" cellpadding="1" width="100%">
<tr>
<td width="19%"><p align="center"><strong>Operator</strong></p></td>
<td><p align="center"><strong>ব্যাখ্যা</strong></p></td>
</tr>
<tr>
<td><p>=</p></td>
<td><p>সমান</p></td>
</tr>
<tr>

<>&nbsp;
<td><p>অসমান। যদিও SQL এর কোনো কোনো ভার্সনে এই অপারেটরকে != এভাবেও লেখা হয় </p></td>
</tr>
<tr>

>&nbsp;
<td><p>বড়</p></td>
</tr>
<tr>

<&nbsp;
<td><p>ছোট</p></td>
</tr>
<tr>
<td><p>&gt;=</p></td>
<td><p>সমান কিংবা বড়</p></td>
</tr>
<tr>
<td><p>&lt;=</p></td>
<td><p>সমান কিংবা ছোট</p></td>
</tr>
<tr>
<td><p>BETWEEN</p></td>
<td><p>নির্ধারণ করা একটি সীমার মধ্যে (দুই প্রান্তের ডাটার মানসহ)</p></td>
</tr>
<tr>
<td><p>LIKE</p></td>
<td><p>সাদৃশ আছে এমন</p></td>
</tr>
<tr>
<td><p>IN</p></td>
<td><p>একটি কলামে একাধিক সম্ভাব্য মান নির্ধারণ করতে </p></td>
</tr>
</table>

SQL Select Distinct Statement . SQL SELECT DISTINCT Statement

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

বিষয়- SQL Select Distinct Statement
Distinct statement ব্যবহার করা হয় একই রকম duplicate ডাটা থেকে মাত্র ভিন্ন ভিন্ন ডাটাগুলো খুজে বের করার জন্য।
এই জন্য আমরা একটি user নামে ডাটাবেস তৈরি করি। তাতে ৪ টি ফিএলদ তৈরি করি name, email , pass, city. এবং এর মাঝে ৪-৫ টি ডাটা ইন্সেরত করি।
Name city email
Bappi Dhaka bappi@yahoo.com
Nipa Dhaka nipa@yahoo.com
Kabir shylet kabir@yahoo.com
এই ভাবে করে কিছু ডাটা অ্যাড করি এবং সেভ বাটন এ ক্লিক করি।SQL query window ওপেন করে আমরা এই কোড টুকু রুন করলে আমরা একটা ফলাফল দেখতে পারব।
SQL QUERY
SELECT DISTINCT `city` FROM user
তাহলে আমরা কোড টুকু রান করার পর শুধু city এর ঘরে একটি ঢাকা ডাটা দেখতে পাব।

SQL SELECT Statement (এসকিউএল বিবৃতি নির্বাচন):

SQL SELECT Statement (এসকিউএল বিবৃতি নির্বাচন):

Article By
Fazle Rabbi
B.Sc in CSE at PSTU

SELECT স্টেটমেন্ট একটি ডাটাবেস থেকে তথ্য নির্বাচন করতে ব্যবহার করা হয়।

The SQL SELECT Statement:
SELECT স্টেটমেন্ট একটি ডাটাবেস থেকে তথ্য নির্বাচন করতে ব্যবহার করা হয়।
এর ফল টেবিলের মধ্যে সংরক্ষিত হয়, যাকে রেজাল্ট সেট বলে।

SQL SELECT Syntax (এসকিউএল নির্বাচন সিনট্যাক্স):

SELECT column_name,column_name
FROM table_name;
এবং
SELECT * FROM table_name;

Demo Database(ডেমো ডাটাবেস):
এই টিউটোরিয়ালে আমরা সুপরিচিত প্রতিলিপি নমুনা ডাটাবেস ব্যবহার করব।
নীচে "Customers" টেবিল থেকে selection বা নির্বাচন দেখানো হয়েছে:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

SELECT Column Example(নির্বাচন কলাম উদাহরণ):
নিম্নোক্ত SQL বিবৃতি "Customers" টেবিল থেকে "CustomerName" এবং "City" কলাম কিভাবে SELECT বা নির্বাচন করতে হয় তার একটা উদাহরণ দেখানো হল:

SELECT CustomerName,City FROM Customers;

SELECT * Example:
নিম্নোক্ত SQL বিবৃতি "Customers" টেবিল থেকে সব কলাম নির্বাচন করবে:

SELECT * FROM Customers;

Navigation in a Result-set(রেজাল্ট সেটে ন্যাভিগেশন):
অধিকাংশ ডাটাবেস সফ্টওয়্যার সিস্টেম রেজাল্ট সেটে ন্যাভিগেশন অনুমতি দেয় নিন্মক্ত প্রোগ্রামিং ফাংশন বাবহারের মধ্যমে,
উদাহরন্সরুপঃ Move-To-First-Record, Get-Record-Content, Move-To-Next-Record, ইত্যাদি।

প্রোগ্রামিং ফাংশনগুলো এই টিউটোরিয়াল এর অংশ নয়. ফাংশান কলের সঙ্গে তথ্য অ্যাক্সেস সম্পর্কে জানতে, আমাদের এএসপি টিউটোরিয়াল বা আমাদের পিএইচপি টিউটোরিয়াল অনুগ্রহ করে পরিদর্শন করুন.

SQL কি? Introduction to SQL

SQL কি?

SQL কে আমরা Structured Query Language বলি। সাধারণত আমরা একে সংক্ষেপে SQL বলি। এসকিউএল একটি তথ্যভান্ডারের সঙ্গে যোগাযোগ করতে ব্যবহার করা হয়। ডেটাবেসের বেশিরভাগ কাজ এসকিউয়েল স্টেটমেন্ট এর দ্বারা করা যায়। ANSI (আমেরিকান ন্যাশনাল স্ট্যান্ডার্ড ইনস্টিটিউট) মতে, এটি রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম জন্য আদর্শ ভাষা। এসকিউএল স্টেটমেন্ট কোন ডেটাবেস থেকে তথ্য একটি ডাটাবেসের উপর আপডেট করা কর্ম সঞ্চালন।

এসকিউয়েল দিয়ে কি কি করা যায়ঃ

১। নতুন একটা ডেটাবেস তৈরী করা যায়।
২। নতুন টেবিল তৈরী করা যায়।
৩। Query করা যায়।
৪। ডেটাবেস থেকে ডেটা তুলে আনা যায়।
৫। ডেটাবেসে নতুন রেকর্ড ঢুকানো যায়।
৬। রেকর্ড আপডেট করা যায় ইত্যাদি।

কিভাবে আপনার ওয়েব সাইটের এ এসকিউএল ব্যবহার করবেনঃ

কোন ডেটাবেস থেকে তথ্য প্রদর্শন এমন একটি ওয়েব সাইট তৈরি করার জন্য, আপনাকে করতে হবে-

১। একটি RDBMS ডাটাবেস প্রোগ্রাম (অর্থাৎ মাইক্রোসফট এক্সেস, এসকিউএল সার্ভার, মাইএসকিউএল)
২। পিএইচপি বা এএসপি মত একটি সার্ভার সাইড স্ক্রিপ্টিং ভাষা ব্যবহার করা।
৩। HTML / CSS এর ব্যবহার করা।

ধন্যবাদ।

এসকিউএল টিউটোরিয়াল . SQL Tutorial

এসকিউএল টিউটোরিয়াল
Sheikh Mahfuzur Rahman

এসকিউএল(SQL) হলো ডাটাবেজগুলোতে প্রবেশ বা অ্যাক্সেস করার জন্য একটি প্রোগ্রামিং ভাষা। যারা ওয়েব ডেভলাপার হতে চান তাদের জন্য এসকিউএল একটি অত্যন্ত গুরুত্বপূর্ণ ল্যাঙ্গুয়েজ। আমাদের টিউটোরিয়ালগুলো আপনাকে এসকিউএল এর যথাযথ ব্যবহার শেখাবে যাতে আপনি এই ভাষাটি ব্যবহার করে মাইএসকিউএল(MySQL), এসকিউএল সার্ভার(SQL Server), মাইক্রোসফট অ্যাক্সেস(Access), ওরাকল(Oracle), সিবেইজ(SyBase), ডিবিটু(DB2) এবং অন্যান্য ডাটাবেজ সিস্টেমে প্রবেশ এবং ডাটা মেন্যুপিউলেট করতে পারেন।

প্রত্যেক অধ্যায়ের উদাহরণসমূহঃ
আমাদের অনলাইন এসকিউএল এডিটরের মাধ্যমে আপনি এসকিউএল স্টেইটমেন্ট এডিট করতে পারবেন এবং একটি বাটনে ক্লিক করে তার ফলাফল জানতে পারবেন।

এই প্রক্রিয়াটি কিভাবে কাজ করে তা বুঝার জন্য উপরের ট্রাই ইট ইউরসেলফ(Try It Yourself) বাটনে ক্লিক করুন।

এখনই এসকিউএল শেখা শুরু করুন!

এসকিউএল কুইজ টেস্ট
আমাদের সাইটের এসকিউএল কুজ টেস্টে অংশ নিয়ে আপনার এসকিউএল দক্ষতা যাচাই করুন!

এসকিউএল কুইক রেফারেন্স
নিচের লিংকটিতে আছে একটি এসকিউএল কুইক রেফারেন্স। এটি প্রিন্ট করে নিন এবং আপনার সাথে রাখুন!

এসকিউএল ডাটা টাইপ
মাইক্রোসফট অ্যাক্সেস, মাইএসকিউএল এবং এসকিউএল সার্ভার এর ডাটা টাইপ ও রেঞ্জগুলো সম্পর্কে ধারণা পেতে নিচের লিংকে ভিজিট করুন।

তাছাড়া আপনার এসকিউএল দক্ষতার স্বীকৃতি পেতে এবং পেশাগতভাবে সেটিকে কাজে লাগাতে আমাদের অনলাইন পরীক্ষাগুলোতে অংশ নিন!

SQL ইউনিক Constraint . SQL Unique Constraint

SQL ইউনিক Constraint
RIAZ-UL-HAQUE MIAN
ইউনিক Constraint একটি টেবিল এর যেকোনো একটি কলাম এর স্বতন্ত্রতা/ uniqueness কে বুঝায় . টেবিল এর প্রাইমারি কি সেট করলে তা automatically ইউনিক Constraint হয়ে যায়। তাহলে প্রশ্ন হলো ইউনিক Constraint দরকার কি ? কারণ আপনি একটা টেবিল এর একটা মাত্র কলাম কে ই প্রাইমারি কি করতে পারবেন , কিন্ত যদি আপনার একটা টেবিল এ একাধিক কলাম কে ইউনিক করতে হয় তাহলে SQL ইউনিক Constraint ব্যবহার করতে হবে |
টেবিল এর ইউনিক Constraint কে দুই ভাবে সেট করা যায় । প্রথম টি হলো টেবিল তৈরী করার সময় create Table starement ব্যবহার করে আর অন্য টি হলো টেবিল অল্টার করে, অর্থাত একটা টেবিল alrady তৈরী করা আছে তার কোনো একটা কলাম কে alter table statement ব্যবহার করে |
এখন আমরা দেখব টেবিল তৈরী করার সময় কি ভাবে সেট করে |
ধরে নেই আমাদের একটা টেবিল তৈরী করতে হবে যার নাম Persons এবং সেই টেবিল এর একটা কলাম P_Id যাকে আমরা SQL ইউনিক Constraint সেট করব |
SQL Server / Oracle / MS Access queary টি হবে :
CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
আর 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 uc_PersonID UNIQUE (P_Id,LastName)
)

এত্তক্ষন আমরা দেখলাম কিভাবে একটা টেবিল তৈরী করার সময় ইউনিক Constraint
সেট করে। এবার মনে করি Persons টেবিল টি আগে থাকে ই তৈরী করা আছে এখন আমাদের কে P_Id ইউনিক Constraint সেট করতে হবে। এক্ষেত্রে আমরা অল্টার টেবিল statement ব্যবহার করব
ALTER TABLE Persons
ADD UNIQUE (P_Id)
সব শেষে দেখব কিভাবে কে ইউনিক Constraint রিমুভ করে । এক্ষেত্রে MySQL ও SQL Server / Oracle / MS Access SQL starement নিচে দিয়া হলো
MySQL ক্ষেত্রে query টি হবে নিন্মরূপ :
ALTER TABLE Persons
DROP INDEX uc_PersonID
আর SQL Server / Oracle / MS Access ক্ষেত্রে quraery টি হবে নিন্মরূপ :
ALTER TABLE Persons
DROP CONSTRAINT uc_PersonID

SQL ডিফল্ট Constraint

SQL ডিফল্ট Constraint
NAZMA AKHRET
টেবিল এ যখন কোনো নতুন ভ্যালু 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

Title: SQL CREATE INDEX Statement . SQL Create Index Statement

Title: SQL CREATE INDEX Statement
অনুবাদক: ফয়সাল রকি (এম.এ)
Total word count: 247

-----------------------------------------------------
CREATE INDEX স্টেটমেন্টের সাহায্যে কোনো table এর index প্রস্তুত করা হয়।
index ব্যবহার করে database application এর সাহায্যে কোন table এর মধ্যকার data কে সহজে খুঁজে বের করা যায়। এক্ষেত্রে পুরো table টি খুঁজতে হয় না, ফলে দ্রুত data খুঁজে পাওয়া যায়।

Indexes
index এর সাহায্যে table এর মধ্যকার data দ্রুত ও দক্ষতার সাথে খুঁজে পাওয়া যায়। এক্ষেত্রে ব্যবহারকারী index কে দেখতে পায় না তবে দ্রুত ও দক্ষতার সাথে search বা query সম্পন্ন হয়।
নোট: যেসকল table এ index যুক্ত করা থাকে সেসকল table কে update করতে index বিহীন table অপেক্ষা বেশি সময় প্রয়োজন হয়, কেননা data এর পাশাপাশি index-ও update হয়।

SQL CREATE INDEX Syntax
একটি table এ নিম্নোক্ত উপায়ে index তৈরি করা যায় (Duplicate values গ্রহণযোগ্য/ থাকতে পারে):
CREATE INDEX index_name
ON table_name (column_name)

SQL CREATE UNIQUE INDEX Syntax
একটি table এ নিম্নোক্ত উপায়ে unique index তৈরি করা যায় (Duplicate values অ্গ্রহণযোগ্য/থাকবে না):
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
উল্লেখ্য যে, ভিন্ন ভিন্ন database এ index তৈরি করার ক্ষেত্রে syntax এর পার্থক্য হতে পারে। তাই আপনার database এর index তৈরি করার সময় syntax টি ভালভাবে check করুন।

CREATE INDEX উদাহরণ
নিম্নোক্ত SQL statement এর সাহায্যে "Persons" table এর "LastName" column এ "PIndex" নামক index তৈরি করা হয়েছে:
CREATE INDEX PIndex
ON Persons (LastName)

যদি আপনি একাধিক column এর মধ্যে index তৈরি করতে চান তাহলে প্রথম বন্ধনী বা parentheses এর মধ্যে comma separated বা কমা’র সাহায্যে আলাদা করে column এর list করতে পারেন।নিম্নে একটি উদাহরণ দেয়া হলো:
CREATE INDEX PIndex
ON Persons (LastName, FirstName)

এসকিউএল কন্সট্রেইন্টস . SQL Constraints

Sheikh Mahfuzur Rahman
Blogger @ BloggersEcho.Com
Bengali Word Count: 155-159

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

ওয়েব ডাটাবেজ ল্যাঙ্গুয়েজ এসকিউএল(SQL) এ কন্সট্রেইন্টগুলো(Constraints) কোন টেবলের ডাটাগুলোর রুলস বা নীতি নির্ধারণে ব্যবহৃত হয়। এক্ষেত্রে ডাটা অ্যাকশান এবং কন্সট্রেইন্টের নীতির মধ্যে সাংঘর্ষিক(Violation) কিছু ঘটলে কন্সট্রেইন্টের কার্যকারিতা বাতিল হয়ে যায়। যখন টেবল তৈরি করা হয় তখন CREATE TABLE স্টেটম্যান্টের ভিতরে অথবা টেবল তৈরি করার পর ALTER TABLE স্টেটম্যান্টের ভিতরে কন্সট্রেইন্টগুলো নির্দিষ্ট করে দেয়া যায়।

এসকিউএল ক্রিয়েট টেবল + কন্সট্রেইন্ট সিন্ট্যাক্স:

CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);

এসকিউএল-এ নিচের কন্সট্রেইন্টগুলো রয়েছেঃ

NOT NULL - নির্দেশ করে যে একটি কলাম নাল ভ্যালু ধারণ করতে পারবেনা।

UNIQUE - একটি কলামের প্রত্যেক রো এর ইউনিক ভ্যালু নিশ্চিত করে।

PRIMARY KEY - এটি হলো নট নাল ও উনিক এর সমন্বয়। নিশ্চিত করে যে একটি কলাম অথবা দুই বা আরও বেশী কলাম কম্বিনশনের একটি ইউনিক বা অনন্য পরিচিতি থাকে যা একটি টেবলে কোন নির্দিষ্ট রেকর্ড সহজে এবং দ্রুততার সাথে খুঁজে পেতে সাহাজ্য করে।

FOREIGN KEY - একটি টেবলের ডাটার রেফারেন্সিয়াল ইন্টিগ্রিটি নিশ্চিত করে যাতে অন্য টেবলের ভ্যালুগুলোর সাথে মেলানো যায়।

CHECK - কোন কলামের ভ্যালু যেন একটি নির্দিষ্ট বৈশিষ্ট্য অর্জন করে তা নিশ্চিত করে।

DEFAULT - কলামের জন্য যখন কোন ভ্যালু নির্ধারণ করা হয় হয় না তখন এটি একটি ডিফল্ট ভ্যালু নির্ধারন করে দেয়।

এই ছিল এসকিউএল কস্ট্রেইন্টগুলোর প্রাথমিক ধারনা। পরবর্তী অধ্যায়ে প্রতিটি কন্সট্রেইন্ট সম্পর্কে বিস্তারিতভাবে আলোচনা করা হবে।

SQL এর PRIMARY KEY তথা প্রাথমিক চাবি এর বাধ্যবাদকতা।SQL Primary Key Constraint

SQL এর PRIMARY KEY তথা প্রাথমিক চাবি এর বাধ্যবাদকতা।
ফাছিহুর রহমান।
MSCSE From Royal University of Dhaka.
টেকনিক্যার এক্সপার্ট, বাংলাদেশ নির্বাচন কমিশন সচিবালয়।

SQL এর প্রাথমিক কি এর বাধ্যবাদকতা।
প্রাথমিক কি বাধ্যবাদকতাটি ডাটাবেজের টেবিলের প্রত্যেকটি Record তথা ক্ষেত্রকে নির্দিষ্ট ভাবে চিন্হিত করে। প্রাথমিক কি অবশ্যয় নির্দিষ্ট মান বহন করে। একটি primary key সম্বলীত কলামকে কখন ও খালি রাখা কে গ্রহণ করে না। অধিকাংশ টেবিলগুলোতে একটি primary key থাকে এবং প্রত্যেক টা টেবিলে শুধুমাত্র একটি primary key থাকে।
SQL এ একটি টেবিল তৈরীতে primary key এর বাধ্যবাদকতা।
নিন্মোক্ত SQL এ Persons টেবিল তৈরীতে P_Id কলামকে primary key হিসেবে তৈরী করা হয়েছে।
MySQL এ PRIMARY KEY তৈরী করার উদাহরণ।
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)
)
উক্ত Persons টেবিলে P_Id কলামকে PRIMARY KEY তৈরী করা হয়েছে।
SQL Server / Oracle / MS Access: এ PRIMARY KEY তৈরী করার উদাহরণ।
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
উক্ত Persons টেবিলে P_Id কলামকে PRIMARY KEY তৈরী করা হয়েছে।
PRIMARY KEY এর বাধ্যবাদকতার নামকরণ এবং একাধিক কলামে PRIMARY KEY কে নির্দিষ্ট করার জন্য নিন্মোক্ত SQL নিয়মঃ
MySQL / SQL Server / Oracle / MS Access: এ একাধিক কলামে PRIMARY KEY তৈরী করার উদাহরণ।
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)
)
বিঃদঃ- উক্ত Persons টেবিলে মাত্র pk_PersonID কলাম কে PRIMARY KEY করা হয়েছে তথাপ ও pk_PersonID কলামের মান তথা value কে দুইটি কলামে( P_Id ও LastName) বিভক্ত করা হয়েছে।
SQL একটি তৈরীকৃত টেবিলে PRIMARY KEY এর বাধ্যবাদকতাঃ
একটি তৈরীকৃত টেবিলে P_Id কলামকে PRIMARY KEY এর বাধ্যবাদকতা হিসেবে তৈরী করতে নিন্মোক্ত SQL কমান্ড ব্যবহার করা হয়ঃ
MySQL / SQL Server / Oracle / MS Access: এ ব্যবহার
ALTER TABLE Persons
ADD PRIMARY KEY (P_Id)
PRIMARY KEY এর বাধ্যবাদকতার নামকরণ এবং একাধিক কলামে PRIMARY KEY কে নির্দিষ্ট করার জন্য নিন্মোক্ত SQL নিয়ম ঃ
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

বিঃদঃ- যদি তুমি একটি তৈরীকৃত টেবিল হতে অন্য একটি টেবিল তৈরীতে একটি primary key সংযোগ করতে চাও তবে অবশ্যই primary key হিসেবে ঘোষিত কলামটিকে কিছু না দিয়ে খালী রাখা যাবে না মর্মে উল্লেখ করতে হবে(এটা প্রথম টেবিল তৈরীতে)।
PRIMARY KEY এর বাধ্যবাদকতাকে বাদ দেয়াঃ
একটি PRIMARY KEY এর বাধ্যবাদকতাকে বাদ দিতে হলে নিন্মোক্ত SQL কমান্ড ব্যবহার করতে হয়।
MySQL: এ নিন্মোক্ত কমান্ড
ALTER TABLE Persons
DROP PRIMARY KEY

SQL Server / Oracle / MS Access: এ নিন্মোক্ত কমান্ড
ALTER TABLE Persons
DROP CONSTRAINT pk_PersonID

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

এসকিউএল ফরেন কি কন্সট্রেইন্ট
Sheikh Mahfuzur Rahman

একটি টেবলের FOREIGHN KEY অন্য টেবলের PRIMARY KEY এর দিকে নির্দেশ করে। একটি উদাহরণের মাধ্যমে "ফরেন কি" কে ব্যাখ্যা করা যাক। নিচের দুটো টেবলের দিকে লক্ষ্য করুন যার একটি হলো ''Persons'' টেবল এবং অন্যটি হলো "Orders” টেবলঃ

The "Persons" table:
P_Id
LastName
FirstName
Address
City
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
The "Orders" table:
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” কলাম হলো এই টেবলের প্রাইমারি কি; অন্যদিকে ''Orders” টেবলের "P_Id” কলাম হলো ''Orders” টেবলের ফরেন কি।
কিছু কিছু কার্যক্রম, যেগুলো টেবল থেকে টেবলের যে লিংক রয়েছে তা নষ্ট করে দিতে পারে, বন্ধ করার জন্য FOREIGHN KEY ব্যবহৃত হয়। FOREIGHN KEY কন্সট্রেইন্ট ফরেন কি কলামে ভুল বা ইনভ্যালিড ডাটা প্রবেশ করানোর ক্ষেত্রেও বাধা দেয় কারন এটি শুধুমাত্র সেই ভ্যালুগুলো ধারণ করতে পারবে যা অন্য টেবলের প্রাইমারি কি কলামে সংরক্ষিত রয়েছে।

CREATE TABLE এ এসকিউএল FOREIGHN KEY কন্সট্রেইন্ট
নিচের এসকিউএল সিন্টেক্সটটি ''Orders” টেবল তৈরি করার সময় তার "P_Id” কলামে একটি FOREIGHN 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)
)

FOREIGHN KEY কন্সট্রেইন্টের নামকরন করার জন্য এবং অনেকগুলো কলামে একটি FOREIGHN KEY কন্সট্রেইন্ট সংজ্ঞায়িত করার জন্য নিচের এসকিউএল সিন্টেক্সট ব্যবহার করুনঃ
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)
)

ALTER TABLE এ এসকিউএল FOREIGHN KEY কন্সট্রেইন্ট
যেখানে "Orders” টেবলটি ইতোমধ্যেই তৈরি করা হয়ে গেছে সেক্ষেত্রে "Orders” টেবলের '”P_Id” কলামে একটি FOREIGHN KEY” কন্সট্রেইন্ট তৈরি করতে নিচের এসকিউএল'টি ব্যবহার করুনঃ
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

ফরেন কি কন্সট্রেইন্টের নামকরন করার জন্য এবং অনেকগুলো কলামে একটি ফরেন কি কন্সট্রেইন্ট সংজ্ঞায়িত করার জন্য(ALTER TABLE এর ক্ষেত্রে) নিচের এসকিউএল সিন্ট্যাক্সট ব্যবহার করুনঃ
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

একটি ফরেন কি কন্সট্রেইন্ট ড্রপ করার জন্য
একটি FOREIGHN KEY কন্সট্রেইন্ট DROP অর্থাৎ সেটি বাদ দেয়ার জন্য নিচের এসকিউএল'টি ব্যবহার করুনঃ
MySQL:
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
SQL Server / Oracle / MS Access:
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

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 (এসকিউএল) NULL Values(মান): SQL Null Values

SQL (এসকিউএল) NULL Values(মান):
Null value বলতে অনুপস্থিত বা মানহীন data বুঝায় । এর মান কখন শুন্য বা খালি স্ট্রিং
(String) হয় না এবং এই শুন্য বা খালি স্ট্রিং(String) একটি মান প্রকাশ করে কিন্তু আমরা জানি NULL এর কোন মান নেই । NULL এর মান NULL এ গঠিত গাণিতিক ফলাফল দ্বারা নির্ণয় করা হয় । যেমনঃ 10 + NULL = NULL

পদবিন্যাস (Syntax):

SQL> CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);

এখানে NOT NULL মানে কলাম সবসময় একটি সুনির্দিষ্ট মান গ্রহণ করে যার মান দেয়া থাকে । এখানে দুটি কলাম আছে যেখানে আমরা NOT NULL ব্যাবহার করি নাই যার মানে এই কলামগুলো NULL হতে পারে ।
NULL value এমন একটি মান যা কোন রেকর্ড নির্মাণের সময় খালি রাখা হয় ।

যেমনঃ
আপনাকে অবশ্যই NULL value চেক করার সময় হয় IS NULL অথবা IS NOT NULL অপারেটর
ব্যবহার করতে হবে । নিচের টেবিলে CUSTOMERS-এর নিম্নলিখিত বিবরণ রয়েছেঃ

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | |
| 7 | Muffy | 24 | Indore | |
+----+----------+-----+-----------+----------+

নিম্নলিখিত উদাহরণটি IS NOT NULL অপারেটর:

SQL> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
WHERE SALARY IS NOT NULL;

যা নিম্নলিখিত ফলাফল প্রকাশ করেঃ

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
+----+----------+-----+-----------+----------+

নিম্নলিখিত উদাহরণটি IS NULL অপারেটর:

SQL> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
WHERE SALARY IS NULL;

যা নিম্নলিখিত ফলাফল প্রকাশ করেঃ

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 6 | Komal | 22 | MP | |
| 7 | Muffy | 24 | Indore | |
+----+----------+-----+-----------+----------+

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 (এসকিউএল) 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 (এসকিউএল) 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 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

SQL statement এ ALTER FUNCTION এর বাবহার . SQL Alter Table Statement

নাম-শারিফুল ইসলাম
Job category-Php Coder
বিষয়- SQL statement এ ALTER FUNCTION এর বাবহার
Alter এই statement টি mysql এ বাবহার করা হয় database table এর মধ্যে কিছু ফিল্ড যোগ ,বাদ বা সংযোজন করার জন্য। আসলে কিভাবে করতে হয় তা আমরা একটি টেবিল তৈরি করার মাধমে জানতে পারব এবং কিভাবে সেখানে sql statement বাবহার করব সেই নিয়ম অনুসরন করব। প্রথমে আমরা ব্রাউজার ওপেন করে এড্রেস বারে লিখব localhost সেইখান থেকে phpmyadmin এ ক্লিক করি।উপরের মেনুবার থেকে database এ ক্লিক করি। create database field এর ঘরে টাইপ করি user এবং ডানপাশে create বাটন এ ক্লিক করি। এর মাধমে আমাদের user database তৈরি হয়ে গেল।এখন আমরা persons নামে একটি টেবিল তৈরি করব। সেখানে ৫ টি ফিল্ড তৈরি করব। বামপাছ থেকে user database এ ক্লিক করি। এখন টেবিল তৈরি করার জন্য জাইগা দিবে। টেবিল এর ঘরে লিখি persons এবং column এর ঘরে ৫ লিখি।এই ৫ টি কলাম এ ৫ টি ফিল্ড এর নাম লিখব। এবং তাদের settings গুলো ঠিক করে দিব।
Column1
Name-P_id, auto increment এ তিক দেই
Column2
Name-LastName, type-text, length-50
Column3
Name-FirstName, type-text, length-50
Column4
Name-Address, type-varchar, length-250
Column5
Name-City, type-text, length-50
এবং সবশেষে সেভ button ক্লিক করি। আমাদের database তৈরি হয়ে গেল। এখন আমাদের alter sql statement বাবহার করতে হবে। উপরের মেনু থেকে sql মেনুতে ক্লিক করি একটি textarea বক্স আসবে এখানে আমরা statement লিখব। ধরুন আমরা নতুন একটা ফিল্ড DateofBirth নামে যোগ করব।
বক্স এর মধ্যে আমরা টাইপ করি “ALTER TABLE Persons ADD COLUMN DateofBirth Date”। এবং সবশেষে go বাটন এ ক্লিক করি দেখুন অই নামে নতুন একটি কলাম যোগ হয়েছে।
আমাদের কোন কলাম পরিবরতন করার দরকার পরতে পারে।আমরা আবার আগের মতন বক্স এ টাইপ করি
“ALTER TABLE Persons ALTER COLUMN Birth Date” দেখুন DateofBirth ফিল্ড টি পরিবরতন হয়ে নতুন নাম হয়েছে শুধু Birth.
যদি কোন কলাম বাদ দিতে চাই তার জন্য এই statement বাবহার করব
“ALTER TABLE Persons DROP COLUMN Birth Date” go বাটন এ ক্লিক করার সাথে সাথে দেখুন আমাদের এই কলাম তা বাদ হয়ে গেছে। এই ভাবেই আমাদের SQL statement e এ ALTER Function ব্যবহার করতে হয়।

: SQL Views

Title: SQL Views
অনুবাদক: ফয়সাল রকি (এম.এ)
Total words in the article: 478

SQL এ view বলতে virtual table এর view কে বোঝায়, অর্থাৎ real table কে virtually দেখানো হয়।
কিভাবে view create, update বা delete করা হয় তা এই অধ্যায়ে আলোচনা করা হবে।

SQL CREATE VIEW Statement
SQL statement এর result-set এর উপর ভিত্তি করে virtual table তৈরির মাধ্যমে view দেখানো হয়।
View এর ক্ষেত্রে real table এর মতোই rows এবং columns থাকে। View এর fields গুলো database এর এক বা একাধিক real table হতে নেয়া হয়।
view এবং present করার ক্ষেত্রে যদি একটি মাত্র table হতে data নেয়া হয় তাহলে WHERE ও JOIN এর মতো SQL functions গুলো add করা যাবে।

SQL CREATE VIEW Syntax
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
নোট: view এর মাধ্যমে সবর্দাই হালনাগাদ বা up-to-date data দেখানো হয়। কোনো user যখন SQL statement view এর জন্য query করে তখন database engine ডাটাকে recreate করে দেখায়।

SQL CREATE VIEW Examples
আপনার কাছে যদি Northwind database টি থাকে তাহলে আপনি দেখবেন যে সেখানে by default অনেকগুলো view ইন্সটল রয়েছে।
"Current Product List" View টিতে শুধুমাত্র active product গুলোকে দেখানো হয়, অর্থাৎ যেসকল product active নয় বা পরবর্তীতে discontinue করেছে সেগুলোকে দেখানো হয়নি। নিম্নোক্ত SQL এর সাহায্যে View টি প্রস্তুত করা হয়েছে।
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

আমরা এই View টি নিম্নোক্তভাবে query করতে পারি।
SELECT * FROM [Current Product List]

Northwind sample database এর অন্য আরেকটি View এর ক্ষেত্রে "Products" table এর যেসকল Product এর unit price গড় বা average unit price এর চেয়ে বেশি সেগুলোকে নিম্নোক্তভাবে দেখানো যায়:
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)

আমরা এই View টি নিম্নোক্তভাবে query করতে পারি।
SELECT * FROM [Products Above Average Price]

Northwind sample database এর অন্য আরেকটি View এর ক্ষেত্রে প্রত্যেক category তে 1997 সালের মোট বিক্রয় বা total sale এর calculation দেখানো হয়েছে। এখানে উল্লেখ্য যে, এই View এর ডাটাগুলো অন্য আরেকটি View "Product Sales for 1997" হতে নেয়া হয়।
CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName

আমরা এই View টি নিম্নোক্তভাবে query করতে পারি।
SELECT * FROM [Category Sales For 1997]
আমরা এই query তে condition যোগ করতে পারি। আমরা শুধূ মাত্র "Beverages" Category এর total sale দেখার জন্য নিম্নোক্তভাবে query করতে পারি।
SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

SQL Updating a View
নিম্নোক্ত syntax ব্যবহার করে View কে update করা যেতে পারে।

SQL CREATE অথবা REPLACE VIEW Syntax
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

এখন যদি আমরা "Current Product List" view এ "Category" column টি যোগ করতে চাই, তাহলে নিম্নোক্ত SQL এর মাধ্যমে View টিকে update করতে হবে।
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

SQL Dropping a View
DROP VIEW command এর সাহায্যে কোনো View কে delete করা যায়।
SQL DROP VIEW Syntax
DROP VIEW view_name

SQL (এসকিউএল) CREATE INDEX স্টেটমেন্ট

SQL (এসকিউএল) CREATE INDEX স্টেটমেন্ট
Article By : Protap Chandra

ইনডেক্স শব্দের অর্থ হলো সূচিকরণ। সহজে ও কম সময়ে ডাটা খুঁজে বের করার জন্য ডাটাকে একটি বিশেষ অর্ডারে সাজিয়ে রাখাকে ইনডেক্সিং বলে। টেবিলের ডাটাকে ইনডেক্সিং করতে CREATE INDEX স্টেটমেন্ট ব্যবহার করা হয়। ইনডেক্স করা থাকলে খুব সহজে ডাটা খুঁজে বের করা যায়। ডাটা নির্বাচন করতে ডাটাবেজ অ্যাপ্লিকেশনকে পুরো টেবিল পড়তে হয় না। তবে ডাটাবেজ ব্যবহারকারীরা কিন্তু ইনডেক্স অংশটি দেখতে পায় না।

যে টেবিলে ইনডেক্স করা থাকে সেই টেবিল আপডেট করতে তুলনামূলক বেশি সময় লাগে। কারণ বিদ্যমান ইনডেক্সিংয়েরও আপডেট প্রয়োজন হয়। একারণে, কেবল সেইসব টেবিল এবং কলামে ইনডেক্স করা উচিত যেগুলো হরহামেশা সার্চ করার প্রয়োজন হয়।

এসকিউএল CREATE INDEX স্টেটমেন্ট এর গঠনরীতি:
নিচের স্টেটমেন্টটি একটি টেবিলে ইনডেক্স তৈরী করবে। এটির ক্ষেত্রে duplicate (নকল) ভ্যালুও তৈরী হতে পারে।

CREATE INDEX index_name
ON table_name (column_name)

এসকিউএল CREATE UNIQUE INDEX স্টেটমেন্ট এর গঠনরীতি:
নিচের স্টেটমেন্টটি একটি টেবিলে অনন্য (unique) ইনডেক্স তৈরী করবে। এখানে duplicate ভ্যালু তৈরী হবে না।

CREATE UNIQUE INDEX index_name
ON table_name (column_name)

আরো উল্লেখ করা প্রয়োজন যে, আলাদা আলাদা ডাটাবেজে indexe করার গঠনরীতি বা syntax আলাদা হতে পারে। তাই যে ডাটাবেজ নিয়ে কাজ করছেন সেই ডাটাবেজের ইনডেক্স গঠনরীতি ভালো করে জেনে নিতে হবে।

CREATE INDEX এর উদাহরণ:

ইনডেক্স তৈরী করার সময় ইনডেক্সের একটা নাম দিতে হয়। নিচের SQL স্টেটমেন্টটি "Persons" টেবিলের "LastName" কলামে একটি ইনডেক্স তৈরী করবে, যার নাম হবে "PIndex".

CREATE INDEX PIndex
ON Persons (LastName)

একাধিক কলামের উপরেও ইনডেক্স তৈরী করা যায়। সেক্ষেত্রে কলামগুলোর নাম বন্ধনীর ভেতর কমা দিয়ে আলাদা করে লিখতে হবে। যেমন:

CREATE INDEX PIndex
ON Persons (LastName, FirstName)

এসকিউএল ফুল আউটার জয়েন কিওয়ার্ড . SQL FULL OUTER JOIN Keyword

এসকিউএল ফুল আউটার জয়েন কিওয়ার্ড
Sheikh Mahfuzur Rahman

FULL OUTER JOIN কিওয়ার্ড বাম দিকের টেবল(table1) এবং ডান দিকের টেবলের(table2) সবগুলো সারিকে ফেরত দেয়। FULL OUTER JOIN কিওয়ার্ড LEFT ও RIGHT উভয় সংযোগ-স্থলকেই মিলিয়ে দেয়।

এসকিউএল FULL OUTER JOIN সিন্টেক্সটঃ
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

নমুনা ডাটাবেজ
এই টিউটোরিয়ালে আমরা সুপরিচিত নর্থউইন্ড(Northwind) নমুনা ডাটাবেজ ব্যবহার করব। নিচে "Customers” টেবলের একটি অংশকে তুলে ধরা হয়েছেঃ

CustomerID
CustomerName
ContactName
Address
City
PostalCode
Country
1
Alfreds Futterkiste
Maria Anders
Obere Str. 57
Berlin
12209
Germany
2
Ana Trujillo Emparedados y helados
Ana Trujillo
Avda. de la Constitución 2222
México D.F.
05021
Mexico
3
Antonio Moreno Taquería
Antonio Moreno
Mataderos 2312
México D.F.
05023
Mexico

এবং এই অংশটি "Orders" টেবল থেকে নেয়া হয়েছেঃ

OrderID
CustomerID
EmployeeID
OrderDate
ShipperID
10308
2
7
1996-09-18
3
10309
37
3
1996-09-19
1
10310
77
8
1996-09-20
2

এসকিউএল FULL OUTER JOIN এর উদাহরণ
নিচের এসকিউএল স্টেটমেন্টটি সব কাস্টমার এবং সবগুলো অর্ডারকে নির্বাচন করেঃ
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

এই জন্য যে ফলাফল তৈরি হয় তার একটি বাছাইকরা অংশটি ঠিক এরকম দেখাবেঃ

CustomerName
OrderID
Alfreds Futterkiste

Ana Trujillo Emparedados y helados
10308
Antonio Moreno Taquería
10365

10382

10351

লক্ষ্যনীয়ঃ FULL OUTER JOIN কিওয়ার্ড বাম দিকের টেবল(Customers) এবং ডান দিকের টেবলের(Orders) সবগুলো সারিকে ফেরত দিয়েছে। যদি "Customers" টেবলে এমন কিছু সারি থাকে যা "Orders" টেবলের সাথে মিলেনা অথবা "Orders” টেবলের সারিগুলোর কোনটি যদি "Customers" টেবলের সাথে না মিলে তাহলে ঐ রো বা সারিগুলোও লিস্টে চলে আসবে।

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

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

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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 uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

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

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

ALTER TABLE Persons

DROP INDEX uc_PersonID

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

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) LEFT JOIN কীওয়ার্ড . SQL LEFT JOIN Keyword

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

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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 uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

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

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

ALTER TABLE Persons

DROP INDEX uc_PersonID

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

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) UNIQUE কনস্ট্রেইন্ট . SQL Unique Constraint

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

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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 uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

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

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

ALTER TABLE Persons

DROP INDEX uc_PersonID

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

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) RIGHT JOIN কীওয়ার্ড . SQL RIGHT JOIN Keyword

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

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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 uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

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

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

ALTER TABLE Persons

DROP INDEX uc_PersonID

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

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

এসকিউয়েল দিয়ে ডেটাবেস তৈরী (SQL Database Creation Tutorial in Bangla) :

এসকিউয়েল দিয়ে ডেটাবেস তৈরী (SQL Database Creation Tutorial in Bangla) :

MySQL এ কাজ শুরুর আগে একটা ডেটাবেস তৈরী করে নিতে হবে। CREATE DATABASE এই স্টেটমেন্ট দিয়ে একটি ডেটাবেস তৈরী করতে হয়। XAMPP চালু করুন এবং ব্রাউজার খুলে এর এড্রেসবারে লিখুন http://localhost/ লিখে এন্টার দিন এবার এখানে বামদিকে নিচে Tools এর অধীনে phpMyadmin এ ক্লিক করুন সবশেষে SQL ট্যাবে ক্লিক করুন।

এখানে লিখুন “CREATE DATABASE designer” এবং go বাটনে ক্লিক করুন ব্যাস একটা ডেটাবেস তৈরী হয়ে গেল। এবার বাম দিকে দেখুন designer নামে একটা ডেটাবেস আসছে। আপনি চাইলে SQL ট্যাবে না গিয়ে সরাসরি "Databases" (SQL ট্যাবের বামে) ট্যাব থেকে একটি নতুন ডেটাবেস তৈরী করতে পারেন। Databases ট্যাবে গেলে "Create database" ফিল্ডে ডেটাবেসের কাংখিত নামটি দিয়ে "Create" বাটনে ক্লিক করতে হবে।

ধন্যবাদ।

SQL এর NOT NULL এর বাধ্যবাদকতা/Constraints। SQL Not Null Constraint

SQL এর NOT NULL এর বাধ্যবাদকতা।

সার্বিক ভাবে একটি টেবিলের কলামকে NULL বা খালী রাখা যায়।
SQL এর NOT NULL এর বাধ্যবাদকতা ।
NOT NULL এর বাধ্যবাধকতা কলামকে খালী না রাখতে বাধ্য করে বা খালী রাখাকে গ্রহণ করে না।
NOT NULL এর বাধ্যবাধকতা সর্বদা ক্ষেত্রকে কোন না কোন কিছু দিয়ে পরিপূর্ণ করতে হবে। এটার অর্থ এটা যে, তুমি কথন ও ঐ ক্ষেত্রে কোন কিছু দেয়া ব্যতিরেকে নতুন কোন রেকর্ড সংযোগ করা অথবা কোন ধরনের সংশোধন করতে পারবেনা।
নিন্মোক্ত SQL বাধ্য কর P_Id এর কলাম এবং LastName এর কলামে কোন কিছু না দিয়ে NULL বা খালী রাখাকে গ্রহণ করবেনা।

উদাহরণ।
CREATE TABLE PersonsNotNull
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

এসকিউয়েল ইনার জয়েন টিউটোরিয়ালঃ SQL INNER JOIN Keyword

এসকিউয়েল ইনার জয়েন টিউটোরিয়ালঃ

SQL INNER JOIN Keyword

দুটি সম্পর্কযুক্ত টেবিল থেকে ডেটা তোলার জন্য এসকিউয়েলে কিছু জয়েন (join) ব্যবহার করা হয়। বেশির ভাগ সময়েই ৩টি জয়েন ব্যবহার হয়ে থাকে। যেমনঃ
১. ইনার জয়েন (INNER JOIN),
২. লেফট জয়েন (LEFT JOIN),
৩. রাইট জয়েন (RIGHT JOIN)

এই টিউটোরিয়ালে ইনার জয়েন নিয়ে আলোচনা করা হলঃ
ইনার জয়েনঃ
প্রথমে দুটি টেবিল তৈরী করা যাক যাদের মধ্যে রিলেশন আছে।
এর আগে "users" টেবিল তৈরী করে সেটার সাথে one-to-one রিলেশন করে আরেকটা "profiles" টেবিল তৈরীর কোড নিচে দেয়া হলঃ

01.CREATE TABLE IF NOT EXISTS `profiles` (
02.`profile_id` int(11) NOT NULL AUTO_INCREMENT,
03.`about_me` text NOT NULL,
04.`favorite_color` varchar(200) NOT NULL,
05.`user_id` int(11) NOT NULL,
06.PRIMARY KEY (`profile_id`),
07.KEY `user_id` (`user_id`)
08.) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
09.
10.
11.INSERT INTO `profiles` (`profile_id`, `about_me`, `favorite_color`, `user_id`) VALUES
12.(4, 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis ...', 'black', 1),
13.(5, 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis ...', 'green', 2),
14.(6, 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis ...', 'maroon', 3);

এই কোয়েরিটি চালান দেখবেন ডেটাসহ একটা টেবিল তৈরী হবে।
INNER JOIN দিয়ে ঐসব ডেটাগুলি (সারিগুলি) তুলে আনা যায় (দুই টেবিল থেকেই) যেগুলির মধ্যে রিলেশন বিদ্যমান। উপরের টেবিলদুটি থেকে ডেটা তুলে আনার জন্য নিচের কোয়েরিটি রান করান-

1.SELECT username, age, favorite_color FROM users INNER JOIN profiles ON users.user_id = profiles.user_id;

এর আউটপুট ৩টি সারি আসবে। কারন "profiles" টেবিলে "user_id" কলামটি দেখুন যেটা এই টেবিলের ফরেন কি, এখানে ১, ২ এবং ৩ নম্বর ইউজারের জন্য একটি করে সারি আছে। যদি এখানে কোন সারিই না থাকত তাহলে কোন আউটপুটই আসত না, একটা সারি থাকলে একটা আউটপুট আসত। আরও একভাবে এই কোয়েরিটি করা যায়ঃ

view source
print?
1.SELECT username, age, favorite_color FROM users INNER JOIN profiles USING(user_id)

USING কিওয়ার্ডটি তখনি ব্যবহার করা যাবে যখন দুটো টেবিলেই "user_id" কলামটির নাম একই হবে। এই "user_id" কলামটি দিয়ে টেবিল দুটি সংযোগ হয়েছে, এটার নাম দিলাম ধরুন ব্রিজ কলাম।

ধন্যবাদ।

SQL (এসকিউএল) SELECT TOP ক্লজ . SQL SELECT TOP Clause

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

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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 uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

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

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

ALTER TABLE Persons

DROP INDEX uc_PersonID

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

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) BETWEEN অপারেটর: SQL BETWEEN Operator

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

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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 uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

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

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

ALTER TABLE Persons

DROP INDEX uc_PersonID

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

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) Joins

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

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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 uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

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

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

ALTER TABLE Persons

DROP INDEX uc_PersonID

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

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

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

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

Author: Protap Chandra | sincerely.yours2512[at]gmail.com

UNIQUE অর্থ অনন্য বা অদ্বিতীয়। অর্থাত একই জিনিস দুটি হতে পারবে না। একটি ডাটাবেজ টেবিলে ইউনিক ডাটা স্টোর করা হয় ডাটা সার্চ করার সময় বিভ্রান্তি এড়াতে। যে কলামের ডাটা ইউনিক হিসেবে ঘোষণা করা হবে সেই কলামের একটি রেকর্ডের সঙ্গে অন্য রেকর্ডের সামান্য হলেও তফাত থাকতে হবে।

UNIQUE এবং PRIMARY KEY উভয় কনস্ট্রেইন্ট এক বা একাধিক কলামে অনন্য মান প্রবেশ করানো নিশ্চিত করে। PRIMARY KEY কনস্ট্রেইন্ট স্বয়ংক্রিয়ভাবে ইউনিক মান জমা করানোর নির্দেশ প্রাপ্ত হয়। তবে এটা স্মরণ রাখা প্রয়োজন যে একটি টেবিলে অনেকগুলো কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করা যায় কিন্তু প্রতি টেবিল মাত্র একটি PRIMARY KEY কনস্ট্রেইন্ট ধারণ করতে পারে।

টেবিল তৈরীর সময় এসকিউএল UNIQUE কনস্ট্রেইন্ট প্রয়োগ:

ধরা যাক আমরা "Persons" নামের একটি টেবিল তৈরী করছি। "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট ব্যবহার কতে চাইলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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

CREATE TABLE Persons

(

P_Id int NOT NULL UNIQUE,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Address varchar(255),

City varchar(255)

)

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)

)

একাধিক কলামে UNIQUE কনস্ট্রেইন্ট ঘোষণা করতে গেলে নিচের এসকিউএল স্টেটমেন্ট ব্যবহার করতে হবে:

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 uc_PersonID UNIQUE (P_Id,LastName)

)

ALTER TABLE কমান্ডের সাথে UNIQUE কনস্ট্রেইন্ট:

ধরা যাক "Persons" টেবিলটি তৈরী করা হয়ে গেছে। তৈরীর সময় UNIQUE কনস্ট্রেইন্ট প্রয়োগ করা হয়নি। এখন সেই কাজটি করতে চাইলে ALTER TABLE কমান্ড দিয়ে সেটি করতে হবে। নিচের স্টেটমেন্ট "P_Id" কলামে UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD UNIQUE (P_Id)

নিচের এসকিউএল স্টেটমেন্ট একাধিক কলামে (P_Id এবং LastName) UNIQUE কনস্ট্রেইন্ট যুক্ত করবে:

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

ALTER TABLE Persons

ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)

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

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

ALTER TABLE Persons

DROP INDEX uc_PersonID

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

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

SQL (এসকিউএল) Syntax : SQL Syntax

SQL (এসকিউএল) Syntax

Article By : Protap Chand

আজ আমরা শিখব এসকিউএল (SQL) সিনট্যাক্স বা বাক্যরীতি। যেকোন ভাষার শব্দভান্ডার নিয়ে যেমন একটি নিজস্ব বাক্যরীতি আছে। তেমন এসকিউএল এর সঠিকভাবে ফলাফল প্রদান করতে একটা গঠন বা বাক্যরীতি মেনে চলতে হয়। অন্যথায় error বা ভুল হয়েছে মর্মে বার্তা প্রদর্শন করবে।

এসকিউএল একটি ডাটাবেজ (database) থেকে ডাটা তুলে এনে প্রদর্শন করে ।

প্রথমে আমরা জানব ডাটাবেজ সম্পর্কে। ডাটাবেজ গঠিত হয় এক বা একাধিক টেবিলের সমন্বয়ে। একটি ডাটাবেজের অধীন যতগুলো টেবিল থাকবে তার প্রতিটির একটি পৃথক নাম থাকতে হবে। টেবিলে ডাটা সম্বলিত এক বা একাধিক রেকর্ড বা সারি থাকে।

এই টিউটিরিয়ালে আমরা বহুল পরিচিত Northwind স্যাম্পল ডাটাবেজটি ব্যবহার করব, যেটি মাইক্রোসফট Excel এবং MS SQL Server এর সাথে শিক্ষার্থীদের জন্য তৈরী অবস্থায় (readymade) সংযুক্ত করা থাকে। সেই ডাটাবেজের Customers টেবিল থেকে কিছু ডাটা SELECT কমান্ড প্রয়োগ করে বাছাই করা হয়েছে, যা নিচের টেবিলে দেখানো হলো:

CustomerID

CustomerName

ContactName

Address

City

PostalCode

Country

1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

উপরের টেবিলে পাচটি রেকর্ড (প্রতি কাস্টমার এর জন্য একটি করে) এবং সাতটি কলাম দেখা যাচ্ছে। কলামগুলোর নাম হচ্ছে CustomerID, CustomerName, ContactName, Address, City, PostalCode এবং Country.

SQL স্টেটমেন্ট (Statements)

একটি ডাটাবেজ থেকে ডাটা বা তথ্য তুলে আনা হয় SQL স্টেটমেন্ট ব্যবহার করে। নিচের SQL স্টেটমেন্টটি প্রয়োগ করলে Northwind ডাটাবেজের Customers টেবিলের সব ডাটা নির্বাচন হবে।

SELECT * FROM Customers;

এখানে উল্লেখ করা প্রয়োজন যে SQL স্টেটমেন্ট case sensitive নয়। অর্থাত ছোট হাতের (lower case) কিংবা বড় হাতের (upper case) অক্ষরে লেখা স্টেটমেন্ট একই ফল দেবে। তবে এই টিউটরিয়ালে আমরা বড় হাতের অক্ষরে স্টেটমেন্ট লিখব।

সেমিকোলন প্রসঙ্গ:

কিছু কিছু ডাটাবেজ সিস্টেমে কমান্ড কার্যকর করার জন্য প্রতিটি SQL স্টেটমেন্ট এর পর সেমিকোলন (;) প্রয়োজন হয়। যেসব ডাটাবেজ সিস্টেমে এক কলে সার্ভারে একাধিক স্টেটমেন্ট কার্যকর করা যায় সেই সিস্টেমে একাধিক SQL স্টেটমেন্ট কে একটির সঙ্গে অন্যটিকে আলাদা করতে সেমিকোলন হচ্ছে আদর্শ উপায়। এই টিউটরিয়ালে আমরা প্রতিটি SQL স্টেটমেন্ট এর পর সেমিকোলন ব্যবহার করব।

সবচে বেশি ব্যবহৃত এবং গুরুত্বপূর্ণ কিছু SQL কমান্ড নিচে দেয়া হলো:

  • SELECT - ডাটাবেজ থেকে ডাটা নির্বাচন করে
  • UPDATE – ডাটাবেজে ডাটা update বা হালনাগাদ করে
  • DELETE – ডাটাবেজ থেকে ডাটা মুছে ফেলে
  • INSERT INTO – ডাটাবেজে নতুন ডাটা প্রবেশ করায়
  • CREATE DATABASE – নতুন ডাটাবেজ তৈরী করে
  • ALTER DATABASE – ডাটাবেজে পরিবর্তন আনার কাজ করে
  • CREATE TABLE – নতুন টেবিল তৈরী করে
  • ALTER TABLE – একটি টেবিলে পরিবর্তন আনার কাজ করে
  • DROP TABLE – নাম উল্লেখ করা টেবিলটি মুছে ফেলে
  • CREATE INDEX – ইনডেক্স বা সার্চ কী তৈরী করে
  • DROP INDEX – ইনডেক্স মুছে ফেলে

SQL সূচনা: Introduction to SQL

SQL সূচনা:
SQL কি?
উওর: SQL ভাষা দিয়ে আপনি আপনার ওয়েবসাইটের ক্লায়েন্ট সাইটের তথ্য পাঠনোর কাজ করতে পারেন। যেমন কোন রেজিস্টেশন পেইজের জন্য SQL ভাষাটা খুবই কাজে লাগে। এ ভাষাটি ব্যবহার করে আপনি নিম্নের কাজ গুলো খুব ভালভাবে করতে পারবেন। চলুন দেখি কি কি কাজ করা যায় SQL ভাষা দিয়ে।
SQL ভাষা দিয়ে ডাটাবেজের সাথে যোগাযোগ করা।
SQL ভাষাটি (American National Standards Institute) থেকে পরিক্ষিত।
SQL ভাষা দিয়ে আপনি কি কি কাজ করতে পারেন তা নিম্নে দেয়া হল:
SQL ভাষা দিয়ে আপনি ডটাবেজের সাথে সংযোগ করতে পারেন।
SQL ভাষা দিয়ে ডাটাবেজ থেকে কোন তথ্য নিয়ে অন্য কোন স্থানে ব্যবহার করতে পারেন।
SQL ভাষা দিয়ে কোন তথ্য ডাটাবেজে সংযুক্ত করতে পারেন।
SQL ভাষা দিয়ে কোন তথ্য আপডেট করতে পারেন। যেমন কোন তথ্য ভুল হলে পুনরায় আবার লিখতে পারেন।
SQL ভাষা দিয়ে কোন তথ্য খুব সহজে মুছে ফেলতে পারেন।
SQL ভাষা দিয়ে নতুন কোন ডাটাবেজ তৈরি করতে পারেন।
SQL ভাষা দিয়ে ডটাবেজে তথ্য সংযুক্ত করার পদ্ধতি তৈরি করতে পারেন।
SQL ভাষা দিয়ে ডাটাবেজের তথ্য দেখার কাজ করতে পারেন।যেমন আপনার ডাটাবেজে কি কি তথ্য রেখেছেন তা আপনি দেখতে পারেন।
SQL ভাষা দিয়ে ডাটাবেজের কোন তথ্য টেবিল সহকারে দেখতে পারেন।
যদিও SQL ভাষা (American National Standards Institute) থেকে পরিক্ষিত। কিন্তু তাদের থেকে কিছটা ভিন্ন SQL ভাষা ।
তথাপি তাদের সাথে সব কিছু মিল না থাকলেও শুধু এইটুকু মিল আছে যেমন:( SELECT, UPDATE, DELETE, INSERT, WHERE)। এই গুলো সব ক্ষেত্রেই একই থাকে। এই ভাষা গুলোর কোন পরিবর্ত্ হয় না।
SQL ভাষা আপনার ওয়েব সাইটে খুব সহজে ব্যবহার করতে পারেন।
আপনার ওয়েব সাইট ডাটাবেজের সাথে সংযুক্ত করতে নিম্নে ভাষা গুলো ব্যহার করতে পারেন।
RDBMS ডাটাবেজ তৈরি করতে যা দরকার (MS Access, SQL Server, MySQL)
পিএইচপি বা এএসটি হচ্ছে সার্ভার সাইড ভাষা।
ডাটা পাওয়ার জন্য SQL ভাষা নিতে পারেন।
এছাড়ও ব্যবহার করতে পারেন এইচটিএল বা সিএসএস।