1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

دستکاری جدول های بانک اطلاعاتی SQL

شروع موضوع توسط minaaa ‏10/12/11 در انجمن SQL

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    CREATE TABLE: جداول ساختمان بندی پایه یک بانک اطلاعاتی اند که اطلاعات را در خود جای میدهند . برنامه های بسیاری هستند که بدون استفاده از کد های sql برای شما جدول میسازند . اما یادگیری این دستورات برای کسی که با جداول و دیتابیس کار میکند ضروری است.

    قبل از یادگیری گرامر دستوری ساخت جدول ، باید منطق و اصول ساخت جدول را بیاموزید . جداول به سطرها (ROW) و ستون ها (COLUMN) تقسیم میشوند . هر سطر یک رکورد از اطلاعات را در خود جای داده است.هر سطر چند فیلد دارد .

    مثال : مثلا کارنامه مدارس را در نظر بگیرید .مثلا ۳ ستون دروس ، نمره و تاریخ دارد و سطر های آن هر کدام شامل سه بخش هستند طبق دسته بندی ستون هایش .

    سطر اول : ریاضی – ۱۲ – ۱۲/۳/۱۳۸۴

    سطر دوم : فیزیک – ۱۴ – ۱۶/۳/۱۳۸۴

    و بهمین ترتیب .پس هر سطر جدول را یک رکورد می نامیم . هر ستون جدول (فیلد) دارای یک نوع داده است . در مثال فوق ستون دروس از نوع string و ستون نمرات از نوع integer و ستون تاریخ از نوع date است . هنگام ساخت جدول که فیلد هایش را مشخص میکنید باید نوع داده ای فیلد ها نیز مشخص گردد. کد ساخت جدول بصورت زیر میباشد :

    CREATE TABLE “table_name”
    (“column 1″ “data_type_for_column_1″,
    “column 2″ “data_type_for_column_2″,
    … )

    کد ساخت یک جدول نمونه :

    CREATE TABLE customer
    (First_Name char(50),
    Last_Name char(50),
    Address char(50),
    City char(50),
    Country char(25),
    Birth_Date date)

    DROP TABLE : گاهی ما دلمون میخواد که بهر دلیلی از دست یک جدول در پایگاه داده خود راحت شویم . SQL این امکان رو برای ما فراهم کرده و ما میتونیم برای پاک کردنش از کد زیر استفاده کنیم .

    DROP TABLE “table_name”

    مثال :

    DROP TABLE customer.

    TRUBCATE TABLE : گاهی ما میخواهیم که اطلاعات داخل یک جدول رو پاک کنیم . اما نمیخواهیم خود جدول پاک شود. برای اینکار ازین دستور کمک میگیریم

    TRUNCATE TABLE “table_name”

    مثال :

    TRUNCATE TABLE customer.

    INSERT INTO : برای ورود اطلاعات داخل یک جدول دو راه وجود دارد. یکی اینکه رکورد ها را تک تک وارد کنیم (سطر به سطر) و یکی اینکه یکدفعه چندین سطر را وارد جدول کنیم . برای وارد کردن اطلاعات بصورت سطر به سطر با کد زیر عمل میکنیم .

    INSERT INTO “table_name” (“column1″, “column2″, …)
    VALUES (“value1″, “value2″, …)

    فرض کنید جدول با ساختار زیر داریم .

    Table Store_Information

    نام ستون ها


    نوع داده ستون

    store_name


    char(50)

    Sales


    float

    Date


    datetime

    و حالا ما میخواهیم یک رکورد(سطر) اطلاعات وارد جدول فروش کنیم . با مشخصات ذیل : لوس آنجلس – ۱۰ ژانویه ۱۹۹۹ و فروش ۹۰۰$ . بنابرین کد زیر را استفاده میکنیم.

    INSERT INTO Store_Information (store_name, Sales, Date)
    VALUES (‘Los Angeles’, 900, ‘Jan-10-1999′)

    نوع دوم از ورود اطلاعات وارد کردن چندین سطر با هم میباشد . بر خلاف بخش قبلی ، ما از کلمه SELECT برای مشخص کردن داده هایی که میخواهیم وارد جدول کنیم استفاده میکنیم . اگر فکر کرده اید که این اطلاعات از جدول دیگری در حال کپی در این جدول است درست فکر کرده اید.

    INSERT INTO “table_name” (“column1″, “column2″, …)
    SELECT “column1″, “column2″, …
    FROM “table1″

    توجه کنید که کد بالا ساده ترین حالت ممکن بود .جمله select شما می تواند دارای کلمات where , Group by , Having باشد .

    بطور مثال اگر ما جدولی داشته باشیم که بخواهیم اطلاعات فروش سال ۱۹۹۸ را بگیرد و هم اکنون جدول دیگری دارید که اطلاعات تمام سال های ۱۹۹۵ تا ۲۰۰۰ را شامل میشود و اگر ساختار دو جدول یکسان باشد باید تایپ کنید :

    INSERT INTO Store_Information (store_name, Sales, Date)
    SELECT store_name, Sales, Date
    FROM Sales_Information
    WHERE Year(Date) = 1998

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

    WHERE to_char(date,’yyyy’)=1998

    UPDATE : گاهی ما در یک جدول اطلاعاتی داریم و میخواهیم مقداری را در جدول تغییر دهیم .برای اینکار از دستور UPDATE استفاده می کنیم .

    UPDATE “table_name”
    SET “column_1″ = [new value]
    WHERE {condition}

    مثال : ما جدول زیر را داریم .

    Table Store_Information

    store_name


    Sales


    Date

    Los Angeles


    $1500


    Jan-05-1999

    San Diego


    $250


    Jan-07-1999

    Los Angeles


    $300


    Jan-08-1999

    Boston


    $700


    Jan-08-1999

    مثلا ما متوجه میشویم که مقدار فروش فروشگاه لوس آنجلس در تاریخ ۰۱/۰۸/۱۹۹۹ در اصل ۵۰۰$ بوده و باید این مقدار را در جدول تصحیح کنیم . برای اینکار از کد زیر استفاده میکنیم.

    UPDATE Store_Information
    SET Sales = 500
    WHERE store_name = “Los Angeles”
    AND Date = “Jan-08-1999″

    بعد از اجرای کد بالا مقادیر جدول بصورت زیر در میاید .

    Table Store_Information

    store_name


    Sales


    Date

    Los Angeles


    $1500


    Jan-05-1999

    San Diego


    $250


    Jan-07-1999

    Los Angeles


    $500


    Jan-08-1999

    Boston


    $700


    Jan-08-1999

    در جدول مذکور فقط یک رکورد بود که تاریخش Jan-08-1999 و نام فروشگاهش Los Angeles باشد . اگر لچند رکورد با این مشخصات وجود داشت نیز تمام آنها مقدارشان تغییر میکرد . در مثال فوق فوق یک رکورد وجود داشت با مشخصاتی که ما دادیم و فقط هم یک فیلدش را تغییر دادیم .

    این امکان وجود دارد که مقدار چند فیلد را به یکباره تغییر دهیم . برای اینکار از گرامر کد زیر استفاده میشود .

    UPDATE TABLE “table_name”
    SET (“column_1″, “column_2″) = ([new value 1], [new value 2])
    WHERE {condition}

    UPDATE : برای پاک کردن یک رکورد از جدول ازین کد استفاده میکنیم .

    DELETE FROM “table_name”
    WHERE {condition}

    مثال : جدول زیر را داریم .

    Table Store_Information

    store_name


    Sales


    Date

    Los Angeles


    $1500


    Jan-05-1999

    San Diego


    $250


    Jan-07-1999

    Los Angeles


    $300


    Jan-08-1999

    Boston


    $700


    Jan-08-1999

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

    DELETE FROM Store_Information
    WHERE store_name = “Los Angeles”

    نتیجه:

    Table Store_Information

    store_name


    Sales


    Date

    San Diego


    $250


    Jan-07-1999

    Boston


    $700


    Jan-08-1999
     
    یک شخص از این تشکر کرد.