مبانی 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 DELETE * FROM table_name |
برای حذف یک رکورد یا همه رکوردهای جدول به کار میرود. |
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 یه لینک زیر مراجعه کنید :
حال که با مفاهیم پایهای آن آشنا شدید، در درس بعد با کاربرد این دستورات به صورت عملی آشنا میشوید.