ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

دستور INSERT TABLE ساخت جدول

 
Post new topic   Reply to topic    ParsX.com Forum Index -> اس . كيو . ال SQL
View previous topic :: View next topic  
Author Message
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Sun Feb 20, 2005 6:51 pm    Post subject: دستور INSERT TABLE ساخت جدول Reply with quote

INSERT TABLE
اين دستور جزو دستورات DML است
اگر فرض كنيم كه جدول خود را با دستور CREATE TABLE درست كرده ايم . با استفاده از دستور INSERT ميتوانيم ان جدول را با داده ها پر كنيم .
نكته حائز اهميت و سوال برانگيز اين بخش انستكه دستورات SQL خاصيت CASE SENSITIVE را ندارند . اما هنگامي كه با استفاده از دستوراتي اينگونه داده اي را واردجدول ميكنيد . ان داده ها بنا به انچه شما وارد كرده ايد به جدول ميروند و خاصيت CASE SENSITIVE را دارند .
قالب اصلي دستور iNSERT چيزي شبيه به قالب زير است :
INSERT INTO TABLE_NAME
VALUES (‘vALUE1’’VAlue2’ , [NULL]);

طبق انچه در ظاهر قالب فوق ميبينيد . فيلدهاي جدول در يك ركورد با استفاده از دستور فوق پر ميشوند . طبق قانوني كه ميدانيم اگر از داده هاي كاراكتري و تاريخ استفاده ميكنيم بايد اين مقادير بين علامت نقل قول (كوتيشن) قرار بگيرند . اما اگر مقدار پوچ يا عددي وارد ميكنيد نبايد انرا بين علامت كوتيشن قرار دهيد .
براي وارد كردن مقدار پوچ كافيست از كلمه كليدي NULL بدون كوتيشن يا از دو كوتيشن بدون هيچ فاصله و يا كاراكتري استفاده كنيد ‘’ بصورتي كه ميبينيد ‘’ .
ترتيب قرارگيري فيلدهايي كه قرار است پر شوند نيز مهم است . يعني مقاديري كه با دستور iNSERT وارد جدول ميشوند بترتيب ورود در ركورد جدول بر اساس آرايشي كه در ساختار جدول فيلدها قرار گرفته اند قرار ميگيرند .
اما قالب كلي تر ديگري داريم كه در آن ذكر نام فيلدها نيز مي آيد كه قالب ان بشكل زير است :
INSERT INTO table
(column-1, column-2, ... column-n)
VALUES
(value-1, value-2, ... value-n);

نكته اي كه در قالب فوق بايد تذكر داده شود انستكه : نيازي نيست نام تمامي فيلدها وارد دستور شود بلكه تنها اندسته از فيلدهايي كه قرار است پر شود كافيست ( البته يادتان باشد كه ستونهايي كه نبايد مقدار پوچ داشته باشند را در دستور فوق از قلم نياندازيد ) در ضمن ترتيب ستونها در اين دستور مهم نيست . يعني مانند قالب اولي كه آورده شد و ترتيب ستونها مهم بود . در اين دستور ترتيب ستونها مهم نيست .
مثال زير را ببينيد :
INSERT INTO supplier
(supplier_id, supplier_name)
VALUES
(24553, 'IBM');

در مثال فوق در جدولي به نام supplier در فيلدهاي supplier_id و supplier_name بترتيب مقدار عددي 24553 ‌ و مقدار كاراكتري IBM را قرار داديم .
در استفاده از دستور INSERT INTO شايد بخواهيد داده هايي را ازجدول ديگري وارد جدول فعلي خود بكنيد . كه در اين صورت در قالب دستور فوق از يك SUBQUERY استفاده ميكنيم . در اين زير پرس وجو با استفاده از دستور SELECT ميتوان از جدول ديگري اطلاعات را وارد كرد .
INSERT INTO TABLENAME(‘COLUMN1’ , ‘COLUMN2’ , ‘COLUMNN’)
SELECT [*|FIELDNAMES] FROM ANOTHER_tbl [WHERE CONDITION][AND ANY OTHER FRAMES OF SELECT PROMPT]
اگر نميدانيد دستور SELECT چيست ميتوانيد به بخش مربوطه مراجعه كنيد .
مثال زير را ببينيد :
INSERT INTO supplier
(supplier_id, supplier_name)
SELECT account_no, name
FROM customers
WHERE city = 'Newark'; 
در جدول supplier در فيلدهاي supplier_id و supplier_name ‌بترتيب فيلدهاي account_no و name را از جدول customers ا وارد ميكنيم كه نام شهر انها Newark است . در استفاده از زيرپرس و جو ها يادتان باشد كه نوع فيلدها نيز بايد با هم يكسان باشند .
در موارد بسياري پيش مي ايد كه فرد فراموش ميكند كه آيا با استفاده از دستور insert مقادير مورد نظرش را وارد كرده است يا خير ؟!
كه در اين موارد بايد از دستور شرطي exist كه بعدا مفصلا راجع به ان نيز بحث ميكنيم استفاده كنيد . مثال زير را ببينيد :
INSERT INTO clients
(client_id, client_name, client_type)
SELECT supplier_id, supplier_name, 'advertising'
FROM suppliers
WHERE not exists (select * from clients
where clients.client_id = suppliers.supplier_id);
يا اگر خواستيد تنها يك مقدار را ببينيد كه وارد شده است يا نه به صورت زير دستور فوق را تغيير دهيد :
INSERT INTO clients
(client_id, client_name, client_type)
SELECT 10345, 'IBM', 'advertising'
FROM dual
WHERE not exists (select * from clients
where clients.client_id = 10345);
Back to top
emsii
دوست آشناي سايت


Joined: 16 Dec 2005
Posts: 90
Location: tehran

PostPosted: Wed Apr 05, 2006 8:04 am    Post subject: Reply with quote

چه جوري ميشه از وجود يك جدول با دستور ات Sql مطلع شد
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Wed Apr 05, 2006 1:58 pm    Post subject: Reply with quote

اگه تو ويژوال بيسيك باشي ميشه بكمك error handler مطلع شد .
Back to top
emsii
دوست آشناي سايت


Joined: 16 Dec 2005
Posts: 90
Location: tehran

PostPosted: Fri Apr 07, 2006 1:10 pm    Post subject: Reply with quote

چه جوري مثال بزن
ببين مثلا جدول tbl23 هست يا نه
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Sun Apr 09, 2006 7:51 am    Post subject: Reply with quote

با دستور sql جدول رو open ميكني . قبلش error handler رو ميزاري و كد ارور رو ميفهمي چيه . بعد با اون كد اررور ميتوني جدول جديد رو با create table‌بسازي .
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> اس . كيو . ال SQL All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum