SEQUENCES در SQL

تیم تحریریه 1403/12/23 0 11
لینک کوتاه https://zoheirsoftware.com/z/e1184737a |
SEQUENCES در SQL,کاربردهای SEQUENCE در پایگاه داده SQL,نحوه ایجاد SEQUENCE در SQL

SEQUENCES در SQL

در SQL، SEQUENCE یک شیء پایگاه داده است که برای تولید مقادیر عددی یکتا و متوالی استفاده می‌شود.

این ویژگی معمولاً برای تولید مقادیر کلید اصلی (Primary Key) یا هر مقدار عددی ترتیبی دیگر در جدول به کار می‌رود.

برخلاف IDENTITY که به یک جدول خاص وابسته است، SEQUENCE مستقل از جداول تعریف شده و می‌تواند در چندین جدول و کوئری مورد استفاده قرار گیرد.

برای ایجاد SEQUENCE از دستور CREATE SEQUENCE استفاده می‌شود که شامل تنظیمات مختلفی مانند مقدار اولیه (START WITH)، گام افزایش (INCREMENT BY) و محدوده مقدار (MINVALUE و MAXVALUE) است.

پس از ایجاد SEQUENCE، مقدار بعدی آن را می‌توان با NEXT VALUE FOR در SQL Server یا NEXTVAL در PostgreSQL و Oracle دریافت کرد.

همچنین، مقدار فعلی SEQUENCE با CURRVAL در برخی پایگاه‌های داده قابل دسترسی است.

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

در صورت نیاز، می‌توان مقدار SEQUENCE را با ALTER SEQUENCE تغییر داد یا با DROP SEQUENCE آن را حذف کرد.

 

SEQUENCES در SQL

کاربردهای SEQUENCE در پایگاه داده SQL

از SEQUENCEها معمولاً برای اهداف زیر استفاده می‌شود:

  • تولید شناسه‌های منحصر به فرد

    در جداولی که نیاز به داشتن Primary Key یا شناسه‌های یکتا دارند، SEQUENCE یک گزینه عالی است.
  • تولید شماره سریال‌ها

    برای تولید شماره سریال‌های منحصر به فرد برای محصولات یا خدمات.
  • گزارش‌گیری و تحلیل‌ها

    در برخی مواقع برای تخصیص شماره به گزارش‌ها یا تسک‌ها از SEQUENCE استفاده می‌شود.

 

کاربردهای SEQUENCE در پایگاه داده SQL

 

نحوه ایجاد SEQUENCE در SQL

در SQL، برای ایجاد یک SEQUENCE از دستور CREATE SEQUENCE استفاده می‌شود.

در اینجا مثالی از نحوه ایجاد یک SEQUENCE آورده شده است:

  • ایجاد SEQUENCE در Oracle یا PostgreSQL

CREATE SEQUENCE seq_example

    START WITH 1

    INCREMENT BY 1

    MINVALUE 1

    MAXVALUE 1000

    CACHE 10;

در این دستور:

  • START WITH: مقدار اولیه‌ای که SEQUENCE از آن شروع می‌کند.
  • INCREMENT BY: میزان افزایشی که در هر بار فراخوانی SEQUENCE به آن اضافه می‌شود.
  • MINVALUE: حداقل مقداری که SEQUENCE می‌تواند داشته باشد.
  • MAXVALUE: حداکثر مقداری که SEQUENCE می‌تواند داشته باشد.
  • CACHE: تعداد مقادیری که SEQUENCE می‌تواند در حافظه موقت ذخیره کند تا به سرعت در دسترس باشد.

 

  • ایجاد SEQUENCE در MySQL

    در MySQL، SEQUENCE به صورت مستقیم به مانند Oracle و PostgreSQL وجود ندارد.
    در عوض، از AUTO_INCREMENT برای تولید مقادیر خودکار استفاده می‌شود.
    با این حال، در MySQL 8.0 به بعد می‌توانید از ویژگی‌های مشابه SEQUENCE استفاده کنید.

 

CREATE TABLE example_table (

    id INT AUTO_INCREMENT,

    name VARCHAR(100),

    PRIMARY KEY (id)

);

نحوه استفاده از SEQUENCE

برای استفاده از SEQUENCE برای تولید مقادیر، می‌توان از دستور NEXTVAL یا CURRVAL استفاده کرد.

  • استفاده از NEXTVAL

    برای دریافت مقدار بعدی از SEQUENCE از دستور NEXTVAL استفاده می‌شود:

 

SELECT seq_example.NEXTVAL FROM dual;

در اینجا، seq_example نام SEQUENCE است و دستور NEXTVAL مقدار بعدی را از آن برمی‌گرداند.

 

  •  استفاده از CURRVAL

    اگر بخواهید آخرین مقداری که از SEQUENCE گرفته شده است را مشاهده کنید، از CURRVAL استفاده می‌شود:

 

SELECT seq_example.CURRVAL FROM dual;

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

 

 

 

🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

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

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!

 

نحوه استفاده از SEQUENCE

حذف SEQUENCE در SQL

اگر دیگر به SEQUENCE نیاز ندارید یا قصد دارید آن را از پایگاه داده حذف کنید، می‌توانید از دستور DROP SEQUENCE استفاده کنید.

مثال حذف SEQUENCE

DROP SEQUENCE seq_example;

این دستور SEQUENCE با نام seq_example را از پایگاه داده حذف می‌کند.

 

ویرایش SEQUENCE در SQL

در برخی از سیستم‌های مدیریت پایگاه داده (DBMS) مانند Oracle و PostgreSQL، امکان تغییر ویژگی‌های SEQUENCE بعد از ایجاد آن وجود دارد.

برای ویرایش یک SEQUENCE معمولاً از دستور ALTER SEQUENCE استفاده می‌شود.

مثال تغییر ویژگی‌های SEQUENCE

ALTER SEQUENCE seq_example

    INCREMENT BY 5;

این دستور باعث می‌شود که مقدار افزایش SEQUENCE به ۵ تغییر کند.

 

مدیریت SEQUENCE در پایگاه داده

مدیریت SEQUENCEها در پایگاه داده‌ها شامل نظارت بر مقادیر موجود، جلوگیری از مقادیر تکراری و تنظیم محدودیت‌های مختلف است.

در اینجا چندین مفهوم مهم برای مدیریت SEQUENCE آورده شده است:

  • تنظیم مقادیر شروع و افزایش

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

ALTER SEQUENCE seq_example RESTART WITH 1000;
  • بررسی وضعیت SEQUENCE

    برای بررسی وضعیت SEQUENCE (مقدار فعلی، میزان افزایش و ...)، می‌توانید از دستورات خاص DBMS خود استفاده کنید.
    در Oracle می‌توانید این کار را با دستور زیر انجام دهید:

 

SELECT * FROM user_sequences WHERE sequence_name = 'SEQ_EXAMPLE';

مثال‌های عملی از استفاده SEQUENCE

  • تولید شناسه برای رکوردها

    فرض کنید می‌خواهید یک جدول ایجاد کنید که اطلاعات کاربران را ذخیره می‌کند.
    برای هر کاربر یک شناسه منحصر به فرد نیاز دارید. می‌توانید از SEQUENCE برای تولید شناسه‌های یکتا استفاده کنید.

CREATE SEQUENCE user_id_seq START WITH 1 INCREMENT BY 1;




CREATE TABLE users (

    user_id INT DEFAULT user_id_seq.NEXTVAL PRIMARY KEY,

    username VARCHAR(100),

    email VARCHAR(100)

);




INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');

INSERT INTO users (username, email) VALUES ('jane_doe', 'jane@example.com');

در این مثال، برای هر کاربر به طور خودکار یک شناسه منحصر به فرد ایجاد می‌شود.

 

  • استفاده از SEQUENCE برای شماره سریال محصولات

اگر بخواهید برای هر محصول یک شماره سریال منحصر به فرد داشته باشید، می‌توانید از SEQUENCE استفاده کنید:


CREATE SEQUENCE product_serial_seq START WITH 1000 INCREMENT BY 1;




CREATE TABLE products (

    product_id INT DEFAULT product_serial_seq.NEXTVAL PRIMARY KEY,

    product_name VARCHAR(100)

);




INSERT INTO products (product_name) VALUES ('Product A');

INSERT INTO products (product_name) VALUES ('Product B');

در اینجا برای هر محصول یک شماره سریال منحصر به فرد ایجاد می‌شود.

 

 

مثال پروژه محور از SEQUENCES در SQL

فرض کنید در حال ساخت یک سیستم مدیریت کاربران هستید و نیاز به تولید شناسه‌های یکتا برای هر کاربر دارید.

در این مثال، از SEQUENCE برای تولید شناسه‌های منحصر به فرد استفاده می‌کنیم.

سناریو:

سیستم مدیریت کاربران می‌خواهد هر کاربر جدیدی که ثبت‌نام می‌کند، یک شناسه منحصر به فرد دریافت کند.

این شناسه به طور خودکار و به صورت ترتیبی ایجاد می‌شود.

مراحل شامل:

  • ایجاد SEQUENCE

ابتدا یک SEQUENCE برای تولید شناسه‌های یکتا ایجاد می‌کنیم.
این SEQUENCE به طور خودکار مقادیر را افزایش می‌دهد.

 

CREATE SEQUENCE user_id_seq

    START WITH 1

    INCREMENT BY 1;
  • استفاده از SEQUENCE برای تولید شناسه‌ها

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

 

-- ثبت‌نام کاربر جدید با استفاده از SEQUENCE برای شناسه

INSERT INTO users (user_id, username, email)

VALUES (user_id_seq.NEXTVAL, 'john_doe', 'john.doe@example.com');
  • استفاده از شناسه‌ها برای شناسایی کاربران

حالا می‌توانیم به راحتی از شناسه‌هایی که با استفاده از SEQUENCE تولید شده‌اند، برای شناسایی کاربران در سیستم استفاده کنیم.
به عنوان مثال:

 

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

SELECT * FROM users WHERE user_id = 1;

 

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .

997,000 تومان

2.5k بازدید

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.