آموزش SQL مقدماتی

سلام . این آموزش توسط دوست خوبم جناب متالیک تنظیم شده است .برای استفاده از پایگاه ها داده و جدول در php، شما نیاز دارید تا با دستورات sql که به آن ها query گفته می شود، آشنا شوید، در بحث sql مقدماتی، شما نیاز دارید تا با دستورات ابتدایی زیر آشنا شوید:

INSERT INTO: قرار دادن ردیف داده در جدول
DELETE FROM: حذف ردیف داده از جدول
UPDATE: ویرایش ردیف داده
SELECT: انتخاب ردیف داده و یا اجرای دستورات ویژه

1. قراردادن ردیف داده در جدول:
- فرم کلی دستور:

PgSQL
1
INSERT INTO table_name (column list) VALUES (column values);

مثال 1: برای قراردادن مقادیر در تمامی فیلدهای یک جدول:

PgSQL
1
INSERT INTO customer VALUES (1,'Williams','Lucy','E',3,'272 Station St','Carlton North','VIC','3054',12,'(613)83008460','2002-07-02');

یعنی در جدولی با نام customer در فیلد اول مقدار عددی 1، در فیلد دوم مقدار رشته ای Williams و … قرار داده می شود.
مثال 2: برای خالی گذاشتن یک فیلد: از NULL استفاده می کنیم.

PgSQL
1
INSERT INTO customer VALUES (1,'Williams','Lucy',NULL,3,NULL,NULL,NULL,NULL,12,NULL,NULL);

توجه کنید نباید نوع فیلد از نوع NOT NULL باشد.
مثال 3: قراردادن چند ردیف داده با یک دستور:

PgSQL
1
INSERT INTO customer VALUES (1,'Williams','Lucy','E',3,'272 Station St','Carlton North','VIC','3054',12,'(613)83008460','2002-07-02'), (2,'Williams','Selina','J',4,'12 Hotham St','Collingwood','VIC','3066',12,'(613)99255432','1980-06-03');

مقادیر هر ردیف باید در پرانتز قرار داده شوند و با کاما از هم جدا شوند. در این مثال سه ردیف داده با یک دستور وارد یک جدول می شوند.
مثال 4: روش دیگری برای قراردادن داده در یک ردیف جدول:

PgSQL
1
INSERT INTO customer SET cust_id = 1, surname = 'Williams', firstname = 'Lucy', initial='E', title_id=3, address='272 Station St', city='Carlton North', state='VIC', zipcode='3054', country_id=12, phone='(613)83008460', birth_date='2002-07-10';

به جای استفاده از دستور values از دستور set استفاده شده است. دیگر پرانتز نیازی نیست. دقت کنید مقدار هر فیلد با عملگر = تعیین شده اند و با کاما از هم جدا شده اند.
مثال 5: قرار دادن داده در فیلدهای خاصی از یک جدول:

PgSQL
1
INSERT INTO customer (cust_id, surname, city) VALUES (1, 'Williams','North Carlton');

باید بعد از مشخص کردن نام جدول، داخل پرانتز نام فیلدها را بیاوریم و با کاما از هم جدا کنیم سپس با دستور values مقادیر را به ترتیب وارد کنیم. اگر در یک فیلد از نوع timestamp و یا فیلدهای مشابه تاریخ و ساعت از NULL استفاده کنیم مقدار تاریخ یا ساعت حال حاضر در آن فیلد ذخیره می شود.
2. حذف ردیف داده از جدول:
- فرم کلی دستور:

PgSQL
1
DELETE FROM table_name [WHERE some_condition_is_true] [LIMIT rows]

مثال :

PgSQL
1
DELETE FROM customer WHERE surname = 'Smith

یعنی داده هایی از جدول customer را که مقدار فیلد surname آن ها Smith می باشد را حذف می کند.
3. ویرایش ردیف داده:
- فرم کلی دستور:

PgSQL
1
UPDATE table_name SET column1='new value', column2='new value2' [WHERE some_condition_is_true]

مثال:

PgSQL
1
2
UPDATE customer SET surname = 'Smith' WHERE cust_id = 7;
UPDATE customer SET zipcode = '3001' WHERE city = 'Melbourne

خط اول: ردیف داده هایی از جدول customer را که مقدار فیلد cust_id آن ها برابر 7 می باشد، مقدار فیلد surname را به Smith تغییر می دهد. خط دوم هم مشابه خط اول می باشد.
4. انتخاب داده از جدول:
- فرم کلی دستور:

PgSQL
1
SELECT expressions_and_columns FROM table_name [WHERE some_condition_is_true] [ORDER BY some_column [ASC | DESC]] [LIMIT offset, rows]

مثال1: انتخاب همه ی ردیف های دو فیلد از یک جدول:

PgSQL
1
SELECT surname, firstname FROM customer;

مثال 2: انتخاب تمامی فیلدها از یک جدول: از ستاره * استفاده می کنیم.

PgSQL
1
SELECT * FROM region;

مثال 3: انتخاب تمامی فیلدهایی که دارای شرط خاصی می باشند.

PgSQL
1
SELECT * FROM region WHERE region_id <= 3;

بعد از دستور where می توانیم از عملگرهای منطقی استفاده کنیم. مانند مثال بالا.
مثال 4: انتخاب یک فیلد و مقدار های آن که دارای شرط خاصی می باشد:

PgSQL
1
SELECT region_name FROM region WHERE region_id <= 3;

مثال 5: انتخاب تمامی فیلدها و مقدارهای آن که دارای چند شرط می باشند: از دستور and استفاده می کنیم:

PgSQL
1
SELECT * FROM customer WHERE surname='Marzalla' AND firstname='Dimitria';

مثال 6: انتخاب فیلدی خاص و مقدارش در حالتی که یکی از دو شرط برقرار باشد: از or استفاده می کنیم:

PgSQL
1
SELECT cust_id FROM customer WHERE (surname='Marzalla' AND firstname LIKE 'M%') OR birth_date='1980-07-14';

توجه کنید از LIKE هنگامی استفاده می کنیم که بخواهیم مقداری شبیه به آن باشد و برای بقیه از % استفاده می کنیم.
1-4. سورت کردن مقادیر: با استفاده از ORDER BY انجام می شود.
مثال 1: سورت کردن بر مبنای یک فیلد:

PgSQL
1
SELECT surname, firstname FROM customer WHERE city = 'Portsea' and firstname = 'James' ORDER by surname;

مثال 2: سورت کردن بر مبنای چند فیلد: فیلد ها را با کاما از هم جدا می کنیم.

PgSQL
1
SELECT surname, firstname, initial FROM customer WHERE city = 'Coonawarra' OR city = 'Longwood' ORDER BY surname, firstname, initial;

مثال 3: سورت صعودی (ASC) و نزولی (DEC) :

PgSQL
1
SELECT * FROM customer WHERE city='Melbourne' ORDER BY surname DESC;

یعنی تمامی فیلدهایی که در جدول customer وجود دارند و مقدار فیلد city آنها Melbourne هستند به صورت نزولی بر مبنای surname انتخاب می شوند.
2-4. محدود کردن تعداد ردیف های انتخاب شده: از دستور LIMIT استفاده می کنیم:
مثال 1: انتخاب فقط 5 ردیف از یک جدول:

PgSQL
1
SELECT * FROM customer LIMIT 5;

مثال 2: انتخاب فقط 5 ردیف و شروع از یک ردیف خاص:

PgSQL
1
SELECT * FROM customer LIMIT 100,5;

یعنی ردیف های 100 ام، 101 ام و … و 104 ام انتخاب می شوند.
نکته 1: ردیف اول شماره ی 0 دارد:

PgSQL
1
SELECT * FROM customer LIMIT 0,5;

یعنی ردیف اول، دوم، سوم، چهارم و پنجم انتخاب می شوند.

PgSQL
1
SELECT * FROM customer LIMIT 1,5;

یعنی ردیف دوم، سوم، چهارم، پنجم و ششم انتخاب می شود.
مثال 3: برای انتخاب تمام ردیف ها بعد از یک ردیف خاص از -1 استفاده می شود:

PgSQL
1
SELECT * FROM customer LIMIT 600,-1;

یعنی اگر جدول دارای 650 ردیف باشد ردیف های 601 به بعد انتخاب می شوند.
امیدورایم این آموزش مورد توجه شما دوستان قرار گیرد . برای طرح هر سئوال له انجمن های سایت مراجعه فرمائید.

درباره amin amanpour