تسلط بر زبان پرس‌وجوی SQL

مقدمه‌ای بر زبان پرس‌وجوی SQL

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

ما مفاهیم اساسی، انواع داده، عملگرها، کلمات کلیدی و دستورات بنیادی SQL (DDL و DML) را با مثال‌های عملی پوشش خواهیم داد.

انواع داده SQL

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

  • INT: برای اعداد صحیح.
  • DECIMAL(p, s): برای مقادیر عددی دقیق با دقت (p) و مقیاس (s) مشخص.
  • VARCHAR(n): برای داده‌های رشته‌ای با طول متغیر و حداکثر طول n.
  • NVARCHAR(n): مشابه VARCHAR است اما داده‌های یونیکد را ذخیره می‌کند.
  • DATE: تاریخ‌ها را ذخیره می‌کند.
  • DATETIME: تاریخ و زمان را ذخیره می‌کند.
  • BIT: مقادیر بولی (0 یا 1) را ذخیره می‌کند.

عملگرهای SQL

عملگرهای SQL برای تعیین شرط در عبارات SQL و ترکیب چندین شرط استفاده می‌شوند. عملگرهای رایج عبارتند از:

  • عملگرهای ریاضی: +, -, *, /, %
  • عملگرهای مقایسه‌ای: =, != (یا <>), >, <, >=, <=
  • عملگرهای منطقی: AND, OR, NOT, IN, BETWEEN, LIKE

کلمات کلیدی SQL

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

  • SELECT
  • FROM
  • WHERE
  • INSERT
  • UPDATE
  • DELETE
  • CREATE
  • ALTER
  • DROP
  • JOIN
  • GROUP BY
  • ORDER BY

دستورات SQL (DDL و DML)

دستورات SQL به دو دسته زبان تعریف داده (DDL) و زبان دستکاری داده (DML) تقسیم می‌شوند.

CREATE DATABASE

این دستور DDL برای ایجاد یک پایگاه داده جدید استفاده می‌شود. به عنوان مثال، برای ایجاد یک پایگاه داده به نام MyNewDatabase:

CREATE DATABASE MyNewDatabase;
CREATE TABLE

این دستور DDL برای ایجاد یک جدول جدید در یک پایگاه داده استفاده می‌شود. شما نام ستون‌ها، انواع داده آن‌ها و محدودیت‌ها را تعریف می‌کنید. به عنوان مثال، ایجاد جدول Students:

CREATE TABLE Students (
    StudentID INT PRIMARY KEY IDENTITY(1,1),
    FirstName VARCHAR(50) NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    DateOfBirth DATE,
    Email VARCHAR(100) UNIQUE
);

در این مثال، StudentID یک کلید اصلی از نوع عدد صحیح با خاصیت IDENTITY است که به طور خودکار از 1 شروع شده و با گام 1 افزایش می‌یابد. ستون‌های FirstName و LastName نمی‌توانند NULL باشند. Email نیز باید منحصر به فرد باشد.

INSERT INTO

این دستور DML ردیف‌های جدیدی از داده را به یک جدول اضافه می‌کند. برای درج یک دانشجوی جدید در جدول Students:

INSERT INTO Students (FirstName, LastName, DateOfBirth, Email)
VALUES ('Ali', 'Karimi', '2000-01-15', 'ali.karimi@example.com');
SELECT

رایج‌ترین دستور DML که برای بازیابی داده‌ها از یک یا چند جدول استفاده می‌شود.

SELECT پایه: برای بازیابی تمام ستون‌ها و تمام ردیف‌ها از جدول Students:

SELECT * FROM Students;

SELECT با ستون‌های مشخص: برای بازیابی فقط FirstName و LastName:

SELECT FirstName, LastName FROM Students;

بند WHERE: برای فیلتر کردن رکوردها بر اساس یک شرط مشخص استفاده می‌شود. برای انتخاب دانشجویانی که بعد از سال 2000 متولد شده‌اند:

SELECT * FROM Students WHERE DateOfBirth > '2000-12-31';

بند ORDER BY: برای مرتب‌سازی مجموعه نتایج استفاده می‌شود. برای مرتب‌سازی دانشجویان بر اساس LastName به ترتیب صعودی:

SELECT * FROM Students ORDER BY LastName ASC;

بند GROUP BY: ردیف‌هایی که مقادیر یکسانی در ستون‌های مشخص شده دارند را در یک ردیف خلاصه گروه‌بندی می‌کند. اغلب با توابع تجمیعی (مانند COUNT, SUM, AVG) استفاده می‌شود.

JOIN ها: برای ترکیب ردیف‌ها از دو یا چند جدول بر اساس یک ستون مرتبط بین آن‌ها استفاده می‌شوند.

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

CREATE TABLE Courses (
    CourseID INT PRIMARY KEY IDENTITY(1,1),
    CourseName VARCHAR(100) NOT NULL,
    Credits INT
);

سپس، مقداری داده درج کنید:

INSERT INTO Courses (CourseName, Credits)
VALUES ('Database Management', 3), ('Programming Fundamentals', 4);

اکنون، بیایید یک جدول StudentCourses برای پیوند دادن دانشجویان به دروس ایجاد کنیم:

CREATE TABLE StudentCourses (
    StudentID INT FOREIGN KEY REFERENCES Students(StudentID),
    CourseID INT FOREIGN KEY REFERENCES Courses(CourseID),
    EnrollmentDate DATE,
    PRIMARY KEY (StudentID, CourseID)
);

داده‌ها را در StudentCourses درج کنید:

INSERT INTO StudentCourses (StudentID, CourseID, EnrollmentDate)
VALUES (1, 1, '2023-09-01'), (1, 2, '2023-09-01');

INNER JOIN: زمانی که تطابق در هر دو جدول وجود دارد، ردیف‌ها را برمی‌گرداند. برای دریافت نام دانشجویان و دروس ثبت‌نام شده آن‌ها:

SELECT
    S.FirstName,
    S.LastName,
    C.CourseName
FROM
    Students S
INNER JOIN
    StudentCourses SC ON S.StudentID = SC.StudentID
INNER JOIN
    Courses C ON SC.CourseID = C.CourseID;
UPDATE

این دستور DML رکوردهای موجود در یک جدول را تغییر می‌دهد. برای به‌روزرسانی ایمیل علی کریمی:

UPDATE Students
SET Email = 'ali.karimi.new@example.com'
WHERE FirstName = 'Ali' AND LastName = 'Karimi';
DELETE

این دستور DML رکوردهای موجود را از یک جدول حذف می‌کند. برای حذف دانشجوی علی کریمی:

DELETE FROM Students
WHERE FirstName = 'Ali' AND LastName = 'Karimi';
DROP TABLE

این دستور DDL برای حذف یک جدول موجود در پایگاه داده استفاده می‌شود. مراقب باشید، زیرا این عملیات جدول و تمام داده‌های آن را به طور دائمی حذف می‌کند. برای حذف جدول StudentCourses:

DROP TABLE StudentCourses;

من علی دستجردی‌ام؛ عاشق کار با دیتا، از SQL Server تا بیگ‌دیتا و هوش مصنوعی. دغدغه‌ام کشف ارزش داده‌ها و به‌اشتراک‌گذاری تجربه‌هاست. ✦ رزومه من: alidastjerdi.com ✦

عضویت
منو باخبر کن!!!
guest
نام
ایمیل

0 دیدگاه
Inline Feedbacks
دیدن تمامی کامنتها

فوتر سایت

ورود به سایت

sqlyar

هنوز عضو نیستید؟

ورود به سایت

هنوز تبت نام نکردید ؟