SQL یکی از قدرتمندترین زبانها است که برای مدیریت پایگاههای داده استفاده میشود. این زبان امکان ایجاد، تغییر، و مدیریت دادهها را فراهم میکند. دانستن دستورات SQL برای کارمندان بخش فنی هر شرکت یا سازمان از واجبات است. SQL به عنوان یک استاندارد بینالمللی توسط اکثر سیستمهای مدیریت پایگاه داده پشتیبانی میشود و ابزار بسیار قدرتمندی برای تحلیل و مدیریت دادهها فراهم میکند. در ادامه درمورد این زبان و دستورات SQL بیشتر صحبت خواهیم کرد.
پایگاه داده چیست؟
پایگاه داده یا Database یک مجموعه سازمانیافته از دادهها است که به صورت الکترونیکی در کامپیوتر یا سرورهای داده ذخیره میشود و به منظور جستجو، بازیابی، و مدیریت اطلاعات استفاده میشود. اطلاعات در پایگاه داده به صورت جداول (tables) ذخیره میشوند و هر جدول شامل ستونها (columns) و ردیفها (rows) است. این ساختار سازمان یافته امکان سریعترین و بهترین جستجو و بازیابی دادهها را فراهم میکند.
پایگاه دادهها برای ذخیره و مدیریت حجم بزرگی از دادهها استفاده میشوند و در بسیاری از سیستمها و برنامههای کامپیوتری (مانند وبسایتها، سیستمهای مدیریت محتوا، برنامههای حسابداری و غیره) استفاده میشوند. به عنوان مثال، یک پایگاه داده میتواند اطلاعات کاربران یک وبسایت، محصولات و فروشها، یا اطلاعات مالی یک شرکت را ذخیره و مدیریت کند. برای مدیریت و تعامل با پایگاه داده نیاز به یک زبان داریم که دانستن SQL و یادگیری دستورات SQL برای این کار کافی است.
انواع پایگاه داده ها
پایگاه دادهها به دو دسته اصلی تقسیم میشوند: پایگاه دادههای رابطهای و پایگاه دادههای غیررابطهای.
پایگاه دادههای رابطهای (Relational Databases): در این نوع پایگاه داده، دادهها به صورت جداول و روابط میان آنها نمایش داده میشوند. پایگاه دادههای رابطهای از زبان SQL برای مدیریت دادهها استفاده میکنند. مثالهایی از پایگاه دادههای رابطهای شامل MySQL، PostgreSQL، SQL Server و Oracle هستند.
پایگاه دادههای غیررابطهای (Non-Relational Databases): این نوع پایگاه داده به عنوان NoSQL نیز شناخته میشوند و از مدل غیررابطهای برای ذخیره سازی دادهها استفاده میکنند. این نوع پایگاه داده برای مواردی که نیاز به ذخیره دادههای بزرگ و یا دادههای با ساختار متفاوت دارند مناسب هستند. مثالهایی از پایگاه دادههای غیررابطهای شامل MongoDB، Cassandra و Redis هستند.
به علاوه، پایگاه دادههای میانی (Mid-range Databases) و پایگاه دادههای توزیعشده (Distributed Databases) نیز از نوعهای دیگر پایگاه داده هستند که برای استفاده در محیطهایی با تعداد بالای کاربران یا محیطهایی که نیاز به مقیاسپذیری دارند، مناسب هستند.
SQL چیست؟
SQL مخفف Structured Query Language به معنای “زبان پرس و جوی ساختار یافته” است که برای مدیریت و تعامل با پایگاه دادهها استفاده میشود. با استفاده از دستورات SQL، میتوانید دادهها را اضافه، ویرایش، حذف و بازیابی کنید. SQL یک زبان استاندارد است که توسط اکثر پایگاههای داده رابطهای (مانند MySQL، PostgreSQL، SQL Server، Oracle و غیره) پشتیبانی میشود.
استفاده از SQL برای انجام عملیاتهای مختلف بر روی دادهها بسیار راحت و کارآمد است. برای مثال، با استفاده از دستور SELECT میتوانید اطلاعات مورد نیاز خود را از یک جدول بازیابی کنید، با دستور INSERT میتوانید دادههای جدید را به جدول اضافه کنید، و با دستورات UPDATE و DELETE میتوانید دادهها را به ترتیب به روزرسانی و حذف کنید.
همچنین، SQL امکانات گستردهای برای مدیریت ساختار دادهها نیز فراهم میکند. با استفاده از دستورات CREATE TABLE، ALTER TABLE و DROP TABLE میتوانید ساختار جداول را تعریف، تغییر دهید و حذف کنید.
به علاوه، SQL امکانات پیشرفتهتری نیز دارد که به شما اجازه میدهد تراکنشهای چندگانه را مدیریت کنید (با دستورات COMMIT، ROLLBACK و SAVEPOINT) و دسترسی به دادهها را کنترل کنید (با دستورات GRANT و REVOKE).
SQL یک زبان قدرتمند و بسیار مفید برای کار با پایگاههای داده است که توسط بسیاری از توسعهدهندگان و متخصصان اطلاعاتی در سراسر دنیا استفاده میشود. در ادامه درمورد این دستورات sql بیشتر توضیح خواهیم داد.
آیا SQL یک زبان برنامه نویسی است؟
بسیاری به اشتباه SQL را یک زبان برنامهنویسی میدانند اما جالب است بدانید که SQL زبان برنامهنویسی نیست بلکه یک زبان است که برای مدیریت و تعامل با پایگاه دادهها استفاده میشود. به عبارت دیگر، SQL یک زبان پرس و جوی ساختار یافته (Structured Query Language) است که برای انجام عملیاتهایی مانند بازیابی، افزودن، به روزرسانی، و حذف دادهها از یک پایگاه داده استفاده میشود.
دستورات SQL به چند دسته تقسیم می شوند؟
دستورات SQL در ۴ دسته اصلی قرار میگیرند که به صورت زیر میباشد:
- دستورات DDL مخفف (Data Definition Language)
- دستورات DML مخفف (Data Manipulation Language)
- دستورات DCL مخفف (Data Control Language)
- دستورات TCL مخفف (Transaction Control Language)
این دستهها چندین دستورات SQL را در خود جای دادهاند که هرکدام در موارد مختلفی از مدیریت پایگاه داده به کار میروند. در ادامه به توضیح هرکدام از این ۴ دسته خواهیم پرداخت.
۱- دستورات DDL
دستورات DDL یا Data Definition Language برای تعریف و تغییر ساختار دادهها در پایگاه داده استفاده میشوند. این دستورات برای ایجاد جداول، تعریف ستونها، تغییرات در ساختار جداول، حذف جداول و دیگر عملیاتهای مرتبط با ساختار دادهها استفاده میشوند. به عبارت دیگر، دستورات DDL به ما امکان میدهند تعیین کنیم که دادهها چگونه ذخیره شوند و چگونه به آنها دسترسی داشته باشیم.
دستورات اصلی DDL شامل CREATE، ALTER و DROP میشوند که در ادامه هرکدام از این دستورات SQL را همراه با مثال توضیح خواهیم داد.
دستور CREATE
دستور CREATE در SQL برای ایجاد یک شیء جدید در پایگاه داده استفاده میشود. این شیء میتواند یک جدول، نمایه (index)، دستور (stored procedure)، تریگر (trigger) یا دیگر شیءهایی باشد که در پایگاه داده قابل ایجاد باشند. ساختار کلی دستور CREATE برای ایجاد جدول به صورت زیر است:
CREATE TABLE table_name ( نام_ستون۱ نوع_داده۱ قیدها, نام_ستون۲ نوع_داده۲ قیدها, ... PRIMARY KEY (یک یا چند ستون به عنوان کلید اصلی) );
مثال:
CREATE TABLE users ( آیدی INT PRIMARY KEY, نام VARCHAR(50) NOT NULL, ایمیل VARCHAR(255) UNIQUE, سن INT );
در این مثال، یک جدول با نام “users” ایجاد میکند که شامل چهار ستون است: ستون “آیدی” با نوع داده INT که به عنوان کلید اصلی (PRIMARY KEY) تعریف شده است؛ ستون “نام” با نوع داده VARCHAR(50) که اجباری است (NOT NULL)، به این معنی که نمیتواند مقدار خالی داشته باشد؛ ستون “ایمیل” با نوع داده VARCHAR(255) که باید مقدار یکتا داشته باشد (UNIQUE)؛ و ستون “سن” با نوع داده INT که مقدار خالی مجاز است.
دستور ALTER
دستور ALTER از دستورات SQL برای اعمال تغییرات بر روی ساختار یک جدول موجود استفاده میشود. این دستور به ما امکان میدهد ستونها را اضافه، تغییر، یا حذف کنیم، قیدها را اضافه کنیم یا حذف کنیم، و تغییرات دیگری روی ساختار جدول اعمال کنیم. ساختار کلی دستور ALTER برای اضافه کردن یک ستون جدید به یک جدول به صورت زیر است:
ALTER TABLE table_name ADD نام_ستون نوع_داده;
مثال:
ALTER TABLE users ADD شماره_تماس VARCHAR(20);
این دستور یک ستون جدید با نام “شماره_تماس” و نوع داده VARCHAR(20) به جدول “users” اضافه میکند.
دستور DROP
دستور DROP در SQL برای حذف یک شیء موجود در پایگاه داده مانند جدول استفاده میشود. این دستور به ما امکان میدهد شیء مورد نظر را از پایگاه داده حذف کنیم. ساختار کلی دستور DROP برای حذف یک جدول به صورت زیر است:
DROP TABLE table_name;
۲- دستورات DML
یکی دیگر از دستورات SQL دستورات Manipulation Language یا DML هستند که برای مدیریت دادهها در پایگاه داده استفاده میشوند. به این صورت میتوان با استفاده از دستورات DML دادههای موجود در پایگاه داده را مدیریت و بازیابی کرد.
دستورات اصلی DML شامل اضافه کردن (INSERT)، ویرایش (UPDATE)، حذف (DELETE) و جستجو (SELECT) دادهها میشوند که در ادامه هرکدام را همراه با مثال توضیح خواهیم داد.
دستور INSERT
دستور INSERT در SQL برای اضافه کردن رکوردهای جدید به یک جدول استفاده میشود. با استفاده از این دستور، میتوانیم دادههای جدید را به جدول اضافه کنیم. ساختار کلی دستور INSERT به صورت زیر است:
INSERT INTO table_name (ستون۱, ستون۲, ...) VALUES (مقدار۱, مقدار۲, ...);
مثال:
INSERT INTO users (نام, سن, ایمیل) VALUES ('علی', ۳۰, 'ali@programstore.ir');
این دستور یک رکورد با مقادیر ‘علی’ برای نام، ۳۰ برای سن، و ‘ali@programstore.ir’ برای ایمیل به جدول اضافه میکند.
دستور UPDATE
دستور UPDATE در SQL برای ویرایش دادههای موجود در یک جدول استفاده میشود. با استفاده از این دستور، میتوانیم یک یا چند رکورد موجود در جدول را ویرایش کنیم. ساختار کلی دستور UPDATE به صورت زیر است:
UPDATE table_name SET ستون۱ = مقدار۱, ستون۲ = مقدار۲, ... WHERE شرط;
مثال:
UPDATE users SET نام = 'محمد', سن = 25 WHERE آیدی = 1;
در این مثال، رکوردی با شماره آیدی ۱ در جدول “users” ویرایش شده و نام به “محمد” و سن به ۲۵ سال تغییر داده میشود.
دستور DELETE
دستور DELETE در SQL برای حذف رکوردهای موجود در یک جدول استفاده میشود. با استفاده از این دستور، میتوانیم یک یا چند رکورد موجود در جدول را حذف کنیم. ساختار کلی دستور DELETE به صورت زیر است:
DELETE FROM table_name WHERE شرط;
این دستور از دستورات SQL نیاز به کمی دقت دارد، “table_name” نام جدولی است که میخواهیم رکوردها را از آن حذف کنیم. شرط WHERE نیز برای تعیین رکوردهایی است که قرار است حذف شوند. اگر این شرط را اشاره نکنیم، تمام رکوردهای جدول حذف خواهند شد. مثال:
DELETE FROM users WHERE آیدی = 2;
در این مثال، رکوردی با شماره آیدی ۲ از جدول “users” حذف میشود.
دستور SELECT
دستور SELECT در SQL برای بازیابی دادهها از یک یا چند جدول استفاده میشود. با استفاده از این دستور، میتوانیم دادههای مورد نیاز خود را از پایگاه داده بازیابی کرده و نمایش دهیم. ساختار کلی دستور SELECT به صورت زیر است:
SELECT ستون۱, ستون۲, ... FROM table_name WHERE شرط;
مثال:
SELECT نام, سن, ایمیل FROM users WHERE سن > 25;
در این مثال، نام، سن و ایمیل کاربرانی که سن آنها بیشتر از ۲۵ سال است از جدول “users” بازیابی شده و نمایش داده میشود.
۳- دستورات DCL
سومین دسته از دستورات SQL، دستورات DCL یا Data Control Language هستند که برای مدیریت دسترسیها و مجوزها به دادهها استفاده میشوند. این دستورات به ما امکان میدهند که مجوزهای دسترسی به جداول و دادههای پایگاه داده را تعیین و مدیریت کنیم. دستورات اصلی DCL شامل GRANT، REVOKE و DENY میشوند.
دستور GRANT
این دستور برای اعطای مجوزها به کاربران یا گروهها استفاده میشود. با استفاده از این دستور، میتوان مجوزهایی مانند SELECT، INSERT، UPDATE، DELETE و … را به کاربران یا گروهها اعطا کرد.
دستور REVOKE
این دستور برای لغو مجوزهایی که قبلاً به کاربران یا گروهها اعطا شده استفاده میشود. با استفاده از این دستور، میتوان مجوزهای اعطا شده را لغو کرد.
دستور DENY
این دستور برای امکان اعطای مجوز با شرط استفاده میشود. به عبارت دیگر، این دستور به کاربران یا گروهها اجازه میدهد تا مجوزهای خاصی را بدون امکان اعطای مجوز توسط دیگران داشته باشند.
این دستورات به مدیران پایگاه داده امکان میدهند تا کنترل دقیقی بر روی دسترسیها و مجوزهای کاربران داشته باشند و از امنیت پایگاه داده محافظت کنند.
۴- دستورات TCL
دستورات Transaction Control Language یا TCL که چهارمین دسته از دستورات SQL محسوب میشوند؛ برای مدیریت تراکنشها (Transactions) استفاده میشوند. این دستورات برای کنترل و اعمال تراکنشها بر روی دادهها در پایگاه داده استفاده میشوند. دستورات اصلی TCL شامل COMMIT، ROLLBACK و SAVEPOINT میشوند.
دستور COMMIT
این دستور برای ثبت تغییرات اعمال شده در تراکنش و ذخیره این تغییرات در پایگاه داده استفاده میشود. با اجرای دستور COMMIT، تراکنش به پایان میرسد و تمام تغییرات اعمال شده دائمی میشوند.
دستور ROLLBACK
این دستور برای لغو تغییرات اعمال شده در تراکنش استفاده میشود. با اجرای دستور ROLLBACK، تمام تغییرات اعمال شده در تراکنش به حالت قبل از شروع تراکنش باز میگردند.
دستور SAVEPOINT
این دستور برای تعریف یک نقطه ذخیرهسازی (Savepoint) در تراکنش استفاده میشود. این نقطه ذخیرهسازی به ما امکان میدهد که بتوانیم به آن نقطه در تراکنش بازگردیم و از آنجا ادامه دهیم.
این دستورات به ما امکان میدهند که تراکنشها را بهبود دهیم و از تغییرات غیرمطمئن در پایگاه داده جلوگیری کنیم.
دیگر دستورات مهم SQL
علاوه بر دستورات DDL، DML، DCL و TCL که قبلاً بررسی شدند، دستورات SQL دیگری نیز وجود دارند که برای مدیریت و پردازش دادهها استفاده میشوند. برخی از این دستورات عبارتند از:
- SELECT DISTINCT: برای بازیابی مقادیر یکتا از یک ستون استفاده میشود.
- ORDER BY: برای مرتب کردن نتایج بر اساس یک یا چند ستون استفاده میشود.
- GROUP BY: برای گروهبندی رکوردها بر اساس یک یا چند ستون و اعمال توابع تجمیعی مانند SUM، AVG، COUNT و غیره استفاده میشود.
- HAVING: برای فیلتر کردن گروههای حاصل از GROUP BY استفاده میشود.
- LIKE: برای جستجوی الگوهای مشخص در مقادیر یک ستون استفاده میشود.
- IN: برای مقایسه یک مقدار با یک لیست از مقادیر استفاده میشود.
- BETWEEN: برای مقایسه یک مقدار با یک بازه از مقادیر استفاده میشود.
- NULL: برای بررسی مقادیر NULL استفاده میشود.
- JOIN: برای اتصال دو یا بیشتر جدول بر اساس یک شرط استفاده میشود. در SQL، انواع مختلف JOIN وجود دارد، از جمله INNER JOIN، LEFT JOIN، RIGHT JOIN و FULL JOIN.
- UNION: برای ترکیب نتایج دو یا چند دستور SELECT استفاده میشود.
حفظ امنیت پایگاه داده
برای جلوگیری از حملاتی که توسط هکرها از طریق ورود دستورات SQL غیرمجاز به سیستم، سایت یا برنامههای وابسته، به دادههای ذخیره شده در پایگاه داده آسیب میرسانند، بهتر است از فیلترها، پارامترهای آماده استفاده کنیم و پایگاه داده و سیستم مدیریت پایگاه داده را بهروز نگه داریم تا از ثبات و امنیت آنها اطمینان حاصل شود.
برخی از دستورات SQL میتوانند به هکرها اجازه دسترسی به اطلاعات محرمانه، تغییر دادن یا حذف دادهها، یا اجرای عملیاتهای زیرساختی در پایگاه داده را بدهند.
نتیجه گیری
در مقاله دستورات SQL به بررسی مفاهیم اساسی مرتبط با پایگاه داده و زبان SQL پرداختیم. ابتدا با مفهوم پایگاه داده آشنا شدیم و سپس به معرفی زبان SQL و دستههای مختلف دستورات آن پرداختیم که شامل ۴ دسته اصلی هستند. همچنین با انواع مختلف پایگاه دادهها از جمله پایگاه دادههای رابطهای و غیررابطهای آشنا شدیم. در پایان، به بررسی روشهای حفظ امنیت پایگاه داده پرداختیم.
خوب بود و تصویری و گام به گام جلو می رفتید بهتر بود.