• SQL: یک زبان جهانی برای کار با پایگاه های داده. SQL "for dummies": آنچه مبتدیان باید بدانند

    ترجمه ای که می توانید بگویید:

    این مقاله شما را با ساختار زبان SQL و همچنین برخی مفاهیم کلی مانند انواع داده هایی که فیلدها می توانند داشته باشند و برخی از ابهامات موجود در SQL آشنا می کند. لازم نیست تمام جزئیات ذکر شده در این مقاله را به خاطر بسپارید. فقط اینجا بررسی کوتاه; جزئیات بسیاری داده می شود که بعداً به آنها اشاره می شود زیرا آنها بر زبان مسلط هستند.

    SQL چگونه کار می کند؟

    SQL زبانی است که به طور خاص بر روی پایگاه داده های رابطه ای (RDB) متمرکز شده است. او اجرا می کند کارت عالی بوداگر از یک زبان برنامه نویسی عمومی مانند C استفاده می کنید، باید این کار را انجام دهید. برای ساختن یک C RDB، باید از ابتدا شروع کنید. شما باید یک شی به نام جدول تعریف کنید که می تواند هر تعداد سطر را داشته باشد و سپس مراحلی را برای درج و بازیابی مقادیر به صورت تدریجی بسازید.

    اگر می‌خواهید رشته‌های خاصی را بیابید، باید مراحلی مانند زیر را طی کنید:

    • یک ردیف جدول را در نظر بگیرید.
    • بررسی کنید که آیا این رشته یکی از رشته های مورد نیاز شما است یا خیر.
    • اگر چنین است، آن را در جایی ذخیره کنید تا کل جدول بررسی شود.
    • بررسی کنید که آیا ردیف های دیگری در جدول وجود دارد یا خیر.
    • اگر بله، به مرحله 1 بازگردید.
    • اگر ردیف دیگری وجود ندارد، تمام مقادیر ذخیره شده در مرحله 3 را خروجی بگیرید.

    (البته، این یک مجموعه واقعی از دستورات C نیست، بلکه فقط منطق مراحلی است که باید در آن گنجانده شود. برنامه واقعی.) SQL همه این کارها را برای شما انجام خواهد داد. دستورات در SQL می توانند بر روی تمام گروه های جداول به عنوان یک موجودیت واحد عمل کنند و می توانند هر مقدار اطلاعات بازیابی یا مشتق شده از آنها را به عنوان یک واحد پردازش کنند.

    ANSI چه می کند؟

    همانطور که در مقدمه گفتیم، استاندارد SQL با استفاده از کد ANSI (موسسه استاندارد ملی آمریکا) تعریف شده است. SQL توسط ANSI اختراع نشده است. این در اصل یک اختراع IBM است. اما شرکت های دیگر بلافاصله SQL را انتخاب کردند. حداقل یک شرکت (Oracle) حق بازاریابی محصولات SQL را از IBM سلب کرده است.

    پس از اینکه تعدادی از برنامه های SQL رقیب در بازار ظاهر شدند، ANSI استانداردی را که باید به آن ارائه شود را تعیین کرد. (تعریف چنین استانداردهایی تابع ANSI است). با این حال، پس از آن، برخی از مشکلات ظاهر شد. آنها در نتیجه استانداردسازی ANSI در قالب برخی محدودیت ها بوجود آمدند. از آنجایی که ANSI همیشه مفیدترین چیز را تعریف نمی کند، برنامه ها سعی می کنند با استاندارد ANSI مطابقت داشته باشند بدون اینکه اجازه دهند آنها را خیلی محدود کند. این به نوبه خود منجر به تناقضات تصادفی می شود. برنامه های پایگاه داده معمولاً ANSI SQL می دهند ویژگی های اضافیو اغلب بسیاری از محدودیت ها را کاهش می دهند. بنابراین، انواع رایج ANSI نیز در نظر گرفته خواهد شد. در حالی که به وضوح نمی‌توانیم هر استثنا یا تغییری را پوشش دهیم، ایده‌های خوب تمایل دارند در برنامه‌های مختلف مورد استفاده قرار گیرند، حتی زمانی که توسط استاندارد ANSI تعریف نشده باشند. ANSI نوعی حداقل استاندارد است و شما می توانید بیش از آنچه اجازه می دهد انجام دهید، اگرچه باید دستورالعمل های آن را برای انجام وظایفی که تعریف می کند دنبال کنید.

    SQL تعاملی و تودرتو

    دو SQL وجود دارد: تعاملی و تودرتو. در بیشتر موارد، هر دو فرم به یک شکل کار می کنند، اما به طور متفاوتی استفاده می شوند. SQL تعاملی برای کار مستقیم بر روی پایگاه داده برای تولید خروجی برای استفاده توسط مشتری استفاده می شود. در این SQL - وقتی دستوری را وارد می کنید، بلافاصله اجرا می شود و می توانید بلافاصله خروجی را ببینید (در صورت وجود).

    SQL تودرتو شامل دستورات SQL است که در داخل برنامه هایی قرار می گیرند که معمولاً به زبان دیگری (مانند COBOL یا PASCAL) نوشته می شوند. این باعث می شود چنین برنامه هایی قدرتمندتر و کارآمدتر شوند.

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

    در این کتاب به ارائه SQL به صورت تعاملی می پردازیم. این ما را قادر می سازد تا در مورد دستورات و اقدامات آنها بدون نگرانی در مورد نحوه ارتباط آنها با زبان های دیگر بحث کنیم. SQL تعاملی بیشترین کاربرد را برای غیر برنامه نویسان دارد. هر چیزی که در مورد SQL تعاملی یاد می گیرید اساساً برای یک فرم تودرتو اعمال می شود. تغییرات مورد نیاز برای استفاده از فرم تودرتو در فصل آخر این کتاب پوشش داده خواهد شد.

    زیر بخش های SQL

    در هر دو شکل SQL تعاملی و تودرتو، بخش‌ها یا زیربخش‌های متعددی وجود دارد. از آنجایی که احتمالاً هنگام خواندن SQL با این اصطلاح مواجه می شوید، توضیحی ارائه خواهیم داد. متأسفانه، این اصطلاحات به طور کلی در همه پیاده سازی ها استفاده نمی شوند. آنها مشخص شده از ANSI هستند و در سطح مفهومی مفید هستند، اما اکثر برنامه های SQL به ندرت با آنها به طور جداگانه برخورد می کنند، بنابراین اساساً به دسته های عملکردی دستورات SQL تبدیل می شوند.

    • DDL (زبان تعریف داده ها) - به اصطلاح Schema Description Language در ANSI - شامل دستوراتی است که اشیاء (جدول، نمایه ها، نماها و غیره) را در پایگاه داده ایجاد می کند.
    • DML (زبان دستکاری داده ها) مجموعه ای از دستورات است که تعیین می کند چه مقادیری در جداول در هر زمان وجود دارد.
    • DCD (زبان کنترل داده ها) شامل امکاناتی است که تعیین می کند آیا به کاربر اجازه انجام برخی اقدامات را می دهد یا خیر. آن ها هستند قطعات تشکیل دهنده DDL به ANSI.

    این اسامی را فراموش نکنید نیست زبان های مختلف، و بخش هایی از دستورات SQL که بر اساس عملکرد آنها گروه بندی شده اند.

    انواع مختلف داده

    همه انواع مقادیری که می توانند در فیلدهای جدول باشند از نظر منطقی یکسان نیستند. واضح ترین تفاوت بین اعداد و متن است. شما نمی توانید اعداد را به ترتیب حروف الفبا قرار دهید یا یک نام را از نام دیگر کم کنید.

    از آنجایی که سیستم‌های RDB مبتنی بر روابط بین قطعات اطلاعاتی هستند، انواع مختلف داده‌ها باید از یکدیگر متمایز باشند تا بتوان فرآیندها و مقایسه‌های مناسب را درون آنها انجام داد. در SQL، این کار با اختصاص دادن یک نوع داده به هر فیلد انجام می شود که نوع مقدار آن فیلد را می تواند شامل شود. تمام مقادیر در این فیلد باید از یک نوع باشند. برای مثال، در جدول Customers، cname و city شامل رشته‌هایی از متن برای ارزیابی هستند و snum و cnum اعداد هستند. به همین دلیل، نمی توانید یک مقدار Highest یا یک مقدار None را در قسمت رتبه بندی که دارای نوع داده عددی است وارد کنید. این محدودیت یک محدودیت خوب است، زیرا ساختاری را بر داده های شما تحمیل می کند. شما اغلب برخی یا همه مقادیر را در یک فیلد معین مقایسه می‌کنید، بنابراین ممکن است بخواهید فقط روی ردیف‌های خاصی عمل کنید، نه همه. اگر مقادیر فیلد از نوع داده مختلط بود، نمی‌توانید این کار را انجام دهید.

    متأسفانه، تعریف این نوع داده ها حوزه اصلی است که اکثر برنامه های پایگاه داده تجاری و استاندارد رسمی SQL همیشه مطابقت ندارند. استاندارد ANSI SQL فقط متن و عدد را تشخیص می دهد، در حالی که اکثر برنامه های تجاری از انواع خاص دیگری استفاده می کنند. مانند DATA (DATE) و TIME (TIME) - در واقع انواع تقریبا استاندارد (اگرچه فرمت دقیق آنها متفاوت است). برخی از بسته ها از انواعی مانند MONEY و BINARY نیز پشتیبانی می کنند. (MONEY یک سیستم ویژه "ارز" است که توسط رایانه ها استفاده می شود.)

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

    ANSI چندین تعریف می کند انواع عددی، که تفاوت های بین آنها کاملاً ظریف و گاه گیج کننده است. انواع داده های مجاز ANSI در ضمیمه B فهرست شده اند. پیچیدگی انواع عددی ANSI را می توان حداقل تا حدی با تلاش برای سازگار کردن SQL تودرتو با تعدادی از زبان های دیگر توضیح داد. دو نوع عدد ANSI، INTEGER و DECIMAL (که به ترتیب به صورت INT و DEC قابل اختصار هستند)، برای اهداف ما و همچنین برای بیشتر برنامه های کاربردی تجاری مناسب خواهند بود. به طور طبیعی، نوع INTEGER را می توان به عنوان یک عدد اعشاری نشان داد که شامل هیچ رقمی در سمت راست نقطه اعشار نیست.

    نوع متن CHAR (یا CHAR) است که به یک خط متن اشاره دارد. رشته نوع CHARدارای طولی است که با حداکثر تعداد کاراکترهایی که می توان در این قسمت وارد کرد تعیین می شود. بیشتر پیاده‌سازی‌ها یک نوع غیر استاندارد به نام VARCHAR دارند که یک رشته متنی است و می‌تواند هر طولی تا حداکثر تعریف شده توسط پیاده‌سازی (معمولاً ۲۵۴ کاراکتر) داشته باشد. مقادیر CHARACTER و VARCHAR در یک نقل قول به عنوان "متن" گنجانده شده است. تفاوت بین CHAR و VARCHAR این است که CHAR باید حافظه کافی برای آن ذخیره کند حداکثر طولرشته ها، و VARCHAR حافظه را در صورت نیاز اختصاص می دهد.

    انواع کاراکترها شامل همه کاراکترهای قابل چاپ، از جمله اعداد است. با این حال، عدد 1 با کاراکتر "1" یکی نیست. کاراکتر "1" فقط یک قطعه متن چاپ شده است که توسط سیستم به عنوان مقدار عددی 1 تعریف نشده است. برای مثال، 1 + 1 = 2، اما "1" + "1" برابر با "2" نیست. مقادیر کاراکترها به عنوان مقادیر باینری در رایانه ذخیره می شوند، اما به عنوان متن چاپ شده به کاربر نمایش داده می شوند.

    تبدیل با توجه به فرمت تعیین شده توسط سیستم مورد استفاده شما انجام می شود. این فرمت تبدیل یکی از دو نوع استاندارد (احتمالاً با برنامه های افزودنی) مورد استفاده در سیستم های رایانه ای خواهد بود: کد ASCII (که در همه رایانه های شخصی و کوچک استفاده می شود) و کد EBCDIC (کد اعشاری باینری توسعه یافته تبادل اطلاعات) (مورد استفاده در کامپیوترهای بزرگ). برخی از عملیات، مانند حروف الفبا کردن مقادیر فیلد، با قالب تغییر خواهند کرد.

    در استفاده از نوع DATE باید بازار را دنبال کنیم، نه ANSI. (در سیستمی که نوع DATE را تشخیص نمی‌دهد، البته می‌توانید تاریخ را به عنوان یک کاراکتر یا فیلد عددی اعلام کنید، اما این کار باعث می‌شود که بیشتر عملیات زمان‌برتر شود.)

    شما باید اسناد خود را برای بسته نرم افزاری که استفاده می کنید بررسی کنید تا دقیقاً از چه نوع داده هایی پشتیبانی می کند.

    SQL. ناسازگاری ها

    شما می توانید از بحث قبلی متوجه شوید که ناسازگاری های جداگانه ای بین محصولات در دنیای SQL وجود دارد. SQL از دنیای پایگاه داده تجاری به عنوان یک ابزار ظهور کرد و بعداً به استاندارد ANSI توسعه یافت. متأسفانه، ANSI همیشه موارد مفید را تعریف نمی کند، بنابراین برنامه ها سعی می کنند با استاندارد ANSI مطابقت داشته باشند بدون اینکه اجازه دهند آنها را خیلی محدود کند. ANSI نوعی حداقل استاندارد است - شما می توانید بیش از آنچه اجازه می دهد انجام دهید، اما باید بتوانید نتایج یکسانی را در همان کار به دست آورید.

    "کاربر" چیست؟

    SQL معمولاً در سیستم‌های رایانه‌ای یافت می‌شود که بیش از یک کاربر دارند و بنابراین باید بین آنها تمایز قائل شوند (خانواده رایانه‌های شخصی شما می‌تواند هر تعداد کاربر داشته باشد، اما معمولاً راهی برای تشخیص یک کاربر از کاربر دیگر ندارد).

    به طور معمول، در چنین سیستمی، هر کاربر نوعی کد بررسی حقوق دارد که او را شناسایی می کند (اصطلاحات متفاوت است). در شروع یک جلسه با یک کامپیوتر، کاربر با تشخیص هویت خود با یک شناسه خاص (شناسه) با گفتن اینکه کاربر کیست به رایانه وارد می شود (ثبت نام می کند). هر تعداد از افرادی که از یک Access ID استفاده می کنند، کاربر فردی هستند. و به طور مشابه، یک نفر می تواند نمایندگی کند تعداد زیادی ازکاربران (در زمان های مختلف) با استفاده از شناسه های دسترسی SQL مختلف. کنش‌ها در اکثر محیط‌های SQL به یک Access ID ویژه فرستاده می‌شوند که دقیقاً با یک کاربر خاص مطابقت دارد. یک جدول یا شیء دیگر متعلق به کاربری است که بر آن اختیار کامل دارد. کاربر ممکن است این امتیاز را داشته باشد که یک عمل را روی شی انجام دهد یا نداشته باشد. برای اهداف ما، ما موافقت خواهیم کرد که هر کاربری از امتیازات لازم برای انجام هر عملی برخوردار باشد، تا زمانی که به طور خاص به بحث امتیازات در فصل 22 برگردیم. مقدار ویژه USER را می توان به عنوان آرگومان در یک دستور استفاده کرد. به شناسه موجود کاربری که فرمان را صادر کرده است اشاره می کند.

    کنوانسیون ها و اصطلاحات

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

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

    دستورات یا جملات دستورالعمل هایی هستند که برای دسترسی به پایگاه داده SQL استفاده می کنید.

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

    جملات با یک کلمه کلیدی شروع می شوند و شامل کلید واژه هاو استدلال ها به عنوان مثال، جملاتی که ممکن است با آنها روبرو شوید عبارتند از "FROM Salespeope" و "WHERE city = "London"". استدلال ها معنی جمله را کامل یا تغییر می دهند. در مثال های بالا، فروشندگان آرگومان و FROM کلمه کلیدی عبارت FROM است. به همین ترتیب، "city = "London"" استدلال عبارت WHERE است.

    اشیاء ساختارهای پایگاه داده ای هستند که به آنها نام داده شده و در حافظه ذخیره می شود. این شامل جداول پایه، نماها و نمایه ها می شود.

    برای اینکه نحوه تشکیل تیم ها را به شما نشان دهیم، با مثال هایی این کار را انجام خواهیم داد. با این حال، روش رسمی تری برای توصیف دستورات با استفاده از استاندارد شده وجود دارد کنوانسیون ها. ما آن را در فصل‌های بعدی برای سهولت استفاده خواهیم کرد تا در صورت برخورد با آنها در سایر اسناد SQL، بتوانید این قراردادها را درک کنید.

    براکت‌های مربع () قسمت‌هایی را نشان می‌دهند که ممکن است استفاده نشوند، و بیضی (...) نشان می‌دهد که هر چیزی قبل از آنها ممکن است چند بار تکرار شود. کلمات در براکت های زاویه() اصطلاحات خاصی هستند که چیستی آنها را توضیح می دهند. ما اصطلاحات استاندارد SQL را بسیار ساده کرده‌ایم، اما بدون به خطر انداختن درک آن.

    خلاصه

    در این فصل به طور مختصر به اصول اولیه پرداختیم. اما قصد ما این بود که اصول اولیه SQL را مرور کنیم تا بتوانید تمام اطلاعات را پوشش دهید.

    اکنون چند چیز در مورد SQL می دانید: ساختار آن چیست، چگونه استفاده می شود، چگونه داده ها را نشان می دهد و چگونه تعریف می شود (و برخی از تناقضات ناشی از آن)، برخی از قراردادها و اصطلاحات مورد استفاده برای توصیف آنها. همه این اطلاعات برای یک فصل بیش از حد است. ما انتظار نداریم که همه این جزئیات را به خاطر بسپارید، اما در صورت نیاز می توانید بعداً به آنها مراجعه کنید.

    SQL یک زبان پرس و جو ساخت یافته است. SQL بدون پایگاه داده وجود ندارد - شما نمی توانید برنامه هایی را در آن بنویسید و از این نظر یک زبان برنامه نویسی مانند PHP نیست، اما وقتی باید با یک DBMS خاص سر و کار داشته باشید، بدون دانش SQL نمی توانید این کار را انجام دهید. می توانید پرس و جوهای ساده را روی آن بنویسید، یا می توانید تراکنش های بزرگ متشکل از چندین پرس و جو پیچیده را انجام دهید. پرس و جوی SQL نوعی دستور به پایگاه داده است. چنین دستوری ممکن است درخواست بازگرداندن اطلاعاتی را داشته باشد که معیارهای خاصی را برآورده می کند یا دستور حذف هرگونه رکورد و غیره را بدهد. دستور SQL است رشته ساده، مثلا:

    انتخاب * از کارکنان WHERE بخش

    پرس و جوهای SQL معمولاً نزدیک به یک عبارت ساده در زبان انگلیسی هستند. دستور بالا را می توان به صورت زیر به روسی ترجمه کرد

    همه را از کارکنان WHERE clwjiertme انتخاب کنید"

    تیم کاملا قابل درک است، حیف است که فقط به زبان انگلیسی ضبط شده است. در نتیجه اجرای چنین پرس و جوی، DBMS تمام رکوردها را از جدول Staff که در آن فیلد depart* Mit_id برابر با سه است، برمی گرداند. در مثال ما، این کوئری در واقع فقط برنامه نویسان را از کل پایگاه کارمند انتخاب می کند.

    اگر قبلا با DBMS کار نکرده اید، ممکن است یک سوال منطقی داشته باشید: کجا و چگونه می توانید کار کنید. درخواست داده شده? سه راه برای اجرای پرس و جوهای SQL وجود دارد.

    1. محیط تعاملی برای تعامل با DBMS. برای اکثر سرورهای DBMS، برنامه های کلاینت (ساخته شده یا عرضه شده توسط اشخاص ثالث) در محیط کاری وجود دارد که می توانید پرس و جوهای SQL را بنویسید، آنها را اجرا کنید و نتیجه را دریافت کنید. به طور معمول، چنین ابزارهایی توسط مدیران پایگاه داده استفاده می شود و مستقیماً با برنامه نویسی PHP مرتبط نیستند. نمونه ای از برنامه مشتری MySQL، MySQL Administrator (http: /www.mysgl.coin/ product-s/administratoT/) یا سیستم بسیار محبوب PHP phpMyAdmin (http: / /www.phpmyadi'ln.r»et/itummjiage/index.php) است. برای شروع، یک کیت توزیع از قبل نصب شده و دارای رابط کنسول کافی است. در لینوکس، شما نیاز دارید خط فرماندستور mysql را تایپ کنید تا پنجره ای با دعوت نامه برای وارد کردن کوئری های SQL باز شود و در ویندوز برای راه اندازی همان رابط، باید فایل mysql را اجرا کنید. exe از دایرکتوری bin.

    2. پرس و جوهای SQL استاتیک. به طور معمول، چنین پرس و جوهایی در داخل رویه های ذخیره شده در خود پایگاه داده ها نوشته می شوند یا به خود برنامه ها متصل می شوند. یک کوئری SQL ایستا از پیش تعریف شده است و تنها در صورتی تغییر می کند که برنامه یا کد رویه ذخیره شده به صورت دستی بازنویسی شود. از PHP، چنین پرس و جوی SQL با استفاده از توابع ویژه اجرا می شود که در ادامه مورد بحث قرار خواهد گرفت.

    3. پرس و جوهای پویا SQL. به این گونهشامل چنین درخواست هایی باشد، من هنگام نوشتن برنامه نمی توان به طور کامل تعریف کرد. من "به عنوان مثال، هنگام نوشتن برنامه ای برای دریافت لیستی از کارکنان" در بخش های مختلف شرکت، برنامه نویس نمی داند، ci "> در مورد شرکت بخش هایی خواهد داشت و چه کارکنانی در آنها گنجانده می شوند. داده ها تغییر می کند r'^v'> فرصتی برای ارسال برخی از پارامترها وجود دارد.

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

    از آنجایی که DBMS بسیاری از مشکلات را حل می کند، SQL نیز باید یک زبان چند منظوره باشد. انواع مختلفی از عملیات وجود دارد که می تواند انجام شود< \ ществлять с помощью SQL.

    1. تعیین ساختار پایگاه داده. این نوع شامل پرس و جوهایی است که جداول و نمایه ها را ایجاد و اصلاح می کنند. معمولا این دستورات CRE هستند. "E TA' LE، ALI'R TA' LE، ' "'. TE INDEX و غیره.

    2. دستکاری داده ها. این نوع شامل درخواست هایی برای درج (move*and> leni)، حذف یا تغییر داده ها در جداول است. اینها سه دستور اصلی هستند: INSERT. حذف و به روز رسانی.

    3. انتخاب داده این شامل تنها یک عبارت SELECT است. خود تغییراتی در داده ها ایجاد نمی کند، اما به شما امکان می دهد آنها را از پایگاه داده دریافت کنید. با وجود اینکه تنها از یک فرمان برای واکشی داده ها استفاده می شود، اما بسیار قدرتمند است و اغلب در برنامه ها استفاده می شود.

    4. مدیریت سرور DBMS. این نوع عمدتا شامل درخواست هایی برای مدیریت کاربران و حقوق دسترسی آنها (به عنوان مثال، دستور GRANT) است.

    دانش خوب SQL کار یک برنامه نویس را هنگام کار با پایگاه داده بسیار تسهیل می کند. برنامه‌ها می‌توانند کوچک باشند، اما فقط به این دلیل که SQL وظایف زیادی را بر عهده می‌گیرد، عملکرد عالی دارند.

    مانند هر حوزه دیگری از فناوری اطلاعات، استانداردهایی در SQL وجود دارد - این ANSI SQL است. مخفف ANSI مخفف عبارت Amrican National Standards Institute (موسسه استاندارد ملی آمریکا) است. با این حال، نه حداقل به دلیل تفاوت در عملکرد خود DBMS، پیاده سازی SQL برای متفاوت است

    با این حال DBMS با یکدیگر متفاوت است. در حال حاضر تقریباً هر DBMS گویش مخصوص به خود را دارد که معمولاً تفاوت چندانی با استاندارد عمومی ندارد اما ویژگی های خاص خود را دارد. به عنوان مثال، PL/SQL با Oracle و PostgreSQL سازگار است و T-SQL برای کار با MS SQL Server استفاده می شود.

    برای کار بعدی با پایگاه های داده، توصیه می کنیم فوراً استانداردی را که قصد دارید در آینده با آن کار کنید مطالعه کنید. برای اکثر توسعه دهندگان وب، عملکرد MySQL DBMS (و می توان از آن به صورت رایگان استفاده کرد) در حال حاضر برای سر کافی است، بنابراین در این کتاب، تمام مثال های MySQL به ترتیب به گویش این DBMS آورده می شود. اسناد زبان پرس و جو برای MySQL را می توان در www.mysql.com یافت.

    پایگاه های داده ای که می توانند روی سیستم های کامپیوتری متعددی کار کنند انواع مختلف. در واقع، با کمک آن، کاربران می‌توانند داده‌ها را بدون در نظر گرفتن اینکه روی یک رایانه شخصی کار می‌کنند، یک ایستگاه کاری شبکه‌ای یا یک رایانه بزرگ، دستکاری کنند.

    یکی از زبان هایی که در نتیجه توسعه مدل داده های رابطه ای پدیدار شد، زبان SQL (زبان پرس و جو ساختاریافته) است که در حال حاضر بسیار گسترده است و در واقع تبدیل شده است. زبان استاندارد پایگاه داده های رابطه ای. استاندارد SQL توسط موسسه استاندارد ملی آمریکا (ANSI) در سال 1986 منتشر شد و در سال 1987 سازمان استاندارد بین المللی (ISO) آن را به عنوان یک زبان بین المللی پذیرفت. استاندارد فعلی SQL با نام SQL/92 شناخته می شود.

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

    همه خاص پیاده سازی زبانتا حدودی متفاوت از یکدیگر این به نفع سازندگان است که اطمینان حاصل کنند که پیاده‌سازی‌های آن‌ها با استانداردهای فعلی ANSI برای قابلیت حمل و تجربه کاربر مطابقت دارد. با این حال، هر پیاده سازی SQL شامل پیشرفت هایی برای پاسخگویی به نیازهای یک سرور پایگاه داده خاص است. این پیشرفت ها یا پسوندهای زبان SQL هستند دستورات اضافیو گزینه هایی که به بسته استاندارد اضافه شده و در آن پیاده سازی خاص موجود هستند.

    در حال حاضر، زبان SQL توسط ده ها DBMS پشتیبانی می شود. انواع مختلفطراحی شده برای طیف گسترده ای از پلت فرم های محاسباتی، از رایانه های شخصی گرفته تا رایانه های بزرگ.

    همه زبان های دستکاری داده ها قبل از ظهور برای بسیاری از DBMS ها ایجاد شده اند پایگاه داده های رابطه ای، بر روی عملیات با داده هایی که به عنوان رکوردهای فایل منطقی نشان داده شده بودند، متمرکز شدند. البته این امر مستلزم آن بود که کاربر اطلاعات دقیقی از سازماندهی ذخیره سازی داده ها داشته باشد و تلاش جدی برای تعیین اینکه چه داده هایی مورد نیاز است، در کجا قرار دارند و چگونه می توان آن ها را دریافت کرد.

    زبان SQL در نظر گرفته شده بر روی عملیات با داده های ارائه شده در قالب مجموعه های منطقی به هم پیوسته جداول رابطه متمرکز است. مهمترین ویژگی ساختارهای آن تمرکز بر نتیجه نهایی پردازش داده ها است و نه روی رویه این پردازش. زبان SQL خود تعیین می‌کند که داده‌ها در کجا قرار دارند، فهرست‌بندی می‌شوند و حتی کارآمدترین دنباله عملیات باید برای به دست آوردن نتیجه مورد استفاده قرار گیرد، و بنابراین لازم نیست این جزئیات در یک کوئری پایگاه داده مشخص شود.

    مقدمه ای بر فناوری مشتری-سرور

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

    به لطف DBMS که با سرورهای فایل کار می کند، بسیاری از کاربران به همان پایگاه داده دسترسی پیدا می کنند. توسعه انواع مختلف را ساده می کند سیستم های خودکارمدیریت سازمان با این حال، با این رویکرد، تمام پردازش درخواست ها از برنامه ها یا از پایانه های رایانه های کاربر بر روی آنها انجام می شود، بنابراین برای اجرای حتی یک درخواست ساده، خواندن از سرور فایلیا کل فایل ها را روی آن بنویسید و این منجر به موقعیت های درگیری و تراکم شبکه می شود. برای رفع این کاستی ها پیشنهاد شد فناوری مشتری-سرور، اما در همان زمان، یک زبان واحد برای برقراری ارتباط با سرور مورد نیاز بود - انتخاب بر روی SQL افتاد.

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

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

    معماری سرویس گیرنده-سرور چندین مزیت دارد.

    زبان پرس و جو ساختاریافته (زبان پرس و جو ساختاریافته) یا SQL- یک زبان برنامه نویسی اعلامی برای استفاده در پایگاه داده های شبه رابطه ای است. بسیاری از ویژگی‌های اولیه SQL توسط محاسبات تاپلی تصاحب شد، اما الحاقات اخیر به SQL شامل جبر رابطه‌ای بیشتر و بیشتر می‌شود.
    SQL در ابتدا توسط IBM ایجاد شد، اما بسیاری از فروشندگان گویش های خود را توسعه داده اند. این استاندارد در سال 1986 توسط موسسه استاندارد ملی آمریکا (ANSI) و در سال 1987 توسط ISO به تصویب رسید. در استاندارد زبان برنامه نویسی SQL، ANSI بیان کرد که تلفظ رسمی SQL "es cue el" است. با این حال، بسیاری از متخصصان پایگاه داده از تلفظ "عامیانه" "Sequel" استفاده کردند که نشان دهنده نام اصلی زبان، Sequel است، که بعداً به دلیل تضاد علامت تجاری و نامگذاری در IBM تغییر کرد. برنامه نویسی برای مبتدیان.
    زبان برنامه نویسی SQLدر سال 1992 بازنگری شد و این نسخه با نام SQL-92 شناخته می شود. سپس سال 1999 دوباره مورد بازنگری قرار گرفت تا به SQL تبدیل شود: 1999 (AKA SQL3). برنامه نویسی برای آدمک ها SQL 1999 از اشیایی پشتیبانی می کند که قبلاً در نسخه های دیگر پشتیبانی نمی شدند، اما تنها در اواخر سال 2001، تنها چند سیستم مدیریت پایگاه داده از پیاده سازی SQL پشتیبانی می کردند: 1999.
    SQL اگرچه به عنوان ANSI و ISO تعریف می شود، اما دارای تغییرات و پسوندهای زیادی است که اکثر آنها ویژگی های خاص خود را دارند، مانند پیاده سازی "PL/SQL" شرکت Oracle یا پیاده سازی Sybase و مایکروسافت به نام "Transact-SQL" که می تواند فرد آشنا را با اصول برنامه نویسی گیج کند. همچنین غیرمعمول نیست که پیاده‌سازی‌های تجاری پشتیبانی از ویژگی‌های کلیدی استاندارد، مانند انواع داده‌ها مانند تاریخ و زمان را به نفع برخی از ویژگی‌های خود حذف کنند. در نتیجه، برخلاف ANSI C یا ANSI Fortran، که معمولاً می‌توانند از پلتفرم به پلتفرم بدون تغییرات ساختاری عمده منتقل شوند، پرس‌و‌جوهای زبان برنامه‌نویسی SQL به ندرت می‌توانند بین سیستم‌های پایگاه داده مختلف بدون تغییرات عمده منتقل شوند. اکثر افراد در زمینه پایگاه داده معتقدند که این عدم سازگاری عمدی است تا اطمینان حاصل شود که هر توسعه دهنده ای سیستم خودمدیریت پایگاه داده و اتصال خریدار به یک پایگاه داده خاص.
    همانطور که از نام آن پیداست، زبان برنامه نویسی SQL برای یک هدف خاص و محدود طراحی شده است - پرس و جو از داده های موجود در یک پایگاه داده رابطه ای. به این ترتیب، این مجموعه ای از دستورالعمل های زبان برنامه نویسی برای ساختن نمونه های داده است، نه یک زبان رویه ای مانند C یا BASIC، که برای حل طیف وسیع تری از مسائل طراحی شده اند. پسوندهای زبانی مانند "PL/SQL" برای رفع این محدودیت با افزودن عناصر رویه ای به SQL و در عین حال حفظ مزایای SQL طراحی شده اند. روش دیگر اجازه دادن به پرس و جوهای SQL برای تعبیه دستورات زبان برنامه نویسی رویه ای و تعامل با پایگاه داده است. به عنوان مثال، اوراکل و دیگران پشتیبانی می کنند زبان جاوادر پایگاه داده، در حالی که PostgreSQL به شما امکان می دهد توابع را در Perl، Tcl یا C بنویسید.
    یک شوخی SQL: "SQL نه ساختار یافته است و نه زبان." نکته شوخی این است که SQL یک زبان تورینگ نیست. .

    * از T را انتخاب کنید
    C1 C2
    1 آ
    2 ب
    C1 C2
    1 آ
    2 ب
    C1 را از T انتخاب کنید
    C1
    1
    2
    C1 C2
    1 آ
    2 ب
    * از T را انتخاب کنید که C1=1 است
    C1 C2
    1 آ

    با توجه به جدول T، یک کوئری Select * از T تمام عناصر تمام ردیف‌های جدول را نمایش می‌دهد.
    از همان جدول، یک پرس و جو Select C1 از T عناصر ستون C1 تمام ردیف های جدول را نمایش می دهد.
    از همان جدول، پرس و جو Select * از T که در آن C1=1 تمام عناصر تمام ردیف هایی را که مقدار ستون C1 "1" است، نمایش می دهد.

    کلمات کلیدی SQL

    کلمات SQL به چند گروه تقسیم می شوند.

    اولی است زبان دستکاری داده یا DML(زبان مدیریت داده). DML زیرمجموعه ای از زبانی است که برای جستجو در پایگاه داده، افزودن، به روز رسانی و حذف داده ها استفاده می شود.

    • SELECT یکی از پرکاربردترین دستورات DML است و به کاربر اجازه می دهد تا یک پرس و جو را به عنوان توضیحی از نتیجه مورد نظر به عنوان یک مجموعه مشخص کند. پرس و جو مشخص نمی کند که نتایج چگونه باید مرتب شوند - ترجمه پرس و جو به شکلی که می تواند در پایگاه داده انجام شود وظیفه سیستم پایگاه داده، به طور خاص تر بهینه ساز پرس و جو است.
    • INSERT برای افزودن ردیف ها (مجموعه رسمی) به جدول موجود استفاده می شود.
    • UPDATE برای تغییر مقادیر داده ها در یک ردیف جدول موجود استفاده می شود.
    • DELETE ردیف های موجود را برای حذف از جدول مشخص می کند.

    می توان گفت که سه کلمه کلیدی دیگر در گروه DML قرار می گیرند:

    • BEGIN WORK (یا START TRANSACTION، بسته به گویش SQL) را می توان برای علامت گذاری شروع تراکنش پایگاه داده استفاده کرد که یا به طور کامل اجرا می شود یا اصلا اجرا نمی شود.
    • COMMIT بیان می کند که تمام تغییرات داده ها پس از انجام عملیات ذخیره می شوند.
    • ROLLBACK مشخص می‌کند که تمام داده‌ها از زمان آخرین commit یا rollback باید از بین بروند، تا جایی که به پایگاه داده به عنوان "بازگشت" متعهد شده است.

    COMMIT و ROLLBACK در زمینه هایی مانند کنترل تراکنش ها و قفل ها استفاده می شوند. هر دو دستورالعمل تمام تراکنش‌های جاری (مجموعه‌های عملیات پایگاه داده) را تکمیل می‌کنند و تمام قفل‌های تغییر داده‌ها را در جداول آزاد می‌کنند. وجود یا عدم وجود یک BEGIN WORK یا عبارت مشابه به پیاده سازی خاص SQL بستگی دارد.

    دسته دوم کلمات کلیدی به گروه اشاره دارد زبان تعریف داده یا DDL (زبان تعریف داده). DDLبه کاربر اجازه می دهد تا جداول جدید و عناصر مرتبط را تعریف کند. اکثر پایگاه های تجاری داده های SQLپسوندهای DDL خود را دارند که امکان کنترل غیر استاندارد، اما معمولاً حیاتی را فراهم می کند عناصر مهمسیستم خاص
    نکات اصلی DDL دستورات ایجاد و حذف هستند.

    • CREATE اشیاء (مانند جداول) را برای ایجاد در پایگاه داده مشخص می کند.
    • DROP مشخص می کند که کدام اشیاء موجود در پایگاه داده معمولاً برای همیشه حذف می شوند.
    • برخی از سیستم های پایگاه داده نیز از دستور ALTER پشتیبانی می کنند که به کاربر اجازه می دهد یک شی موجود را به روش های مختلف تغییر دهد، مانند اضافه کردن ستون ها به جدول موجود.

    سومین گروه از کلمات کلیدی SQL هستند زبان کنترل داده یا DCL (زبان کنترل داده). DCLمسئولیت حقوق دسترسی به داده ها را بر عهده دارد و به کاربر اجازه می دهد تا کنترل کند چه کسی برای مشاهده یا دستکاری داده ها در پایگاه داده دسترسی دارد. در اینجا دو کلمه کلیدی اصلی وجود دارد:

    • GRANT - به کاربر اجازه می دهد تا عملیات را انجام دهد
    • Revoke - توانایی کاربر برای انجام عملیات را حذف یا محدود می کند.

    سیستم های پایگاه داده با استفاده از SQL

    • InterBase
    • MySQL
    • اوراکل
    • PostgreSQL
    • SQL Server

    چگونه یک متخصص توسعه وب سایت شویم و شروع به کسب درآمد کنیم؟ دوره های ویدیویی ارزان با مقدمه مقدماتی.

    برنامه های مشتری

    پروتکل TFTP

    TFTP-یکسان پروتکل FTP، اما تمام شده است پروتکل UDP(یعنی یک پروتکل بدون تحویل تضمینی). می تواند در یک شبکه محلی استفاده شود که در آن سرعت انتقال اهمیت بیشتری دارد. به ندرت در عمل استفاده می شود.

    FTP-برنامه از خط فرمان راه اندازی می شود.

    فرمانده ویندوز- می تواند به عنوان یک سرویس گیرنده FTP کار کند. به شما امکان می دهد با دایرکتوری های راه دور مانند دایرکتوری های محلی کار کنید.

    NetVampire-یک کلاینت تخصصی FTP که به شما امکان دانلود را می دهد فایل های حجیمو از طریق کانال های بد دانلود کنید.

    SQL (Structured Query Language) یک زبان پرس و جو ساخت یافته برای پایگاه داده های رابطه ای است. از این زبان می توان برای فرمول بندی عبارات (پرس و جوها) که داده های مورد نیاز را استخراج می کند، آنها را اصلاح می کند، جداول ایجاد می کند و ساختار آنها را تغییر می دهد، حقوق دسترسی به داده ها را تعیین می کند و موارد دیگر.

    کوئری ها توسط سیستم مدیریت پایگاه داده (DBMS) اجرا می شوند. اگر شما متخصص توسعه و مدیریت پایگاه داده نیستید، ممکن است کاربر آنها باشید که داده ها را در جداول موجود مشاهده و/و تغییر می دهد. در بسیاری از موارد، این و سایر عملیات پایگاه داده با استفاده از آن انجام می شود برنامه های کاربردی خاصارائه به کاربر رابط کاربر پسند. برنامه ها معمولا به زبان نوشته می شوند زبان های خاصبرنامه نویسی (C, Pascal, ویژوال بیسیکو غیره) و اغلب با استفاده از محیط های توسعه یکپارچه، مانند دلفی، C++ Builder و غیره ایجاد می شوند. با این حال، پایگاه داده بدون آنها قابل دسترسی است - فقط با استفاده از SQL. همچنین لازم به ذکر است که برنامه های تخصصی معمولاً هنگام دسترسی به پایگاه داده از قطعات کد SQL استفاده می کنند.

    بنابراین، SQL زبان استاندارد به طور گسترده پذیرفته شده برای کار با پایگاه های داده رابطه ای است. سینتکس این زبان به اندازه کافی ساده است که کاربران عادی و نه فقط برنامه نویسان می توانند از آن استفاده کنند. در حال حاضر، یک کاربر معمولی کامپیوتر باید حداقل با یک ویرایشگر متن (به عنوان مثال، مایکروسافت ورد) و صفحات گسترده (مانند مایکروسافت اکسل). بد نیست اگر او نحوه استفاده از پایگاه داده را نیز بلد باشد. بسیاری از DBMS های مختلف وجود دارد، اما تنها یک ابزار جهانی برای کار با پایگاه داده وجود دارد - SQL. دانش SQL، حداقل اصول اولیه آن، و توانایی به کارگیری آن برای جستجو و تجزیه و تحلیل داده ها، بخش اساسی است. سواد کامپیوترحتی کاربران عادی

    اولین پیشرفت سیستم های مدیریت پایگاه داده رابطه ای (DBMS رابطه ای) در IBM در اوایل دهه 1970 انجام شد. در همان زمان، یک زبان داده ایجاد شد که برای کار در این سیستم ها طراحی شده بود. نسخه آزمایشی این زبان SEQUEL نام داشت - از انگلیسی. زبان انگلیسی ساختار یافته QUEry (زبان پرس و جو انگلیسی ساختاریافته). با این حال نسخه رسمیبه طور خلاصه SQL (زبان پرس و جو ساختاریافته) نامیده شد. به طور دقیق تر، SQL یک زیر زبان از داده ها است، زیرا DBMS شامل سایر امکانات زبان است.

    در سال 1981، IBM منتشر شد DBMS رابطه ای SQL/DS. در این زمان، Relation Software Inc. (امروز شرکت اوراکل است) قبلاً DBMS رابطه ای خود را منتشر کرده است. این محصولات بلافاصله به استاندارد سیستم های مدیریت پایگاه داده تبدیل شدند. این محصولات همچنین شامل SQL بودند که به استاندارد واقعی برای زیرزبان های داده تبدیل شده است. سازندگان دیگر DBMS ها نسخه های خود را از SQL منتشر کرده اند. آنها نه تنها ویژگی های اساسی محصولات IBM را داشتند. برای به دست آوردن مزیتی برای DBMS "خود"، فروشندگان برخی از پسوندهای SQL را معرفی کردند. در همان زمان، کار بر روی ایجاد یک استاندارد عمومی شناخته شده SQL آغاز شد.

    در سال 1986، موسسه استاندارد ملی آمریکا (ANSI) استاندارد رسمی SQL-86 را صادر کرد که در سال 1989 به روز شد و به SQL-89 تبدیل شد. در سال 1992، این استاندارد SQL-92 نام گرفت (ISO/IEC 9075:1992). آخرین نسخه استاندارد SQL SQL:2003 (ISO/IEC 9075X:2003) است.

    هر پیاده سازی SQL در یک DBMS خاص تا حدودی با استاندارد اعلام شده توسط سازنده متفاوت است. بنابراین، بسیاری از DBMS (به عنوان مثال، دسترسی مایکروسافت 2003، PostgreSQL 7.3) به طور کامل از SQL-92 پشتیبانی نمی کنند، اما فقط با برخی از سطوح انطباق. علاوه بر این، آنها همچنین از عناصری پشتیبانی می کنند که در استاندارد گنجانده نشده اند. با این حال، توسعه دهندگان DBMS تلاش می کنند تا اطمینان حاصل کنند که نسخه های جدید محصولاتشان تا حد امکان با استاندارد SQL مطابقت دارند.

    توجهاین آموزش عناصر SQL2003 را توصیف می کند که همه آنها توسط DBMS های موجود پشتیبانی نمی شوند. قبل از اجرای آنها، باید مطمئن شوید که آنها در DBMS شما کار می کنند. می توانید از این موضوع مطلع شوید مستندات فنی. بیشتر عناصر توصیف شده با و بیشتر مطابقت دارند نسخه های اولیه SQL، به ویژه SQL-92 گسترده.

    SQL به عنوان یک زبان پرس و جو ساده برای یک پایگاه داده رابطه ای، نزدیک به زبان طبیعی (به طور دقیق تر، به انگلیسی) تصور شد. فرض بر این بود که نزدیکی فرم به زبان طبیعی، SQL را به ابزاری برای استفاده گسترده تبدیل می کند. کاربران عادیپایگاه های داده، نه فقط برنامه نویسان. در اصل، SQL هیچ یک از ساختارهای کنترلی موجود در زبان های برنامه نویسی معمولی را شامل نمی شد. درخواست هایی که نحو آنها بسیار ساده است، مستقیماً از کنسول یکی پس از دیگری وارد شده و به همان ترتیب اجرا می شوند. با این حال، SQL هرگز به ابزاری برای بانکداران، فروشندگان بلیط های هوایی و ریلی، اقتصاددانان و سایر کارکنان شرکت های مختلف با استفاده از اطلاعات ذخیره شده در پایگاه های داده تبدیل نشده است. برای آنها، SQL ساده علیرغم نزدیکی آن به زبان طبیعی سؤالات، بسیار پیچیده و ناخوشایند بود.

    در عمل، پایگاه داده معمولاً از طریق برنامه‌هایی که توسط برنامه‌نویسان به زبان‌های رویه‌ای نوشته شده‌اند، به عنوان مثال، در C، Visual Basic، Pascal، Java و غیره کار می‌کنند. برنامه‌ها اغلب در محیط‌های توسعه بصری خاص مانند دلفی، مایکروسافت اکسس، ویژوال dBase و غیره ایجاد می‌شوند. در عین حال، توسعه‌دهنده برنامه عملاً مجبور نیست کدهای برنامه‌نویسی را برای او بنویسد. به هر حال، کار با کد برنامهبه حداقل می رسد. این برنامه ها راحت هستند رابط کاربری گرافیکی، که کاربر را مجبور به ورود مستقیم پرس و جوهای SQL نمی کند. در عوض، برنامه این کار را انجام می دهد. با این حال، یک برنامه ممکن است از SQL برای دسترسی به پایگاه داده استفاده کند یا نکند. SQL تنها نیست، هرچند بسیار درمان موثرگرفتن، افزودن و تغییر داده ها و اگر امکان استفاده از آن در برنامه وجود دارد، باید این کار انجام شود.

    پایه های رابطه ایداده ها می توانند و بدون توجه به برنامه هایی که ارائه می دهند وجود داشته باشد رابط کاربری. اگر به دلایلی چنین رابطی وجود نداشته باشد، می توان با استفاده از SQL، با استفاده از کنسول یا برنامه ای که می تواند به پایگاه داده متصل شود، یک پرس و جوی SQL را وارد کرده و ارسال کند (به عنوان مثال Borland SQL Explorer) به پایگاه داده دسترسی پیدا کرد.

    زبان SQL برخلاف زبان‌هایی که برنامه‌ها با آن‌ها نوشته می‌شوند، یک زبان اعلامی (توصیفی) در نظر گرفته می‌شود. این بدان معنی است که دستورات SQL آنچه را که باید انجام شود، توصیف می کند، نه چگونه.

    به عنوان مثال، برای انتخاب اطلاعات مربوط به نام و سمت کارکنان بخش 102 از جدول کارکنان، کافی است کوئری زیر را اجرا کنید:

    SELECT نام خانوادگی، موقعیت از کارکنان WHERE Department=102;

    در زبان روسی، این عبارت به این صورت است:

    انتخاب کنید نام خانوادگی، سمت از جانب کارمندان به شرطی که بخش = 102;

    برای تغییر مقدار " ایوانف " بر " پتروف "ستون نام خانوادگی ، فقط کوئری زیر را اجرا کنید:

    UPDATE Employees SET Lastname="Petrov" WHERE Lastname="Ivanov";

    در زبان روسی، این عبارت به این صورت است:

    به روز رسانی کارمندان با تنظیم نام خانوادگی برابر" پتروف " جایی که نام خانوادگی = "ایوانف" ;

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

    با این حال آخرین نسخه ها SQL از دستورات کنترل محاسباتی که در زبان‌های کنترل رویه‌ای مشترک هستند (پرش شرطی و دستورات حلقه) پشتیبانی می‌کند. بنابراین، SQL اکنون یک زبان صرفاً اعلامی نیست.

    علاوه بر واکشی، افزودن، اصلاح و حذف داده ها از جداول، SQL به شما این امکان را می دهد که تمام اقدامات لازم برای ایجاد، اصلاح و ایمن سازی پایگاه های داده را انجام دهید. همه این ویژگی ها بین سه جزء SQL توزیع شده اند:

    · DML (زبان دستکاری داده ها - زبان دستکاری داده ها ) برای پشتیبانی از پایگاه داده طراحی شده است: انتخاب کنید ( انتخاب کنید ، اضافات ( درج کنید )، تغییرات ( به روز رسانی ) و حذف ( حذف ) داده های جداول. این عملگرها (فرمان‌ها) می‌توانند شامل عباراتی، از جمله آنهایی که محاسبه می‌شوند، و همچنین پرسش‌های فرعی - پرس‌و‌جوهای موجود در پرس‌وجوی دیگر باشند. به طور کلی، یک عبارت پرس و جو می تواند آنقدر پیچیده باشد که شما نمی توانید فوراً بگویید چه کاری انجام می دهد. با این حال، یک پرس و جو پیچیده را می توان از نظر ذهنی به بخش هایی تقسیم کرد که تجزیه و تحلیل آنها آسان تر است. به طور مشابه، پرس و جوهای پیچیده از عبارات نسبتاً قابل درک (عبارات فرعی) ساخته می شوند.

    · DDL (زبان تعریف داده - زبان تعریف داده ) برای ایجاد، تغییر و حذف جداول و کل پایگاه داده طراحی شده است. نمونه هایی از عبارات موجود در DDL هستند ایجاد جدول (ایجاد جدول)،" ایجاد نمای (ایجاد نمای) SHEMA را ایجاد کنید (ایجاد طرحواره) جدول تغییرات (تغییر جدول) رها کردن (حذف) و غیره

    · DCL (زبان کنترل داده - زبان مدیریت داده ) برای محافظت از پایگاه داده در برابر انواع آسیب طراحی شده است. DBMS به طور خودکار برخی از داده ها را محافظت می کند. با این حال، در برخی موارد، اقدامات اضافی ارائه شده توسط DCL باید در نظر گرفته شود.