آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش رکورد(Record) در پایگاه داده

دوره های مرتبط با این مقاله

مروری بر سطر و رکورد در پایگاه داده

جدول یک شی است که اطلاعات پایگاه داده را در خود نگه می دارد. از آنجایی که جدول عضو یا بخش اصلی پایگاه داده می باشد، اطلاعاتی که در آن ذخیره می شود، می بایست به درستی سازمان دهی گردد. برای مدیریت بهینه و هرچه بهتر اطلاعات، داده های جدول در قالب یک سری فیلد ترتیب داده و سازمان دهی می شوند.
جداول پایگاه داده در پنجره ی Object Explorerو در زیر گره database به نمایش گذاشته می شوند.
کار خود را با پایگاه داده ی university ادامه می دهیم. برای اجرا و استفاده از سرویس های متعدد آن، دانشگاه دارای یک تیم مدیریتی می باشد که از رئیس دانشگاه، رئیس دانشکده و سایر کارکنان تشکیل شده است.
در این نسخه از پایگاه داده ی university، University3، یک جدول ویژه ی کاراکنان (employee) ایجاد می کنیم. جدول مورد نظر در schema ای به نام Academics ذخیره می شود.


آموزش کاربردی: وارد کردن داده

1. کامپیوتر خود را راه اندازی کرده و وارد سیستم شوید.
2. Microsoft SQL Serverرا اجرا کرده و در کادر محاوره ای اتصال به سرور، دکمه ی Connect را کلیک نمایید.
3. بر روی اسم سرور راست کلیک کرده و گزینه ی New Query را انتخاب کنید.
4. برای ایجاد یک پایگاه داده ی جدید، در پنجره ی تهی، دستورات زیر را تایپ نمایید:


USE master;
GO
DROP DATABASE University1;
GO
CREATE DATABASE University2;
GO
USE University2;
GO
CREATE SCHEMA Academics;
GO
CREATE TABLE Academics.StudentsGradeScale
(
	LetterGrade char
);
GO

5. برای اجرای دستورات بالا، کلید F5 را فشار دهید.
6. در پنجره ی Object Explorer، بر روی گره Databases راست کلیک کرده و گزینه ی Refresh را کلیک کنید. اکنون گره Databases را باز کنید.
7. گره University2 را گشوده، سپس گره Tables آن را باز کنید.

مشاهده/نمایش داده های ذخیره شده در جدول در SQL Server Management Studio (Data Navigation)

به منظور باز کردن یک جدول و وارد نمودن داده در آن، بر روی آن راست کلیک کرده و گزینه ی Edit Top 200 Rows را انتخاب نمایید.
Data Navigation عبارت است از مشاهده/نمایش اطلاعات. از آنجایی اطلاعات و داده ها در جداول ذخیره می شوند، برای مشاهده ی آن ها بایستی جدول را در یک view به نمایش در آورد.
زمانی که جدول رکوردهای خود را به نمایش می گذارد، با استفاده از موس یا صفحه کلید می توان بین فیلدهای آن پیمایش کرد. برای انتخاب هر یک از خانه های جدول به وسیله ی موس، کافی است روی آن کلیک نمایید.
برای باز کردن یک جدول جهت وارد کردن اطلاعات در آن، در زیر University2، بر روی Academics.StudentsGradeScale راست کلیک کرده، سپس گزینه ی Edit Top 200 Rows را انتخاب نمایید.


مبانی درج اطلاعات

همان طور که می دانید، ستون ها در اصل برای سازمان دهی داده ها بر اساس رده یا رده های خاصی بکار می روند. هر ستون، در زیر سرستون خود تعدادی خانه دارد. یکی از مقاصد اصلی استفاده از جدول، نمایش داده های هر فیلد در زیر ستون معین است.
ثبت یا درج داده ها (Data entry)، عبارت است از مهیا کردن اطلاعات و داده های مورد نیاز فیلدهای ورودی یک جدول. داده ها درون این فیلدها جای می گیرند و هر بار که این اتفاق رخ می دهد، پایگاه داده یک سطر از داده ها ایجاد می کند که در اصطلاح پایگاه داده رکورد نامیده می شود. این معنیش این است که وارد کردن داده های جدید خود به خود باعث ایجاد یک سطر جدید می شود.
در کل چهار روش برای درج اطلاعات در جداول SQL Server وجود دارد که عبارتند از:


  1. می توانید یکی از جداول پنجره ی Object Explorer را بکار ببرید.
  2. می توانید اطلاعات و داده های مربوطه را با کدنویسی در محیط Query Editor، وارد جدول نمایید.
  3. می توانید داده ها را از شی یا پایگاه داده ی دیگر وارد جدول مورد نظر نمایید.
  4. می توانید یک برنامه ی خارجی همچون Microsoft Access، Microsoft Visual Basic، Embarcadero C++Builder، Microsoft Visual C++، Embarcadero Delphi، , Microsoft Visual Basic، C#، Microsoft Visual C#, را برای این منظور مورد استفاده قرار دهید.

درج داده ها به صورت ویژوال

آسان ترین و سریعترین روش برای درج داده ها در یک جدول، بهره گیری از SQL Server Management Studio می باشد. البته، ابتدا می بایست جدول دلخواه را از پایگاه داده های در دسترس باز کنید، سپس در پنجره ی Object Explorer، پس از باز کردن گره ی Database و Tables، یک جدول جدید برای وارد نمودن اطلاعات باز نمایید. اگر جدول مورد نظر هیچ داده ای دربرنداشت، در آن صورت با یک سطر خالی نمایش داده می شود:


آموزش SQL

اگر از پیش تعدادی سطر وارد شده باشد، سطرهای آن برای شما به نمایش گذاشته شده و جدول یک سطر خالی در انتها اضافه می کند و منتظر درج یک سطر جدید می شود.
برای وارد کردن داده در یک جدول، کافی است بر روی خانه ی مورد نظر کلیک نمایید. هر ستون دارای یک عنوان می باشد که caption نیز نامیده می شود. ناحیه ی خاکستری رنگ در بالای هر ستون یک سرستون یا header خوانده می شود. در Microsoft SQL Server، این بخش اسم واقعی هر ستون را نمایش می دهد. پس از نام گذاری ستون، می توانید مقادیر را در آن وارد کنید. به استثنای ستون هایی که نوع آن ها بر روی متن تنظیم شده و هر مقداری را می توان در آن درج کرد، اگر مقدار ورودی یک فیلد با نوع داده ای که برای آن ستون مشخص شده، همخوان نباشد، فیلد ذکر شده می تواند آن را نپذیرد. بدین معنی که، گاهی لازم است اطلاعات دقیق و صریح تری را در اختیار کاربر قرار دهید.


نحوه ی ایجاد رکورد

  1. 1. در زیر سرستون LetterGrade، بر روی NULL کلیک کرده و A را تایپ کنید.
  2. حال آن جدول را ببندید.

وارد کردن اطلاعات از طریق کدنویسی

برای درج داده از طریق برنامه نویسی، بایستی از دستورات زبان تعریف داده یا DDL بهره گرفت. برای شروع، در محیط SQL Server:
1. در پنجره ی Object Explorer، بر روی جدول راست کلیک کرده، سپس: Script Table As -> INSERT To -> New Query Editor Window. کد زیر را دریافت خواهید کرد:


INSERT INTO [Exercise].[dbo].[Employees]
           ([EmployeeNumber]
           ,[LastName]
           ,[FirstName]
           ,[Username]
           ,[DateHired]
           ,[HourlySalary])
     VALUES
           (
           ,
           ,
           ,
           ,
           ,)
GO

2. حال این کد را در Query Editor جدید جای گذاری نمایید:


INSERT INTO [Exercise].[dbo].[Employees]
           ([EmployeeNumber]
           ,[LastName]
           ,[FirstName]
           ,[Username]
           ,[DateHired]
           ,[HourlySalary])
     VALUES
           (
           ,
           ,
           ,
           ,
           ,)
GO

دستور DDL ای که برای اجرای عملیات درج داده مورد استفاده قرار می گیرد، دستور INSERT به همراه کلیدواژه ی VALUES می باشد. نحوه ی نگارش و استفاده ی کلی از این دستور به ترتیب زیر است:


INSERT TableName VALUES(Column1, Column2, Column_n);

و یا از واژه ی کلیدی INTO بین دستور INSERT و اسم جدول مورد نظر TableName استفاده کنید و از این طریق مطمئن شوید که اطلاعات مربوطه در جدول دلخواه جای می گیرد:


INSERT INTO TableName VALUES(Column1, Column2, Column_n)

TableName بایستی حتما اسم معتبر یک جدول موجود در پایگاه داده ی جاری باشد. چنانچه اسم وارد شده ناصحیح باشد، در آن صورت مفسر SQL آن را یک جدول که در اصل وجود خارجی ندارد درنظر می گیرد و در پی آن یک پیام خطا دریافت خواهی کرد.
کلیدواژه ی VALUES بیانگر این است که شما آماده ی ارائه و درج مقادیر ستون های جدول هستید. توجه داشته باشید که مقادیر ستون می بایست در داخل پرانتز محصور گردد:


ارائه و درج داده بر اساس نوع مقدار: کاراکتر و رشته

برای وارد کردن مقدار یک رشته یا کاراکتر در جدول، کافی است مقدار دلخواه را درج نمایید. اگر مقدار را به وسیله ی دستورات SQL درج می کنید، در آن صورت لازم است مقدار ذکر شده را بین تک کوتیشن قرار دهید.


طول یا تعداد کاراکترهای رشته

قبلا توضیح دادیم که حین ایجاد ستونی که قرار است مقادیر متنی نظیر کاراکترها، علامت ها یا ترکیبی از آن ها را در خود ذخیره کند، بایستی نوع آن ستون را char تعریف کرد. زمانی که مشخص می کنید یک ستون باید کاراکتر در خود ذخیره کند، database engine از شما می خواهد که بیشترین تعداد کاراکترهایی که در یک ستون یا فیلد گنجانده شود را تعریف کنید. این تعداد کاراکتر در اصطلاح length یا طول رشته خوانده می شود.
در صورتی که جدول را به صورت ویژوال ایجاد می کنید، پس از مشخص نمودن اسم آن در زیر سرستون Column Name، نوع داده ای char را در لیست کشویی Data Type انتخاب کنید:


آموزش SQL

همان طور که می بینید، طول رشته به صورت پیش فرض بر روی 10 تنظیم شده است. در صورت نیاز به تغییر آن:
1. در قسمت بالایی جدول، می توانید آن را به طور مسقیم داخل پرانتز char() در لیست کشویی Data Type تایپ نمایید.
2. در قسمت بالایی جدول، بر روی ستون مورد نظر کلیک کنید. در زیر جدول ذکر شده و تحت زبانه ی column properties بر روی Length کلیک کرده و مقدار دلخواه را وارد نمایید:


آموزش SQL

کاراکترهای Unicode

نوع داده ای char قادر است حداکثر تا 8000 کاراکتر را بپذیرد. این نوع داده همچنین تنها قادر به پذریش و پشتیبانی از زبان های نشات گرفته از لاتین می باشد. برای اینکه ستون بتواند کاراکترها یا علامت هایی خارج از کاراکترهای تعریف شده در زبان لاتین را پشتیبانی کند، T-SQL نوع داده ای به نام nchar را در اختیار شما قرار می دهد.
به هنگام وارد کردن مقادیر غیر از مقادر لاتین برای ستون ها در دستور insert باید از پیشوند N استفاده کنید


مثال:
CREATE TABLE Contractors
(
	Gender char
);
GO
INSERT INTO Contractors VALUES(N'M');
GO

رشته های با طول ثابت و متغیر

اگر char یا nchar را به یک ستون اعمال نمایید، به یاد داشته باشید که بایستی حداکثر تعداد کاراکترهای مجاز را نیز مشخص کنید. پس از این کار، database engine دقیقا به همان اندازه فضای خالی در حافظه برای آن درنظر می گیرد. اگر تعداد کاراکترهای کمتری نسبت به تعداد کاراکترها یا طول تعریف شده در ستون ذخیره نمایید، بقیه ی فضای اختصاص یافته در حافظه به آن رشته خالی می ماند و هیچ چیز در آن قرار نمی گیرد. در این سناریو، از یک مقدار فضای خالی ثابت در حافظه بهره گرفتیم؛ nchar و char رشته هایی با طول ثابت تعریف می کنند. دو نوع داده ای یاد شده، برای زمانی مناسب می باشد که بدانیم تمامی مقادیر ستون یا ستون ها به دقیقا همان مقدار حافظه نیاز دارند و از طول رشته ای یکسان برخودار هستند. در اکثر موارد، مقادیر یک ستون که نوع داده ای آن رشته تعریف شده (ستون هایی که مبتنی بر رشته هستند)، از یک رکورد به رکورد دیگر فرق می کند. برای چنین ستونی، باید یک نوع داده ای رشته یا string اعمال نمایید که طول آن متغیر باشد.
بر پشتیبانی از رشته های با طول متغیر، T-SQL نوع داده ای varchar را ارائه می دهد. در هنگام اجرای عملیات درج داده، بایستی مقدار را داخل تک کوتیشن قرار دهید. برای پشتیبانی از کاراکترها و علامت های تمامی زبان های غیر لاتین، T-SQL نوع داده ای nvarchar را تعبیه کرده است. در صورت اعمال هر یک از این نوع داده ها، فیلد مورد نظر می تواند تا سقف 231 کاراکتر در خود نگه دارد. در هر دو مورد database engine فرض را بر این نمی گذارد که تمام فضای اختصاص داده شده در حافظه کاملا توسط مقدار ورودی یا متغیر اشغال می شود. برای مشخص کردن مقدار حافظه ی مورد نیاز برای ذخیره ی متغیر دلخواه، باید مقدار آن را در پرانتز نوع داده ای تایپ نمایید.


مثال:
CREATE TABLE Presidents
(
    FirstName nvarchar(24),
    LastName nvarchar(24)
);
GO
INSERT INTO Presidents VALUES(N'Julius', N'Nyerere');
GO

آموزش کاربردی:

1. در داخل Query Editor کلیک کرده و کلیدهای Ctrl + A را فشار دهید تا تمامی دستورات یا محتویات داخل پنجره انتخاب شود.
2. دستورات زیر را وارد نمایید:


ALTER TABLE Academics.StudentsGradeScale
ALTER COLUMN LetterGrade nvarchar(5);
GO

3. حال داخل پنجره ی Query Editor راست کلیک کرده و دکمه ی Execute را فشار دهید.
4. در پنجره ی Object Explorer، در زیر گره University2، نود Academics.StudentsGradeScale را باز کنید. در صورت لزوم، بر روی گره Columns در زیر Tables راست کلیک کرده و گزینه ی Refresh را انتخاب کنید.


آموزش SQL

5. برای افزودن ستون جدید، کد موجود در Query Editor را به صورت زیر ویرایش نمایید:


ALTER TABLE Academics.StudentsGradeScale
ADD Descriptor nvarchar(20);
GO

6. داخل Query Editor راست کلیک کرده و گزینه ی Execute را انتخاب نمایید.
7. در پنجره ی Object Explorer، بر روی Academics.StudentsGradeScale راست کلیک کرده و Edit Top 200 Rows را کلیک نمایید.
8. ستون ها را با مقادیر زیر پر کنید:


Descriptor
Letter Grade
Excellent
A
Excellent
-A
Good
+B
Good
B
Good
-B
Satisfactory
+C
Satisfactory
C
Satisfactory
-C
Satisfactory
+D
Satisfactory
D
Unsatisfactor
F
آموزش SQL

9. اکنون جدول را ببندید.


نوع داده ای Text

Text می تواند یک گروه رشته، خط یا پاراگراف باشد که نسبت به رشته ی معمولی مقدار حافظه ی بیشتری را اشغال می کند. برای ذخیره ی مقدار چنین متغیری، T-SQL تعدادی جایگزین ارائه می دهد.
در ابتدا Transact-SQL تنها از یک نوع داده ای به نام text (و ntext برای پشتیبانی از کاراکترهای Unicode) پشتیبانی می کرد که ویژه ی متون و نوشته های طولانی تعبیه شده بود. اما اکنون گزینه های بهتری در مقایسه با نوع داده ای ذکر شده، ارائه گردیده که عبارتند از varchar() یا nvarchar() . با این دو نوع داده ای می توانید به راحتی طول رشته را خود تعیین کنید، و در صورت طولانی بودن مقدار متغیر، آن را بر روی max تنظیم نمایید:


CREATE TABLE Sports
(
    SportName nvarchar(50),
    [Description] nvarchar(max)
);
GO

در این مثال، varchar(max) یا nvarchar(max) هر دو نوع داده ای با مقادیر بسیار بزرگ هستند (large-value data type).


نوع داده ای عدد طبیعی – درج مقادیر عددی

چنانچه نوع داده ای ستونی از جدول بر روی integer تنظیم شده باشد، در آن صورت بایستی مقدارش را فقط در قالب عدد صحیح ارائه نمایید.


مثال:
CREATE TABLE MaritalsStatus
(
    StatusCode tinyint,
    MaritalsStatus nvarchar(32)
);
GO
INSERT INTO MaritalsStatus VALUES(1, N'Single');
GO
INSERT INTO MaritalsStatus VALUES(2, N'Married');
GO

به خاطر داشته باشید که یک عدد طبیعی می تواند مثبت یا منفی باشد. یک مقدار منفی باید با علامت – منفی آغاز می شود. گاهی یک عدد چنان بزرگ و طولانی می شود که خواندن آن کمی دشوار می شود، مانند 79435794. در چنین شرایطی، به شما این اجازه داده می شود تا از علامت " , " بین هر سه عدد استفاده نمایید، مثال: 79,435,794. اما دقت داشته باشید که حین درج اطلاعات در جدول، هیچگاه از تفکیک گر استفاده نکنید زیرا با خطا مواجه خواهید شد.
در زمان تعیین مقدار ستونی که نوع داده ای آن عدد می باشد، لازم است به یاد داشته باشید که مقداری بیشتر یا کمتر از میزان حافظه ی تخصیص یافته برای ذخیره ی آن تعیین نکنید، زیرا با خطا مواجه خواهید شد (مقادیری وارد کنید که در بازه ی مشخص شده قرار می گیرد).


وارد کردن مقادیر عددی

1. در پنجره ی Object Explorer، بر روی جدول Academics.StudentGradeScale راست کلیک نموده و Design را کلیک نمایید.
2. بر روی Descriptor راست کلیک کرده و گزینه ی Insert Column را انتخاب نمایید.
3. ستون جدید را به ترتیب زیر تنظیم نمایید: Column Name: MinimumPercent Data Type: tinyint.
4. حال بر روی جدول Descriptor راست کلیک کرده و گزینه ی Insert Column را انتخاب نمایید.
5. ستون جدید را به صورت زیر تنظیم کنید: Column Name: MaximumPercent Data Type: tinyint.


آموزش SQL

6. جدول را ببندید.
7. زمانی که از شما پرسیده می شود، آیا مایل به ذخیره ی تغییرات هستید یا خیر، Yes را کلیک کنید (در صورت دریافت خطا، Cancel را کلیک کنید).
8. در Object Explorer، بر روی Academics.StudentsGradeScale راست کلیک کرده و گزینه ی Edit Top 200 Rowns را انتخاب نمایید.
9. مقادیر جدید مانند نمونه ی زیر وارد نمایید:


Descriptor
MaximumPercent
MinimumPercent
Letter Grade
Excellent
100
95
A
Excellent
94
90
-A
Good
89
85
+B
Good
84
80
B
Good
79
75
-B
Satisfactory
74
70
+C
Satisfactory
69
65
C
Satisfactory
64
60
-C
Satisfactory
59
55
+D
Satisfactory
54
50
D
Unsatisfactor
49
0
F
10. جدول را ببندید.

اعداد صحیح باینری (Binary Integers)

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


ستون هایی که مقادیر عددی decimal در آن ها ذخیره می شود

اگر نوع داده ای ستونی را numeric یا decimal تنظیم کنید، در آن صورت می توانید مقادیر از نوع عدد طبیعی وارد آن ستون نمایید.


مثال:
CREATE TABLE Distances
(
    FromCity nvarchar(40),
    ToCity nvarchar(40),
    Distance decimal
);
GO
INSERT INTO Distances VALUES(N'Baltimore, MD', N'Richmond, VA', 130);
GO
INSERT INTO Distances VALUES(N'New York, NY', N'Las Vegas, NV', 2232);
GO

بدین معنی که بجای استفاده از نوع داده ای integer، می توان از نوع decimal بهره گرفت.


عدد دهدهی (decimal) و دقت اعشار (precision)

Precision یا دقت، درواقع تعداد اعدادی است که برای نمایش مقدار عددی بکار می رود. برای مثال، عدد 42005 دارای دقت 5 می باشد در حالی که دقت عدد 266 برابر با 3 می باشد. اگر نوع داده ای متغیری integer تعریف شده باشد، در آن صورت دقت مقدار توسط پایگاه داده تنظیم می شود و شما می توانید مقدار پیش فرض و تعیین شده توسط مفسر Microsoft SQL Server را بپذیرید. برای یک عدد decimal (انواع داده ای decimal یا numeric)، می توانید دقت را مشخص نکنید. اگر دقت مقدار عددی را مشخص نکنید، انواع داده ای numeric و decimal به عنوان عدد صحیح یا integer تفسیر می شود، بدین معنی که اگر بخش کسری عدد اعشاری را مشخص نکنید، عدد مورد نظر به integer تبدیل می شود.


مثال: عدد اعشاری 3.33 به 3 و 3.67 به 4 تبدیل می شود.
                            
CREATE TABLE StudentsGradeScale
(
	LetterGrade nvarchar(2),
	MinRange decimal,
	MaxRange decimal,
	MinPercent decimal,
	MaxPercent decimal,
	Descriptor nvarchar(20)
);
GO
INSERT INTO StudentsGradeScale(LetterGrade, MinRange, MinPercent, MaxPercent, Descriptor)
VALUES(N'A', 4.0, 95, 100, N'Excellent');
GO
INSERT INTO StudentsGradeScale VALUES(N'A-', 3.67, 3.99, 90, 94, N'Excellent');
GO
INSERT INTO StudentsGradeScale VALUES(N'B+', 3.33, 3.66, 85, 89, N'Good');
GO
INSERT INTO StudentsGradeScale VALUES(N'B', 3.0, 3.32, 80, 84, N'Good');
GO
INSERT INTO StudentsGradeScale VALUES(N'B-', 2.67, 2.99, 75, 79, N'Good');
GO
INSERT INTO StudentsGradeScale VALUES(N'C+', 2.33, 2.66, 70, 74, N'Satisfactory');
GO
INSERT INTO StudentsGradeScale VALUES(N'C', 2.0, 2.32, 65, 69, N'Satisfactory');
GO
INSERT INTO StudentsGradeScale VALUES(N'C-', 1.67, 1.99, 60, 64, N'Satisfactory');
GO
INSERT INTO StudentsGradeScale VALUES(N'D+', 1.33, 1.66, 55, 59, N'Satisfactory');
GO
INSERT INTO StudentsGradeScale VALUES(N'D', 1.0, 1.32, 50, 54, N'Satisfactory');
GO
INSERT INTO StudentsGradeScale VALUES(N'F', 0, 0.99, 0, 49, N'Unsatisfactor');
GO

نتیجه ی زیر را بدست می دهد:
Descriptor
Max %
Min %
Max Range
Min Range
Letter Grade
Excellent
100
95
4
A
Excellent
94
90
4
4
-A
Good
89
85
4
3
+B
Good
84
80
3
3
B
Good
79
75
3
3
-B
Satisfactory
74
70
3
2
+C
Satisfactory
69
65
2
2
C
Satisfactory
64
60
2
2
-C
Satisfactory
59
55
2
1
+D
Satisfactory
54
50
1
1
D
Unsatisfactor
49
0
1
0
F

Microsoft SQL Server به شما این اجازه را می دهد که دقت مورد نظر مقدار عددی را مشخص کنید. مقدار باید یک integer در بازه ی 1 تا 38 (در ویرایش 7 مایکروسافت اس کیو ال از 1 تا 28) باشد. برای مشخص کردن دقت یک ستون که نوع داده ای آن بر روی decimal یا numeric تنظیم شده، کاراکتر پرانتز را پس از نوع داده ای اضافه کرده و عدد مورد نظر را وارد نمایید


مثال:
/*
 Imagine a credit counseling company that assists people 
 with some financial discipline issues.
 This table is used to keep track of credit card rates
 and certificates of deposits rates of various banks to direct 
 customers as to where to apply to get good rates or better ROI.
*/
CREATE TABLE BanksRates
(
	TypeOfCredit nvarchar(40),
	InstitutionName nvarchar(50),
	InterestRate decimal(6),
	CompoundFrequency nvarchar(32)
);
GO
INSERT INTO BanksRates
VALUES(N'Certificate of Deposit', N'Leandro Investments', 15.984, N'Monthly');
GO

دقت اعشاری نوع داده ای decimal

یک عدد اعشاری یا decimal، عددی است که دارای بخش کسری باشد. نمونه هایی در این زمینه: 12.05 و 1450.4227. دقت اعشاری یا scale یک عدد، درواقع تعداد اعدادی است که در سمت راست ممیز یا نقطه ی اعشار قرار می گیرد (برای مشخص کردن کاراکتری بجای ممیز اعشار که با زبان منطقه ی شما سازگاری داشته باشد، باید از مجموعه کاراکترهای مشخص شده در Control Panel بهره بگیرید). دقت اعشاری یا scale تنها برای اعداد اعشاری کاربرد دارد، نظیر مقادیر ارزی (money یا smallmoney) و اعشاری (numeric و decimal). اگر ستونی از نوع داده ای decimal یا numeric باشد، می توانید در آن بخش کسری مقدار را نیز وارد نمایید. چنانچه نوع داده ای ستونی بر روی decimal یا numeric تنظیم شده باشد، می توانید دقت اعشاری دلخواه را وارد کنید. لازم به ذکر است که عددی وارد می کنید باید یک integer بین بازه ی 0 تا 18 باشد.
برای مشخص کردن دقت اعشاری در ستونی که مقداری با نوع داده ای decimal یا numeric می پذیرد، داخل پرانتز نوع داده ای، بایستی دقت عدد یا تعداد ارقام مقدار را مشخص کرده، بلافاصله پس از آن عملگر ویرگول و دقت اعشاری دلخواه را تایپ نمایید. بنابراین این بار، در حین اجرای عملیات درج داده، می توانید بخش کسری مقدار عددی وارد شده در ستون مربوطه را نیز مشخص نمایید.


مثال:
DROP TABLE StudentsGradeScale;
GO
CREATE TABLE StudentsGradeScale
(
	LetterGrade nvarchar(2),
	MinRange decimal(5, 2),
	MaxRange decimal(5, 2),
	MinPercent decimal,
	MaxPercent decimal,
	Descriptor nvarchar(20)
);
GO

آموزش کاربردی: افزودن مقادیر عددی اعشاری

1. در پنجره ی Object Explorer، بر روی Academics.StudentGradeScale راست کلیک کرده و گزینه ی Design را انتخاب نمایید.
2. بر روی MinimumPercent راست کلیک کرده، سپس گزینه ی Insert Column را انتخاب نمایید.
3. ستون بعدی را به صورت زیر تنظیم کنید:


Column Name: MinimumRange
Data Type: decimal(18, 0)
Precision: 5
Scale: 2

آموزش SQL

4. جدول جاری را بسته و تغییرات را ذخیره نمایید.
5. در پنجره ی Object Explorer، بر روی Academics.StudentsGradeScale راست کلیک کرده و گزینه ی Edit Top 200 Rowns را انتخاب کنید.
6. مقادیر ستون های Min Range و Max Range را اعداد زیر وارد کنید:


Descriptor
Max %
Min %
Max Range
Min Range
Letter Grade
Excellent
100
95
4
A
Excellent
94
90
3.99
3.67
-A
Good
89
85
3.66
3.33
+B
Good
84
80
3.32
3
B
Good
79
75
2.99
2.67
-B
Satisfactory
74
70
2.66
2.33
+C
Satisfactory
69
65
2.32
2
C
Satisfactory
64
60
1.99
1.67
-C
Satisfactory
59
55
1.66
1.33
+D
Satisfactory
54
50
1.32
1
D
Unsatisfactor
49
0
.99
0
F
آموزش SQL

نوع داده ای real و float

یک عدد floating-point یا ممیز شناور، درواقع مقدار یک عدد دارای جز کسری مانند نوع decimal است. اعداد ممیز شناور به موتور پایگاه داده این امکان را می دهد که بر روی عدد تقریب اعمال نماید.برای تعریف متغیری که بتواند چنین مقداری را در خود ذخیره کند، می بایست از کلیدواژه ی float یا real بهره گرفت.
فیلد‌هایی که دارای نوع داده ای float یا real باشند در حقیقت برای نگهداری اعداد غیر صحیح با تعداد ارقام اعشاری متغیر و یا تخمـینـی مورد استفاده قرار می گیرند.


وارد کردن مقادیری از نوع ممیز شناور

1. در پنجره ی Object Explorer، بر روی گره Databases راست کلیک کرده، سپس گزینه ی New Database را انتخاب نمایید.
2. اسم آن را FurnitureStore1 انتخاب نمایید.
3. دکمه ی OK را فشار دهید.
4. حال گره پایگاه داده ی جدید FurnitureStore1 را در پنجره ی Object Explorer باز نمایید.
5. بر روی گره Tables راست کلیک نموده و گزینه ی New Table... را انتخاب کنید.
6. یک ستون جدید ایجاد کرده و آن را به ترتیب زیر تنظیم نمایید:


Column Name: CommissionRate
Date Type: real
Precision: 5
Scale: 2

7. جدول فعلی را ببندید. تغییرات اعمال شده را ذخیره نمایید.
8. اسم جدول را EmployeesCommissions انتخاب کنید.
9. OK را کلیک کنید.
10. در پنجره ی Object Explorer، گره Tables پایگاه داده ی FurnitureStore را گشوده، سپس گره Tables را باز کنید.
11. بر روی جدول EmployeesCommission راست کلیک کرده، گزینه ی Edit Top 200 Rows را انتخاب نمایید.
12. رکوردهای زیر را وارد جدول نمایید:

Commission Rate
1.4
54.
28.
1875.
09.
0075.

مقادیر ارزی

برای درج مقادیر ارزی داخل جدول، بایستی نوع داده ای ستون یا فیلد ورودی را money یا smallmoney را تعریف کنید. یادآور می شویم که ستونی که نوع داده ای آن بر روی money تنظیم شده، قادر است مقادیر موجود در بازه ی عددی 922,337,203,685,477.5808 - و + 922,337,203,685,477.5807 را در خود نگه دارد. فیلدی که نوع داده ای آن smallmoney می باشد، می تواند مقادیری که بین دو بازه ی عددی -214,748.3648 و 214,748.3647 قرار دارد را پذیرفته و در خود نگه دارد.
تعداد اعداد (precision) و دقت اعشاری متغیرهایی که نوع آن ها money یا smallmoney تعیرف شده، توسط Microsoft SQL Server از پیش تنظیم شده می باشد. دقت اعشار بر روی 4 تنظیم شده است.

وارد کردن مقادیر ارزی در جدول

1. در پنجره ی Object Explorer، بر روی FurnitureStore1 راست کلیک کرده و گزینه ی Design را انتخاب کنید.
2. بر روی CommissionRate راست کلیک کرده، سپس گزینه ی Insert Column را کلیک نمایید.
3. ستون زیر را به صورت زیر تنظیم کنید:


Column Name: TransactionMinimum
Data Type: money

4. بر روی CommissionRate راست کلیک کرده و گزینه ی Insert Column را انتخاب کنید.
5. ستون جدید را با مشخصات زیر تنظیم نمایید:


Column Name: CommissionBase
Data Type: money

6. جدول فعلی را ببندید و تغییرات ایجاد شده را ذخیره کنید.
7. بر روی EmployeesCommission راست کلیک کرده و Edit Top 200 Rows را انتخاب نمایید.
8. سطرهای زیر را در جدول مورد نظر ایجاد نمایید:


Commission Rate
Commission Base
Maximum Transaction
Mininimum Transaction
1.4
26.25
2499
0
0.54
45
5999
2500
0.28
60
19999
6000
0.1875
75
49999
20000
0.09
131.25
499999
50000
0.0075
206.25
500000

مقادیر بولی (نوع داده ای Boolean)

در زبان Transact-SQL، برای تعریف نوع داده ای که فقط مقدار true یا false را در خود نگه می دارد، از BIT (یا bit) استفاده می کنیم.
یك فیلد دو بیتی است و می‌تواند 0 و 1 و Null را ذخیره كند.كاربرد آن در زمان‌هایی است كه دو حالت وجود داشته باشد. مانند خاموش و روشن. بنابراین در هنگام ارائه ی مقدار برای ستونی که نوع داده ای آن bit تعریف شده، می بایست فقط مقدار 1 را برای true یا 0 را برای false مشخص کنید.


سایر data type ها در SQL

Transact-SQL از انواع داده ای پشتیبانی می کند که به شرح برخی پرداختیم. یکی از انواع داده ای که تاکنون در سری آموزشی جاری مورد استفاده قرار ندادیم، نوع داده ای است که مقدار تاریخ را در خود نگه می دارد. برای ایجاد یک ستون که قادر به ذخیره ی مقادیر تاریخ و زمان باشد، ابتدا یک ستون ایجاد می کنیم که قادر به پذیرش مقادیر رشته ای باشد. این کار با تعریف نوع داده ای char امکان پذیر می باشد.
پس از ایجاد ستون و اعمال نوع داده ای char بر آن، مقدار را بر اساس فرمت زیر وارد ستون خود می کنیم:


MonthNumber-DayNumber-YearNumber

مقدار به صورت یک رشته در جدول درج می گردد. مثالی در این زمینه N'06-24-2012'. این مقدار تاریخ June 24, 2012 را نمایش می دهد. برای مشخص کردن مقدار زمانی، می بایست از قوانین مربوطه پیروی کنید. فرمولی که باید استفاده کنید بدین شکل می باشد:


 Hour:Minute[:OptionalSeconds]

مثال:
N'08:24'
N'10:44 PM'
N'19:36'

نوع داده ای sql_variant

Transact-SQL نوع داده ای sql_variant را در اختیار کاربر قرار می دهد که می توان بجای دیگر انواع داده ای بکار برد. این نوع داده ای برای ذخیره سازی و پشتیبانی از انواع داده ای مختلف که SQL Server از آنها پشتیبانی می کند به کار می رود. برای استفاده از آن، ابتدا نوع داده ای ستون را sql_variant تعریف کرده و بسته به نوع مقدار: رشته، عدد، تاریخ و غیره .. فرمت صحیح و مناسب را بکار ببرید.


مثال:
USE Exercise;
GO
CREATE TABLE SeasonalWorkers
(
    FirstName SQL_VARIANT,
    LastName sql_variant,
    DateHired Sql_Variant,
    IsMarried SQL_variant,
    YearlyIncome sql_variant
);
GO
INSERT INTO SeasonalWorkers(FirstName, LastName, DateHired, IsMarried, YearlyIncome)
VALUES(N'Paul', N'Yamo', N'04-07-2012', 1, 48500.15);
GO

درج مقدار مختصات هندسی و جغرافیایی در ستون

Transact-SQL با پشتیبانی از نوع داده ای geometry، قادر است مقادیری نظیر مختصات هندسی را در خود ذخیره کند. برخلاف دیگر انواع داده ای، نوع داده ای geometry درواقع یک نوع شی محسوب می شود که در زبان های شی گرای به آن کلاس نیز می گویند. بدین معنی که دارای خصوصیات (property) و رفتار (action: متدها یا توابع عضو خوانده می شود؛ یک متد درواقع تابعی است که به عنوان عضوی از یک کلاس تعریف شده است) می باشد. خصوصیات نوع داده ای یا همان شی geometry توسط Open Geospatial Consortium (OGC) تعیین می شود. برای تنظیم و تطبیق نوع داده ای نام برده با زبان T-SQL، مایکروسافت تعدادی قابلیت جدید به این نوع داده ای افزود.
پس از مشخص کردن geometry به عنوان نوع داده ای ستون، می توانید مقدار آن را تنظیم کنید. در حقیقت مهم ترین عملیات تنظیم مقدار آن می باشد. برای پشتیبانی از این امکان، کلاس geometry به یک متد به نام STGeomFromText مجهز می باشد. دستور کلی نگارش آن به صورت زیر می باشد:


static geometry STGeomFromText('geography_tagged_text', SRID)

کلیدواژه ی static بیانگر، static بودن متد می باشد. بدین معنی که برای دسترسی به آن بایستی از geometry::STGeomFromText استفاده کرد. این متد یک مقدار از نوع داده ای geometry را بازیابی می کند.


مثال:
USE Exercise;
GO
CREATE TABLE PictureLocation
(
    PictureName nvarchar(50),
    Coordinate geometry
);
GO
INSERT INTO PictureLocation(PictureName, Coordinate)
VALUES(N'IMG001.jpg', geometry::STGeomFromText(. . .);
GO

متد فوق دو آرگومان می پذیرد. اولین آرگومان مقداری را نگه می دارد که به صورت Well-Known Text (WKT) تعریف شده است. مقدار از فرمتی که توسط OGC تعریف شده، پیروی می کند. راه های مختلفی برای تعریف این مقدار وجود دارد. همان طور که می دانید، یک نقطه ی هندسی دارای دو مقدار است: یکی مختصات افقی X و دیگری مختصات عمودی Y می باشد. نوع مقدار می تواند عدد صحیح یا ممیز شناور باشد.
اگر مختصات یک نقطه ی هندسی را می دانید و اکنون می خواهید آن را به عنوان مقدار یک شی geometry بکار ببرید، در آن صورت می بایست point() یا POINT() را تایپ کرده و در پرانتز آن هر دو مقدار را با یک ویرگول بین آن ها وارد نمایید.


مثال:
geometry::STGeomFromText('point(6 4)', . . .);

بجای یک نقطه شاید لازم باشد یک مقدار هندسی که در اصل یک خط می باشد را بکار ببرید. برای این منظور، باید آرگومان را بدین صورت: linestring(, ) ارسال نمایید. داخل پرانتز نیز مقادیر را به صورت X و Y وارد کنید:


geometry::STGeomFromText('linestring(1 4, 5 2)', . . .);

همچنین می توانید یک مقدار هندسی پیچیده بکار ببرید، برای این منظور بایستی آرگومان را در قالب polygon ارسال کنید. polygon(()) را تایپ کرده و رئوس را داخل پرانتز ارسال کنید. هر راس باید مختصات X و Y خود را مشخص کند. رئوس باید توسط ویرگول از هم تفکیک شوند. با ارسال آخرین مقدار راس polygon را ببندید. دقت داشته باشید که اخرین و اولین راس یا vertex باید یکسان باشد.


مثال:
geometry::STGeomFromText('polygon((1 2, 2 5, 5 5, 4 2, 1 2))', . . );

دومین آرگومان متد geometry::STGeomFromText، یک عدد صحیح ثابت است که spatial reference ID (SRID) نام دارد.


مثال:
USE Exercise;
GO
CREATE TABLE PictureLocation
(
    PictureName nvarchar(50),
    Coordinate geometry
);
GO
INSERT INTO PictureLocation(PictureName, Coordinate)
VALUES(N'IMG001.jpg', geometry::STGeomFromText('point(6 4)', 0));
GO

مقداردهی ستونی که نوع داده ای آن UDT می باشد

پس از ایجاد یک UDT و تنظیم آن به عنوان نوع داده ای یک ستون، به مقداردهی آن می پردازیم.


مثال:
USE Exercise;
GO
CREATE TYPE NaturalNumber FROM int;
GO
CREATE TYPE ShortString FROM nvarchar(20);
GO
CREATE TYPE ItemCode FROM nchar(10);
GO
CREATE TYPE LongString FROM nvarchar(80);
GO
CREATE TYPE Salary FROM decimal(8, 2);
GO
CREATE TYPE Boolean FROM bit;
GO
CREATE TABLE Employees
(
    EmployeeID NaturalNumber,
    EmployeeNumber ItemCode,
    FirstName ShortString,
    LastName ShortString,
    [Address] LongString,
    HourlySalary Salary,
    IsMarried Boolean
);
GO
INSERT INTO Employees(EmployeeID,EmployeeNumber,FirstName,
                      LastName,[Address],HourlySalary,IsMarried)
VALUES(1, N'28-380', N'Gertrude', N'Monay', N'1044 Alicot Drive', 26.75, 1);
GO

البته، می توان انواع داده ای Transact-SQL را با انواع داده ای user-defined، در کد خود، ترکیب کنید:


تکنیک های مختلف درج داده

لازمه درج اطلاعات در ستون های یک جدول، دانستن ترتیب فیلدهای آن می باشد. با در نظر داشتن ترتیب مکانی فیلدها، هر مقدار را فیلد مناسب خود وارد کنید.
به هنگام درج اطلاعات در فیلدهای مجاور، اگر مقداری برای درج در فیلدی عددی ندارید، باید 0 را به عنوان مقدارش وارد کنید. در خصوص فیلد رشته ای، اگر مقداری برای درج در آن ندارید، یک جفت دابل کوتیشن خالی به نشانه ی تهی بودن فیلد وارد نمایید.


درج اطلاعات به صورت تصادفی و راندوم

درج اطلاعات در فیلدهای مجاور، لازمه ی آگاهی از ترتیب مکانی هر ستون می باشد. SQL یک روش جایگزین برای وارد کردن اطلاعات با استفاده از اسم ستون بجای ترتیب یا مکان قرار گیری آن فراهم می کند. این قابلیت به شما اجازه می دهد داده ها را مطابق میل و به انتخاب خود در ستون های جدول وارد کنید. در پاراگراف قبلی درباره ی درج 0 (یا NULL) در فیلدهای عددی و نقل و قول خالی برای فیلدهای رشته ای که مقداری برای وارد کردن در آن نداشتیم بحث کردیم. با بهره گیری از امکان ذکر شده دیگری نیاز به این کار نیست و می توان اسم فیلدهایی که مقداری برای وارد کردن در آن ها داریم را بکار ببریم و از درج 0 و کوتیشن خالی در فیلدهایی که نیاز به آن ها نداریم اجتناب کنیم.
برای درج اطلاعات در فیلدهای جدول ، کافی است لیست فیلدهای دلخواه را به ترتیب دلخواه ارائه نمایید. به همین ترتیب هم لازم نیست برای تمامی فیلدها داده فراهم کنید، همچنین می توانید داده ها را به ترتیب مورد نظر وارد ستون ها نمایید.


ایجاد چندین رکورد

در بخش های قبلی، با هر دستور INSERT فقط یک رکورد را وارد جدول می کردیم. اکنون با یک بار فراخوانی دستور INSERT چندین سطر را وارد جدول می کنیم. برای این منظور، بعد از اسم جدول، کلیدواژه ی VALUES و به دنبال آن کاراکتر پرانتز را وارد نمایید. مقادیر را وارد پرانتز کنید. برای افزودن سطری جدید، پس از پرانتز اول، یک پرانتز جدید باز کنید، سپس مقادیر جدید را در آن وارد کرده و پرانتز را ببندید. این کار را هر چند بار که لازم است برای افزودن سطر جدید تکرار نمایید.


مثال:
CREATE DATABASE VideoCollection
GO
USE VideoCollection
GO
CREATE TABLE Videos
(
	Title nvarchar(50), 
	Director nvarchar(50), 
	Rating nchar(10),
	YearReleased int
)
GO
INSERT INTO Videos
VALUES(N'Her Alibi', N'Bruce Beresford', N'PG-13', 1998),
      (N'Memoirs of a Geisha', N'Rob Marshall', N'PG-13', 2006),
      (N'Two for the Money', N'D.J. Caruso', N'R', 2008);
GO

این روش برای درج داده در ستون های مجاور مناسب می باشد. اگر می خواهید داده ها را به ترتیب دلخواه خود وارد جدول کنید، در سمت راست اسم جدول مورد نظر و داخل پرانتز، لیست ستون های دلخواه را وارد کنید، سپس در زمان ارائه ی مقادیر، همان ترتیبی که ستون ها را بر اساس آن لیست کردید، برای هر رکورد رعایت کنید.


درج تمامی یا تعدادی و یا بخشی از رکوردها به جدول

تصور کنید تعدادی سطر دارید که می خواهید به جدول اضافه کنید. T-SQL به شما این اجازه می دهد را می دهد که بر اساس نیاز خود همه یا فقط تعدادی از سطرها را به جدول مورد نظر اضافه کنید. حتی می توان بخشی از یک سطر کامل را در جدول درج کرد.
برای درج بخشی از رکوردها، پس از کلیدواژه ی INSERT، عبارت TOP (Number) و به دنبال آن اسم جدول را وارد نمایید. پس از آن باقی فرمول را طبق نمونه های قبلی دنبال نمایید.


مثال:
USE VideoCollection
GO
INSERT TOP (2) INTO Videos(Rating, Title, Director)
VALUES(N'PG-13', N'Big Momma''s House ', N'Raja Gosnell'),
      (N'G', N'Annie', N'John Huston'),
      (N'PG', N'Incredibles (The)', N'Brad Bird'),
      (N'PG-13', N'Mission: Impossible', N'Brian De Palma'),
      (N'R', N'Negotiator (The)', N'F. Gary Gray');
GO

این کد به موتور پایگاه داده فرمان می دهد، فقط دو رکورد را از لیست رکوردهای موجود وارد جدول کند. می توانید بجای مشخص کردن تعداد رکوردها، به موتور پایگاه داده دستور دهید درصدی از رکوردها را وارد جدول کند. برای این منظور، پس از TOP (Number)، واژه ی PERCENT را وارد کنید.


مثال:
USE VideoCollection1
GO
INSERT TOP (40) PERCENT INTO Videos(Rating, Title, Director)
VALUES(N'', N'Professionals (The)', N'Richard Brooks'),
      (N'R', N'Trading Places', N'John Landis'),
      (N'PG-13', N'Cellular', N'David R. Ellis'),
      (N'R', N'Negotiator (The)', N'F. Gary Gray'),
      (N'PG-13', N'Big Momma''s House ', N'Raja Gosnell'),
      (N'G', N'Annie', N'John Huston');
GO

کد در کل 6 رکورد ارائه می کند اما به پایگاه داده دستور می دهد فقط 40% آن ها را در جدول درج نماید، یعنی: 6 / (100/40) = 6 / 2.5 = 2.4 . بزرگترین عدد صحیح نزدیک به این مقدار 3 می باشد. بنابراین، در کل 3 رکورد به جدول مورد نظر اضافه می شود


عملگر OUTPUT

در روش هایی که تاکنون بکار می بردیم، زمانی که رکورد یا رکوردهایی را به جدول اضافه می کردیم، هیچ راهی برای اینکه بلافاصله مطلع شویم عملیات موفق بوده یا خیر وجود نداشت. برای این کار مجبور بودیم جدول را باز کنیم. یکی از راه های دریافت این اطلاعات، ذخیره ی رکوردهای درج شده در جدول دیگر می باشد. برای فراهم آوردن این امکان، زبان T-SQL عملگر OUTPUT را درنظرگرفته است. فرمولی که باید بکار ببرید، به شرح زیر می باشد:


INSERT INTO TableName
OUTPUT INSERTED.Columns
VALUES(Value_1, Value_2, Value_X)

کار خود را با درج رکورد مورد نظر به وسیله ی عبارت ثابت INSERT INTO TableName آغاز می کنیم. به دنبال این عبارت و در خط بعدی عملگر OUTPUT، INSERTED و نقطه را درج می نماییم. برای اضافه کردن مقدار به ازای هر رکورد موجود، پس از نقطه عملگر * را اعمال می کنیم. این دستور با عملگر VALUES، پرانتز و داخل آن مقادیری را که می خواهیم به جدول اضافه شود، وارد می کنیم.


مثال:
USE VideoCollection1;
GO
CREATE TABLE Videos
(
	Title nvarchar(50), 
	Director nvarchar(50),
	WideScreen bit,
	Rating nchar(10),
	YearReleased int
)
GO
INSERT INTO Videos
OUTPUT inserted.*
VALUES(N'War of the Roses (The)', N'Dany de Vito', 0, N'R', 2001),
      (N'Memoirs of a Geisha', N'Rob Marshall', 1, N'PG-13', 2006),
      (N'Last Castle (The)', N'Rod Lurie', 1, N'', 2001),
      (N'Sneakers', N'Phil Alden Robinson', 1, N'PG-13', 2003);
GO

با اجرای این دستور، اگر در محیط Microsoft SQL Server دستورات خود را وارد می کنید، کادر پایین پنجره ی Query Editor لیستی از سطرهای اضافه شده را نمایش می دهد:


آموزش SQL

اگر از فرمول فوق استفاده کنید، با بستن پایگاه داده، ارجاع (reference) از دست می رود. حال اگر می خواهید لیست رکوردهای تازه ایجاد شده، ذخیره و حفظ شود، در آن صورت باید واژه ی INTO و بلافاصله پس از آن اسم جدولی که قرار است مقادیر ارسالی را دریافت کند، در سمت راست عملگر INSERTED و نقطه درج نمایید. لازم است توجه داشته باشید که جدول بایستی پیش از رخ دادن عملیات درج، ایجاد شده و در دسترس باشد.


مثال:
USE VideoCollection1;
GO
CREATE TABLE Archives
(
	Title nvarchar(50), 
	Director nvarchar(50),
	WideScreen bit,
	Rating nchar(10),
	YearReleased int
)
GO
INSERT INTO Videos
OUTPUT inserted.* INTO Archives
VALUES(N'Two for the Money', N'D.J. Caruso', 1, N'R', 2006),
      (N'Wall Street', N'Oliver Stone', 0, N'R', 2000);
GO

در این نمونه، مشاهده می کنید که نسخه ی عینی از رکورد یا رکوردهای تازه ایجاد شده در جدول مشخص شده، ذخیره می شود.
روش های فوق، فرض را بر این می گذارد که شما یک رکورد کامل را به جدول اضافه می کند؛ بدین معنی که به ازای هر ستون یک مقداری را ارائه می کنید. همان طور که قبل نظاره گر آن بودیم، اگر می خواهید فقط برای تعداد خاصی از ستون ها مقدار ارائه کنید، در آن صورت پس از اسم جدول، فهرست ستون های مورد نظر را داخل پرانتز قرار می دهیم. برای دریافت لیستی از رکوردهای تازه درج شده، پس از کلیدواژه ی OUTPUT، واژه ی INSERTED و در پی آن اسم اولین ستون را تایپ می کنیم. این کار را به ازای هر ستون انجام داده، سپس آن ها را توسط ویرگول از هم جدا می کنیم. فرمولی که باید استفاده کنیم به صورت زیر می باشد:


INSERT INTO TableName(Column_1, Column_2, Column_X)
OUTPUT INSERTED.Column_1, INSERTED.Column_2, INSERTED.Column_X
VALUES(Value_1, Value_2, Value_X)

می توانید ستون ها را به ترتیب دلخواه لیست کنید، البته به این شرط که هر دو بخش TableName و OUTPUT نیز از همین ترتیب پیروی کنند.


USE VideoCollection;
GO
INSERT INTO Videos(Director, Rating, Title)
OUTPUT inserted.Director, inserted.Rating, inserted.Title
VALUES(N'Jonathan Lynn', N'R', N'Distinguished Gentleman (The)'),
      (N'Paul Anderson', N'R', N'Soldier');
GO

در این مثال، پس از اجرای دستور، نتایج در بخش پایینی محیط Microsoft SQL Server به نمایش گذاشته می شود. اگر می خواهید نتایج را در یک جدول ذخیره کنید، در آن صورت بایستی از فرمول زیر استفاده نمایید:


INSERT INTO TableName(Column_1, Column_2, Column_X)
OUTPUT INSERTED.Column_1, INSERTED.Column_2, INSERTED.Column_X INTO TargetTable
VALUES(Value_1, Value_2, Value_X)

مثال:
USE VideoCollection;
GO
CREATE TABLE Entertainment
(
	Title nvarchar(50), 
	Director nvarchar(50)
)
GO
INSERT INTO Videos(Title, Director)
OUTPUT inserted.Title, inserted.Director INTO Entertainment
VALUES(N'Michael Jackson Live in Bucharest', N'Andy Morahan'),
      (N'Outfoxed', N'Robert Greenwald');
GO

دیگر روش های دستیابی به پایگاه داده

یکی از روش های استفاده از داده در جدول یا جداول جاری خود، وارد یا import کردن داده های از پیش موجود از یک پایگاه داده یا data file مشخص (در جدول خود) می باشد. Microsoft SQL Server چندین روش و ابزار متعدد برای وارد کردن و دسترسی به چنین داده هایی فراهم می کند.


استفاده از یک اسکریپت

اسکریپت یک فایل معمولی است که حاوی یا مبتنی بر متن می باشد. در Microsoft SQL Server، فایل ها دارای پسوند .sql می باشند. اسکریپت می تواند حاوی هر نوع کدی که توسط موتور پایگاه داده قابل پردازش و اجرا باشد. بدین معنی که، اسکریپت Transact-SQL می تواند متن هر یک از موضوعاتی که تاکنون پوشش دادیم و در آینده مطلعه خواهیم کرد را دربرداشته باشد.
استفاده از یک اسکریپت در Microsoft SQL Server، بسیار ساده است. درواقع آسان ترین روش استفاده از اسکریپت، باز کردن آن به صورت یک فایل در محیط Microsoft SQL Server می باشد. پس از باز کردن فایل اسکریپت، می توانید به راحتی آن را اجرا کنید. روشی دیگری که می توانید مورد استفاده قرار دهید، اجرای اسکریپت در خط فرمان و داخل پنجره ی prompt می باشد. برای این منظور، می توانید از پنجره ی فرمان PowerShell یا DOS استفاده نمایید. برای اجرای اسکریپت مورد نظر، بایستی در خط فرمان از فرمول استفاده نمایید:


SQLCMD -i Filename

دستور را با درج اسم برنامه SQLCMD و افزودن flag (-i) آغاز می کنیم. پس از آن، یا فقط اسم فایل مورد نظر و یا مسیر فایل را به طور کامل تایپ می کنیم. همان طور که قبلا ذکر شد، فایل باید دارای پسوند .sql باشد.


آموزش کاربردی: اجرای اسکریپت SQL

1. در taskbar صفحه ی Desktop، بر روی دکمه ی Start کلیک کنید. داخل کادر متنی که در پایین منوی اصلی ویندوز قابل مشاهده می باشد، cmd را وارد کرده و کلید Enter را فشار دهید.
2. در پنجره ی فرمان (Command Prompt)، واژه ی PowerShell را درج نموده و سپس کلید Enter را بزنید (an alternative is to click Start -> (All) Programs -> Accessories -> Windows PowerShell -> Windows PowerShell).
3. برای ایجاد یک پوشه (directory) ویژه ی این پروژه، عبارت زیر را تایپ نمایید:


New-Item 'C:\Red Oak High School' -type directory

4. کلید Enter را فشار دهید:


آموزش SQL

(چنانچه به هر دلیلی کار نکرد، در آن صورت از یک file utility همچون Windows Explorer برای ایجاد پوشه به نام Red Oak High School در درایو یا پوشه ی دلخواه خود استفاده کنید. اما حتما سعی کنید مکان ذخیره ی آن را به یاد داشته باشید ).
5. فایل (rosh.txt) rosh.sql را در پوشه ی جدید خود که Red Oak High School نام دارد، جای گذاری نمایید.
6. به command prompt پنجره ی PowerShell باز گردید.
7. حال عبارت SQLCMD -i 'C:\Red Oak High School\rosh.sql' را وارد نمایید.


آموزش SQL

8. اکنون کلید Enter را فشار دهید.


Import کردن پایگاه داده ی Microsoft ACCESS

این امکان وجود دارد که پایگاه داده ی Microsoft Access را import (وارد) کنیم، اما اگر فرمت فایل، .mdb باشد، وارد کردن آن آسان تر خواهد بود.


آموزش کاربردی: وارد کردن پایگاه داده ی Acess

1. در محیط SQL Server Management Studio، بر روی گره Databases راست کلیک کرده و گزینه ی New Database... را انتخاب کنید.
2. واژه ی Cruise1 را وارد کنید.
3. در ستون Path، بر روی هر یک از دکمه های گزینش (browse button) کلیک کرده و پوشه ی C:\Microsoft SQL Server Database Development را انتخاب نمایید.
4. حال OK را کلیک کنید.
5. در پنجره ی Object Explorer، بر روی Cruise1 راست کلیک کرده، مکان نمای موس را بر روی Tasks قرار دهید و سپس Import Data را کلیک کنید.

آموزش SQL

6. در اولین صفحه ی راهنمای نصب (Wizard)، دکمه ی Next را کلیک کنید.
7. در صفحه ی دوم آن، بر روی آیکون هشتک لیست کشویی (combo box) Data Source کلیک کرده و Flat File Source را انتخاب نمایید.


آموزش SQL

8. در سمت راست File Name، بر روی دکمه ی Browse کلیک کنید.
9. فایل Cruise.mdb را یافته و آن را انتخاب نمایید.
10. Open را کلیک کرده پس از آن دوبار Next را کلیک کنید.


آموزش SQL

11. اولین radio button را انتخاب کرده، دکمه ی Next را کلیک کنید.


آموزش SQL

12. اطمینان حاصل نمایید کادر تیک Cabins انتخاب شده، سپس دکمه ی Next را کلیک کنید.
13. دکمه ی Next را کلیک کنید.
14. دکمه ی Finish را کلیک نمایید.


آموزش SQL

15. دکمه ی Close را کلیک کنید.


Import کردن یک صفحه گسترده مانند Excel در محیط SQL Server

Spreadsheet (صفحه گسترده) آسان ترین فایل ها برای وارد کردن و مورد استفاده قرار دادن در Microsoft SQL Server می باشند. دلیل امکان وارد کردن و استفاده ی آسان از آن spreadsheet ها در محیط Microsoft SQL Server این است که صفحه گسترده یا spreadsheet ها به طور پیش فرض به عنوان جدول ایجاد می شوند و از همان اول دارای سطر و ستون می باشند. تنها سختی که با آن مواجه می شوید، در زمان ایجاد صفحه گسترده می باشد. اگرچه می توان همه چیز در آن قرار داد، بایستی اطمینان حاصل کنید موتور پایگاه داده قادر است ناحیه ای که هر یک از رکوردها درآن قرار گرفته را پیدا کرده و بشناسد (رکوردها کجا آغاز و به کجا ختم می شوند).


آموزش کاربردی: وارد کردن یک صفحه ی Excel در محیط SQL Server

1. در پنجره ی Object Explorer، بر روی Cruise1 راست کلیک کرده سپس Tasks -> Import Data را انتخاب کنید.
2. در اولین صفحه ی راهنمای نصب، بر روی دکمه ی Next کلیک کنید.
3. در دومین صفحه ی ویزارد، بر روی پیکان لیست کشویی Data Source کلیک کرده، سپس Microsoft Excel را انتخاب کنید.
4. در سمت راست File Name، بر روی دکمه ی انتخاب (Browse) کلیک کنید.
5. فایل Cruise.xlsx را یافته و آن را انتخاب کنید.
6. Open را کلیک کنید.


آموزش SQL

7. سپس دوبار Next را کلیک کنید.


آموزش SQL

8. اولین radio button را انتخاب کرده، دکمه ی Next را کلیک کنید.
9. در لیست حاضر، check box ای که 'Employees' نام دارد را تیک دار کنید.


آموزش SQL

10. حال دوبار Next، دکمه ی Finish و در نهایت دکمه ی Close را کلیک کنید.


وارد کردن فایل متنی (Text File)

یکی از نوع اطلاعات یا داده هایی که می توان در محیط Microsoft SQL Server وارد کرد، فایل متنی می باشد. تقریبا هر database environment ای این اجازه را به شما می دهد که فایل متنی وارد آن کنید اما لازم است توجه داشته باشید که داده های داخل آن باید به طور صحیح قالب بندی یا فرمت شوند. داده های ذخیره شده در فایل می بایست توسط یک کاراکتر که به عنوان یک تفکیک گر (همان کاری که ستون انجام می دهد) ایفای نقش می کند از هم جدا شوند. این تفکیک گر می تواند یک تک کوتیشن، دابل کوتیشن یا هر کاراکتر مجاز دیگری باشد. داده هایی که داخل علامت نقل وقول یا کوتیشن محصور می شوند، یک فیلد مجزا و مستقل در نظر گرفته می شود. علاوه بر این، پایگاه داده نیاز دارد که اطلاعات و داده های مورد نظر را از دو ستون دیگر جدا سازد. یادآور می شویم که بایستی از یک کاراکتر مجاز استفاده نمود. بیشتر سیستم های مدیریت بانک اطلاعاتی از جمله Microsoft SQL Server عملگر ویرگول را به عنوان تفکیک گر می شناسند. آخرین داده و اطلاعاتی که فایل ارائه می دهد، نحوه ی جداسازی یک رکورد از دیگری است. این کار به راحتی توسط آخر هر سطر انجام می شود که به اصطلاح carriage return (رفتن سر خط) نیز گفته می شود.
\ این دستورالعمل ها به شما کمک می کنند به صورت دستی یک فایل متنی ایجاد کرده و آن را وارد محیط Microsoft SQL Server خود نمایید. در اصل، اگر می خواهید داده هایی را که متعلق به یک پایگاه داده دیگر است را داخل پایگاه داده ی خود import کنید، در آن صورت می بایست از برنامه بخواهید که source داده های مد نظر را برای شما ایجاد کند. اکثر برنامه ها می توانند این کار را انجام داده و حتی رکوردها را خود فرمت دهی کنند.
پس از وارد کردن اطلاعات، لازم است آن ها را بررسی نموده و در صورت لزوم آن ها را برای تنظیم (سفارشی) فیلدهایش فرمت دهی کنید.
برای وارد کردن یک فایل متنی که دربردارنده ی رکورد می باشد:
1. ابتدا پایگاه داده ی مورد نیاز را ایجاد نمایید.
2. در پنجره ی Object Explorer، بر روی database راست کلیک کرده و اشاره گر موس را بر روی Tasks قرار دهید و سپس گزینه ی Import Data را انتخاب کنید.
3. در صفحه ی اول راهنمای نصب (wizard)، دکمه ی Next را کلیک کنید.
4. در صفحه ی دوم، بر روی آیکون هشتک لیست کشویی Data Source کلیک کرده و Flat File Source را انتخاب کنید.
5. در سمت راست File Name، بر روی دکمه ی Browse کلیک کنید.
6. فایل متنی مورد نظر (برای مثال Employees.txt) را یافته و انتخاب نمایید.
7. بر روی Open کلیک کنید.
8. در کادر سمت چپ (Data source)، Columns را کلیک نمایید.


آموزش SQL
آموزش SQL

9. اکنون Advanced را از کادر سمت چپ انتخاب کنید.
10. پس از انتخاب Column 0، در لیست سمت راست، بر روی Name کلیک کرده و اسم ستون دلخواه را تایپ کنید. حال DataType را انتخاب کرده و بر روی آیکون هشتک لیست کشویی آن کلیک کنید. نوع داده ای مورد نظر را انتخاب کنید. در صورت نیاز، ستون OutputColumnWidth را نیز انتخاب نموده و اندازه ی دلخواه را وارد کنید.
11. در لیست میانی، هر ستون را به نوبت انتخاب کرده و خصوصیات آن را از طریق ستون سمت راست ویرایش نمایید.


مثال:
OutputColumnWidth
DataType
Name
20
Unicode string [DT_WSTR]
EmployeeNumber
20
Unicode string [DT_WSTR]
FirstName
20
Unicode string [DT_WSTR]
LastName
decimal [DT_DECIMA]
HourlySalary

12. برای دریافت پیش نمایشی از لیست ستون ها، در زیر کادر Data Source، بر روی Preview کلیک کنید.


آموزش SQL

13. سه بار Next را کلیک کنید.


آموزش SQL

14. حال دوبار Next را فشار دهید.


آموزش SQL

15. Finish را کلیک کنید.
16. سرانجام دکمه ی Close را فشار دهید و پنجره ی SQL Server Import and Export را ببندید.

  • 2281
  •    1086
  • تاریخ ارسال :   1394/11/04

دانلود PDF دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .