ایجاد دیتابیس SQL Server کتابخانه با پروسیجر و ویو و فانکشن و تریگر - نسخهی قابل چاپ +- انجمن وب سایت مشاوره در زمینه پروژه های برنامه نویسی و طراحی وب سایتهای تجاری (http://forum.a00b.com) +-- انجمن: سوالها و مقاله های آموزشی (/forumdisplay.php?fid=1) +--- انجمن: مقاله های آموزشی (/forumdisplay.php?fid=3) +--- موضوع: ایجاد دیتابیس SQL Server کتابخانه با پروسیجر و ویو و فانکشن و تریگر (/showthread.php?tid=363) |
ایجاد دیتابیس SQL Server کتابخانه با پروسیجر و ویو و فانکشن و تریگر - ali - 09-10-2023 05:39 PM Library Management System SQL Server Database with Tables, View, Stored Procedures, Trigger and function and some sample data فرض کنید یک پایگاه داده برای مدیریت کتابخانه ایجاد می کنیم. در این پایگاه داده چهار جدول زیر وجود دارد: Books (کتابها) BookID (شناسه کتاب): شناسه یکتای هر کتاب Title (عنوان): عنوان کتاب Author (نویسنده): نویسنده کتاب PublicationYear (سال انتشار): سال انتشار کتاب Genre (ژانر): ژانر یا دستهبندی کتاب Authors (نویسندگان) AuthorID (شناسه نویسنده): شناسه یکتای هر نویسنده FirstName (نام): نام نویسنده LastName (نام خانوادگی): نام خانوادگی نویسنده BirthYear (سال تولد): سال تولد نویسنده Customers (مشتریان) CustomerID (شناسه مشتری): شناسه یکتای هر مشتری FirstName (نام): نام مشتری LastName (نام خانوادگی): نام خانوادگی مشتری Email (ایمیل): آدرس ایمیل مشتری PhoneNumber (شماره تلفن): شماره تلفن مشتری BorrowedBooks (کتابهای امانی) BorrowID (شناسه امانت): شناسه یکتای هر امانت کتاب به مشتری CustomerID (شناسه مشتری): شناسه مشتری که کتاب را امانت گرفته است BookID (شناسه کتاب): شناسه کتابی که به مشتری امانت داده شده است BorrowDate (تاریخ امانت): تاریخی که کتاب به مشتری امانت داده شده است ReturnDate (تاریخ بازگشت): تاریخی که کتاب از مشتری بازگشت داده شده است حالا می توانیم کد SQL Server برای ایجاد این جداول را بنویسیم. در اینجا از دستورات T-SQL استفاده می کنیم: کد: -- Create Authors table این کد SQL یک پایگاه داده با چهار جدول ایجاد می کند و ارتباطات بین آنها را تعیین میکند. برای ایجاد این جداول در SQL Server، شما می توانید از نرمافزار SQL Server Management Studio یا هر ابزار مشابه دیگری استفاده کنید. میتوانید رکوردهای نمونه برای جداول مختلف را ایجاد کنید. در اینجا چند رکورد نمونه برای هر جدول ارائه داده شده است: کد: -- افزودن رکوردهای نمونه به Authors table این کد SQL رکوردهای نمونه را به هر یک از جداول اضافه میکند. میتوانید این کد را به کمک SQL Server Management Studio یا ابزار مدیریت دیگر اجرا کنید تا رکوردهای نمونه ایجاد شوند. بر اساس جدول های بالا چند کوئری نمونه برای ساخت جداول انجام دادیم. حالا چند کوئری برای انجام عملیات مختلف روی این جداول به شما ارائه میدهم: بازیابی همه کتابها به همراه نویسندههایشان: کد: SELECT Books.Title, Authors.FirstName, Authors.LastName کد: SELECT Customers.FirstName, Customers.LastName, Books.Title کد: SELECT Authors.FirstName, Authors.LastName, COUNT(Books.BookID) AS TotalBooks کد: SELECT Customers.FirstName, Customers.LastName, Books.Title, BorrowedBooks.ReturnDate این کوئریها فقط چند نمونه از کوئریهای ممکن برای این جداول هستند. شما میتوانید کوئریهای مختلفی بر اساس نیاز خود ایجاد کنید تا اطلاعات مورد نظر را بازیابی کنید. البته در مورد محاسباتی، برای محاسبه مقادیر جدید از دادههای موجود استفاده میشود. در این مثالها، محاسبات را بر روی دادههای جداول تعریف کرده و نتایج را به نمایش میگذاریم: محاسبه میانگین سال تولید کتب:
کد: SELECT AVG(PublicationYear) AS AveragePublicationYear کد: SELECT Customers.FirstName, Customers.LastName, COUNT(BorrowedBooks.BorrowID) AS TotalBorrowedBooks کد: SELECT Authors.FirstName, Authors.LastName, COUNT(Books.BookID) AS TotalBooks, کد: SELECT Genre, COUNT(BookID) AS TotalBooks حالا چند نمونه از ویوها (Views)، توابع (Functions)، و پروسیجرها (Stored Procedures) را برای جداول فوق ارائه میدهم:
View: ویویی برای نمایش اطلاعات کتابها به همراه نویسنده آنها: کد: CREATE VIEW BookDetails AS فانکشنی برای محاسبه سن متوسط نویسندگان: کد: CREATE FUNCTION CalculateAverageAuthorAge (@BirthYear INT) پروسیجری برای اضافه کردن یک کتاب جدید به جدول کتب: کد: CREATE PROCEDURE AddNewBook این مثالها نشان میدهند که چگونه میتوانید ویوها، توابع، و پروسیجرهای مختلف را برای انجام کارهای مختلف بر روی دادههای جداول تعریف کنید. بر اساس نیازهای خود میتوانید این موارد را گسترش دهید و ویوها را برای نمایش اطلاعات خاص، توابع را برای محاسبات مختلف، و پروسیجرها را برای انجام عملیاتهای پیچیدهتر استفاده کنید. اینجا یک نمونه کرسر (Cursor) و یک تریگر (Trigger) برای جدولهای Authors و Books ارائه میشود:
Cursor: این کرسر برای نمایش نویسندگانی که سن آنها بیشتر از 50 سال است، ایجاد میشود: کد: DECLARE @AuthorID INT; Trigger:
این تریگر برای افزودن کتاب جدید به جدول Books با توجه به سال انتشار آن و ژانر، نمونهای از یک تریگر است: کد: CREATE TRIGGER CheckBookGenre تریگر CheckBookGenre هر زمان که یک کتاب به جدول Books اضافه میشود، بررسی میکند که آیا ژانر کتاب Mystery است و سال انتشار آن کمتر از 2000 است یا نه. اگر شرایط صدق کنند، یک خطای اجرایی (Error) ایجاد میکند و اضافه کردن کتاب را بازنگری میکند.
اینجا یک نمونه پروسیجر برای انجام عملیات آپدیت روی جدول Authors در نظر گرفته شده است:
کد: CREATE PROCEDURE UpdateAuthor این پروسیجر به عنوان ورودی شناسه نویسنده (AuthorID) و مشخصات جدید نویسنده شامل نام (@NewFirstName)، نام خانوادگی (@NewLastName) و سال تولد (@NewBirthYear) را میپذیرد. سپس اطلاعات نویسنده با شناسه داده شده بروزرسانی میشود. اگر هیچ ردیفی آپدیت نشود (یعنی نویسنده با شناسه داده شده وجود نداشته باشد)، یک خطای اجرایی ایجاد میشود. در غیر این صورت پیامی با موفقیت آپدیت شدن نویسنده نمایش داده میشود. برای استفاده از این پروسیجر، میتوانید کوئری زیر را اجرا کنید: کد: EXEC UpdateAuthor @AuthorID = 1, @NewFirstName = 'John', @NewLastName = 'Doe', @NewBirthYear = 1980; در این مثال، نویسنده با شناسه 1 به نام "John Doe" و با سال تولد 1980 آپدیت میشود.
|