
تعریف کلی پرس و جو در MySQL با هاست جدید: پایگاه داده یکی از اجزای مهم و اصلی بسیاری از برنامه ها و وب سایت ها می باشد. به عبارت دیگر پایگاه داده هاب مرکزی برای ذخیره داده ها در سرور و تبادل اطلاعات از طریق اینترنت است. یکی از مهم ترین ویژگی های مدیریت پایگاه داده، وظیفه بازیابی داده ها از پایگاه داده است. راه های زیادی برای بازیابی اطلاعات از پایگاه داده وجود دارد. بله، اما یکی از رایج ترین آنها ارائه پرس و جو از طریق خط فرمان است. در سیستم های مدیریت پایگاه داده رابطه ای، پرس و جو هر فرمانی است که داده ها را از یک جدول فراخوانی می کند. در زبان پرس و جو ساختاریافته (SQL)]پرس و جوها اغلب با استفاده از عبارت SELECT انجام می شوند.
در این درس، ما در مورد پرس و جوهای SQL و برخی از توابع و عملگرهای رایج صحبت می کنیم. ما در مورد آن صحبت خواهیم کرد ما همچنین می خواهیم ساخت پرس و جوهای SQL را با استفاده از داده های نمونه در پایگاه داده MySQL تمرین کنیم.
پیش نیازها
به طور کلی، دستورات و مفاهیم ارائه شده در این درس را می توان در هر سیستم عامل مبتنی بر لینوکس که نرم افزار پایگاه داده SQL را اجرا می کند، استفاده کرد. برای نصب این برنامه به موارد زیر نیاز دارید:
- ما به یک سیستم Ubuntu 18.04 یا سرور مجازی به عنوان زیرکاربر با دسترسی sudo نیاز داریم.
- برنامه MySQL روی این سیستم نصب شده است.
ایجاد یک پایگاه داده نمونه
در تعریف کلی در مورد کوئری ها در MySQL، قبل از اینکه بتوانیم پرس و جو در SQL ایجاد کنیم، باید یک پایگاه داده و چند جدول ایجاد کنیم و سپس جداول را با داده های مورد نیاز پر کنیم. به عنوان مثال، ما سناریوی زیر را برای یک پایگاه داده داریم. اجازه دهید تصور کنیم: شما می خواهید تولد خود را با دوستان خود جشن بگیرید، در همان روز دوستان شما به سالن بولینگ می روند و با یکدیگر رقابت می کنند. و سپس آنها به مکانی می آیند که برای تولد خود رزرو کرده اید. مدتی از جشن می گذرد و شما نتیجه مسابقه بولینگ را از دوستانتان می پرسید. شما برنامه ریزی بهتری برای تولد، غذا، شیرینی و مکان مورد علاقه آنها برای شام می خواهید. به جای نوشتن این اطلاعات در یک نوت بوک، می خواهید آن را در پایگاه داده MySQL ذخیره کنید.
sudo mysql |
برای شروع، یک صفحه جدید با حساب MySQL اصلی خود باز کنید:
توجه: اگر شما sql من طبق دستورالعمل های قبلی اوبونتو 18.04 نصب شده است، ممکن است برای تأیید حساب خود به رمز عبور نیاز داشته باشید. در این حالت می توانید از دستور زیر استفاده کنید sql من شما متصل خواهید شد: |
mysql -u root -p
mysql -u root -p |
سپس پایگاه داده های مورد نیاز را ایجاد کنید:
MySQL> CREATE DATABASE `birthdays`;
این پایگاه داده را انتخاب کنید:
MySQL>USE birthdays;
سپس دو جدول در این پایگاه داده ایجاد کنید. از جدول اول برای یادداشت رکورد دوستان خود در مسابقه بولینگ استفاده کنید.
دستور زیر یک جدول با نام مسابقات و یک ستون با نام آنها، تعداد مسابقات برنده شده است. باعث می شود:
MySQL>CREATE TABLE tourneys (
MySQL> name varchar(30),
MySQL> wins real,
MySQL> best real,
MySQL> size real
MySQL> );
هنگامی که دستور بالا را اجرا می کنید، خروجی به صورت زیر است:
Query OK, 0 rows affected (0.00 sec)
جدولی که ایجاد کردید را با داده های زیر پر کنید:
MySQL> INSERT INTO tourneys (name, wins, best, size)
MySQL> VALUES ('Dolly', '7', '245', '8.5'),
MySQL> ('Etta', '4', '283', '9'),
MySQL> ('Irma', '9', '266', '7'),
MySQL> ('Barbara', '2', '197', '7.5'),
MySQL> ('Gladys', '13', '273', '8');
خروجی شما به این صورت خواهد بود:
Query OK, 5 rows affected (0.01 sec)
Records: 5 Duplicates: 0 Warnings: 0
جدولی با نام هر یک از دوستان خود، تولد، شام و ستون هایی با غذا، مکان و دسر مورد علاقه آنها ایجاد کنید.
MySQL> CREATE TABLE dinners (
MySQL> name varchar(30),
MySQL> birthdate date,
MySQL> entree varchar(30),
MySQL> side varchar(30),
MySQL> dessert varchar(30)
MySQL> );
خروجی فرمان:
Query OK, 0 rows affected (0.01 sec)داده های زیر را در جدولتان وارد کنید :
MySQL> INSERT INTO dinners (name, birthdate, entree, side, dessert)
MySQL> VALUES ('Dolly', '1946-01-19', 'steak', 'salad', 'cake'),
MySQL> ('Etta', '1938-01-25', 'chicken', 'fries', 'ice cream'),
MySQL> ('Irma', '1941-02-18', 'tofu', 'fries', 'cake'),
MySQL> ('Barbara', '1948-12-25', 'tofu', 'salad', 'ice cream'),
MySQL> ('Gladys', '1944-05-28', 'steak', 'fries', 'ice cream');
خروجی فرمان
Query OK, 5 rows affected (0.00 sec)
Records: 5 Duplicates: 0 Warnings: 0
پس از اجرای موفقیت آمیز دستورات بالا، پایگاه داده خود را پیکربندی کرده اید. در قسمت بعدی از ساختار دستور SELECT در کوئری ها استفاده می کنیم.
انتخاب کلمه را تعریف کنید
همانطور که در مقدمه ذکر شد، یک پرس و جو SQL همیشه با یک عبارت SELECT شروع می شود. در کوئری ها از SELECT برای تعیین اینکه کدام ستون های جدول باید در نتیجه نمایش داده شوند استفاده می شود. همه پرس و جوها دارای دستور FROM هستند. که جدول مورد نظر را نشان می دهد.
به طور کلی، کوئری های SQL از روش زیر استفاده می کنند:
MySQL> SELECT
column_to_selectFROM
table_to_selectWHERE
certain_conditions_apply;
برای مثال، دستور زیر ستون Name را در جدول Dinner در خروجی نمایش می دهد:
MySQL> SELECT name FROM dinners;
خروجی فرمان
+---------+
| name |
+---------+
| Dolly |
| Etta |
| Irma |
| Barbara |
| Gladys |
+---------+
۵ rows in set (0.00 sec)
همچنین می توانید با جدا کردن آنها با “,” نام چند ستون را از جدول انتخاب کنید:
MySQL>
SELECT name, birthdate FROM dinners;
خروجی
+---------+------------+
| name | birthdate |
+---------+------------+
| Dolly | ۱۹۴۶-۰۱-۱۹ |
| Etta | ۱۹۳۸-۰۱-۲۵ |
| Irma | ۱۹۴۱-۰۲-۱۸ |
| Barbara | 1948-12-25 |
| Gladys | ۱۹۴۴-۰۵-۲۸ |
+---------+------------+
۵ rows in set (0.00 sec)
در دستور SELECT می توانید تمام ستون های یک جدول را با استفاده از علامت * انتخاب کنید.
MySQL> SELECT * FROM dinners;
خروجی
+---------+------+------+------+
| name | wins | best | size |
+---------+------+------+------+
| Dolly | ۷ | ۲۴۵ | ۸.۵ |
| Etta | ۴ | ۲۸۳ | ۹ |
| Irma | ۹ | ۲۶۶ | ۷ |
| Barbara | ۲ | ۱۹۷ | ۷.۵ |
| Gladys | ۱۳ | ۲۷۳ | ۸ |
+---------+------+------+------+
۵ rows in set (0.00 sec)
دستور WHRER در پرس و جوها برای انتخاب رکوردهایی که شرایط خاصی دارند استفاده می شود. و ردیف هایی را که این وضعیت را ندارند در خروجی نمایش نمی دهد.
به طور معمول، دستور WHRER به صورت زیر استفاده می شود:
MySQL>. . . WHERE
column_name
comparison_operator
value
علامت مقایسه در WHERE ستون انتخاب شده را با یک مقدار مشخص مقایسه می کند. در اینجا برخی از نمادهای مقایسه رایج در SQL آورده شده است. ،
علامت | تعریف |
، | برابری یک مقدار با مقادیر فیلد انتخابی را بررسی می کند |
، | نابرابری یک مقدار را با مقادیر فیلد انتخاب شده بررسی می کند |
< | بررسی می کند که آیا مقداری کمتر از مقادیر فیلد انتخابی است |
، | بررسی می کند که آیا یک مقدار بیشتر از مقادیر فیلد انتخابی است |
، | بررسی می کند که آیا مقداری کمتر یا مساوی با مقادیر موجود در فیلد انتخاب شده است |
، | بررسی می کند که آیا یک مقدار بزرگتر یا مساوی با مقادیر موجود در فیلد انتخاب شده است |
بین | بررسی می کند که آیا بین دو مقدار است یا خیر |
که در | برابری بین چندین مقدار را با یک مقدار بررسی می کند |
حاضر | بررسی می کند که آیا ردیف مورد نظر وجود دارد یا خیر |
پسندیدن | برابری یک عبارت متنی با مقدار یک فیلد را بررسی می کند |
پوچ است | برای دیدن فیلدهای دارای مقادیر بلا استفاده استفاده کنید، |
پوچ نیست | برای دیدن فیلدهایی که ارزش آنها بلا استفاده از آن استفاده نمی شود |
به عنوان مثال، اگر می خواهید اندازه کفش ایرما را پیدا کنید. ما از دستورات زیر استفاده می کنیم:
MySQL> SELECT size FROM tourneys WHERE name="Irma";
خروجی
+------+
| size |
+------+
| ۷ |
+------+
۱ row in set (0.00 sec)
SQL به شما اجازه می دهد تا از کلمات کلیدی و نمادهایی مانند (%) و (_) استفاده کنید که در بندهای WHERE بسیار مفید هستند.
برای مثال پرس و جو در MySQL، ما فرض می کنیم که شما غذای مورد علاقه دوست خود را فراموش کرده اید. اما آیا مطمئن هستید که با حرف T شروع می شود؟ در این حالت از دستور زیر استفاده می کنیم:
MySQL<
SELECT entree FROM dinners WHERE entree LIKE 't%';
خروجی
+--------+
| entree |
+--------+
| tofu |
| tofu |
+--------+
۲ rows in set (0.00 sec)
و بر اساس این خروجی می دانیم که غذایی که فراموش کرده ایم توفو است.
ممکن است جداول یا ستون هایی با نام های طولانی در پایگاه داده خود داشته باشید. در این موارد می توانید با ایجاد نام مستعار با استفاده از دستور as این نام ها را کوتاه کنید.
MySQL< SELECT name AS n, birthdate AS b, dessert AS d FROM dinners;
خروجی
+---------+------------+-----------+
| n | b | d |
+---------+------------+-----------+
| Dolly | ۱۹۴۶-۰۱-۱۹ | cake |
| Etta | ۱۹۳۸-۰۱-۲۵ | ice cream |
| Irma | ۱۹۴۱-۰۲-۱۸ | cake |
| Barbara | 1948-12-25 | ice cream |
| Gladys | ۱۹۴۴-۰۵-۲۸ | ice cream |
+---------+------------+-----------+
۵ rows in set (0.00 sec)
در اینجا از پایگاه داده خواسته ایم که ستون نام را با n، ستون تولد را با b و ستون شیرینی ها را با d نمایش دهد.
مثال هایی که تا به حال حل کرده ایم در مورد دستورات بود. که معمولاً در پرس و جوهای یک پایگاه داده استفاده می شود. اگر می خواهید محاسبه کنید شما به توابع تجمعی نیاز دارید که در بخش بعدی به آنها خواهیم پرداخت.
در پست بعدی پرس و جو در MySQL، توابع جمع را بررسی خواهیم کرد. با ما بمان.
تعریف کلی پرس و جو در MySQL برای اولین بار در نوین نوشته شده است. ظاهر شد.