آنچه با استفاده از زبان sql امکان پذیر است. SQL: یک زبان جهانی برای کار با پایگاه های داده

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

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

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

پایگاه داده چیست

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

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

SQL چیست

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

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

باید ابزار خاصی برای این کار وجود داشته باشد و در اینجا SQL به کمک ما می آید که ابزاری است که داده ها با آن دستکاری می شوند ( ایجاد، بازیابی، حذف و غیره) در پایگاه داده

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

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

مطالب مفید در مورد موضوع:

  • ایجاد پایگاه داده در Microsoft SQL Server - دستورالعمل برای مبتدیان.
  • افزودن داده به جداول در مایکروسافت SQL Server - عبارت INSERT INTO.

DBMS چیست؟

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

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

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

این دقیقاً ساز است DBMS یک سیستم مدیریت پایگاه داده است، به اختصار DBMS نامیده می شود.

چه نوع DBMS وجود دارد؟

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

در بین همه، از نظر قابلیت ها و محبوبیت، سیستم های زیر را می توان متمایز کرد:

  • مایکروسافت SQL Serverیک سیستم مدیریت پایگاه داده از مایکروسافت است. در بخش شرکت ها، به ویژه در شرکت های بزرگ، بسیار محبوب است. و این فقط یک DBMS نیست - مجموعه کاملی از برنامه‌های کاربردی است که به شما امکان می‌دهد داده‌ها را ذخیره و اصلاح کنید، آن‌ها را تجزیه و تحلیل کنید، این داده‌ها را ایمن کنید و خیلی چیزهای دیگر.
  • پایگاه داده اوراکلیک سیستم مدیریت پایگاه داده از Oracle است. همچنین یک DBMS بسیار محبوب است، همچنین در بین شرکت های بزرگ. از نظر قابلیت ها و عملکرد، پایگاه داده Oracle و Microsoft SQL Server قابل مقایسه هستند، بنابراین آنها رقبای جدی یکدیگر هستند و هزینه نسخه های کامل آنها بسیار بالا است.
  • MySQLیک سیستم مدیریت پایگاه داده نیز از اوراکل است، اما فقط آن به صورت رایگان توزیع می شود. MySQL در بخش اینترنت محبوبیت بسیار زیادی به دست آورده است. تقریباً تمام سایت‌های موجود در اینترنت بر روی MySQL اجرا می‌شوند، به عبارت دیگر، بیشتر سایت‌های موجود در اینترنت از این DBMS به عنوان وسیله‌ای برای ذخیره داده‌ها استفاده می‌کنند.
  • PostgreSQL– این سیستم مدیریت پایگاه داده نیز رایگان است و بسیار پرطرفدار و کاربردی است.

مطالب مفید در مورد موضوع:

  • نصب Microsoft SQL Server 2016 Express - نمونه ای از نصب نسخه رایگان Microsoft SQL Server در ویندوز.
  • نصب Microsoft SQL Server 2017 Express در سرور اوبونتو - نمونه ای از نصب نسخه رایگان Microsoft SQL Server در لینوکس.
  • نصب PostgreSQL 11 در ویندوز - نمونه ای از نصب PostgreSQL در ویندوز.
  • نصب MySQL در ویندوز - مثال نصب MySQL در ویندوز.
  • نصب و پیکربندی MySQL در Linux Mint - نمونه ای از نصب MySQL در لینوکس.
  • نصب Oracle Database Express Edition 11g - نمونه ای از نصب نسخه رایگان Oracle در ویندوز ( این مقاله خیلی وقت پیش نوشته شده است، اما همچنان مفید خواهد بود).

گویش های SQL (پسوندهای SQL)

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

در اینجا چند گویش SQL آورده شده است:

  • Transact-SQL(به اختصار T-SQL) - در Microsoft SQL Server استفاده می شود.
  • PL/SQL(زبان رویه ای / زبان پرس و جوی ساختاریافته) - در پایگاه داده اوراکل استفاده می شود.
  • PL/pgSQL(زبان رویه ای/زبان پرس و جوی ساختاریافته PostGres) – در PostgreSQL استفاده می شود.

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

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

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

توجه داشته باشید! این یک پرس و جو ساده SQL برای بازیابی داده ها از یک جدول، خروجی دو ستون است.

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

مثلا من شخصا در زبان T-SQL تخصص دارم و بر همین اساس بیش از 8 سال است که با Microsoft SQL Server کار می کنم!

اگرچه، البته، من در یک زمان با سایر DBMS ها نیز کار کردم، یکی از آنها با PostgreSQL کار می کرد و دومی، احتمالاً قبلاً واضح است، با مایکروسافت SQL Server.

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

من تمام تجربیات انباشته شده خود را در زبان T-SQL در یک مکان گروه بندی کرده ام و آن را در قالب کتاب قرار داده ام، بنابراین اگر تمایل به یادگیری زبان Transact-SQL (T-SQL) دارید، خواندن کتاب های من را توصیه می کنم:

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

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

دستورات اولیه SQL که هر برنامه نویسی باید بداند

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

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

راه اندازی پایگاه داده برای مثال

یک پایگاه داده برای نشان دادن نحوه کار تیم ها ایجاد کنید. برای کار، باید دو فایل را دانلود کنید: DLL.sql و InsertStatements.sql. پس از آن، یک ترمینال را باز کنید و با استفاده از دستور زیر وارد کنسول MySQL شوید (مقاله فرض می کند که MySQL قبلاً روی سیستم نصب شده است):

Mysql -u root -p

سپس رمز عبور خود را وارد کنید.

دستور زیر را اجرا کنید. بیایید پایگاه داده را "دانشگاه" بنامیم:

ایجاد پایگاه داده دانشگاه؛ دانشگاه USE; منبع ; منبع

دستورات کار با پایگاه داده

1. مشاهده پایگاه داده های موجود

نمایش پایگاه های داده؛

2. یک پایگاه داده جدید ایجاد کنید

ایجاد پایگاه داده؛

3. انتخاب یک پایگاه داده برای استفاده

استفاده کنید ;

4. دستورات SQL را از یک فایل .sql وارد کنید

منبع ;

5. دیتابیس را حذف کنید

رها کردن پایگاه داده ;

کار با جداول

6. جداول موجود در پایگاه داده را مشاهده کنید

نمایش جداول.

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

ایجاد جدول ( , , کلید اولیه ( )، کلید خارجی ( ) منابع ());

محدودیت های یکپارچگی هنگام استفاده از CREATE TABLE

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

  • یک سلول جدول نمی تواند مقدار NULL داشته باشد.
  • کلید اصلی - کلید اصلی (col_name1, col_name2, ...) ;
  • کلید خارجی - کلید خارجی (col_namex1، ...، col_namexn) منابع جدول_نام (col_namex1، …، col_namexn) .

شما می توانید بیش از یک کلید اصلی را مشخص کنید. در این صورت یک کلید اولیه ترکیبی دریافت خواهید کرد.

مثال

یک جدول "معلم" ایجاد کنید:

CREATE TABLE instructor (ID CHAR(5)، نام VARCHAR(20) NOT NULL، dept_name VARCHAR(20)، حقوق NUMERIC(8،2)، PRIMARY KEY (ID)، FOREIGN KEY (dept_name) REFERENCES Department(dept_name));

8. اطلاعات جدول

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

توصیف کردن ;

9. افزودن داده ها به جدول

درج کنید (, , ، ...) ارزش های ( , , , …);

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

درج کنید ارزش های ( , , , …);

10. به روز رسانی داده های جدول

به روز رسانی تنظیم = , = ، ... جایی که ;

11. حذف تمام داده ها از جدول

حذف از ;

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

میز رها کردن ;

دستورات ایجاد پرس و جو

13. انتخاب کنید

SELECT برای بازیابی داده ها از یک جدول خاص استفاده می شود:

انتخاب کنید , ، … از جانب ;

دستور زیر می تواند تمام داده های جدول را نمایش دهد:

SELECT * FROM ;

14. SELECT DISTINCT

ستون های جدول ممکن است حاوی داده های تکراری باشند. از SELECT DISTINCT فقط برای بازیابی داده های غیر تکراری استفاده کنید.

متمایز را انتخاب کنید , ، … از جانب ;

15. کجا

می توانید از کلمه کلیدی WHERE در SELECT برای تعیین شرایط در یک پرس و جو استفاده کنید:

انتخاب کنید , ، … از جانب جایی که ;

شرایط زیر را می توان در درخواست مشخص کرد:

  • مقایسه متن;
  • مقایسه مقادیر عددی؛
  • عملگرهای منطقی AND (and)، OR (یا) و NOT (نفی).

مثال

دستورات زیر را امتحان کنید. به شرایط مشخص شده در WHERE توجه کنید:

انتخاب * از دوره آموزشی WHERE dept_name='Comp. علمی.'; SELECT * FROM course WHERE واحدهای>3; SELECT * FROM course WHERE dept_name="Comp. Sci." و اعتبار>3;

16. گروه توسط

عملگر GROUP BY اغلب با توابع جمعی مانند COUNT، MAX، MIN، SUM و AVG برای گروه بندی مقادیر خروجی استفاده می شود.

انتخاب کنید , ، … از جانب دسته بندی بر اساس ;

مثال

بیایید تعداد دروس هر دانشکده را نمایش دهیم:

COUNT(course_id)، dept_name FROM دوره GROUP BY dept_name را انتخاب کنید.

17. داشتن

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

انتخاب کنید , ، ... از جانب دسته بندی بر اساس داشتن

مثال

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

COUNT(course_id)، dept_name FROM course GROUP BY dept_name HAVING COUNT(course_id)>1;

18. سفارش توسط

ORDER BY برای مرتب سازی نتایج پرس و جو به ترتیب نزولی یا صعودی استفاده می شود. ORDER BY به ترتیب صعودی مرتب می شود مگر اینکه ASC یا DESC مشخص شده باشد.

انتخاب کنید , ، … از جانب سفارش توسط , , …ASC|DESC;

مثال

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

انتخاب * از دوره ترتیب بر اساس واحد. SELECT * FROM دوره ترتیب بر اساس واحد DESC.

19. بین

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

انتخاب کنید , ، … از جانب جایی که بین و ;

مثال

بیایید لیستی از مربیانی که حقوق آنها بیش از 50000، اما کمتر از 100000 است را نمایش دهیم:

انتخاب * از مربی که در آن حقوق بین 50000 و 100000;

20. لایک کنید

عملگر LIKE در WHERE برای تعیین یک الگوی جستجو برای مقدار مشابه استفاده می شود.

دو عملگر رایگان وجود دارد که در LIKE استفاده می شود:

  • % (هیچ، یک یا چند کاراکتر)؛
  • _ (یک شخصیت).
انتخاب کنید , ، … از جانب جایی که پسندیدن ;

مثال

بیایید لیستی از دوره هایی که نام آنها حاوی "to" است و لیستی از دوره هایی که نام آنها با "CS-" شروع می شود را نمایش دهیم:

انتخاب * از دوره آموزشی WHERE عنوان LIKE '%to%'; SELECT * FROM course WHERE course_id LIKE "CS-___";

21. در

با استفاده از IN می توانید چندین مقدار را برای عبارت WHERE مشخص کنید:

انتخاب کنید , ، … از جانب جایی که که در ( , , …);

مثال

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

SELECT * FROM student WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. بپیوندید

JOIN برای پیوند دادن دو یا چند جدول با استفاده از ویژگی های رایج در آنها استفاده می شود. تصویر زیر راه های مختلف برای پیوستن به SQL را نشان می دهد. به تفاوت بین اتصال بیرونی چپ و اتصال بیرونی راست توجه کنید:

انتخاب کنید , ، … از جانب پیوستن بر = ;

مثال 1

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

انتخاب * از دوره به بخش عضویت در course.dept_name=department.dept_name;

مثال 2

ما لیستی از تمام دوره های مورد نیاز و جزئیات مربوط به آنها را نمایش خواهیم داد:

SELECT prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTER JOIN دوره ON prereq.course_id=course.course_id;

مثال 3

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

SELECT course.course_id, title, dept_name, credits, prereq_id FROM prereq RIGHT OUTER JOIN course ON prereq.course_id=course.course_id;

23. مشاهده کنید

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

ایجاد

ایجاد نمای AS SELECT , ، … از جانب جایی که ;

حذف

نمایش رها کردن ;

مثال

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

24. توابع جمع

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

  • COUNT (col_name) - تعداد ردیف ها را برمی گرداند.
  • SUM (col_name) - مجموع مقادیر موجود در این ستون را برمی گرداند.
  • AVG (col_name) - مقدار متوسط ​​یک ستون معین را برمی گرداند.
  • MIN (col_name) - کوچکترین مقدار یک ستون معین را برمی گرداند.
  • MAX (col_name) - بزرگترین مقدار یک ستون معین را برمی گرداند.

25. سوالات فرعی تو در تو

پرسش‌های فرعی تودرتو، عبارت‌های جستجوی SQL هستند که شامل عبارت‌های SELECT، FROM، و WHERE هستند که در یک پرس‌وجو دیگر تودرتو هستند.

مثال

بیایید دوره هایی را پیدا کنیم که در پاییز 2009 و بهار 2010 تدریس شدند:

SELECT DISTINCT course_id FROM section WHERE semester = 'Fall' AND year= 2009 AND course_id IN (SELECT course_id FROM section WHERE semester = 'Spring' AND year= 2010);

برای شروع مطالعه SQLابتدا باید بدانیم پایگاه داده چیست.

1. پایگاه داده چیست؟

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

2. SQL چیست

پس بیایید به ادامه مطلب برویم SQL.

SQLیک زبان برنامه نویسی ساده است که دستورات کمی دارد و هر کسی می تواند آن را یاد بگیرد. مخفف زبان پرس و جو ساختاریافتهیک زبان پرس و جو ساخت یافته است که برای کار با آن طراحی شده است DBیعنی دریافت/افزودن/تغییر داده ها، توانایی پردازش حجم زیادی از اطلاعات و به دست آوردن سریع اطلاعات ساختاریافته و گروه بندی شده. گزینه های زبان زیادی وجود دارد SQL، اما همه آنها دستورات اولیه یکسانی دارند. تعداد زیادی نیز وجود دارد DBMS، اما اصلی ترین آنها عبارتند از: Microsoft Access، Microsoft SQL Server، MySQL، Oracle SQL، IBM DB2 SQL، PostgreSQL و Sybase Adaptive Server SQL. برای کار با SQLکد، ما به یکی از موارد بالا نیاز داریم DBMS. برای آموزش استفاده خواهیم کرد Microsoft Access DBMS.

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

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

  • مبانی پایگاه داده رابطه ای

    در این فصل... | سازماندهی اطلاعات | پایگاه داده چیست | DBMS چیست | مقایسه مدل های پایگاه داده | پایگاه داده رابطه ای چیست؟

  • مبانی SQL

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

  • اجزای SQL

    در این فصل... | ایجاد پایگاه های اطلاعاتی | پردازش داده | حفاظت از پایگاه داده | SQL زبانی است که به طور خاص برای ایجاد و نگهداری داده ها در پایگاه داده های رابطه ای طراحی شده است. و اگرچه شرکت‌هایی که سیستم‌هایی را برای مدیریت چنین پایگاه‌های اطلاعاتی ارائه می‌کنند، پیاده‌سازی‌های خود را از SQL ارائه می‌کنند، توسعه زبان خود توسط استاندارد ISO/ANSI تعیین و کنترل می‌شود.

  • ایجاد و نگهداری یک پایگاه داده ساده

    در این فصل... | با استفاده از ابزار RAD یک جدول از پایگاه داده ایجاد، اصلاح و حذف کنید. | ایجاد، تغییر و حذف جدول از پایگاه داده با استفاده از SQL. | انتقال پایگاه داده به DBMS دیگر.

  • ایجاد یک پایگاه داده رابطه ای چند جدولی

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

  • دستکاری داده ها از پایگاه داده

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

  • تعریف ارزش ها

    در این فصل... | استفاده از متغیرها برای کاهش کدگذاری اضافی | بازیابی اطلاعات مکرر درخواستی واقع در فیلد جدول پایگاه داده | ترکیب مقادیر ساده برای ایجاد عبارات مرکب | این کتاب به طور مداوم بر اهمیت ساختار یک پایگاه داده برای حفظ یکپارچگی پایگاه داده تأکید می کند.

  • عبارات پیچیده با معنی

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

  • "هدف گذاری" به داده های مورد نیاز

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

  • اپراتورهای رابطه ای

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

  • استفاده از پرس و جوهای تودرتو

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

  • پرس و جوهای بازگشتی

  • ایمن سازی پایگاه داده

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

  • حفاظت از داده ها

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

  • استفاده از SQL در برنامه های کاربردی

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

  • ODBC و JDBC

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

  • SQL:2003 و XML

    در این فصل... | استفاده از SQL با XML | XML، پایگاه داده و اینترنت | یکی از مهم‌ترین ویژگی‌های جدید SQL:2003 پشتیبانی آن از فایل‌های زبان نشانه‌گذاری توسعه‌پذیر (XML) است که به طور فزاینده‌ای به استاندارد جهانی برای تبادل داده‌ها بین پلتفرم‌های متفاوت تبدیل می‌شوند.

  • نشانگرها

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

  • در دو مقاله قبلی این مجموعه که در شماره های 6 و 7 مجله ما منتشر شد، مکانیسم های مختلف دسترسی به داده ها از جمله ADO، BDE و جایگزین های آنها را بررسی کردیم. اکنون می دانیم که چگونه یک فناوری دسترسی به داده را برای یک جفت خاص "DBMS - ابزار توسعه" انتخاب کنیم.

    با فناوری دسترسی به داده‌ها، در نهایت می‌توانیم به این فکر کنیم که چگونه خود داده‌ها و ابرداده‌ها باید دستکاری شوند. روش های دستکاری می تواند مختص یک DBMS معین (به عنوان مثال، استفاده از اشیاء در بخش مشتری این DBMS برای دسترسی به اشیاء پایگاه داده) یا مکانیزم دسترسی داده شده باشد. با این وجود، یک روش کم و بیش جهانی برای دستکاری داده ها وجود دارد که تقریباً توسط تمام DBMS های رابطه ای سرور و بیشتر مکانیسم های دسترسی جهانی به داده ها (از جمله زمانی که در ارتباط با DBMS های دسکتاپ استفاده می شود) پشتیبانی می شود. این روش برای استفاده از زبان SQL (Structured Query Language) است. در زیر هدف و ویژگی های این زبان را بررسی خواهیم کرد و همچنین نحوه استفاده از آن برای استخراج و خلاصه کردن داده ها، افزودن، حذف و اصلاح رکوردها، محافظت از داده ها از دسترسی غیرمجاز و ایجاد پایگاه داده را یاد خواهیم گرفت. برای مطالعه دقیق‌تر SQL، می‌توانیم کتاب‌های مارتین گرابر «مقدمه‌ای بر SQL» (M., Laurie, 1996) و «SQL» را توصیه کنیم. راهنمای مرجع» (م.، لری، 1376).

    معرفی

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

    زبان SQL در اوایل دهه 70 در نتیجه یک پروژه تحقیقاتی IBM ایجاد شد که هدف آن ایجاد زبانی برای دستکاری داده های رابطه ای بود. در ابتدا SEQUEL (زبان جستجوی ساختار یافته انگلیسی)، سپس SEQUEL/2 و سپس به سادگی SQL نامیده می شد. استاندارد رسمی SQL توسط ANSI (موسسه استانداردهای ملی آمریکا، ایالات متحده آمریکا) در سال 1986 منتشر شد (این رایج ترین پیاده سازی SQL امروزی است). این استاندارد در سال 1989 و 1992 گسترش یافت، بنابراین آخرین استاندارد SQL SQL92 نامیده می شود. در حال حاضر کار بر روی استاندارد SQL3 که حاوی برخی پسوندهای شی گرا است در حال انجام است.

    سه سطح از انطباق ANSI وجود دارد - مبتدی، متوسط ​​و کامل. بسیاری از فروشندگان DBMS سرور، مانند IBM، Informix، Microsoft، Oracle و Sybase، از پیاده سازی های SQL خود بر اساس استاندارد ANSI (حداقل سطح اولیه انطباق با استاندارد) و حاوی برخی از برنامه های افزودنی خاص DBMS استفاده می کنند.

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

    نحوه کار SQL

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

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

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

    زبان تعریف داده (DDL)

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

    میز 1

    اپراتور

    شرح

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

    برای حذف جدول از پایگاه داده استفاده می شود

    برای تغییر ساختار جدول موجود استفاده می شود

    برای افزودن نمای جدید به پایگاه داده استفاده می شود

    برای حذف نما از پایگاه داده استفاده می شود

    برای ایجاد یک نمایه برای یک فیلد مشخص استفاده می شود

    برای حذف فهرست موجود استفاده می شود

    برای ایجاد یک طرحواره جدید در پایگاه داده استفاده می شود

    برای حذف یک طرحواره از پایگاه داده استفاده می شود

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

    برای تعریف مجدد دامنه استفاده می شود

    برای حذف دامنه از پایگاه داده استفاده می شود

    زبان دستکاری داده ها (DML)

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

    جدول 2

    دستور SELECT گاهی اوقات در یک دسته جداگانه به نام Data Query Language (DQL) طبقه بندی می شود.

    زبان کنترل مکان نما (CCL)

    دستورات زبان کنترل مکان نما برای تعریف مکان نما، آماده سازی دستورات SQL برای اجرا و چندین دستور دیگر استفاده می شود. اظهارات CCL در جدول ارائه شده است. 5.

    جدول 5

    اپراتور

    شرح

    برای تعیین مکان نما برای درخواست استفاده می شود

    برای توصیف طرح پرس و جو استفاده می شود. این عبارت یک پسوند SQL برای Microsoft SQL Server 7.0 است. اجرای آن در سایر DBMS ها الزامی نیست. به عنوان مثال، در مورد اوراکل، باید از عبارت EXPLAIN PLAN استفاده شود

    برای باز کردن مکان نما هنگام دریافت نتایج پرس و جو استفاده می شود

    برای دریافت یک رشته از نتایج پرس و جو استفاده می شود

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

    برای آماده سازی یک دستور SQL برای اجرا استفاده می شود

    برای اجرای دستور SQL استفاده می شود

    برای توصیف درخواست آماده شده استفاده می شود

    تمام دستورات SQL دارای شکل نشان داده شده در شکل هستند. 2.

    هر دستور SQL با یک فعل شروع می شود، که یک کلمه کلیدی است که مشخص می کند دستور چه کاری انجام می دهد (SELECT، INSERT، DELETE...). این عبارت همچنین حاوی جملاتی است که حاوی اطلاعاتی در مورد اینکه عملیات بر روی چه داده هایی انجام می شود. هر بند با یک کلمه کلیدی مانند FROM، WHERE و غیره شروع می شود. ساختار عبارت به نوع آن بستگی دارد - برخی از بندها حاوی نام جدول یا فیلد هستند، برخی ممکن است حاوی کلمات کلیدی، ثابت یا عبارات اضافی باشند.

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

    همه DBMS های سرور مدرن (و همچنین بسیاری از DBMS های دسکتاپ محبوب) دارای ابزارهایی هستند که به شما امکان می دهند یک دستور SQL را اجرا کنید و نتیجه آن را مشاهده کنید. به طور خاص، بخش مشتری Oracle شامل ابزار SQL Plus و Microsoft SQL Server شامل ابزار SQL Query Analyzer است. این ابزار است که ما از آن برای نشان دادن قابلیت‌های SQL استفاده می‌کنیم و به عنوان پایگاه داده‌ای که روی آن «آزمایش» خواهیم کرد، پایگاه داده NorthWind را که در بسته Microsoft SQL Server 7.0 موجود است، در نظر می‌گیریم. در اصل، شما می توانید از پایگاه داده دیگری و هر ابزار دیگری استفاده کنید که بتواند دستورات SQL را در این پایگاه داده اجرا کند و نتایج را نمایش دهد (یا حتی با استفاده از هر ابزار توسعه - Visual Basic، Delphi، C++Builder، و غیره، خود را بنویسید). با این حال، توصیه می شود برای هر موردی از این پایگاه داده نسخه پشتیبان تهیه کنید.

  • اشتراک گذاری