استفاده از sql در دسترسی زبان پرس و جو SQL. دستورات اولیه SQL برای تغییر داده ها

مقالات قبلی در مورد این مسائل بحث کردند. فناوری ایجاد ساختار جداول پایگاه داده "sql_training_st.mdb" بر اساس پرس و جوهای SQL در نظر گرفته شده است. علاوه بر این، با استفاده از پرس و جوهای SQL، جداول ACCESS DBMS "sql_training_st.mdb" پر شد.

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

زبان SQL از چهار گروه تشکیل شده است:

  • زبان دستکاری داده ها DML;
  • زبان تعریف داده های DDL;
  • زبان مدیریت داده DCL;
  • زبان کنترل تراکنش TCL

گروه DML شامل چهار نوع اصلی است پرس و جوهای SQL:

  • INSERT - طراحی شده برای افزودن یک یا چند رکورد به انتهای جدول.
  • به روز رسانی - در نظر گرفته شده برای تغییر در حال حاضر سوابق موجوددر ستون های جدول یا تغییرات داده ها در جدول؛
  • DELETE - برای حذف رکوردها از جدول طراحی شده است.
  • SELECT - برای انتخاب داده ها از جداول طراحی شده است.

سه نوع اول پرس‌و‌جوهای SQL (INSERT، UPDATE، DELETE) که به پرس‌وجوهای اصلاحی پایگاه داده مربوط می‌شوند، در صفحه مورد بحث قرار گرفتند.

در این مقاله به پرس و جوهایی برای بازیابی داده ها از جداول پایگاه داده اکسس می پردازیم.

برای بازیابی اطلاعات ذخیره شده در پایگاه داده Access 2003 یا 2007، می توانید از یک کوئری SELECT برای انتخاب داده ها از جداول استفاده کنید.

بیایید پرس و جوی SQL زیر (عبارت SQL) را برای نمونه بنویسیم؛ برای انجام این کار، با اجرای دستور View/SQL Mode حالت SQL را انتخاب کنید. عبارت SQL زیر را از صفحه کلید وارد کنید:

انتخاب کنید *
از دانش آموزان؛

این عبارت از دو بند "SELECT *" و "FROM Students" تشکیل شده است. بند اول شامل یک دستور SELECT و یک شناسه * است ("شناسه *" به معنای فهرست کردن تمام ستون های جدول است). بند دوم حاوی عبارت FROM و شناسه "Students" است.

FROM - جدول Students را تعریف می کند که شامل فیلدهای مشخص شده در عبارت SELECT است. لازم به ذکر است که یک کوئری انتخاب همیشه شامل دو عبارت SELECT و FROM است. بسته به شرایط انتخاب، اپراتورهای دیگری ممکن است در درخواست انتخاب حضور داشته باشند. شکل 1 تصویری از یک درخواست برای بازیابی داده را نشان می دهد.


برنج. 1. پرس و جوی SQL SELECT برای انتخاب داده ها

در این مثال، یک نمونه داده از تمام ستون های جدول Students تولید می شود.

درخواست را با نام "Students-query1" ذخیره کنید. در نتیجه اجرای دستور "ذخیره"، یک شی در "ناحیه ناوبری" ظاهر می شود - "درخواست ها: دانشجویان-درخواست1".

پس از ذخیره درخواست انتخاب، باید این درخواست را با کلیک بر روی نماد “Run” اجرا کنید. نتایج فرمان "Run" در شکل نشان داده شده است. 2.



برنج. 2. انتخاب داده ها از تمام ستون های جدول Students

زبان SQL عملکردهای یک زبان توسعه کامل را ندارد، اما بر دسترسی به داده ها متمرکز است، بنابراین در ابزارهای توسعه برنامه گنجانده شده است. در این صورت نامیده می شود SQL تعبیه شدهاستاندارد زبان SQL توسط پیاده سازی های مدرن زبان های برنامه نویسی زیر پشتیبانی می شود: PL/1، Ada، C، COBOL، Fortran، MUMPS و Pascal.

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

دو روش اصلی برای استفاده از SQL تعبیه شده وجود دارد: استاتیک و پویا.

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

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

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

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



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

شرح و استفاده از مکان نما در SQL به شرح زیر است. در قسمت توصیفی برنامه، متغیری از نوع مکان نما (CURSOR) با آن مرتبط است بیانیه SQL(معمولا با عبارت SELECT). در قسمت اجرای برنامه، مکان نما باز می شود (OPEN<имя курсора», перемещение курсора по записям (FETCI-1 <имя курсора>...)، به دنبال پردازش مناسب و در نهایت بستن مکان نما (CLOSE<имя курсора>).

در DBMS های رابطه ای، برای انجام عملیات بر روی روابط، از دو گروه زبان استفاده می شود که به عنوان مبنای ریاضی خود، زبان های پرس و جوی نظری ارائه شده توسط E. Codd را دارند:

جبر رابطه ای;

حساب رابطه ای

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

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

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

ویژگی های برنامه پرس و جوهای SQL

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

جوین کوئری پرس و جوی است که فیلدها (ستون ها) را از یک یا چند جدول یا پرس و جو در یک فیلد یا ستون واحد در مجموعه نتایج رکوردها ترکیب می کند. به عنوان مثال، شش فروشنده هر ماه فهرستی از موجودی خود را به مدیریت ارائه می دهند. با ایجاد یک جستار پیوستن، می توانید این موجودی ها را در یک مجموعه نتیجه از رکوردها ترکیب کنید و سپس یک پرس و جو جدول ایجاد را بر اساس جستار پیوستن ایجاد کنید.

یک درخواست به سرور، دستورات SQL را از طریق ODBC به یک سرور، به عنوان مثال، مایکروسافت منتقل می کند SQL Server. پرس و جوهای سرور به شما این امکان را می دهد که به جای پیوستن به جداول روی سرور، مستقیماً با آنها کار کنید. نتیجه درخواست به سرور می تواند بارگیری رکوردها یا تغییر داده ها باشد.

یک کوئری کنترلی اشیاء پایگاه داده مانند جداول Access یا SQL Server را ایجاد یا تغییر می دهد.

یک پرسش فرعی از یک عبارت SQL SELECT در داخل یک عبارت انتخاب یا تغییر دیگر تشکیل شده است. این دستورالعمل ها در خط "فیلد" فرم درخواست برای تعریف یک فیلد جدید یا در خط "شرط انتخاب" برای تعریف شرایط انتخاب رشته وارد می شوند. از سوالات فرعی برای انجام موارد زیر استفاده می شود:

بررسی در یک جستجوی فرعی برای وجود برخی نتایج با استفاده از کلمات رزرو شده EXISTS یا NO EXISTS.

جستجوی اصلی را برای هر مقداری که برابر، بزرگتر یا کمتر از مقادیر بازگردانده شده در جستار فرعی است (با استفاده از کلمات رزرو شده ANY، IN یا ALL) جستجو می کند.

ایجاد پرس و جوهای فرعی درون پرس و جوهای فرعی (پرس و جوهای فرعی تودرتو).

زبان SQL در Access می تواند برای توسعه فرم های صفحه نمایش، گزارش ها و همچنین برای ایجاد ماکروها و برنامه های VBA استفاده شود.

ارتباط بین زبان های QBE و SQL

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

در Access، یک پرس و جو می تواند در یکی از سه حالت (حالت) باشد: Design، SQL و Table. حالت طراحی برای توسعه یک پرس و جو جدید از ابتدا (بدون استفاده از Wizards یا ابزارهای دیگر) یا برای تغییر طرح یک پرس و جو موجود استفاده می شود. حالت SQL برای وارد کردن یا مشاهده عبارات SQL استفاده می شود. حالت جدول برای کار با نتایج پرس و جو استفاده می شود.

SQL در فرم ها و گزارش ها

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

SQL در ماکروها

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

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

از میان بسیاری از دستورات ماکرو، دو دستور ماکرو مستقیماً با SQL مرتبط هستند: Run SQL Query (Run SQL) و Open Query (OpenQuery)

دستور ماکرو SQL Query را اجرا کنیدبا استفاده از عبارت SQL مناسب، یک پرس و جو تغییر یا کنترل Access را اجرا می کند. این ماکرو امکان انجام اقدامات در ماکرو را بدون ذخیره پرس و جوها فراهم می کند. همچنین می توانید پرس و جوهای ذخیره شده را با استفاده از ماکرو اجرا کنید.

تغییر درخواست هادستورات SQL هستند که توابع زیر را پیاده سازی می کنند: افزودن (INSERT INTO)، حذف (DELETE)، ایجاد جدول (SELECT...INTO) و به روز رسانی (UPDATE)

درخواست ها را کنترل کنیددستورات SQL هستند که عملکردهای زیر را انجام می دهند: ایجاد جدول (ایجاد جدول)، تغییر جدول (ALTER TABLE)، رها کردن جدول (DROP TABLE)، ایجاد یک فهرست (CREATE INDEX) و رها کردن یک فهرست (DROP INDEX)

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

دستور ماکرو OpenRequestبه شما این امکان را می دهد که یک جستجوی انتخابی یا متقاطع (در حالت های جدول، طراحی و پیش نمایش) باز کنید، یک پرس و جو را برای تغییر یا وارد کردن داده ها اجرا کنید.

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

SQL در برنامه های VBA

VBA مانند ماکروها برای خودکارسازی عملیات تکراری روی اشیاء پایگاه داده Access طراحی شده است.

در Access، راه های زیر برای اجرای برنامه های VBA وجود دارد:

شامل یک برنامه در روند پردازش رویداد.

فراخوانی یک تابع در یک عبارت؛

فراخوانی یک رویه Sub در یک رویه دیگر یا در یک پنجره اشکال زدایی؛

اجرای دستور ماکرو RunCode (RunCode) در ماکرو.

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

بیایید به اجرای یک پرس و جو پایگاه داده با استفاده از دستورات SQL در یک برنامه Visual Basic for Applications نگاه کنیم.

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

راه های زیر برای اجرای پرس و جو وجود دارد:

فراخوانی متد Execute (برای اجرای پرس و جوهای SQL برای تغییرات)؛

ایجاد و اجرای یک شی QueryDef خاص.

استفاده از دستور SQL به عنوان آرگومان برای متد OpenRecordset.

روش OpenRecordset را روی یک شی QueryDef موجود اجرا کنید.

فراخوانی متدهای RunSQL و OpenQuery.

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

شی QueryDefیک تعریف کوئری ذخیره شده در پایگاه داده را نشان می دهد. می توان آن را به عنوان یک دستور SQL کامپایل شده در نظر گرفت.

روش OpenRecordsetبرای باز کردن یک شی از نوع Recordset برای انجام عملیات بعدی روی آن استفاده می شود.

روش RunSQLماکرو را اجرا می کند اجرای پرس و جوی SQLدر برنامه VBA

روش OpenQueryدستور ماکرو OpenQuery را در یک برنامه VBA اجرا می کند. با استفاده از آن، می توانید یک پرس و جو را در حالت صفحه داده، طراحی یا مشاهده باز کنید. این یکی از حالت های زیر را برای کار با داده ها تنظیم می کند: افزودن، تغییر یا فقط خواندن.

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

هر توسعه دهنده وب برای نوشتن پرس و جوهای پایگاه داده باید SQL را بداند. و اگرچه phpMyAdmin لغو نشده است، اما اغلب برای نوشتن SQL سطح پایین لازم است که دستان خود را کثیف کنید.

به همین دلیل ما یک تور کوتاه از اصول اولیه SQL آماده کرده ایم. بیا شروع کنیم!

1. یک جدول ایجاد کنید

دستور CREATE TABLE برای ایجاد جداول استفاده می شود. آرگومان ها باید نام ستون ها و همچنین انواع داده های آنها باشد.

بیایید یک جدول ساده به نام ایجاد کنیم ماه. از 3 ستون تشکیل شده است:

  • شناسه- شماره ماه در سال تقویمی (عدد صحیح).
  • نام- نام ماه (رشته، حداکثر 10 کاراکتر).
  • روزها– تعداد روزهای این ماه (عدد صحیح).

پرس و جوی SQL مربوطه به این صورت است:

CREATE TABLE month (id int، name varchar(10)، days int)؛

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

ماه های جدول را ایجاد کنید (id int، نام varchar(10)، days int، PRIMARY KEY (نام)).

تاریخ و زمان
نوع دادهشرح
تاریخمقادیر تاریخ
زمان قرارمقادیر تاریخ و زمان به دقیقه دقیق است
زمانارزش های زمانی

2. درج ردیف ها

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

روش اول این است که نام ستون هایی که داده ها در آن درج می شوند را مشخص نکنید، بلکه فقط مقادیر را مشخص کنید.

این روش ضبط ساده، اما ناامن است، زیرا هیچ تضمینی وجود ندارد که با گسترش پروژه و ویرایش جدول، ستون‌ها به همان ترتیب قبلی باشند. یک روش امن (و در عین حال دشوارتر) برای نوشتن یک دستور INSERT مستلزم تعیین مقادیر و ترتیب ستون ها است:

در اینجا اولین مقدار در لیست است ارزش هایبا اولین نام ستون مشخص شده و غیره مطابقت دارد.

3. استخراج داده ها از جداول

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

ساده ترین استفاده از دستور SELECT عبارت است از پرس و جوی که تمام ستون ها و ردیف ها را از یک جدول برمی گرداند (مثلاً جدول ها بر اساس نام شخصیت ها):

انتخاب * از "شخصیت ها"

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

گاهی اوقات نمی خواهیم داده هایی را از نه همه ستون های یک جدول دریافت کنیم. برای این کار به جای ستاره (*) باید نام ستون های مورد نظر را که با کاما از هم جدا شده اند بنویسیم.

SELECT ID، نام از ماه

علاوه بر این، در بسیاری از موارد ما می خواهیم نتایج به دست آمده به ترتیب خاصی مرتب شوند. در SQL این کار را با استفاده از ORDER BY انجام می دهیم. می‌تواند یک اصلاح‌کننده اختیاری را بپذیرد - مرتب‌سازی ASC (پیش‌فرض) به ترتیب صعودی یا DESC، مرتب‌سازی به ترتیب نزولی:

شناسه انتخاب کنید، نام از ماه ترتیب بر اساس نام DESC

هنگام استفاده از ORDER BY، مطمئن شوید که آخرین آن در عبارت SELECT باشد. در غیر این صورت یک پیغام خطا نمایش داده می شود.

4. فیلتر کردن داده ها

شما یاد گرفته اید که چگونه ستون های خاصی را از یک پایگاه داده با استفاده از پرس و جوی SQL انتخاب کنید، اما اگر نیاز به بازیابی ردیف های خاصی نیز داشته باشیم، چه؟ بند WHERE در اینجا به کمک می آید و به ما امکان می دهد بسته به شرایط داده ها را فیلتر کنیم.

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

SELECT ID، نام از ماه WHERE روز > 30

5. فیلتر پیشرفته داده ها. عملگرهای AND و OR

قبلاً از فیلتر کردن داده ها با استفاده از یک معیار استفاده می کردیم. برای فیلتر کردن داده های پیچیده تر، می توانید از عملگرهای AND و OR و عملگرهای مقایسه (=,<,>,<=,>=,<>).

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


انتخاب * از آلبوم‌ها ژانر WHERE = "راک" و فروش در میلیون‌ها<= 50 ORDER BY released

6. In/Between/Like

WHERE همچنین از چندین دستور خاص پشتیبانی می کند و به شما امکان می دهد تا به سرعت پرکاربردترین پرس و جوها را بررسی کنید. آن ها اینجا هستند:

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

مثلاً اگر بخواهیم آلبوم هایی را با ترکیدنو روحموسیقی، ما می توانیم از IN ("value1"، "value2") استفاده کنیم.

انتخاب * از آلبوم های سبک WHERE IN ("پاپ"، "روح").

اگر بخواهیم تمام آلبوم های منتشر شده بین سال های 1975 تا 1985 را بدست آوریم، باید بنویسیم:

انتخاب * از آلبوم های WHERE که بین سال های 1975 و 1985 منتشر شد.

7. توابع

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

  • COUNT() - تعداد ردیف ها را برمی گرداند
  • SUM() - مجموع کل یک ستون عددی را برمی گرداند
  • AVG() - میانگین مجموعه ای از مقادیر را برمی گرداند
  • MIN() / MAX() – حداقل/حداکثر مقدار را از یک ستون دریافت می کند

برای دریافت آخرین سال در جدول خود، باید پرس و جوی SQL زیر را بنویسیم:

SELECT MAX (انتشار شده) از آلبوم ها.

8. سوالات فرعی

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

ما می دانیم که چگونه این ستون های خاص را بدست آوریم:

SELECT هنرمند، آلبوم، منتشر شده از آلبوم های FROM;

ما همچنین می دانیم که چگونه اولین سال را بدست آوریم:

SELECT MIN (انتشار شده) از آلبوم.

تنها چیزی که در حال حاضر مورد نیاز است ترکیب دو پرس و جو با استفاده از WHERE است:

SELECT هنرمند، آلبوم، منتشر شده از آلبوم های WHERE منتشر شده = (SELECT MIN(released) FROM albums);

9. اتصال جداول

در پایگاه داده های پیچیده تر، چندین جدول مرتبط با یکدیگر وجود دارد. به عنوان مثال، در زیر دو جدول در مورد بازی های ویدیویی ( بازی های_ویدیویی) و توسعه دهندگان بازی های ویدیویی ( game_developers).


در جدول بازی های_ویدیویییک ستون توسعه دهنده وجود دارد ( developer_id، اما شامل یک عدد صحیح است، نه نام توسعه دهنده. این عدد نشان دهنده شناسه ( شناسه) از توسعه دهنده مربوطه از جدول توسعه دهندگان بازی ( game_developers) به طور منطقی دو لیست را به هم مرتبط می کند و به ما امکان می دهد از اطلاعات ذخیره شده در هر دوی آنها به طور همزمان استفاده کنیم.

اگر بخواهیم پرس و جوی ایجاد کنیم که همه چیزهایی را که باید در مورد بازی ها بدانیم برمی گرداند، می توانیم از یک JOIN داخلی برای پیوند دادن ستون های هر دو جدول استفاده کنیم.

SELECT video_games.name, video_games.genre, game_developers.name, game_developers.country FROM video_games INNER JOIN game_developers ON video_games.developer_id = game_developers.id;

این ساده ترین و رایج ترین نوع JOIN است. چندین گزینه دیگر وجود دارد، اما این موارد در موارد کمتر رایج اعمال می شود.

10. نام مستعار

اگر به مثال قبلی نگاه کنید، متوجه خواهید شد که دو ستون به نام وجود دارد نام. این گیج کننده است، بنابراین بیایید یک نام مستعار برای یکی از ستون های تکراری، مانند این، تنظیم کنیم ناماز روی میز game_developersفراخوانی خواهد شد توسعه دهنده.

همچنین می‌توانیم پرس و جو را با نام مستعار جدول کوتاه کنیم: بازی های_ویدیوییبیا تماس بگیریم بازی ها, game_developers - توسعه دهندگان:

SELECT games.name, games.genre, devs.name AS developer, devs.country FROM video_games AS games INNER JOIN game_developers AS devs ON games.developer_id = devs.id;

11. به روز رسانی داده ها

اغلب ما نیاز به تغییر داده ها در برخی از ردیف ها داریم. در SQL این کار با استفاده از دستور UPDATE انجام می شود. بیانیه UPDATE شامل موارد زیر است:

  • جدولی که مقدار جایگزینی در آن قرار دارد.
  • نام ستون ها و مقادیر جدید آنها؛
  • ردیف‌هایی که با استفاده از WHERE که می‌خواهیم به‌روزرسانی شوند انتخاب شده‌اند. اگر این کار انجام نشود، تمام ردیف های جدول تغییر می کند.

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

داده های جدول tv_series UPDATE tv_series SET ژانر = "درام" WHERE id = 2;

12. حذف داده ها

حذف یک ردیف جدول با استفاده از SQL یک فرآیند بسیار ساده است. تنها کاری که باید انجام دهید این است که جدول و ردیفی را که می خواهید حذف کنید انتخاب کنید. بیایید آخرین ردیف جدول را از مثال قبلی حذف کنیم سریال تلویزیونی. این کار با استفاده از دستور >DELETE انجام می شود.

DELETE FROM tv_series WHERE id = 4

هنگام نوشتن عبارت DELETE مراقب باشید و از وجود عبارت WHERE مطمئن شوید، در غیر این صورت تمام ردیف های جدول حذف می شوند!

13. یک جدول را حذف کنید

اگر می‌خواهیم تمام ردیف‌ها را حذف کنیم اما خود جدول را ترک کنیم، از دستور TRUNCATE استفاده می‌کنیم:

TRUNCATE TABLE table_name;

در صورتی که واقعاً بخواهیم هم داده ها و هم خود جدول را حذف کنیم، دستور DROP برای ما مفید خواهد بود:

DROP TABLE table_name;

بسیار مراقب این دستورات باشید. آنها را نمی توان لغو کرد!/p>

این آموزش SQL ما را به پایان می رساند! چیزهای زیادی وجود دارد که ما پوشش نداده‌ایم، اما آنچه قبلاً می‌دانید باید به اندازه کافی باشد تا مهارت‌های عملی را برای حرفه وب به شما بدهد.

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

به همین دلیل است که اکسس قابلیتی به نام پرس و جو دارد. بیایید ببینیم که چیست، چگونه کار می کند و چه ویژگی هایی دارد.

ایجاد پرس و جو در مایکروسافت اکسس

برای فهمیدن نحوه ایجاد پرس و جو در اکسس، باید اصول کار با DBMS را بدانید.

دو راه برای انجام وجود دارد این رویه:

  • سازنده پرس و جو.
  • جادوگر پرس و جو.

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

راه آسان برای مبتدیان

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

در این حالت، می توانید انواع درخواست های زیر را بشناسید و درک کنید:

  • ساده.
  • صلیب.
  • سوابق بدون زیردستان.
  • ورودی های تکراری

این انتخاب قبلاً در مرحله اول کار با استاد انجام شده است. و در آینده، با پیروی از دستورالعمل های واضح، حتی یک کاربر تازه کار نیز می تواند به راحتی درخواست ایجاد کند. بیایید با انواع آن آشنا شویم.

درخواست ساده

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

درخواست متقاطع

این نوع نمونه گیری پیچیده تر است. برای اینکه بفهمید چگونه در Access با استفاده از "Wizard" در این حالت یک پرسش متقابل ایجاد کنید، باید در پنجره اول روی این تابع کلیک کنید.

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

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

عکس نشان می دهد که درخواست متقاطع ایجاد شده است و این پارامترهای داده شدهاقدامات لازم انجام شده است.

ورودی های تکراری

همانطور که از نام آن پیداست، هدف اصلی این پرس و جو انتخاب تمام سطرهای یکسان در جدول با توجه به پارامترهای مشخص شده است. به نظر می رسد این است:

علاوه بر این، می توانید فیلدهای اضافی را برای مطابقت با چندین خط به طور همزمان انتخاب کنید.

برای انتخاب ورودی های تکراری، باید لیست درخواست ها را گسترش دهید و یک پوشه جدید در آنجا ایجاد کنید. بعد، در پنجره «پرس و جوی جدید»، خط «جستجوی رکوردهای تکراری» را انتخاب کنید. در مرحله بعد باید دستورالعمل های استاد را دنبال کنید.

سوابق بدون زیردستان

این آخرین نوع درخواست موجود در حالت Master - Records without Slaves است.

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

این نوع فقط در مواردی که چندین پایگاه داده وجود دارد مرتبط است.

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

توابع پرس و جو در MS Access

بیایید بفهمیم که چرا باید مراحلی که در بالا توضیح داده شد را انجام دهید. وظیفه همه ساده و پرس و جوهای پیچیده V دسترسی به DBMSبه شرح زیر است:

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

نمونه درخواست

این نوع کار پایگاه داده پیچیده است زیرا به مشارکت چندین جداول نیاز دارد.

لازم است همه جداول دارای فیلدهای کلیدی مشترک باشند. در غیر این صورت عملیات امکان پذیر نخواهد بود.

بیایید نحوه ایجاد یک کوئری انتخابی در Access را مرور کنیم. ابتدا باید یک پرس و جو ساده با انتخاب فیلدهای مورد نیاز ایجاد کنید. در اینجا می توانید داده ها را ویرایش کنید تا به فرم دلخواه در بیاورید. ضمناً تغییرات ایجاد شده به جداول منبع منتقل می شود، بنابراین باید به این نکته توجه شود.

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

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

برای تکمیل عملیات، باید بر روی دکمه "Run" کلیک کنید.

درخواست با پارامترها

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

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

بنابراین، به این سوال که چگونه یک پرس و جو با یک پارامتر در Access ایجاد کنیم، پاسخ ساده است - پارامترهای اولیه را برای انتخاب وارد کنید. برای کار با Designer، باید از Query Wizard استفاده کنید. در آنجا داده های اولیه برای فیلتر ایجاد می شود که به عنوان پایه ای برای کار بیشتر عمل می کند.

جستجوی متقابل پیشرفته

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

برای انجام این کار، روی "Query Builder" - "Cross" کلیک کنید.

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

پرس و جوهای متقاطع ساده ترین راه برای جستجو و بازیابی اطلاعات از چندین منبع داده، به علاوه توانایی تولید نمودارها و نمودارها هستند.

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

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

به طور خلاصه، باید گفت که کاربر باید تصمیم بگیرد که چگونه کوئری ها را در Access ایجاد کند - با استفاده از Wizard یا Designer. اگرچه، برای اکثر افرادی که از MS Access DBMS استفاده می کنند، گزینه اول مناسب تر است. از این گذشته، Wizard تمام کارها را خودش انجام می دهد و تنها چند کلیک ماوس را برای کاربر باقی می گذارد تا شرایط درخواست را انتخاب کند.

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

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

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

ساخت پرس و جوهای انتخاب با شرایط انتخاب

بیایید با استفاده از مثال بازیابی اطلاعات از جدول PRODUCT پایگاه داده تامین کالا به پرس و جوهای انتخاب در Access نگاه کنیم.

مشکل 1. فرض کنید باید تعدادی از ویژگی های یک محصول را با نام آن انتخاب کنید.

  1. برای ایجاد یک پرس و جو در پنجره پایگاه داده، تب ribbon را انتخاب کنید - ایجاد(ایجاد) و در گروه درخواست ها(پرس و جو) روی دکمه کلیک کنید Query Builder(طراحی پرس و جو). یک پنجره درخواست انتخاب خالی در حالت طراحی باز می شود - RequestN(QueryN) و کادر محاوره ای اضافه کردن جدول(نمایش جدول) (شکل 4.2).
  2. در پنجره اضافه کردن جدول(نمایش جدول) جدول PRODUCT را انتخاب کرده و روی دکمه کلیک کنید اضافه کردن(اضافه کردن). جدول انتخاب شده در ناحیه طرح داده پرس و جو نمایش داده می شود. پنجره را ببند اضافه کردن جدول(نمایش جدول) با فشار دادن دکمه بستن(بستن).

در نتیجه اقدامات انجام شده در پنجره طراح پرس و جو (شکل 4.1)، پنل بالاییطرح داده پرس و جو ظاهر می شود که شامل جداول انتخاب شده برای پرس و جو است. در این مورد، یک میز PRODUCT. جدول با لیستی از فیلدها نشان داده می شود. اولین ردیف در لیست فیلدهای جدول که با ستاره (*) مشخص شده است، کل مجموعه فیلدهای جدول را نشان می دهد. پانل پایین یک فرم درخواست است که باید پر شود.

علاوه بر این، یک برگه جدید (ابزارهای پرس و جو | طراحی) روی نوار ظاهر می شود و به طور خودکار فعال می شود (بخشی از این برگه در شکل 4.3 نشان داده شده است) که در آن نوع پرس و جو ایجاد شده با رنگ برجسته شده است - نمونه(انتخاب کنید). بنابراین، به طور پیش فرض، یک پرس و جو انتخاب همیشه ایجاد می شود. دستورات موجود در این برگه ابزارهایی را برای اجرا فراهم می کند اقدامات لازمهنگام ایجاد یک درخواست این تب زمانی که شما در حال ایجاد a هستید باز می شود درخواست جدیدیا موجودی ویرایش می شود.

  1. برای حذف هر جدولی از طرح داده پرس و جو، نشانگر ماوس را روی آن قرار دهید و یک کلید را فشار دهید. برای اضافه کردن - روی دکمه کلیک کنید نمایش جدول(نمایش جدول) در گروه تنظیم پرس و جوبرگه (تنظیم پرس و جو). کار با درخواست ها | سازنده(ابزار کوئری | طراحی) یا دستور را اجرا کنید جدول اضافه کنید(نمایش جدول) در منوی زمینه بر روی نمودار داده درخواست فراخوانی شده است.
  2. در پنجره طراح (شکل 4.4)، فیلدهای NAME_IT، PRICE، AVAILABILITY_IT را از لیست فیلدهای جدول PRODUCT به صورت متوالی به ستون های فرم درخواست داخل ردیف بکشید. رشته(رشته).
  3. برای گنجاندن فیلدهای مورد نظر از جدول در ستون های پرس و جو مربوطه، می توانید از تکنیک های زیر استفاده کنید:
    • در خط اول فرم درخواست رشته(فیلد) روی ماوس کلیک کنید تا دکمه لیست ظاهر شود و فیلد مورد نظر را از لیست انتخاب کنید. لیست شامل فیلدهای جداول نمایش داده شده در طرح داده پرس و جو است.
    • روی نام فیلد جدول در طرح داده پرس و جو دوبار کلیک کنید.
    • برای گنجاندن تمام فیلدهای جدول، می توانید علامت * (ستاره) را در لیست فیلدهای جدول در طرح داده پرس و جو بکشید یا دوبار کلیک کنید.
  4. اگر به طور تصادفی یک فیلد غیر ضروری را روی فرم درخواست کشیدید، آن را حذف کنید. برای انجام این کار، مکان نما را به قسمت برچسب ستون در بالا منتقل کنید، جایی که به عنوان یک فلش سیاه به سمت پایین ظاهر می شود و روی دکمه ماوس کلیک کنید. ستون برجسته خواهد شد. یک کلید را فشار دهید یا یک دستور را اجرا کنید حذف ستون ها(حذف ستون ها) در گروه تنظیم پرس و جو(تنظیم پرس و جو).
  5. در صف خروجی روی نمایشگر(نمایش) فیلدها را بررسی کنید، در غیر این صورت در جدول پرس و جو قرار نخواهند گرفت.
  6. روی خط بنویس شرایط انتخاب(معیارها) نام محصول، همانطور که در فرم درخواست در شکل نشان داده شده است. 4.4. از آنجایی که عبارت در شرط انتخاب شامل عملگر نیست، عملگر = به طور پیش فرض استفاده می شود. در بیان استفاده می شود مقدار متنوارد شده است نقل قول های دوگانه، که به طور خودکار اضافه می شوند.
  7. پرس و جو را با کلیک روی دکمه Run یا دکمه View در گروه Results اجرا کنید. یک پنجره پرس و جو در حالت جدول با ورودی از جدول PRODUCT که شرایط انتخاب مشخص شده را برآورده می کند، روی صفحه ظاهر می شود.

اظهار نظر
پنجره پرس و جو در نمای جدول مشابه پنجره نمای جدول پایگاه داده است. از طریق برخی جداول پرس و جو، می توان تغییراتی در داده های جدول پایه زیر پرس و جو ایجاد کرد. درخواستی که در نمای صفحه داده مشاهده می شود، برخلاف جدول پایگاه داده Access 2010، ستونی ندارد. برای افزودن کلیک کنید(برای افزودن کلیک کنید)، طراحی شده برای تغییر ساختار جدول. در این حالت، روی زبانه روبان خانه(صفحه اصلی) همان دکمه هایی که هنگام باز کردن جدول پایگاه داده در دسترس هستند.

  1. اگر هنگام وارد کردن نام پیچیده محصول اشتباهی انجام دهید، محصول در جدول یافت نمی شود. با استفاده از عملگرهای عام - ستاره (*) و علامت سوال (؟) (استاندارد ANSI-89، برای پرس و جوهای پیش فرض استفاده می شود) یا علامت درصد (%) و زیرخط (_) (ANSI-92، به عنوان استاندارد برای SQL Server توصیه می شود) ، جستجوی رشته های مورد نیاز را ساده می کند و از بسیاری از اشتباهات جلوگیری می کند. به جای نام کامل محصول، Corpus* یا Corpus% را وارد کنید. درخواست را تکمیل کنید. اگر در قسمت نام محصول یک مقدار با کلمه "Case" شروع شود، نتیجه درخواست مانند مورد قبلی خواهد بود. پس از اجرای پرس و جو، عبارت وارد شده با عملگر مانند "Body*" تکمیل می شود. این عملگر به کاراکترهای wildcard اجازه می دهد تا هنگام جستجو در فیلدهای متنی استفاده شوند.
  2. اگر نیاز به یافتن چندین محصول دارید، از عملگر In استفاده کنید. این به شما امکان می دهد برابری را با هر مقدار از لیست که در پرانتز مشخص شده است بررسی کنید. در خط شرایط انتخاب بنویسید ("محافظه MiniTower"؛ "HDD Maxtor 20GB"؛ "FDD 3.5"). جدول پرس و جو سه ردیف را نمایش می دهد. عبارت In اجازه کاراکترهای عام را نمی دهد.
  3. با کلیک بر روی برگه درخواست خود را ذخیره کنید فایل(فایل) و اجرای دستور صرفه جویی(صرفه جویی). در پنجره حفظ(Save As) نام درخواست را وارد کنید Example1. توجه داشته باشید که نام پرس و جو نباید نه تنها با نام پرس و جوهای موجود، بلکه با نام جداول در پایگاه داده همخوانی داشته باشد.
  4. درخواست فعلی را با استفاده از دستور منوی زمینه ببندید بستن(بستن) یا با کلیک بر روی دکمه پنجره پرس و جو بستن(بستن).
  5. یک پرس و جو ذخیره شده را با برجسته کردن پرس و جو در صفحه پیمایش و انتخاب دستور از منوی زمینه اجرا کنید. باز کن(باز کن).
  6. برای ویرایش درخواست، آن را در قسمت ناوبری انتخاب کنید و دستور را در منوی زمینه اجرا کنید سازنده(نمای طراحی).

وظیفه 2.فرض کنید باید کالاهایی را انتخاب کنید که قیمت آنها بیش از 1000 روبل نیست و مالیات بر ارزش افزوده بیش از 10٪ نیست و همچنین کالاهایی را انتخاب کنید که قیمت آنها بیش از 2500 روبل است. نتیجه باید شامل نام محصول (NAIM_TOV)، قیمت آن (PRICE) و مالیات بر ارزش افزوده (RATE_VAT) باشد.

  1. یک کوئری جدید در حالت طراحی ایجاد کنید، جدول PRODUCT را اضافه کنید. در پنجره طراح (شکل 4.5)، فیلدهای NAME_IT، PRICE، RATE_VAT را به ترتیب از لیست فیلدهای جدول PRODUCT به فرم درخواست بکشید.
  2. آن را بنویسید شرایط انتخاب(معیارها)، همانطور که در فرم درخواست در شکل نشان داده شده است. 4.5. یک عملیات AND منطقی بین شرایط نوشته شده در همان خط انجام می شود. یک عملیات OR منطقی بین شرایط نوشته شده در خطوط مختلف انجام می شود.
  3. درخواست را تکمیل کنید، روی دکمه کلیک کنید اجرا کردن(دویدن) در گروه نتایج(نتایج). یک پنجره پرس و جو در حالت جدول با رکوردهایی از جدول PRODUCT که شرایط انتخاب مشخص شده را برآورده می کند، روی صفحه ظاهر می شود.
  4. درخواست را با اجرای دستور مناسب در منوی زمینه درخواست ذخیره کنید که زمانی که مکان نما را روی سربرگ درخواست قرار می دهید فراخوانی می شود. اسمش را بگذار مثال 2.

مشکل 3. فرض کنید باید تمام فاکتورها را برای یک دوره معین انتخاب کنیم. نتیجه باید شامل شماره فاکتور (NOM_NAK)، کد انبار (CODE_SC)، تاریخ ارسال (DATE_SHIP) و هزینه کل کالای ارسال شده (SUMMA_INKL) باشد.

  1. یک کوئری جدید در نمای طراحی ایجاد کنید، جدول INVOICE را اضافه کنید. در پنجره طراح، تمام فیلدهای لازم را از لیست فیلدهای جدول INVOICE به صورت متوالی به فرم درخواست بکشید.
  2. برای فیلد DATE_OTGR در خط شرایط انتخاب(معیارها) بین #01/11/2008# و #03/31/2008# بنویسید. عملگر Between یک بازه تاریخی را مشخص می کند (ANSI-92 به جای علامت # از نقل قول های منفرد استفاده می کند). علاوه بر این، این عملگر به شما اجازه می دهد تا یک فاصله زمانی را برای یک مقدار عددی مشخص کنید.

برای تقویت این موضوع، آموزش ویدیویی را تماشا کنید:

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

مراحل


آنچه شما نیاز خواهید داشت

  • کاربر باید به پایگاه داده سازمان دسترسی داشته باشد
  • کاربر می تواند قبل از اجرای پرس و جو از طریق MS Access با پشتیبانی فناوری تماس بگیرد

اطلاعات مقاله

این صفحه 4443 بار بازدید شده است.

این مقاله به شما کمک کرد؟

دسترسی به DBMS

دسترسی مایکروسافتیک DBMS نوع رابطه ای است که در آن تمام ابزارها و قابلیت های معمولی برای سیستم های مدرنمدیریت پایگاه داده پایگاه داده رابطه ای یافتن، تجزیه و تحلیل، نگهداری و محافظت از داده ها را آسان تر می کند زیرا در یک مکان ذخیره می شوند. اکسس از انگلیسی ترجمه شده به معنای «دسترسی» است. MS Access یکی از قدرتمندترین، منعطف ترین و آسان ترین DBMS ها است. شما می توانید اکثر برنامه ها را بدون نوشتن یک خط برنامه در آن ایجاد کنید، اما اگر نیاز به ایجاد چیزی بسیار پیچیده دارید، MS Access یک زبان برنامه نویسی قدرتمند - Visual Basic Application را ارائه می دهد.

محبوبیت Microsoft Access DBMS به دلایل زیر است:

دسترسی و وضوح به Access اجازه می دهد تا یکی از این موارد باشد بهترین سیستم هاایجاد سریع برنامه های مدیریت پایگاه داده؛

امکان استفاده از تکنولوژی OLE;

ادغام با بسته مایکروسافتدفتر؛

پشتیبانی کامل از فناوری های وب؛

فناوری بصری به شما این امکان را می دهد که دائماً نتایج اقدامات خود را ببینید و آنها را اصلاح کنید.

در دسترس بودن مجموعه بزرگی از "استادها" برای توسعه اشیاء.

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

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

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

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

فرم شیئی است که عمدتاً برای وارد کردن داده، نمایش آن بر روی صفحه یا کنترل عملکرد یک برنامه طراحی شده است.

گزارش شیئی است که برای ایجاد سندی طراحی شده است که می تواند متعاقباً چاپ شود یا در یک سند در برنامه دیگری گنجانده شود.

پایگاه برنامه نویسی توسعه بصری

صفحه - برای دسترسی به داده ها در پایگاه داده فعلی Access استفاده می شود.

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

یک ماژول یک شی حاوی برنامه‌های مایکروسافت ویژوال بیسیک است که به شما امکان می‌دهد یک فرآیند را به اقدامات کوچک‌تر تقسیم کنید و خطاهایی را که با استفاده از ماکروها پیدا نمی‌شوند شناسایی کنید.

DBMS از Start - Programs - Microsoft Access راه اندازی می شود. دستور File - New را اجرا کنید.

رابط کار با اشیاء پایگاه داده یکپارچه است. برای هر یک از آنها، حالت های عملکرد استاندارد ارائه شده است: ایجاد (ایجاد یک ساختار شی). سازنده (تغییر ساختار اشیاء)؛ باز کردن (مشاهده، اجرا - طراحی شده برای کار با اشیاء پایگاه داده).

زبان پرس و جو SQL

SQL (زبان پرس و جو ساختاریافته) از سال 1986. یک زبان پایگاه داده رابطه ای استاندارد است. به طور خاص، در برنامه های Access و Excel استفاده می شود.

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

زبان SQL مجموعه ای از عملگرها است:

عملگرهای زبان تعریف داده (DDL)؛

اپراتورهای دستکاری داده ها (زبان دستکاری داده ها، DML)؛

اپراتورهای تعریف دسترسی به داده (زبان کنترل داده، DCL).

اپراتورهای زبان کنترل تراکنش (TCL).

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

SQL یک زبان غیر رویه ای است. به سادگی آنچه باید انجام شود را اعلام می کند و اجرا به DBMS (سیستم مدیریت پایگاه داده) واگذار می شود.

SQL از منطق سه مقداری استفاده می کند. همراه با مقادیر سنتی بولی TRUE و FALSE، NULL (ناشناخته یا بدون داده) استفاده می شود.

عملیات بر روی کل مجموعه داده ها انجام می شود، نه بر روی عناصر منفرد، مانند سایر زبان های برنامه نویسی.

یک پرس و جو SQL از عبارات تشکیل شده است. هر دستورالعمل می تواند شامل چندین جمله باشد.




بالا