در SQL Server، نوع داده NVARCHAR برای ذخیرهسازی رشتههای متنی با طول متغیر و پشتیبانی از کاراکترهای Unicode استفاده میشود. این نوع داده برای ذخیرهسازی متنهایی که شامل کاراکترهای زبانهای مختلف (مانند فارسی) هستند، مناسب است.
ساختار استفاده از NVARCHAR به این صورت است:
NVARCHAR(n)
در این ساختار، n طول رشته را مشخص میکند و میتواند مقداری بین 1 تا 4000 باشد. اگر طول رشته مشخص نشود، مقدار پیشفرض آن 1 است.
ویژگیهای کلیدی NVARCHAR:
- پشتیبانی از Unicode: هر کاراکتر Unicode دو بایت فضا اشغال میکند.
- طول متغیر: فقط به اندازه داده واقعی فضا اشغال میکند، نه به اندازه حداکثر طول تعریف شده.
929.8K حجم رسانه بالاست
مشاهده در ایتا
اگر هنگام ویرایش همچین خطایی دیدید با این روش خطا را برطرف کنید
5.6M حجم رسانه بالاست
مشاهده در ایتا
برای ایجاد جدولی در SQL Server که شامل یک ستون id به عنوان کلید اصلی (PRIMARY KEY) باشد و اجازه ندهد مقادیر NULL داشته باشد، و همچنین ستون name که اجازه NULL نداشته باشد و ستون email که اجازه NULL داشته باشد، میتوانید از کوئری زیر استفاده کنید:
CREATE TABLE Person (
id INT PRIMARY KEY,
name NVARCHAR(100) NOT NULL,
email VARCHAR(100) NULL
);
در این کوئری:
- ستون id به عنوان کلید اصلی تعریف شده و نمیتواند مقدار NULL داشته باشد.
- ستون name نیز نمیتواند مقدار NULL داشته باشد.
- ستون email میتواند مقدار NULL داشته باشد.
ویژگی Identity در SQL Server برای تولید خودکار اعداد منحصربهفرد و با افزایش ترتیبی استفاده میشود. این ویژگی معمولاً برای ستونهای کلید اصلی (Primary Key) به کار میرود تا شناسههای منحصربهفردی برای هر رکورد جدید ایجاد کند.
به عنوان مثال، اگر یک جدول با ستون Identity داشته باشید، هر بار که یک رکورد جدید اضافه میشود، مقدار این ستون به طور خودکار افزایش مییابد. این کار باعث میشود که نیازی به وارد کردن دستی شناسهها نباشد و از یکپارچگی دادهها اطمینان حاصل شود.
در SQL Server، ویژگی IDENTITY برای ایجاد ستونهای هویت استفاده میشود که به طور خودکار مقادیر منحصر به فردی را برای هر ردیف جدید تولید میکنند. این ویژگی دو پارامتر اصلی دارد:
Seed (بذر):
مقدار اولیهای که برای اولین ردیف در جدول استفاده میشود.
Increment (افزایش):
مقدار افزایشی که به مقدار هویت ردیف قبلی اضافه میشود.
به طور پیشفرض، مقدار بذر و افزایش هر دو برابر 1 هستند، یعنی اولین ردیف مقدار 1، دومین ردیف مقدار 2 و به همین ترتیب خواهد داشت12.
برای مثال، اگر بخواهید مقدار اولیه 10 و مقدار افزایشی 5 باشد، میتوانید از دستور زیر استفاده کنید:
CREATE TABLE MyTable (
ID INT IDENTITY(10, 5) PRIMARY KEY,
Name VARCHAR(50)
);
در این مثال، اولین ردیف مقدار 10، دومین ردیف مقدار 15 و به همین ترتیب خواهد داشت.
در اینجا یک مثال ساده از نحوه ایجاد یک جدول در SQL Server آورده شده است:
- ایجاد دیتابیس:
ابتدا باید یک دیتابیس ایجاد کنید. برای این کار از دستور زیر استفاده میشود:
CREATE DATABASE mydatabase;
- انتخاب دیتابیس:
سپس باید دیتابیس ایجاد شده را انتخاب کنید:
USE mydatabase;
- ایجاد جدول:
حالا میتوانید جدول خود را ایجاد کنید. به عنوان مثال، برای ایجاد یک جدول به نام customers با ستونهای id، name و email، از دستور زیر استفاده میشود:
CREATE TABLE customers (
id INT PRIMARY KEY,
name NVARCHAR(100),
email VARCHAR(100)
);
این دستورات به شما اجازه میدهند تا یک جدول ساده در دیتابیس خود ایجاد کنید. هر ستون میتواند نوع دادههای مختلفی داشته باشد، مانند INT برای اعداد صحیح و VARCHAR و NVARCHAR برای رشتههای متنی.
در SQL Server، نمیتوانید از کلمات کلیدی رزرو شده (Reserved Keywords) برای نامگذاری اشیاء مانند جداول، ستونها، و غیره استفاده کنید. این کلمات کلیدی برای دستورات SQL استفاده میشوند و استفاده از آنها به عنوان نام میتواند باعث ایجاد خطا و مشکلات در اجرای دستورات شود.
برای مثال، نمیتوانید جدولی با نام SELECT یا ستونی با نام FROM ایجاد کنید. اگر نیاز دارید از نامی استفاده کنید که مشابه یک کلمه کلیدی است، میتوانید از براکتها ([]) استفاده کنید. به عنوان مثال:
CREATE TABLE [SELECT] (
[FROM] INT,
[WHERE] NVARCHAR(50)
);
2.7M حجم رسانه بالاست
مشاهده در ایتا
برای اضافه کردن یک ستون جدید به جدول در SQL Server، میتوانید از دستور ALTER TABLE استفاده کنید. به عنوان مثال، اگر بخواهید یک ستون به نام BirthPlace با نوع داده nvarchar(150) به جدول tblStudents اضافه کنید، دستور زیر را اجرا کنید:
ALTER TABLE Person
ADD Phone nvarchar(150);
این دستور ستون جدیدی به نام phone با نوع داده nvarchar(150) به جدول person اضافه میکند.
3M حجم رسانه بالاست
مشاهده در ایتا
برای اضافه کردن یک ستون از نوع int که اجازه NULL نداشته باشد به جدول در SQL Server، میتوانید از دستور ALTER TABLE استفاده کنید. به عنوان مثال، اگر بخواهید یک ستون به نام Age به جدول Person اضافه کنید، دستور زیر را اجرا کنید:
ALTER TABLE Person
ADD Age int NOT NULL ;
این دستور ستون جدیدی به نام Age با نوع داده int که نمیتواند مقدار NULL داشته باشد. به جدول Person اضافه میکند.
و برای ویرایش یک ستون در SQL Server، میتوانید از دستور ALTER TABLE همراه با ALTER COLUMN استفاده کنید. به عنوان مثال، اگر بخواهید نوع داده ستون Age در جدول Person را به bigint تغییر دهید، میتوانید از دستور زیر استفاده کنید:
ALTER TABLE Person
ALTER COLUMN Age bigint;
این دستور نوع داده ستون Age را به bigint تغییر میدهد.
برای اضافه کردن ویژگی IDENTITY به یک ستون در SQL Server و تنظیم مقادیر seed و increment، میتوانید از دستورات CREATE TABLE یا ALTER TABLE استفاده کنید. در اینجا یک مثال ساده برای هر دو حالت آورده شده است:
ایجاد جدول جدید با ستون IDENTITY
CREATE TABLE Orders (
OrderID int IDENTITY(1,1) PRIMARY KEY,
CustomerName nvarchar(50),
OrderDate datetime
);
در این مثال، ستون OrderID به عنوان ستون IDENTITY تعریف شده است که از 1 شروع میشود و به ازای هر رکورد جدید، یک واحد افزایش مییابد.
اضافه کردن ستون IDENTITY به جدول موجود اگر جدولی دارید که قبلاً ایجاد شده و میخواهید یک ستون IDENTITY به آن اضافه کنید، میتوانید از دستور ALTER TABLE استفاده کنید. توجه داشته باشید که اضافه کردن ستون IDENTITY به یک جدول موجود ممکن است نیاز به ایجاد یک جدول جدید و انتقال دادهها داشته باشد.
-- ایجاد جدول جدید با ستون IDENTITY
CREATE TABLE NewOrders (
OrderID int IDENTITY(1,1) PRIMARY KEY,
CustomerName nvarchar(50),
OrderDate datetime
);
-- انتقال دادهها از جدول قدیمی به جدول جدید
INSERT INTO NewOrders (CustomerName, OrderDate)
SELECT CustomerName, OrderDate
FROM Orders;
-- حذف جدول قدیمی
DROP TABLE Orders;
-- تغییر نام جدول جدید به نام جدول قدیمی
EXEC sp_rename 'NewOrders', 'Orders';
ویرایش مقادیر Seed و Incrementبرای ویرایش مقادیر seed و increment، میتوانید از دستور DBCC CHECKIDENT استفاده کنید:
-- تنظیم مقدار seed و increment
DBCC CHECKIDENT ('Orders', RESEED, 100);
در این مثال، مقدار seed به 100 تنظیم شده است و مقدار increment همان مقدار پیشفرض (1) باقی میماند.