متن خبر

دستورات SQL: فهرست دستورات زبان اصلی SQL

دستورات SQL: فهرست دستورات زبان اصلی SQL

شناسهٔ خبر: 846137 -




SQL (زبان پرس و جوی ساختاریافته) یک زبان برنامه نویسی است که امکان مدیریت و دستکاری داده ها را در سیستم های مدیریت پایگاه داده رابطه ای فراهم می کند. این روزها، همه شرکت های کوچک و بزرگ برای ذخیره سازی و تبدیل داده های خود به SQL متکی هستند. در اکثر سناریوها، یادگیری تنها دستورات اولیه ما را قادر می سازد تا پایگاه داده های خود را به طور موثر مدیریت کنیم.

خوراکی های کلیدی

دستورات SQL به پنج دسته مانند DDL، DML، DCL، DQL و TCL دسته بندی می شوند که هر کدام نیازهای پایگاه داده خاصی را برآورده می کنند.

دستورات SQL از اجازه دادن به پرس و جوهای اساسی مانند CREATE و UPDATE تا ترکیب توابع پیچیده مانند توابع انبوه و پیوستن به جداول برای ایجاد پرس و جوهای پیچیده را شامل می شود.

انتخاب گویش SQL مناسب به الزامات برنامه، بودجه و قابلیت های یکپارچه سازی بستگی دارد.

توسعه دهندگان می توانند با ادغام SQL با زبان های برنامه نویسی و ابزارهای هوش تجاری (BI) برای مدیریت داده ها و استخراج بینش معنادار از آن، برنامه های مبتنی بر داده بسازند.

روش‌های احراز هویت امن، کنترل دسترسی و رمزگذاری، پایگاه داده را از دسترسی غیرمجاز محافظت می‌کنند.

دستورات SQL چیست؟

SQL یک فهرست جامع دستورات sql را برای برقراری ارتباط با پایگاه های داده ارائه می دهد. ما می توانیم SQL را به عنوان یک مجموعه دستورالعمل ارسال شده به پایگاه داده در نظر بگیریم. این دستورالعمل ها که به دستورات زبان SQL معروف هستند، ما را قادر می سازند تا طیف وسیعی از اقدامات را انجام دهیم. به عنوان مثال، ما می توانیم از دستورات SQL برای ایجاد ساختار پایگاه داده، ایجاد یک جدول یا جدول موقت، پر کردن پایگاه داده، بازیابی اطلاعات خاص، تغییر داده ها، و کنترل دسترسی و امنیت استفاده کنیم.

دستورات اولیه SQL

در اینجا یک نمای کلی از دستورات اولیه SQL است که در زیر در مقاله توضیح داده شده است. مبتدیان می توانند این دستورات را برای درک اصول اولیه SQL یاد بگیرند.

    انتخاب کنید

    درج کنید

    به روز رسانی

    حذف کنید

بیانیه SQL

این یک پرس و جو ساختار یافته است که برای برقراری ارتباط با پایگاه داده استفاده می شود. از یک نحو خاص پیروی می کند که شامل بندها، کلمات کلیدی و شرایط برای نوشتن یک پرس و جو است. کاربران می توانند عبارات SQL را بر اساس نیازهای پایگاه داده خاص خود و عملیاتی که انجام می دهند سفارشی کنند.

ساختار بیانیه SQL پایه

 SELECT column_name ; FROM table_name WHERE condition ;

انواع دستورات SQL

در زیر انواع مختلف دستورات SQL آورده شده است:

انواع دستورات SQL

دستورات DDL (زبان تعریف داده).

DDL از دستورات در سطح پایگاه داده برای تغییر ساختار پایگاه داده تشکیل شده است. این دستورات DDL جداول پایگاه داده، نماها، نمایه ها و طرحواره های پایگاه داده را تعریف، اصلاح و حذف می کنند. علاوه بر این، دستورات DDL به صورت خودکار متعهد می شوند، که تضمین می کند که تغییرات به طور دائم در پایگاه داده ذخیره می شوند و نمی توانند به تغییر قبلی برگردند.

ایجاد کنید

این دستور آبجکت های پایگاه داده جدیدی ایجاد می کند. یک شی می تواند یک جدول یا یک پایگاه داده مانند زیر باشد.

 CREATE DATABASE database_db ;

این دستور SQL یک پایگاه داده جدید database_db ایجاد می کند.

 CREATE TABLE PERSONS ( id INT , name VARCHAR ( 255 ) ) ;

این دستور SQL یک جدول جدید PERSONS با شناسه و نام ستون ایجاد می کند.

تغییر دهید

این دستور ساختار یک شی موجود را با گفت ن، تغییر یا حذف ستون های جدول، تغییر انواع داده ها یا تغییر نام اشیا تغییر می دهد.

 ALTER TABLE PERSONS ADD COLUMN address VARCHAR ( 255 ) ;

این دستور SQL یک ستون جدید ADDRESS اضافه می کند به افراد جدول

رها کردن

دستور DROP اشیاء پایگاه داده موجود را حذف می کند.

 DROP DATABASE database_db ;

این دستور SQL کل پایگاه داده database_db را حذف می کند.

 DROP TABLE PERSONS ;

این دستور delete جدول موجود PERSONS را از پایگاه داده حذف می کند.

کوتاه کردن

این کار تمام داده های موجود را از یک جدول حذف می کند و در عین حال ساختار اصلی جدول را حفظ می کند. TRUNCATE معمولاً سریعتر از DELETE است زیرا حذف ردیف های جداگانه را ثبت نمی کند.

 TRUNCATE TABLE PERSONS ;

دستور SQL بالا تمام رکوردها/ردیف ها را از PERSONS حذف می کند جدول

نکته: در صورتی که جدول حاوی کلیدهای اصلی را که در جداول دیگر به عنوان کلیدهای خارجی استفاده می شود، کوتاه کنیم، کلمه کلیدی CASCADE لازم است. تمام جداول وابسته را کوتاه می کند.

این دستور SQL یک نظر به تعریف یک شی پایگاه داده خاص اضافه می کند که برای اهداف مستندسازی ضروری است.

 COMMENT ON TABLE PERSONS IS 'Table contains persons information' ;

دستورات DML (زبان دستکاری داده ها).

DML از دستورات اصلی SQL برای دستکاری داده های موجود در پایگاه داده تشکیل شده است. به عنوان مثال، این فهرست دستورات SQL شامل دستوراتی برای درج، تغییر و حذف داده ها است. دستورات DML به صورت خودکار commit نمی شوند، این اطمینان را می دهد که تغییرات به طور دائم در پایگاه داده ذخیره نمی شوند و می توانیم به حالت قبلی برگردیم. به عنوان مثال، ما می توانیم ردیف حذف شده را با استفاده از عبارت ROLLBACK بازیابی کنیم.

درج کنید

این دستور داده های جدیدی را به جدول اضافه می کند. دستور زیر یک ردیف جدید به جدول PERSONS اضافه می کند.

 INSERT INTO PERSONS ( id , name ) VALUES ( 10 , 'Alice' ) ;

به روز رسانی

این داده های موجود را در یک جدول به روز می کند. همانطور که در زیر نشان داده شده است، دستور UPDATE نام PERSONS را با شناسه 10 به روز می کند.

 UPDATE PERSONS SET name = 'Alice' WHERE id = 10 ;

حذف کنید

این داده های موجود را بر اساس برخی شرایط حذف می کند.

 DELETE FROM PERSONS WHERE id = 5 ;

دستور delete شخص با شناسه 5 را از جدول PERSONS حذف می کند.

دستورات DQL (زبان پرس و جو داده ها).

دستور DQL زیرمجموعه ای از دستورات SQL است که به طور خاص برای پرس و جو و بازیابی داده ها از پایگاه داده طراحی شده است. دستور DQL (SELECT) وظایف خاصی را بر روی داده های موجود در طرحواره انجام می دهد و روابط طرحواره را بر اساس پرس و جو ارسال شده به آن استخراج می کند. از بندها، توابع و کلمات کلیدی مختلفی برای فیلتر کردن و دستکاری داده ها استفاده می کند و در نتیجه عملکرد آن را افزایش می دهد.

SELECT (بازیابی داده ها)

این دستور ستون مشخص شده (نام) را از جدول بازیابی می کند:

 SELECT name FROM PERSONS ;

برای بازیابی داده ها از تمام ستون ها، می توانید از SELECT * (ستاره) استفاده کنید:

 SELECT * FROM PERSONS ;

با این حال، استفاده از * معمولاً توصیه نمی‌شود، زیرا با گنجاندن تمام ستون‌ها، حتی ستون‌هایی که مورد نیاز نیستند، مقدار داده‌های منتقل شده را افزایش می‌دهد. این می تواند بر عملکرد پرس و جو تأثیر بگذارد. در عوض، بهتر است به صراحت ستون های مورد نیاز خود را فهرست کنید:

 SELECT id , name , email FROM PERSONS ;

دستور SELECT معمولاً با عبارت‌ها و توابع دیگری مانند DISTINCT، AVG()، WHERE، ORDER BY، GROUP BY و HAVING برای استخراج داده‌ها و تجمیع، فیلتر، مرتب‌سازی یا گروه‌بندی آن‌ها برای برگرداندن یک یا چند ستون استفاده می‌شود.

متمایز

 SELECT DISTINCT name FROM PERSONS ;

این دستور سطرهای تکراری یا مقادیر متعدد را نادیده می‌گیرد و فقط مقادیر منحصربه‌فرد را از ستون مشخص شده، مانند ستون نام جدول PERSONS، برمی‌گرداند.

کجا

 SELECT column_name ( s ) FROM table_name WHERE column_name operator value ;

عبارت WHERE داده ها را بر اساس یک شرایط مشخص فیلتر می کند، مانند WHERE name = 'Alice' .

و/یا

 SELECT column_name ( s ) FROM table_name WHERE column_1 = value_1 AND column_2 = value_2 ;

این به ما امکان می دهد چندین شرط را با استفاده از عملگرهای منطقی ترکیب کنیم.

مانند

 SELECT column_name ( s ) FROM table_name WHERE column_name LIKE pattern ;

می‌توانیم از کاراکترهای wildcard (% برای هر رشته، _ برای یک کاراکتر) برای انجام جستجوی الگو با عملگر LIKE استفاده کنیم.

LIMIT

 SELECT column_name ( s ) FROM table_name LIMIT number ;

این بند تعداد ردیف های برگشتی را محدود می کند.

سفارش توسط

 SELECT column_name FROM table_name ORDER BY column_name ASC | DESC ;

این بند نتایج را بر اساس ستون جدول مشخص شده به ترتیب صعودی (ASC) یا نزولی (DESC) مرتب می کند.

گروه توسط

 SELECT column_name , COUNT ( * ) FROM table_name GROUP BY column_name ;

این بند اغلب با توابع جمعی مانند COUNT() برای گروه بندی ردیف ها بر اساس مقادیر در ستون مشخص شده استفاده می شود.

داشتن

 SELECT column_name , COUNT ( * ) FROM table_name GROUP BY column_name HAVING COUNT ( * ) > value ;

این بند با GROUP BY برای فیلتر کردن نتایج گروه بندی شده استفاده می شود.

پیوستن داخلی

 SELECT column_name ( s ) FROM table_1 JOIN table_2 ON table_1 . column_name = table_2 . column_name ;

این بند سطرهایی از چندین جدول را که در آن شرط join درست است ترکیب می کند.

عضویت خارجی

 SELECT column_name ( s ) FROM table_1 LEFT JOIN table_2 ON table_1 . column_name = table_2 . column_name ;

این بند داده ها را از دو یا چند جدول بازیابی می کند. در اینجا، تمام سطرهای جدول_1 و سطرهای مطابق با جدول_2 را با هم ترکیب می کند. اگر در جدول_2 مطابقتی وجود نداشته باشد، از مقادیر NULL استفاده می کند.

AS

 SELECT column_name AS 'Alias' FROM table_name ;

این کلمه کلیدی نتایج را با نام ستون موقت نمایش می دهد.

با

 WITH temporary_name AS ( SELECT FROM table_name ) SELECT FROM temporary_name WHERE column_name operator value ;

این بند یک مجموعه نتایج موقت را تعریف می کند که می تواند در پرس و جو ارجاع داده شود.

توابع جمع

همچنین می‌توانیم از دستورات SELECT برای استخراج و جمع‌آوری داده‌ها از پایگاه داده با استفاده از توابع داخلی مانند AVG() ، SUM() ، COUNT() و غیره استفاده کنیم.

AVG()

این تابع عدد متوسط ​​را از ستون انتخابی در دستور SQL بازیابی می کند. در اینجا، AVG() مقدار میانگین ستون علائم را از جدول دانشجو محاسبه می کند.

 SELECT AVG ( MARKS ) as AVERAGE_SCORE from STUDENT ;

SUM()

این تابع مجموع اعداد را از ستون انتخاب شده در دستور SQL بازیابی می کند. در اینجا SUM() مقدار میانگین ستون نشانه ها را از جدول دانشجو محاسبه می کند.

 SELECT SUM ( MARKS ) as TOTAL_MARKS from STUDENT ;

SQL Query Logical Ordering

بر اساس دستورات SQL فوق، یک ترتیب منطقی وجود دارد که هر زمان که جدول یا مجموعه ای از جداول بازیابی می شود، رعایت می شود. تصویر زیر نشان می دهد که چگونه از 2 جدول برای بازیابی داده های رابطه ای بر اساس چندین دستور SQL استفاده می شود.

SQL Query Logical Order

دستورات DCL (زبان کنترل داده ها).

دستوراتی که حقوق و مجوزهای کاربران را در پایگاه داده مدیریت می کنند متعلق به DCL است. دستورات DCL با اعطای یا لغو امتیازات به کاربران، دسترسی به اشیاء پایگاه داده را کنترل می کند و همچنین سطح دسترسی کاربران به بخش های مختلف پایگاه داده را کنترل می کند.

کمک مالی

این دستور برای اعطای امتیازات خاص به اشیاء پایگاه داده به کاربران استفاده می شود.

 GRANT SELECT , INSERT ON PERSONS TO admin ;

این به مدیر اجازه می دهد تا داده ها را در جدول PERSONS انتخاب و درج کند .

لغو

این دستور برای لغو امتیازات اختصاص داده شده از کاربران استفاده می شود.

 REVOKE INSERT ON PERSONS FROM admin ;

این اجازه درج در PERSONS را لغو می کند جدول از ادمین

دستورات TCL (زبان کنترل تراکنش).

TCL با اطمینان از اینکه تمام عبارات داخل یک تراکنش با موفقیت انجام می شوند یا هیچ یک از آنها اعمال نمی شوند، سازگاری داده ها را حفظ می کند. ما از دستورات TCL مانند "COMMIT" و "ROLLBACK" در ترکیب با دستورات DML (زبان دستکاری داده ها) استفاده می کنیم.

متعهد شوید

این دستور تمام تغییرات ایجاد شده در یک تراکنش را به طور دائم ذخیره می کند.

 BEGIN TRANSACTION ; UPDATE accounts SET balance = balance - 100 WHERE account_id = 123 ; UPDATE accounts SET balance = balance + 100 WHERE account_id = 456 ; COMMIT ;

بیانیه commit هر دو حساب را با هم به روز می کند و اطمینان حاصل می کند که داده ها سازگار هستند. این تضمین می کند که داده های تراکنش بدون هیچ گونه مغایرتی ارسال می شوند.

بازگشت به عقب

این دستور تمام تغییرات ایجاد شده در یک تراکنش از آخرین COMMIT یا ROLLBACK را به عقب برمی گرداند.

 BEGIN TRANSACTION ; DELETE FROM accounts WHERE account_id = 555 ; ROLLBACK ;

دستور بالا حذف را برمی گرداند و حساب ها را بازیابی می کند.

SAVEPOINT

این دستور یک نقطه تراکنش را تعریف می کند که وضعیت جدول می تواند در هر زمان معین به آن بازگردد.

 BEGIN TRANSACTION ; UPDATE accounts SET balance = balance - 100 WHERE account_id = 123 ; SAVEPOINT after_insert ; UPDATE accounts SET balance = balance + 50 WHERE account_id = 123 ; ROLLBACK TO after_insert ;

پس از استفاده از SAVEPOINT، به‌روزرسانی اضافه موجودی در حساب‌ها برمی‌گردد.

عبارات شرطی

این عبارات منطق را به کوئری ها اضافه می کنند. برای نوشتن عبارات شرطی می توان از دستورات IF، CASE و COALESCE استفاده کرد.

اگر

این دستور یک دستور SQL نیست اما می‌تواند در گویش‌های خاص SQL مانند MySQL، PostgreSQL و غیره استفاده شود. دستورات SQL را بر اساس یک شرط خاص اجرا می‌کند:


IF ( Score > 50 ) THEN SELECT 'Pass' AS ExamStatus ; ELSE SELECT 'Fail' AS ExamStatus ; END IF ;

IF Score > 50 THEN result : = 'Pass' ; ELSE result : = 'Fail' ; END IF ;

نکته مهم: دستورات IF را نمی توان در پرس و جوهای معمولی SQL استفاده کرد. برای منطق شرطی در پرس و جوهای استاندارد SQL، به جای آن از عبارت CASE استفاده کنید. CASE توسط همه پایگاه‌های داده SQL پشتیبانی می‌شود و به عنوان روشی استاندارد برای رسیدگی به منطق پرس و جوی شرطی در نظر گرفته می‌شود.

مورد

این دستور مانند یک عبارت if-else در زبان های برنامه نویسی عمل می کند:

 SELECT StudentID , CASE
WHEN Score > 50 THEN 'Pass' ELSE 'Fail' END AS ExamStatus
FROM STUDENTS ;

ادغام

این تابع SQL مقادیر NULL را مدیریت می کند و اولین مقدار غیر NULL را برمی گرداند. به عنوان مثال، اگر فهرستی از عبارات را با یک مقدار غیر NULL به آن بدهم، فقط آن مقدار را برمی گرداند. در کد زیر، اگر ستون Score مقدار NULL داشته باشد، این تابع آن را با صفر جایگزین می کند.

 SELECT StudentID , COALESCE ( Score1 , 0 ) AS FinalScore FROM STUDENTS ;

بهترین شیوه های امنیتی

تمرین کنید مزیت
کنترل دسترسی مبتنی بر نقش نقش های کاربر را به طور مسئولانه بر اساس نیازهای دسترسی کاربر اختصاص دهید
رمزگذاری داده ها داده های حساس مانند رمزهای عبور و جزئیات کارت بانکی را رمزگذاری کنید
روش های احراز هویت امن از OAuth 2.0 برای به دست آوردن امنیت در برابر دسترسی غیرمجاز استفاده کنید

گویش های SQL

در زیر گویش‌های اولیه SQL و کاربردهای آن‌ها که بر اساس آن‌ها مقایسه شده‌اند و برای اهداف توسعه سیستم‌های پایگاه داده مختلف استفاده می‌شوند، آمده است.

گویش ویژگی ها
PL/pgSQL (PostgreSQL) – برای ویژگی های پیشرفته ای مانند پشتیبانی JSON/JSONB، عملکردهای پنجره و CTE شناخته شده است.
- پشتیبانی از جستجوی متن کامل
- منبع باز با پشتیبانی گسترده جامعه.
- پشته های مختلف را پشتیبانی می کند و عمدتاً در سیستم هایی استفاده می شود که به پرس و جوهای پیچیده با تجزیه و تحلیل با عملکرد بالا نیاز دارند، مانند سیستم های مالی و انبار داده ها.
MySQL – منبع باز و به طور گسترده برای توسعه وب استفاده می شود.
- ادغام آسان با فناوری های وب (PHP، Python و غیره)
- پشتیبانی محدود از ویژگی های تحلیلی پیشرفته.
– بیشتر در پلتفرم های تجارت الکترونیک استفاده می شود.
TSQL (SQL Server) - یکپارچگی عالی با محصولات مایکروسافت مانند Azure.
- بیشتر در برنامه های کاربردی در مقیاس بزرگ استفاده می شود.
- گزینه های تنظیم پیشرفته را ارائه می دهد.
- می تواند گزینه ای پرهزینه باشد که عمدتاً در سیستم های ERP استفاده می شود.
PL/SQL (Oracle) – طراحی شده برای کاربردهای با حجم بالا.
– بازیابی عالی و مدیریت همزمان.
- هزینه بالا و بهترین عملکرد را با اکوسیستم اوراکل دارد.
- در صنایعی که نیاز به دسترسی و مقیاس پذیری بالا دارند استفاده می شود.

یکپارچه سازی SQL

SQL نقش مهمی در تعامل با پایگاه داده های رابطه ای ایفا می کند و ادغام آن با زبان های برنامه نویسی مانند Python و JAVA و ابزارهای هوش تجاری (BI) توانایی ساخت برنامه های قدرتمند و مبتنی بر داده را افزایش می دهد.

فرض کنید یک جدول مشتری در پایگاه داده وجود دارد و یک برنامه کاربردی پایتون در حال توسعه است که داده های مشتری را بازیابی می کند و از آن برای ایجاد بینش مشتری استفاده می کند. در اینجا نحوه ادغام پرس و جوهای SQL با استفاده از کتابخانه های SQLite3 یا SQLalchemy در پایتون آمده است.

 import sqlite3

conn = sqlite3 . connect ( 'database.db' ) cursor = conn . cursor ( )
cursor . execute ( "SELECT * FROM CUSTOMERS" )


rows = cursor . fetchall ( )

نتیجه گیری

در مجموع، دستورات SQL به ما در مدیریت موثر پایگاه داده کمک می کند. کاربران می توانند از دسته ها و گویش های متعدد آن برای اتصال به پایگاه داده، انجام عملیات و اطمینان از یکپارچگی و امنیت داده های خود انتخاب کنند.

سوالات متداول در مورد دستورات SQL

چرا باید از دستورات SQL استفاده کنیم؟

دستورات SQL برای برقراری ارتباط با پایگاه داده های رابطه ای برای ذخیره، بازیابی و دستکاری داده ها استفاده می شود.

آیا می توانم از دستورات SQL در برنامه های خود استفاده کنم؟

ما می توانیم SQL را با استفاده از کتابخانه های داخلی مختلف مانند SQLalchemy ادغام کنیم.

تفاوت دستور "DELETE" با "TRUNCATE" در SQL چیست؟

دستور truncate تمام ردیف های جدول را حذف می کند در حالی که ساختار جدول را دست نخورده نگه می دارد. با این حال، دستور delete داده ها را بر اساس شرایط یا منطق کاربر ارائه شده در پرس و جو، از جدول حذف می کند. علاوه بر این، اشیاء حذف شده (فرمان DML) می توانند به عقب برگردند در حالی که ردیف های کوتاه شده (فرمان DDL) به طور دائم حذف می شوند.

خبرکاو

ارسال نظر




تبليغات ايهنا تبليغات ايهنا

تمامی حقوق مادی و معنوی این سایت متعلق به خبرکاو است و استفاده از مطالب با ذکر منبع بلامانع است