মাইএসকিউএল বেসিক ডেটাবেস অ্যাডমিনিস্ট্রেশন কমান্ড - প্রথম অংশ


ডাটাবেস হ'ল বৈদ্যুতিনভাবে সংরক্ষণ করা তথ্যের একটি কাঠামোগত সেট। কম্পিউটার না থাকলেও ডাটাবেসের ধারণাটি আমাদের পূর্বপুরুষদের কাছে জানা ছিল, তবে এই জাতীয় ডাটাবেস তৈরি করা এবং রক্ষণাবেক্ষণ করা অত্যন্ত ক্লান্তিকর কাজ ছিল। একটি ম্যানুয়াল ডাটাবেসে 100 পৃষ্ঠাগুলি বলুন, আপনি যদি সমস্ত কর্মচারীদের সন্ধান করতে হয় যাদের বেতন 10 কে-এর চেয়ে কম ছিল, তবে ভেবে দেখুন এটি কতটা কঠিন হত।

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

ডেটাবেসকে প্রায়শই ব্যাক-এন্ড প্রক্রিয়া হিসাবে অভিহিত করা হয়, কারণ এটি শেষ ব্যবহারকারীর পক্ষে দৃশ্যমান হয় না বা শেষ ব্যবহারকারী ডাটাবেসের সাথে সরাসরি যোগাযোগ করে না। তারা ফ্রন্ট-এন্ড প্রক্রিয়া যেমন পিএইচপি, ভিবি, এএসপি.এনইটি ইত্যাদিতে কাজ করে এবং সম্মুখ প্রান্তটি ব্যাক-এন্ডে ডাটাবেস মোকাবেলা করতে বলে।

ওরাকল, মাইএসকিউএল, মাইএসকিউলি, মঙ্গোডিবি ইত্যাদির মতো বেশ কয়েকটি ডাটাবেস সার্ভার এবং ক্লায়েন্ট উপলব্ধ রয়েছে যার মধ্যে এইগুলির বাক্য গঠন কমবেশি একই রকম। একটিতে দক্ষতা অর্জনের অর্থ তাদের বেশিরভাগের উপর নিয়ন্ত্রণ অর্জন করা এবং একটি ডাটাবেসের প্রশ্নগুলি শেখা খুব সহজ এবং মজাদার।

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

ওয়েল একটি ডাটাবেস ক্যোয়ারী হ'ল কোডের একটি সহজ টুকরো যা প্রয়োজন অনুসারে কাস্টম এবং পরিশোধিত ফলাফল পেতে ডাটাবেসে প্রেরণ করা হয়।

মাইএসকিউএল ডাটাবেস ইনস্টল করুন

মাইএসকিউএল ডেটাবেস ইনস্টল করতে "ইয়াম" বা "অ্যাপ্ট" প্যাকেজ ম্যানেজার ব্যবহার করুন।

# yum install mysql mysql-client mysql-server  (on Yum based Systems)

# apt-get install mysql mysql-client mysql-server (on Apt based Systems)

মাইএসকিউএল ডাটাবেস পরিষেবাটি এইভাবে শুরু করুন:

# service mysqld start
or
# service mysql start

ওয়েল একটি মাইএসকিউএল ডাটাবেস ইনস্টল করার সময় আপনাকে কনফিগারেশনে নিয়ে যেতে হবে যেখানে আপনাকে অ্যাডমিন পাসওয়ার্ড সেটআপ করতে বলা হবে etc.

# mysql -u root -p

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

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 195 

Server version: 5.5.31-0+wheezy1 (Debian) 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. 

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. 
Other names may be trademarks of their respective owners. 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

এখন এই প্রম্পটে কোয়েরি করা খুব শিক্ষামূলক এবং মজাদার।

mysql> create database tecmint ;
Query OK, 1 row affected (0.02 sec) 

mysql>

দ্রষ্টব্য: এটি রিপোর্ট করে যে ক্যোয়ারীটি সঠিক ছিল, এর অর্থ ডাটাবেস তৈরি হয়েছে। আপনি আপনার নতুন তৈরি ডাটাবেস হিসাবে যাচাই করতে পারেন।

mysql> show databases; 
+--------------------+
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
9 rows in set (0.00 sec) 
mysql>

দ্রষ্টব্য: উপরের আউটপুটটিতে আপনার ডাটাবেসটি লক্ষ্য করুন।

এটিতে কাজ করার জন্য আপনাকে এখন ডাটাবেস নির্বাচন করতে হবে।

mysql> use tecmint;
Database changed
mysql>

এখানে আমরা তিনটি ক্ষেত্র সহ "মিন্টটেক" বলে একটি সারণী তৈরি করব:

mysql> CREATE TABLE minttec (
    -> id Int(3), 
    -> first_name Varchar (15), 
    -> email Varchar(20) 
    -> ); 
Query OK, 0 rows affected (0.08 sec) 
mysql>

দ্রষ্টব্য: উপরের ক্যোয়ারীটি ঠিক আছে যার অর্থ টেবিলটি কোনও ত্রুটি ছাড়াই তৈরি করা হয়েছিল। টেবিল যাচাই করতে নীচের কোয়েরিটি চালান run

mysql> show tables; 
+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| minttec           | 
+-------------------+ 

1 row in set (0.00 sec) 

mysql>

এখন অবধি জিনিস ঠিকঠাক চলছে। হা! আপনি "মিন্টটেক" সারণীতে আপনার তৈরি কলামগুলি এটি দেখতে পারেন:

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 
3 rows in set (0.00 sec)

mysql>

এটি যাদুবিদ্যার চেয়ে কম কিছু ছিল না। যাইহোক আমি আপনাকে ঘোষণার প্রকারগুলি এবং তার অর্থ সম্পর্কে বলব।

  1. ইন্ট হল পূর্ণসংখ্যা
  2. বর্ণচর সংজ্ঞা অনুসারে পরিবর্তনশীল দৈর্ঘ্যযুক্ত চর। প্রকারের পরে মানটি ক্ষেত্রের দৈর্ঘ্য যা এটি ডেটা সঞ্চয় করতে পারে

ঠিক আছে এখন আমাদের কলামটি "শেষের নাম" পরে কলাম "প্রথম_নাম" যুক্ত করা দরকার।

mysql> ALTER TABLE minttec ADD last_name varchar (20) AFTER first_name; 
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

এখন, এটি আপনার টেবিলে যাচাই করুন।

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+ 
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+ 

4 rows in set (0.00 sec) 

mysql>

এখন আমরা ডানদিকে একটি কলাম যুক্ত করব ইমেলের ডানদিকে একটি কলামকে "দেশ" বলি।

mysql> ALTER TABLE minttec ADD country varchar (15) AFTER email; 
Query OK, 0 rows affected (0.16 sec) 
Records: 0  Duplicates: 0  Warnings: 0 

mysql>

উপরের কলাম সন্নিবেশ ক্যোয়ারী যাচাই করুন।

mysql> show columns from minttec; 

+------------+-------------+------+-----+---------+-------+ 
| Field      | Type        | Null | Key | Default | Extra | 
+------------+-------------+------+-----+---------+-------+
| id         | int(3)      | YES  |     | NULL    |       | 
| first_name | varchar(15) | YES  |     | NULL    |       | 
| last_name  | varchar(20) | YES  |     | NULL    |       | 
| email      | varchar(20) | YES  |     | NULL    |       | 
| country    | varchar(15) | YES  |     | NULL    |       | 
+------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec) 

mysql>

ক্ষেত্রে মান সন্নিবেশ সম্পর্কে কি?

mysql> INSERT INTO minttec VALUES ('1' , 'Ravi' , 'Saive' , '[email ' , 'India' );
Query OK, 1 row affected (0.02 sec) 

mysql>

উপরের সারণীতে এক সাথে 1 টিরও বেশি মান কীভাবে সন্নিবেশ করা যায়।

mysql> INSERT INTO minttec VALUES ('2' , 'Narad' , 'Shrestha' , '[email ' , 'India' ), ('3' , 'user' , 'singh' , '[email ' , 'Aus' ), ('4' , 'tecmint' , '[dot]com' , '[email ' , 'India' );
Query OK, 3 rows affected (0.05 sec) 
Records: 3  Duplicates: 0  Warnings: 0

উপরের সন্নিবেশ যাচাই করুন।

mysql> select * from minttec; 
+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+ 
|    1 | Ravi	    | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    3 | user       | singh     | [email       | Aus     | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+ 

4 rows in set (0.00 sec)

mysql>

আসুন বলি যে উপরের আউটপুটটিতে তৃতীয় এন্ট্রিটি অবৈধ এবং আমাদের তৃতীয় এন্ট্রি মুছতে হবে।

mysql> DELETE FROM minttec WHERE id = 3;

Query OK, 1 row affected (0.02 sec)

উপরের অপারেশনটি যাচাই করুন।

mysql> select * from minttec;

+------+------------+-----------+-------------------+---------+ 
| id   | first_name | last_name | email             | country | 
+------+------------+-----------+-------------------+---------+
|    1 | Ravi       | Saive     | [email  | India   | 
|    2 | Narad      | Shrestha  | [email      | India   | 
|    4 | tecmint    | [dot]com  | [email  | India   | 
+------+------------+-----------+-------------------+---------+
3 rows in set (0.00 sec)

আইডি (= 4) সম্পাদনা করা দরকার।

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

উপরের প্রশ্নটি যাচাই করুন।

mysql> UPDATE minttec SET id = 3 WHERE first_name = 'tecmint'; 
Query OK, 1 row affected (0.02 sec) 
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

দ্রষ্টব্য: উপরোক্ত ক্যোয়ারী হিসাবে সম্পাদন করা ভাল ধারণা নয়। এটি আইডিটিকে "4" এ পরিবর্তন করবে যেখানে প্রথম নামটি "টেকমিন্ট" হয়। যেখানে সর্বনিম্ন ত্রুটি পাওয়ার জন্য ক্লজটি রয়েছে তার সাথে একাধিক কলাম ব্যবহার করা সর্বদা ভাল ধারণা:

mysql> UPDATE minttec SET id = 6 WHERE first_name = 'tecmint'AND last_name = '[dot]com'; 
Query OK, 1 row affected (0.03 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

আমাদের যে কলামটি আমরা মনে করি তা ফেলে দিতে (মুছতে) আমাদের দরকার, এখানে ‘দেশ’ বলার কোনও গুরুত্ব নেই।

mysql> ALTER TABLE minttec drop country; 
Query OK, 3 rows affected (0.15 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql>

টেবিল যাচাই করুন।

mysql> select * from minttec; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+
3 rows in set (0.00 sec) 

mysql>

আপনি কি মনে করেন না যে আমাদের টেবিলের নাম "মিন্টটেক" খুব বেশি প্রাসঙ্গিক নয়। এটি কীভাবে tecmint_table এ পরিবর্তন করবেন।

mysql> RENAME TABLE minttec TO tecmint_table; 
Query OK, 0 rows affected (0.03 sec)

mysql>

বর্তমান ডাটাবেসের অধীনে সমস্ত সারণী দেখুন।

mysql> show tables; 

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+
1 row in set (0.00 sec) 

mysql>

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

# mysqldump -u root -p tecmint > tecmint.sql

check the dumped file on your desktop which would have contents something like
-- MySQL dump 10.13  Distrib 5.5.31, for debian-linux-gnu (i686) --
-- Server version 5.5.31-0+wheezy1 -- 
Dump completed on 2013-09-02 12:55:37

মাইএসকিউএল ডাটাবেসগুলির ব্যাকআপ বজায় রাখা সর্বদা একটি ভাল ধারণা। ব্যাক আপযুক্ত মাইএসকিউএল ডেটা পুনরুদ্ধার করা আবার কোডের একটি সাধারণ লাইন যা আপনার টার্মিনাল প্রম্পটে চালাতে হবে এবং আপনার মাইএসকিএল প্রম্পটে নয়।

তবে, অপেক্ষা করুন প্রথমে আমাদের পুনরুদ্ধারটি সঠিক কিনা তা যাচাই করতে আমরা ডাটাবেসটি মুছব।

mysql> drop database tecmint; 
Query OK, 1 row affected (0.02 sec)

আপনার ডাটাবেস সার্ভারে ডাটাবেস ‘টেকমিন্ট’ পরীক্ষা করুন।

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| my_database        | 
| mysql              | 
| performance_schema | 
| phpmyadmin         | 
| sisso              | 
| test               | 
+--------------------+

7 rows in set (0.00 sec) 
mysql>

দুর্দান্ত! ডাটাবেস হারিয়ে গেছে, তবে আমাদের চিন্তা করার দরকার নেই, আমরা ব্যাকআপ নিচ্ছি।

হারানো ডাটাবেস পুনরুদ্ধার করতে, নিম্নলিখিত কমান্ডটি চালান।

# mysql -u root -p tecmint < tecmint.sql
Enter password:
ERROR 1049 (42000): Unknown database 'tecmint'

ওওপিএস! একটি ত্রুটি, আরে আমরা ডেটাবেস টেকমিন্ট তৈরি করি নি। সুতরাং আপনার মাইএসকিএল প্রম্পটে যান এবং একটি ডাটাবেস তৈরি করুন ‘টেকমিন্ট’।

mysql> create database tecmint; 
Query OK, 1 row affected (0.00 sec) 

mysql>

এখন আপনার শেল প্রম্পটে পুনরুদ্ধার কমান্ড চালানোর সময় (কঠোরভাবে)।

# mysql -u root -p tecmint < tecmint.sql 
Enter password:

আপনার ডাটাবেস যাচাই করুন।

mysql> show databases; 

+--------------------+ 
| Database           | 
+--------------------+ 
| information_schema | 
| mysql              | 
| performance_schema | 
| tecmint            | 
| test               | 
+--------------------+ 
8 rows in set (0.00 sec)

ডাটাবেসের বিষয়বস্তু যাচাই করুন।

mysql> show tables from tecmint;

+-------------------+ 
| Tables_in_tecmint | 
+-------------------+ 
| tecmint_table     | 
+-------------------+ 
1 row in set (0.00 sec)

mysql>

আপনার পুনঃস্থাপিত টেবিলের সামগ্রীগুলি যাচাই করুন।

mysql> select * from tecmint_table; 

+------+------------+-----------+-------------------+ 
| id   | first_name | last_name | email             | 
+------+------------+-----------+-------------------+ 
|    1 | Ravi       | Saive     | [email  | 
|    2 | Narad      | Shrestha  | [email      | 
|    6 | tecmint    | [dot]com  | [email  | 
+------+------------+-----------+-------------------+

3 rows in set (0.00 sec)

এটি অবশ্যই শেষ নয়, আমরা প্রবন্ধের পরবর্তী অংশে প্রাইমারি কী, বিদেশী কী, একাধিক টেবিল এবং চলমান ক্যোয়ারিগুলি সহজ পিএইচপি স্ক্রিপ্ট ব্যবহার করে ধারণাটি কভার করব।

নিবন্ধটি দিয়ে যাওয়ার সময় আপনি কেমন অনুভূত হয়েছিল তা আমাদের বলতে ভুলবেন না। আপনার মন্তব্য অত্যন্ত প্রশংসা করা হয়। স্বাস্থ্যকর এবং সুরক্ষিত থাকুন, টেকমিন্টের সাথে সংযুক্ত থাকুন।