کوئریهای شما باید روی آخرین نسخهی MySQL قابل اجرا باشند.
در تیم مهندسی دیجیکالا، یک سیستم ردهبندی برای سطح مهندسین وجود دارد. امیرحسین که قصد ارتقای درجهی چند نفر از اعضای تیم را دارد، تصمیم گرفته تا سؤالی در خصوص ایندکسهای دیتابیس از آنها بپرسد و مطمئن شود که آنها درک خوبی از دیتابیس دارند. او سؤالات را از قبل آماده کرده، اما فرصت نوشتن پاسخ نمونه برای این سؤالات را ندارد. از شما میخواهیم تا کوئریهای مدنظر امیرحسین را بنویسید.
جزئیات پروژه
دادههای اولیه برای تست نمونه را از این لینک دانلود کنید.
ساختار جداول بهشرح زیر است:
جدول users
: از این جدول برای نگهداری اطلاعات کاربران استفاده میشود. ساختار این جدول بهصورت زیر است:
نام ستون | نوع | تعریف |
---|---|---|
id |
BIGINT(20) |
شناسهی کاربر |
username |
VARCHAR(255) |
نام کاربری |
name |
VARCHAR(255) |
نام کاربر |
password |
VARCHAR(255) |
رمز عبور |
created_at |
TIMESTAMP |
زمان عضویت کاربر |
جدول products
: از این جدول برای نگهداری اطلاعات محصولات استفاده میشود. فرض میشود که هر محصول تنها متعلق به یک دستهبندی است! ساختار این جدول بهصورت زیر است:
نام ستون | نوع | تعریف |
---|---|---|
id |
BIGINT(20) |
شناسهی محصول |
category_id |
BIGINT(20) |
شناسهی دستهبندی محصول |
name |
VARCHAR(255) |
نام محصول |
description |
TEXT |
توضیحات محصول |
price |
DECIMAL(15, 2) |
قیمت محصول |
created_at |
TIMESTAMP |
زمان درج محصول |
توجه داشته باشید که جدول دستهبندیهای محصولات صرفاً جهت سادگی در سؤال نیامده است. نیازی به اطلاعات چنین جدولی نیست.
مطلوبات
کوئریهای خواستهشده از شما، موارد زیر است:
- کوئری ساخت ایندکس جهت بهینهسازی حداکثری سرعت دریافت شناسهی کاربرانی که نامشان با یک رشتهی خاص آغاز میشود:
SELECT id
FROM users
WHERE name LIKE 'Ali%'
- کوئری ساخت ایندکس جهت بهینهسازی حداکثری سرعت دریافت شناسه، نام و قیمت محصولاتی که قیمتشان بین دو عدد مشخص است و مربوط به یک دستهی خاص هستند:
SELECT id, name, price
FROM products
WHERE price > 25000 AND price < 50000000 AND category_id = 5
نکات
- کوئریهای شما باید روی آخرین نسخهی MySQL قابل اجرا باشند.
- کوئری هر بخش باید تنها شامل یک statement باشد.
- هر کوئری امتیاز جداگانه دارد و اگر کوئری یک قسمت را نتوانستید بنویسید، کوئریهایی که حل کردید را بفرستید و قسمت آن کوئری را خالی بگذارید.
- در تست نمونهی این سؤال، فقط کوئری بخش اول تست میشود.
آنچه باید آپلود کنید
پس از طراحی کوئریها، آنها را در قالب زیر در یک فایل با پسوند .sql
آپلود کنید.
-- Section1
Your first query here
-- Section2
Your second query here
ارسال پاسخ برای این سؤال