مبانی SQL

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

 

انواع داده های SQL

SQL همانند اکثر زبان ها دارای انواع داده ای است که در جدول زیر به مهمترین آنها اشاره شده است :

نوع داده توضیح مثال
int داده های صحیح -3, 1, 12, 57
char(n) رشته ای با طول ثابت که در آن n نهایت طول رشته است ‘hello’, ‘goodbye’
varchar(n) رشته ای با طول متغیر که در آن n نهایت طول رشته است ‘hello’, ‘goodbye’
datetime برای ذخیره ساعت و روز Jan 1, 2010 3:00PM
date برای ذخیره فقط روز Jan 1, 2010
time برای ذخیره فقط ساعت 3:00PM
money برای ذخیره نوع پول 123.45

به این نکته توجه کنید که char(n) و varchar(n) به نظر می رسد شبیه هم باشند. char(n) ثابت است و سایز آن یکبار توسط شما مشخص می شود و و حافظه اشغال شده توسط آن، بستگی به همین سایز دارد. اگر سایزی که شما انتخاب کرده اید 100 باشد و رشته ای که ذخیره می کنید دارای 3 کاراکتر باشد در اینصورت char(n) باز هم مقدار حافظه ای معادل 100 کاراکتر را اشغال می کند. varchar(n) کمی متفاوت است و فقط مقدار حافظه ای را که لازم دارد اشغال می کند. به این نکته هم توجه کنید که کاراکترهای رشته در داخل کوتیشن محصور هستند. برای مشاهده لیست کامل داده های SQL به لینک زیر مراجعه کنید :

 

دستورات SQL

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

دستور نحوه استفاده کاربرد
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 برای استخراج رکوردهایی که در شرط خاصی صدق می کنند کاربرد دارد.

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

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

لطفا اگر نظر، پیشنهاد و یا انتقادی در باره مطلب بالا دارید در قسمت زیر و اگر سوالی دارید در بخش پرسش و پاسخ مطرح بفرمایید.

  1. مهران پاسخ دادن

    سلام آقای ابراهیمی ، خواستم از زحماتتون و همتتون نهایت تشکر را داشته باشم . امیدوارم که ادامه داشته باشد .

    • یونس ابراهیمی پاسخ دادن

      ممنون دوست عزیز از اینکه نظر دادین…حتما ادامه خواهد داشت…فقط از شما و دوستای عزیز دیگه خواهش می کنم اگه کدی دارین به ایمیلم (younes_ebrahimi_1391@yahoo.com) ارسال کنید تا واسه بقیه به اشتراک بذارم…