دستورات و عملگرهای SQL
زبان تعریف داده (DDL)
- DDL ساختار جدول را تغییر میدهد؛ مانند ایجاد جدول، حذف جدول، تغییر جدول و موارد مشابه.
- همهٔ دستورهای DDL بهصورت خودکار Commit میشوند؛ یعنی همهٔ تغییرات را بهطور دائمی در پایگاه داده ذخیره میکنند.
دستورهای زیر در DDL قرار میگیرند:
زبان تعریف داده (DDL) - CREATE
CREATE برای ایجاد یک جدول جدید در پایگاه داده استفاده میشود.
Syntax:
REATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);
Example:
CREATE TABLE EMPLOYEE(Name VARCHAR2(20), Email VARCHA
R2(100), DOB DATE);
زبان تعریف داده (DDL) - Drop
Drop برای حذف هم ساختار و هم رکوردهای ذخیرهشده در جدول استفاده میشود.
Syntax:
Example:
زبان تعریف داده (DDL) - ALTER
ALTER برای تغییر ساختار پایگاه داده استفاده میشود. این تغییر میتواند ویژگیهای یک Attribute موجود را تغییر دهد یا یک Attribute جدید اضافه کند.
Syntax:
ALTER TABLE table_name ADD column_name COLUMN-definition;
ALTER TABLE MODIFY(COLUMN DEFINITION....);
Example:
ALTER TABLE STU_DETAILS ADD(ADDRESS VARCHAR2(20));
ALTER TABLE STU_DETAILS MODIFY (NAME VARCHAR2(20));
زبان تعریف داده (DDL) - TRUNCATE
TRUNCATE برای حذف همهٔ ردیفهای جدول و آزادکردن فضای مربوط به جدول استفاده میشود.
Syntax:
TRUNCATE TABLE table_name;
Example:
زبان دستکاری داده (DML)
- دستورهای DML برای تغییر پایگاه داده استفاده میشوند و مسئول همهٔ شکلهای تغییر در پایگاه داده هستند.
- دستورهای DML بهصورت خودکار Commit نمیشوند؛ یعنی نمیتوانند همهٔ تغییرات را بهطور دائمی در پایگاه داده ذخیره کنند و میتوان آنها را Rollback کرد.
دستورهای زیر در DML قرار میگیرند:
زبان دستکاری داده - INSERT
INSERT یک پرسوجوی SQL است و برای درج داده در یک ردیف جدول استفاده میشود.
Syntax:
INSERT INTO TABLE_NAME (col1, col2, col3,.... col N)
VALUES (value1, value2, value3, .... valueN);
OR
INSERT INTO TABLE_NAME VALUES (value1, value2, value3, .... valueN);
Example:
INSERT INTO XYZ (Author, Subject) VALUES ("Sonoo", "DBMS");
زبان دستکاری داده - UPDATE
UPDATE برای بهروزرسانی یا تغییر مقدار یک ستون در جدول استفاده میشود.
Syntax:
UPDATE table_name SET [column_name1= value1,...column_n
ameN = valueN] [WHERE CONDITION]
Example:
UPDATE students
SET User_Name = 'Sonoo'
WHERE Student_Id = '3'
زبان کنترل داده (DCL)
دستورهای DCL برای اعطا و پسگرفتن اختیار از هر کاربر پایگاه داده استفاده میشوند.
دستورهای زیر در DCL قرار میگیرند:
زبان کنترل داده - Grant
GRANT برای دادن امتیازهای دسترسی به پایگاه داده به کاربر استفاده میشود.
Example:
GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOT
HER_USER;
REVOKE برای پسگرفتن مجوزها از کاربر استفاده میشود.
Example:
REVOKE SELECT, UPDATE ON MY_TABLE FROM USER1, USER2;
زبان کنترل تراکنش (TCL)
دستورهای TCL فقط میتوانند همراه با دستورهای DML مانند INSERT، DELETE و UPDATE استفاده شوند.
این عملیات بهصورت خودکار در پایگاه داده Commit میشوند؛ به همین دلیل هنگام ایجاد جدولها یا حذف آنها قابل استفاده نیستند.
دستورهای زیر در TCL قرار میگیرند:
زبان کنترل تراکنش - COMMIT
دستور Commit برای ذخیرهٔ همهٔ تراکنشها در پایگاه داده استفاده میشود.
Syntex:
Example:
DELETE FROM CUSTOMERS
WHERE AGE = 25;
COMMIT;
زبان کنترل تراکنش - Rollback
Rollback برای برگرداندن تراکنشهایی استفاده میشود که هنوز در پایگاه داده ذخیره نشدهاند.
Syntex:
Example:
DELETE FROM CUSTOMERS
WHERE AGE = 25;
ROLLBACK;
SAVEPOINT برای بازگرداندن تراکنش به یک نقطهٔ مشخص، بدون Rollback کردن کل تراکنش استفاده میشود.
Syntex:
SAVEPOINT SAVEPOINT_NA
ME;
زبان پرسوجوی داده (DQL)
DQL برای دریافت داده از پایگاه داده استفاده میشود.
فقط از یک دستور استفاده میکند:
SELECT
a. SELECT: این دستور همان عمل Projection در جبر رابطهای است. از آن برای انتخاب Attribute بر اساس شرطی که Clauseِ WHERE توصیف میکند استفاده میشود.
Syntax:
SELECT expressions FROM TABLES WHERE conditions;
Example:
SELECT emp_name FROM employee WHERE age > 20;
عملگر SQL
عملگرهای مقایسهای SQL
| عملگر | توضیح |
| + | مقدار هر دو عملوند (Operand) را با هم جمع میکند. |
| - | برای کمکردن عملوند سمت راست از عملوند سمت چپ استفاده میشود. |
| * | برای ضرب مقدار هر دو عملوند استفاده میشود. |
| / | برای تقسیم عملوند سمت چپ بر عملوند سمت راست استفاده میشود. |
| % | برای تقسیم عملوند سمت چپ بر عملوند سمت راست استفاده میشود و باقیمانده را برمیگرداند. |
عملگرهای حسابی SQL
| عملگر | توضیح |
| = | بررسی میکند که مقدار دو عملوند برابر است یا نه؛ اگر برابر باشند، شرط True میشود. |
| != | بررسی میکند که مقدار دو عملوند برابر است یا نه؛ اگر برابر نباشند، شرط True میشود. |
| <> | بررسی میکند که مقدار دو عملوند برابر است یا نه؛ اگر برابر نباشند، شرط True میشود. |
| > | بررسی میکند آیا مقدار عملوند چپ از مقدار عملوند راست بزرگتر است؛ اگر بله، شرط True میشود. |
| < | بررسی میکند آیا مقدار عملوند چپ از مقدار عملوند راست کوچکتر است؛ اگر بله، شرط True میشود. |
| >= | بررسی میکند آیا مقدار عملوند چپ بزرگتر یا مساوی عملوند راست است؛ اگر بله، شرط True میشود. |
عملگرهای حسابی SQL
| عملگر | توضیح |
|---|
| <= | بررسی میکند آیا مقدار عملوند چپ کوچکتر یا مساوی عملوند راست است؛ اگر بله، شرط True میشود. |
| !< | بررسی میکند آیا مقدار عملوند چپ از عملوند راست کوچکتر نیست؛ اگر بله، شرط True میشود. |
| !> | بررسی میکند آیا مقدار عملوند چپ از عملوند راست بزرگتر نیست؛ اگر بله، شرط True میشود. |
عملگرهای منطقی SQL
| عملگر | توضیح |
| All | یک مقدار را با همهٔ مقادیر یک مجموعهٔ مقدار دیگر مقایسه میکند. |
| AND | امکان وجود چند شرط در یک دستور SQL را فراهم میکند. |
| ANY | مقادیر موجود در فهرست را بر اساس شرط مقایسه میکند. |
| Between | برای جستوجوی مقادیری استفاده میشود که درون یک مجموعهٔ مقدار قرار دارند. |
| IN | یک مقدار را با مقدار مشخصشده در فهرست مقایسه میکند. |
| NOT | معنای هر عملگر منطقی را معکوس میکند. |
| OR | چند شرط را در دستورات SQL ترکیب میکند. |
| EXIST | برای جستوجوی وجود یک ردیف در جدول مشخصشده استفاده میشود. |
| LIKE | یک مقدار را با مقادیر مشابه با استفاده از عملگر Wildcard مقایسه میکند. |
Example
SQL> CREATE TABLE EMPLOYEE (
EMP_ID INT NOT NULL,
EMP_NAME VARCHAR (25) NOT NULL,
PHONE_NO INT NOT NULL,
ADDRESS CHAR (30),
PRIMARY KEY (ID)
);
DESC EMPLOYEE;
DELETE FROM table_name WHERE condition
DROP TABLE "table_name";
SELECT * FROM table_name;
INSERT INTO TABLE_NAME VALUES (value1, value2, value 3, .... Value N);
INSERT INTO TABLE_NAME[(col1, col2, col3,.... col N)] VALUES (value1, value2, valu
e 3, .... Value N);
UPDATE table_name SET column_name = value WHERE condition;
Example
UPDATE table_name SET column_name = value1, column_name2 = value
WHERE condition;
DELETE FROM table_name WHERE some_condition;