مبانی MYSQL

قبل از اینکه اقدام به دسترسی و تغییر دیتابیس‌ها کنید لازم است در مورد مبانی MYSQL اطلاعاتی داشته باشید. از این زبان برای پرس و جو در دیتابیس استفاده می‌شود. درک MYSQL بسیار ساده و آسان است. از MYSQL تنها برای پرس و جوی داده استفاده نمی‌شود، بلکه تقریباً از آن برای انجام هر کاری مثلاً ایجاد، بروزرسانی و حذف دیتابیس و جداول استفاده می‌شود. MYSQL همانند سایر زبان‌های برنامه نویسی دارای انواعی از داده‌هاست که به سه نوع متنی، عددی و تاریخی تقسیم می‌شوند و لیست آنها در جدول زیر نمایش داده شده است :

داده توضیح نوع
INT داده عددی معمول که می‌تواند با نشانه یا بدون نشانه باشد (مثبت یا منفی). اگر از نوع نشانه دار باشد محدوده مجاز اعداد بین 2147483648- تا 2147483647 می‌باشد، اگر بدون نشانه باشد محدوده مجاز اعداد از 0 تا 4294967295 می‌باشد. می‌توانید تعداد ارقام اعداد را تا 11 عدد مشخص کنید . عددی
TINYINT عدد صحیح خیلی کوچک که می‌تواند نشانه دار یا بدون نشانه (مثبت یا منفی) باشد. اگر نشانه دارد باشد محدوده مجاز اعداد بین 128- تا 127 می‌باشد. اما اگر بدون نشانه باشد محدوده مجاز اعداد بین 0 تا 255 می‌باشد. می‌توانید تعداد ارقام را تا 4 رقم مشخص کنید . عددی
SMALLINT عدد صحیح کوچک می‌تواند نشانه دار یا بدون نشانه باشد. اگر نشانه دار باشد محدوده مجاز اعداد بین -32768 تا 32767 می‌باشد. اگر بدون نشانه باشد محدوده مجاز اعداد بین 0 تا 65535 می‌باشد. می‌توانید تعداد ارقام را تا 5 رقم مشخص کنید . عددی
MEDIUMINT عدد صحیح متوسط که می‌تواند نشانه دار یا بدون نشانه باشد. اگر نشانه دار باشد محدوده مجاز اعداد بین -8388608 تا 8388607 می‌باشد. اگر بدون نشانه باشد محدوده مجاز اعداد بین 0 تا 16777215 می‌باشد. می‌توانید تعداد ارقام را تا 9 رقم مشخص کنید عددی
BIGINT عدد صحیح بزرگ می‌تواند نشانه دار یا بدون نشانه باشد. اگر نشانه دار باشد محدوده مجاز اعداد بین 9223372036854775808- تا 9223372036854775807 می‌باشد. اگر بدون نشانه باشد محدوده مجاز اعداد بین 0 تا 9223372036854775807 می‌باشد. تعداد ارقام را می‌توانید تا 20 رقم مشخص کنید . عددی
FLOAT عدد اعشاری که نمی‌تواند بدون علامت باشد. می‌توان طول ارقام (M) و تعداد اعشار (D) را تعریف کرد. تعریف طول و تعداد اعشار اجباری نمی‌باشد و در صورت عدم مقدار پیش‌فرض 10,2 اشتفاده می‌شود که 2 تعداد ارقام اعشار و 10 تعداد کل ارقام می‌باشد (با احتساب ارقام اعشار). دقت اعشار می‌تواند تا 24 عدد برای FLOAT باشد . عددی
DOUBLE عدد اعشاری با دقت مضاعف نمی‌تواند بدون علامت باشد. می‌توان طول ارقام (D) و تعداد اعشار (D) را تعریف کرد. تعریف طول و تعداد اعشار اجباری نمی‌باشد و در صورت عدم تعریف مقدار پیش‌فرض 16,4 اشتفاده می‌شود که 4 تعداد ارقام اعشار و 16 تعداد کل ارقام می‌باشد (با احتساب اعداد اعشار). دقت اعشار می‌تواند تا 54 عدد برای DOUBLE باشد . REAL مترادف برای DOUBLE است. عددی
DECIMAL عدد اعشاری با ممیز شناور که نمی‌تواند بدون علامت باشد. در اعشار ممیز شناور هر عدد اعشار معادل یک بایت می‌باشد. تعریف طول ارقام (M) و تعداد اعشار (D) می‌باشد.NUMERIC مترادف برای DECIMAL می‌باشد. عددی
DATE تاریخ با فرمت YYYY-MM-DD ، که محدوده آن بین 1000-01-01 تا 9999-12-31 می‌باشد. برای مثال December 30th, 1973 به صورت 1973-12-30. ذخیره می‌شود . تاریخ
DATETIME ترکیبی از تاریخ و زمان با فرمت YYYY-MM-DD HH:MM:SS می‌باشد، محدوده آن بین 1000-01-01 00:00:00 و 9999-12-31 23:59:59 می‌باشد. برای مثال، 3:30 بعد از ظهر در تاریخ December 30th, 1973 به صورت 1973-12-30 15:30:00 ذخیره می‌شود . تاریخ
TIMESTAMP محدوده زمانی بین نیمه شب January 1, 1970 و زمانی در 2037 می‌باشد. فرمت آن شبیه فرمت DATETIME می‌باشد بودن خط تیره در میان اعداد. برای مثال، 3:30 بعد از ظهر در تاریخ December 30th, 1973 به صورت 19731230153000 ذخیره می‌شود . تاریخ
TIME زمان را با فرمت HH:MM:SS ذخیره می‌کند. تاریخ
YEAR سال را با فرمت 2 رقم یا 4 رقم ذخیره می‌کند. اگر طول 2 تعیین شود، YEAR می‌تواند بین 1970 تا 2069 (70 تا 69) باشد. اگر طول 4 تعیین شود YEAR می‌تواند بین 1901 تا 2155 باشد. طول پیش‌فرض 4 می‌باشد . تاریخ
CHAR رشته با طول ثابت که طول آن بین 1 تا 255 می‌باشد. (مثال : CHAR(5) ) ، مقدار خالی سمت راست با فضای خالی پر می‌شود تا زمانی که به حداکثر طول تعیین شده برسد. تعریف طول رشته اجباری نیست اما مقدار پیش‌فرض 1 می‌باشد . رشته
VARCHAR رشته با طول منغیر که طول آن می‌تواند بین 0 تا 255 باشد. (مثال : VARCHAR(25) ) . تعریف مقدار طول رشته اجباری می‌باشد . رشته
BLOB / TEXT فیلد با حداکثز مقدار 65535 کاراکتر . BLOB مخفف “Binary Large Object” می‌باشد و برای ذخیره مقادیر بزرگ داده باینری استفاده می‌شود، از قبیل تصویر یا انواع مختلف فایل‌ها. فیلدهایی که عنوان TEXT ذخیره شده‌اند نیز مقدار بزرگی از داده را ذخیره می‌کنند. تفاوت آن‌ها در این می‌باشد که مرتب سازی و مقایسه در فیلدهای BLOB بین حروف کوچک و بزرگ تفاوت قائل می‌شود اما در فیلدهای TEXT تفاوتی قائل نمی‌شود. برای نوع‌های TEXT و BLOB طول تعریف نمی‌شود . رشته
TINYBLOB / TINYTEXT یک ستون TEXT یا BLOB با حداکثر مقدار 255 کاراکتر. برای نوع‌های TINYTEXT و TINYBLOB، طول تعریف نمی‌شود . رشته
MEDIUMBLOB / MEDIUMTEXT یک ستون TEXT یا BLOB با حداکثر مقدار 16777215 کاراکتر. برای نوع‌های MEDIUMTEXT و MEDIUMBLOB، طول تعریف نمی‌شود . رشته
LONGBLOB / LONGTEXT یک ستون TEXT یا BLOB با حداکثر مقدار 4294967295 کاراکتر. برای نوع‌های LONGTEXT و LONGBLOB، طول تعریف نمی‌شود . رشته
ENUM یک نوع شمارشی می‌باشد، که یک اصطلاح عامیانه برای لیست است. هنگامی که یک فیلد ENUM تعریف می‌کنید، شما لیستی از گزینه‌ها ایجاد می‌کنید که یک مورد باید انتخاب شود (یا می‌تواند NULL باشد). برای مثال شما می‌خواهید فیلد دارای مقدار “A” یا “B” یا “C” باشد، فیلد ENUM باید به صورت ENUM(‘A’,’B’,’C’) تعریف شود و تنها همان مقادیر تعیین شده (یا NULL) می‌تواند برای آن فیلد جمع آوری شود . رشته
SET نوع SET نیز همانند ENUM می‌باشد و تنها تفاوت آن در این می‌باشد که امکان انتخاب چند گزینه از لیست را نیز میسر می‌سازد . رشته

حال اکه با انواع داده‌ها آشنا شدید، در ادامه در دستورات پایه‌ای MYSQL توضیح می‌دهیم.

دستورات MYSQL

MYSQL دارای دستوراتی برای کار با بانک اطلاعاتی مانند ایجاد بانک، ایجاد و حذف جداول و کار با داده‌های ذخیره شده در بانک می‌باشد که در جدول زیر به مهم‌ترین آن‌ها اشاره شده است :

دستور نحوه استفاده کاربرد
ALTER TABLE ALTER TABLE table_name ADD column_name datatype

or

ALTER TABLE table_name DROP COLUMN column_name

برای اضافه کردن، حذف کردن یا تغییر ستون‌ها در جدول موجود استفاده می‌شود.
CREATE DATABASE CREATE DATABASE database_name یک دیتابیس جدید ایجاد می‌کند.
CREATE TABLE CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,

)
یک جدول جدید ایجاد می‌کند.
DELETE DELETE FROM table_name WHERE some_column=some_value

or

DELETE FROM table_name
(Note: Deletes the entire table!!)

DELETE * FROM table_name
(Note: Deletes the entire table!!)

برای حذف یک رکورد یا همه رکوردهای جدول به کار می‌رود.
DROP DATABASE DROP DATABASE database_name برای حذف دیتابیس به کار می‌رود.
DROP TABLE DROP TABLE table_name برای حذف جدول به کار می‌رود.
INSERT INTO INSERT INTO table_name VALUES (value1, value2, value3,….)

or

INSERT INTO table_name (column1, column2, column3,…) VALUES (value1, value2, value3,….)

برای اضافه کردن یک یا چند رکورد به جدول به کار می‌رود.
LIKE SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern به همراه دستور WHERE برای پیدا کردن یک الگوی خاص در یک ستون استفاده می‌شود.
ORDER BY SELECT column_name(s) FROM table_name ORDER BY column_name [ASC|DESC] برای مرتب کردن نتیجه پرس و جو بر اساس ستون مشخص شده به صورت صعودی یا نزولی به کار می‌رود.
SELECT SELECT column_name(s) FROM table_name برای استخراج داده‌های ستون‌های خاصی از جدول به کار می‌رود.
SELECT * SELECT * FROM table_name برای استخراج داده‌های یک جدول به کار می‌رود.
UPDATE UPDATE table_name SET column1=value, column2=value,… WHERE some_column=some_value برای به روز رسانی رکوردهای موجود در یک جدول استفاده می‌شود.
WHERE SELECT column_name(s) FROM table_name WHERE column_name operator value برای استخراج رکوردهایی که در شرط خاصی صدق می‌کنند کاربرد دارد.

MYSQL به تنهایی زبان پیشرفته و بزرگی است. بیشتر از این در مورد آن توضیح نمی‌دهیم. برای مشاهده لیست کامل دستورات MYSQL یه لینک زیر مراجعه کنید :

حال که با مفاهیم پایه‌ای آن آشنا شدید، در درس بعد با کاربرد این دستورات به صورت عملی آشنا می‌شوید.