فصل نهم :
Insert , Update & Delete در SQLite
INSERT یا درج در SQLite
خوب حالا وقت اون رسیده که روی دیتای موجود در جداول کارکنیم .
اول از همه درج یک رکورد (سطر یا Row واژه صحیح تریست در دیتابیس) برای درج از عبارت INSET INTO استفاده میکینم .
که الگوی کلی آن بشکل ذیل است :
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]
VALUES (value1, value2, value3,...valueN);
[(column1, column2, column3,...columnN)]
در واقع لیستی از ستون های جدول هستند که می خواهیم در آن سطری درج کنیم . اگر بخواهیم در یک عبارت INSERT تمامی سوتن ها را مقدار دهی کنیم . اجتیاجی به وارد کردن لس ستونها نیست ولیکن باید به تترتیب سون ها دقت کرد که چون SQLite بترتیب مقدار اول را را در ستون اول و مقدار دوم را در ستون دوم قرار میدهد و همنطور الی آخر.
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
در فصول قبل یک جدول به نام COMPANY ساختیم حالا می خواهیم یکسری رکورد در آن درج کنیم.
دستور ساخت جدول ، اگر جدول را نساخته ایید و یا حذف کده اید.
sqlite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
حالا درج یکسری سطر در آن :
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (1, 'Paul', 32, 'California', 20000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (2, 'Allen', 25, 'Texas', 15000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (5, 'David', 27, 'Texas', 85000.00 );
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
VALUES (6, 'Kim', 22, 'South-Hall', 45000.00 );
همانطور که در بالا ذکر شد اگر بخوهیم همه ستون ها را مقدار دهی کنیم احتیاجی به ذکر نام آنها نیست مثل
دستور زیر :
INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00 );
SQLite با توجه به ترتیب ستون های جدول بترتیب 7 را در ستون ID می گذارد و James را در ستون Name و همینطور الی آخر.
پر کردن یک جدول از رکورد های جدول دیگر
ما می توانیم رکورد های یک جدول دیگر را در جدولمان درج کنیم الگوی اینکار بشکل ذیل است :
INSERT INTO first_table_name [(column1, column2, ... columnN)]
SELECT column1, column2, ...columnN
FROM second_table_name
[WHERE condition];
Update یا بروزرسانی در SQLite
حال که رکورد هایی در جدولمان داریم هنگامی میرسد که بخواهیم مقدار یک یا چند ستون از یک سطر را تغییر بدهیم اینجاست که عبارت Update بکار ما می آید . الگوی کلی این دستور بشکل ذیل است .
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
ستونهایی که می خواهیم مقدار انها را تغییر بدهیم ذکر کرده و در جلو هرکدام مقدار جدید را ذکر میکنیم. حال سوال این ایت که کدام یک از سطر های جدول ما با این دستو بروزرسانی میشوند . جواب اینن سوال در عبارت WHERE در خط سوم عبات بالاست. که اگر در نوشن آن دقت نکنیم مقدار تمام سطر هارا تغییر داده ایم و نه یک سطر خاصی که مد نظرداریم. در رابطه با WHERE در فصل بعدی مفصلا توضیح خوهیم داد.
sqlite> UPDATE COMPANY SET ADDRESS = 'Texas' WHERE ID = 6;
عبارت بالا فیلد آدرس رکوردی را که مقدار فیلد ID آن برابر با 6 می باشد را به تگزاس تغییر خواهد داد.
مثال بعدی :
sqlite> UPDATE COMPANY SET ADDRESS = 'Texas', SALARY = 20000.00;
عبارت بالا آدرس همه رکورد های جدول رابه تگزاس و درآمد انها رابرابر با 20000 دلار میکند. چون شرطی را در عبارت WHERE مشخص نکردیم. (خیلی مواظب Update باشید !)
DELETE و یا جذف در SQLite
از این عبارت برای حذف سطر های جدول استفاده می شود الگوی ان بشکل ذیل است ؟
DELETE FROM table_name
WHERE [condition];
همانند دستور Update این عبارت هم قستتی برای مشخص کردن شرط دارد . کدام رکوردا باید حذف شوند. آنهایی که شرط موجود در WHERE را بر آورده کنند .
sqlite> DELETE FROM COMPANY WHERE ID = 7;
دستور بالا رکوردی از جدل COMPANY را که مقدار فیلد ID ان برابر با هست را حذف میکیند.
sqlite> DELETE FROM COMPANY;
معنی عبارت بالا این است که تمامی رکوردهای جدول COMPANY را حذف کن.
(خیلی خیلی مواظب Delete باشید !)
مفاهیم و موضوعات این فصل عبارتند از :
-
SQLite INSERT
-
SQLite UPDATE
-
SQLite DELETE