মাইএসকিউএল(MySQL) হচ্ছে একটা ওপেন সোর্স রিলেশনাল ডাটাবেজ ম্যানেজমেন্ট সিস্টেম। নামের প্রথম অংশ "My" এর নামকরণ করা হয়েছে কো-ফাউন্ডার Michael Widenius মেয়ের নামে, আর SQL মানে হচ্ছে Structured Query Language
প্রথমে উবুন্টু সিস্টেম আপডেট করুন
sudo apt update
MySQL ইন্সটল করুন
sudo apt install mysql-server
MySQL সিকিউরিটি ইন্সটল করুন
sudo mysql_secure_installation
MySQL এর root ইউজারে অ্যাক্সেস করতে
mysql -u root -p <your password>
বর্তমানে কি কি ডাটাবেজ আছে তা দেখতে
SHOW DATABASES;
ডাটাবেজ তৈরি করার জন্য
CREATE DATABASE dbname;
নতুন তৈরি করা ডাটাবেজ নিয়ে কাজ করার জন্য
USE dbname;
কোন স্পেসিফিক ডাটাবেজের টেবিল সমূহের লিস্ট দেখতে
SHOW TABLES;
টেবিল তৈরি করার জন্য
CREATE TABLE tableName;
এই নামে কোন টেবিল আছে কিনা চেক করে নতুন টেবিল তৈরি করা
CREATE TABLE IF NOT EXISTS tableName;
কোন টেবিল ডিলেট করতে
DROP TABLE IF EXIST tableName;
ডাটাবেজ ডিলেট করতে
DROP DATABASE IF EXIST dbname;
ASCII
ORD
CONV
BIN
OCT
HEX
CHAR
CONCAT
CONCAT_WS
LENGTH
CHAR_LENGTH
BIT_LENGTH
LOCATE
INSTR
LPAD
RPAD
LEFT
RIGHT
SUBSTRING
MID
SUBSTRING_INDEX
LTRIM
RTRIM
TRIM
SOUNDEX
SPACE
REPLACE
REPEAT
REVERSE
INSERT
ELT
FIELD
LCASE
UCASE
LOAD_FILE
QUOTE
`mysql_secure_installation` প্রসেস সম্পন্ন করার পর, এর root ইউজারে অ্যাক্সেস করতে
mysql -u root -p <your password>
যদি `mysql_secure_installation` প্রসেস সম্পন্ন না করা হয়, তাহলে `root` ইউজারে এক্সেস পেতে
sudo mysql
বর্তমান ইউজার ও এডমিনদের তথ্য তালিকা হিসেবে দেখতে
SELECT user,authentication_string,plugin,host FROM mysql.user;
ডিফল্ট এডমিন `root` এর পাসওয়ার্ড চেঞ্জ করতে
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
নতুন ইউজার তৈরী করতে
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'new_user_password';
`new_user` কে নতুন এডমিন তৈরী করতে (সব পারমিশন দিয়ে)
GRANT ALL PRIVILEGES ON * . * TO 'new_user'@'localhost';
ইউজারকে বিশেষ পারমিশন দিতে
GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';
ইউজার থেকে বিশেষ পারমিশন তুলে নিতে
REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';
একজন ইউজারের বর্তমান পারমিশন গুলো দেখতে
SHOW GRANTS FOR 'username'@'localhost';
কোন ইউজারকে ডিলেট করতে
DROP USER 'username'@'localhost';
সেটিংস গুলো তৎক্ষণাৎ প্রয়োগ করতে
FLUSH PRIVILEGES;
স্ট্রিং(০ - ২৫৫)
CHAR
স্ট্রিং(০ - ২৫৫)
VARCHAR
স্ট্রিং(০ - ২৫৫)
TINYTEXT
স্ট্রিং(০ - ৬৫৫৩৫)
TEXT
স্ট্রিং(০ - ৬৫৫৩৫)
BLOB
স্ট্রিং(০ - ১৬৭৭৭২১৫)
MEDIUMTEXT
স্ট্রিং(০ - ১৬৭৭৭২১৫)
MEDIUMBLOB
স্ট্রিং(০ - ৪২৯৪৯৬৭২৯৫)
LONGTEXT
স্ট্রিং(০ - ৪২৯৪৯৬৭২৯৫)
LONGBLOB
ইন্টিজার(-১২৮ থেকে ১২৭)
TINYINT
ইন্টিজার(-৩২৭৬৮ থেকে ৩২৭৬৭)
SMALLINT
ইন্টিজার(-৮৩৮৮৬০৮ থেকে ৮৩৮৮৬০৭)
MEDIUMINT
ইন্টিজার(-২১৪৭৪৮৩৬৪৮ থেকে ২১৪৭৪৮৩৬৪৭)
INT
ইন্টিজার(-৯২২৩৩৭২০৩৬৮৫৪৭৭৫৮০৮ থেকে ৯২২৩৩৭২০৩৬৮৫৪৭৭৫৮০৭)
BIGINT
ডেসিমল(২৩ ডিজিট)
FLOAT
ডেসিমল(২৪ থেকে ৫৩ ডিজিট)
DOUBLE
DOUBLE স্ট্রিং হিসেবে স্টোর হয়
DECIMAL
বছর-মাস-দিন
DATE
বছর-মাস-দিন ঘন্টাঃমিনিটঃসেকেন্ড (১০০০-০১-০১ ০০ঃ০০ঃ০০ থেকে ৯৯৯৯-১২-৩১ ২৩ঃ৫৯ঃ৫৯)
DATETIME
বছর-মাস-দিন ঘন্টাঃমিনিটঃসেকেন্ড (১৯৭০/০১/০১ ০০ঃ০০ঃ০০ থেকে ২০৩৮-০১-১৯ ০৩ঃ১৪ঃ০৭)
TIMESTAMP
ঘন্টাঃমিনিটঃসেকেন্ড(-৮৩৮ঃ৫৯ঃ৫৯ থেকে ৮৩৮ঃ৫৯ঃ৫৯)
TIME
বছর(১৯০১ থেকে ২১৫৫)
YEAR
প্রিসেট অপশন
ENUM
প্রিসেট অপশন সিলেক্ট
SET
TINYINT(1)
BOOLEAN
ABS
SIGN
MOD
FLOOR
CEILING
ROUND
DIV
EXP
LN
LOG
LOG2
LOG10
POW
POWER
SQRT
PI
COS
SIN
TAN
ACOS
ASIN
ATAN
ATAN2
COT
RAND
LEAST
GREATEST
DEGREES
RADIANS
TRUNCATE
DAYOFWEEK
WEEKDAY
DAYOFMONTH
DAYOFYEAR
MONTH
DAYNAME
MONTHNAME
QUARTER
WEEK
YEAR
YEARWEEK
HOUR
MINUTE
SECOND
PERIOD_ADD
PERIOD_DIFF
DATE_ADD
DATE_SUB
ADDDATE
SUBDATE
EXTRACT
TO_DAYS
FROM_DAYS
DATE_FORMAT
TIME_FORMAT
CURRENT_DATE
CURRENT_TIME
NOW
SYSDATE
UNIX_TIMESTAMP
FROM_UNIXTIME
SEC_TO_TIME
TIME_TO_SEC