جهت مطالعه آموزش با ادامه مطلب مراجعه فرمائید.
اعمال محدودیت PRIMARY KEY در هنگام ساخت جدول
برای تعریف محدودیت Primary Key در دستور create table از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons ( P_Id int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) |
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) ) |
محدودیت PRIMARY KEY پس از ساخته شدن جدو
برای تغییر دادن محدودیت Primary Key روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ADD PRIMARY KEY (P_Id) |
ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) |
ALTER TABLE Persons DROP CONSTRAINT pk_PersonID |
محدودیت Foreign Key , SQL FOREIGN KEY Constraint یا کلید خارجی در اس کیوال
یک FOREIGN KEY یا کلید خارجی در اسکیوال ، در یک جدول به یک PRIMARY KEY در جدولی دیگر اشاره می کند.
-
برای ارتباط بین جداول از محدودیت Foreign Key استفاده میشود و در اصل Relational Integrity را فراهم میکند.
-
به عبارت ساده تر ، کلید خارجی همان مقدار کلید اصلی از جدول دیگر است.
-
مقدار یک کلید خارجی میتواند تکراری باشد.
-
اجازه حذف رکوردی از جدول پدر نداریم که فرزندی داشته باشد.
-
اجازه insert رکورد در جدول فرزند با کد پدری که در جدول پدر موجود نیست را نداریم.
-
مقدار کلید پدری را که دارای فرزند هست را نمیتوانیم تغییر دهیم.
برای تعریف یک محدودیت FOREIGN KEY در دستور create table ، روی یک ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Orders ( O_Id int NOT NULL PRIMARY KEY, OrderNo int NOT NULL, P_Id int FOREIGN KEY REFERENCES Persons(P_Id) ) |
CREATE TABLE Orders ( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, PRIMARY KEY (O_Id), CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) ) |
برای تغییر دادن یک محدودیت FOREIGN KEY روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Orders ADD FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) |
ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) |
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders |
برای مثال : مقادیر داخل فیلد بایستی حتما بزرگتر از ۱۰ باشد در غیر اینصورت در هنگام ورود اطلاعات، کاربر با خطا مواجه گردد.
نکته : محدودیت Check را میتوان برای ستون و جدول تعریف کرد.
محدودیت CHECK هنگامی که جدول ساخته می شود
برای تعریف یک محدودیت Check در دستور create table ، روی یک ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons ( P_Id int NOT NULL CHECK (P_Id>0), LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) |
CREATE TABLE Persons (P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT chk_Person CHECK (P_Id>0 AND City=’Astara’) ) |
ALTER TABLE Persons ADD CHECK (P_Id>0) |
برای تغییر دادن یک محدودیت Check روی چند ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City=’Astara’) |
ALTER TABLE Persons DROP CHECK chk_Person |
محدودیت Default , SQL DEFAULT Constraint یا مقدار پیش فرض در sql
از محدودیت Default یا مقدار پیش فرض در اس کیو ال ، میتوانیم زمانی استفاده کنیم که ، در هنگام ساخت جدول و تعیین نوع فیلدها، مقدار Default Value و یا پیش فرض به یک فیلد بدهیم.
در واقع محدودیت در اینجا به این معنی می باشد که اگر کاربر در هنگام درج یا به روزرسانی مقدار آن فیلد را وارد نکرد، مقدار Default Value به جای آن قرار بگیرد.
محدودیت DEFAULT در هنگام ساخت جدول
برای تعریف یک محدودیت Default در دستور create table از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) DEFAULT ‘Astara’ ) |
برای مثال تابع ()GETDATE
CREATE TABLE Orders ( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, OrderDate date DEFAULT GETDATE() ) |
محدودیت DEFAULT پس از ساخت جدول
برای تغییر دادن محدودیت Default از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ALTER COLUMN City SET DEFAULT ‘Astara’ |
ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT |
از محدودیت NOT NULL در دستور create table زمانی استفاده مکنیم که میخواهیم مقدار Allow Null فیلدها را غیر فعال کنیم.
در حقیقت با تعریف این محدودیت اجازه نمیدهیم که فیلد ما مقدار Null بگیرد. پس در هنگام درج یا به روزرسانی، اگر کاربر مقداری را در این فیلدها وارد نکرد، جلوی انجام عملیات گرفته میشود.
برای تعریف محدودیت NOT NULL از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) |
نکته : پیش فرض برای فیلدها در دستور create table ، مقدار دهی آنها allow null است. محدودیت Unique , SQL UNIQUE Constraint در sql
از محدودیت Unique زمانی استفاده میکنیم که بخواهیم مقادیر بعضی از فیلدها تکراری نباشند.
این فیلدها ممکن است کلید نباشند ، اما بنابر لزوم برنامه بایستی غیر تکراری باشند. به عنوان مثال فیلد آدرس ایمیل، کلید نیست اما باید Unique یا واحد باشد. برای این کار از Unique Index ها استفاده میکنیم.
-
محدودیت PRIMARY KEY به صورت خودکار، محدودیت Unique را نیز دارد.
-
در هر جدول بیش از یک فیلد نیز میتواند از محدودیت Unique استفاده کند.
ی دیتابیس ها دستور LEFT JOIN با نام دستور LEFT OUTER JOIN استفاده میشود که تفاوتی در این زمینه وجود ندارد.
مثال : در این مثال جدول اصلی ، جدول Persons میباشد که در سمت چپ JOIN قرار دارد و خروجی ها بر اساس این جدول تنظیم میشوند.
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName |
دستور RIGHT JOIN در sql
خروجی دستور RIGHT JOIN در اسکیوال از از جدول سمت راست انتخاب میشود، حتی اگر هیچ رابطه ای با جدول چپ نداشته باشد.
ساختار دستور right join به صورت زیر است :
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name |
مثال : در این مثال جدول اصلی ، جدول Orders میباشد که در سمت راست JOIN قرار دارد و خروجی ها بر اساس این جدول تنظیم میشود.
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons RIGHT JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName |
دستور FULL JOIN در sql
خروجی دستور FULL JOIN در sql از بین سطرهایی انتخاب میشود که یک رابطه در یکی از جداول بایستی وجود داشته باشد.به طور خلاصه دستور full join ( دستور full outer join ) بصورت or کار میکند و دستور inner join بصورت and .
SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name |
مثال : در مثال زیر ما میخواهیم با استفاده از دستور full join در اسکیوال ، همه ی افراد با سفارش هایشان و همه ی سفارشات با افراد مربوط به آنها را در خروجی نمایش دهیم.
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.P_Id=Orders.P_Id ORDER BY Persons.LastName |
دستور UNION در sql
از دستور Union برای ترکیب و ادغام دو یا چند ستون مختلف از ۲ یا چند جدول و نشان دادن آنها در یک ستون مشترک استفاده می شود .
در دستور union ، نوع داده ای ستون های انتخاب شده برای ترکیب باید یکسان باشند .
دستور Union در هنگام ترکیب فیلد ها ، در صورت برخورد با مقادیر تکراری آنها را حذف کرده و از هر مقدار یک نمونه را نمایش می دهد .
ساختار دستور union به صورت زیر است:
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 |
مثال :
SELECT E_Name FROM Employees_Norway UNION SELECT E_Name FROM Employees_USA |
برای مشاهده تمام مقادیر ، حتی مقادیر تکراری باید از دستور Union ALL استفاده کردساختار این دستور به صورت زیر است :
SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2 |
SELECT E_Name FROM Employees_Norway UNION ALL SELECT E_Name FROM Employees_USA Result |
دستور SELECT INTO در sql
از دستور Select Into در موارد زیر استفاده می شود :
-
ایجاد یک Back Up ( نسخه پشتیبان ) از یک جدول .
-
ایجاد یک آرشیو از رکوردهای یک جدول .
-
قرار دادن برخی از رکوردها یا فیلدهای مورد نظر از یک جدول در یک جدول جدید .
-
ایجاد یک نسخه پشتیبان از کل یک پایگاه داده در یک پایگاه داده جدید .
-
در این مثال (ساختار) ما می میخواهیم برخی از رکوردها یا فیلدهای مورد نظر از یک جدول در یک جدول جدید قرار دهیم:
-
کد:
We can select all columns into the new table: SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename
-
در این مثال (ساختار) ما تنها می توانیم ستون ها را برای ایجاد یک جدول جدید انتخاب کنیم :
کد:
SELECT column_name(s) INTO new_table_name [IN externaldatabase] FROM old_tablename
- در این مثال ما میخواهیم یک Back Up ( نسخه پشتیبان ) از یک جدول Persons ایجاد کنیم:
کد:
SELECT * INTO Persons_Backup FROM Persons
-
در این مثال ما میخواهیم یک کپی از جدول Persons را به یک پایگاه داده دیگر (Backup.mdb) اضافه کنیم :
کد:
SELECT * INTO Persons_Backup IN ‘Backup.mdb’ FROM Persons
-
در این ساختار ما میتوانیم یک تعدادی از فیلدها را به جدول جدید کپی کنیم:
کد:
SELECT LastName,FirstName INTO Persons_Backup FROM Persons
-
در این مثال ما میخواهیم با داشتن یک دستور شرطی فیلدهایی را از جدول Persons به جدول Persons_Backup اضافه کنیم :
کد:
SELECT LastName,Firstname INTO Persons_Backup FROM Persons WHERE City=’Astara’
-
انتخاب داده از بیش از یک جدول هم در دستور select into امکان پذیر است . در مثال زیر جدول “Persons_Order_Backup” شامل داده ها از دو جدول “Persons” و “Orders” میباشد.
کد:
SELECT Persons.LastName,Orders.OrderNo INTO Persons_Order_Backup FROM Persons INNER JOIN Orders ON Persons.P_Id=Orders.P_Id
ذکر نام یک پایگاه داده جدید در دستور Select Into اختیاری است .
چنانچه نامی در این قسمت ذکر نشود ، برنامه نسخه پشتیبان را در همان پایگاه داده موجود ایجاد می کند و چنانچه نامی ذکر شود ، برنامه نسخه پشتیبان را در پایگاه داده ذکر شده ایجاد می کند .
مقدار Null در اس کیو ال
در حالت کلی مقادیر ستون ها میتوانند مقدار null داشته باشند. زمانی که یک ستون اختیاری باشد ، شما میتوانید مقدار Null در آن ذخیره کنید. اختیاری به این معنی که میتوانید خالی رهایش کنید.
مقدار پیش فرض در صورت مقدار ندادن به فیلدی در یک رکورد , مقدار Null است.
با استفاده از دستور is null در sql میتوانیم فیلدهایی که مقادیر تهی دارند را با در دستور Select انتخاب کنیم.مقدار null از جمله مقادیری است که زیاد باهاش در آموزش sql سر و کار خواهیم داشت.
نکته ی بسیاری مهم در مورد null یا تهی اینست که این مقدار با مقدار رشته ای space یا ‘ ‘ تفاوت کامل دارد. همچنین null را نباید با مقدار رشته ای آن یعنی ‘null’ اشتباه بگیریم.
دستور ISNULL در sql
از دستور ISNULL در اسکیوال زمانی استفاده میشود که شما میخواهید تمام فیلدهای null را در خروجی داشته باشید.مقدار null در اس کیو ال با space ‘ ‘ تفاوت دارد.ساختار دستور is null به همراه مثال آن به صورت زیر است که در این مثال تمام رکوردهایی که حاوی فیلد آدرس null هستند انتخاب می شوند.
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NULL |
در مثال زیر رکوردهایی که آدرس آنها تهی ( null ) نیستند ، انتخاب و در خروجی این دستور در اسکیوال می روند.
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL |
دستور CREATE DATABASE در sql
برای ایجاد یک پایگاه داده جدید از دستور CREATE DATABASE استفاده می شود.
ساختار دستور create database در اسکیوال به صورت زیر است:
CREATE DATABASE database_name |
CREATE DATABASE mySite_db |
برای ایجاد یک جدول جدید در پایگاه داده sql ، از دستور Create Table استفاده می کنیم . برای ایجاد جدول در اسکیوال بایستی نکات زیر را در نظر گرفت :
-
تعیین یک نام منحصر به فرد برای جدول .
-
تعیین تعداد ستون های ( فیلد ها ) جدول و نام آنها که نباید تکراری باشد.
-
تعیین نوع داده ای ستون های جدول و اندازه آنها در صورت نیاز .
ساختار دستور create table در sql در ساده ترین حالت ، به صورت زیر است :
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, …. ) . |
CREATE TABLE Persons ( P_Id int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) ) |
تمامی جدول ها ، اندیس ها ، و حتی دیتابیس ها میتوانند با دستور Drop در sql حذف شوند.
شیوه های استفاده از دستور drop در sql به شرح زیر است :
DROP INDEX table_name.index_name |
از دستور DROP INDEX برای حذف یک اندیس موجود در یک فیلد جدول استفاده می شود.
دستور Drop Table
از دستور DROP TABLE برای حذف یک جدول در پایگاه داده استفاده می شود.
DROP TABLE table_name |
دستور Drop Database
از دستور DROP DATABASE برای حذف یک پایگاه داده به صورت کامل استفاده می شود
DROP DATABASE database_name |
دستور TRUNCATE
برای حذف کلیه اطلاعات موجود در یک جدول بدون حذف ستون های آن از دستور TRUNCATE استفاده می کنیم :
TRUNCATE TABLE table_name |
مثال :
Truncate Table Mydb; |
از دستور Create Index در اسکیوال برای ایجاد اندیس در ستون های جدول استفاده می شود .
در یک جدول می توان برای یک یا چند ستون جدول اندیس ایجاد کرد ، که این اندیس ها باعث بالا رفتن سرعت جستجو در رکوردهای جدول می شود .
اندیس یک شماره است که به هر سطر جدول اختصاص داده می شود و معمولا از صفر شروع می شود .
اندیس ها از دید کاربر مخفی هستند و هر اندیس یک نام منحصر به فرد دارد . برای ایجاد یک اندیس با داده های تکراری به صورت زیر عمل میکنیم :
CREATE INDEX index_name ON table_name (column_name) |
مثال :
CREATE INDEX PIndex ON Persons (LastName) |
CREATE UNIQUE INDEX index_name ON table_name (column_name) |
برای ایجاد یک اندیس ( index ) برای بیش از یک فیلد ، باید نام فیلد های مورد نظر را به ترتیب در پرانتز بعد از نام جدول وارد کرد .
CREATE INDEX PIndex ON Persons (LastName, FirstName) |
از دستور Alter Table برای اضافه کردن یا حذف کامل یک ستون از یک جدول و یا تغییر نوع داده ی فیلد موجود در پایگاه داده sql استفاده می شود.
-
اضافه کردن فیلد به جدول در اسکیوال
ALTER TABLE table_name ADD column_name datatype |
-
حذف یک فیلد جدول در sql
برای حذف یک ستون از یک جدول موجود به روش زیر عمل می شود :
ALTER TABLE table_name DROP COLUMN column_name |
-
تغییر نوع داده ی یک فیلد جدول در sql
ALTER TABLE table_name ALTER COLUMN column_name datatype |
- ADD
- DROP COLUMN
- DROP COLUMN
نکته مهم :
برای تغییر نام های فیلدهای جدول در اسکیوال باید از sp های اسکیوال استفاده کرد . در آموزش زیر ، تغییر نام فیلدها همراه با مثال توضیح داده شده است :تغییر نام فیلد در یک جدول با استفاده از دستور sql
برای تغییر نام فیلد در جدول از تغییر کد باید به روش زیر و با کمک stored procedure های خود اسکیوال ، عمل کرد :
sp_RENAME ‘table_name.old_name’ , ‘new_name’, ‘COLUMN’ |
USE Db_name; GO EXEC sp_rename ‘Sales.TerritoryID’, ‘TerrID’, ‘COLUMN’; GO |
ایجاد محدودیت برای فیلد ها در اسکیوال (Constraints) Constraint ها در sql یا همان محدودیت ها در اس کیو ال ، برای محدود کردن نوع داده هایی که میتواند در جدول تعریف شود مورد استفاده قرار میگیرد.این محدودیت ها را زمانی که یک جدول جدید ایجاد میکنیم یا زمانی که نوع داده ای جدول را تغییر میدهیم بایستی در نظر داشته باشیم.
Constraint های sql شامل موارد زیر میشوند :
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
محدودیت Primary Key , SQL PRIMARY KEY Constraint یا کلید اصلی در اس کیو ال
از محدودیت Primary Key زمانی استفاده میکنیم که میخواهیم فیلد کلید اصلی در sql ، تعریف کنیم.محدودیت Primary Key یکی از مهمترین محدودیتها میباشد. فیلد کلید، مقدار تکراری قبول نمیکند و بیشتر برای تفکیک و جستجوی رکوردها مورد استفاده قرار میگیرد.
-
فیلد کلید اصلی در اسکیوال هیچ وقت Null نمیپذیرد. پس ستون Allow Nulls برای این فیلد نباید چک خورده باشد.
-
هر جدول فقط می تواند یک کلید اولیه (Primary Key) داشته باشد.
اعمال محدودیت PRIMARY KEY در هنگام ساخت جدول
برای تعریف محدودیت Primary Key در دستور create table از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons ( P_Id int NOT NULL PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) |
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) ) |
محدودیت PRIMARY KEY پس از ساخته شدن جدول
برای تغییر دادن محدودیت Primary Key روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ADD PRIMARY KEY (P_Id) |
ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName) |
ALTER TABLE Persons DROP CONSTRAINT pk_PersonID |
محدودیت Foreign Key , SQL FOREIGN KEY Constraint یا کلید خارجی در اس کیوال
یک FOREIGN KEY یا کلید خارجی در اسکیوال ، در یک جدول به یک PRIMARY KEY در جدولی دیگر اشاره می کند.
-
برای ارتباط بین جداول از محدودیت Foreign Key استفاده میشود و در اصل Relational Integrity را فراهم میکند.
-
به عبارت ساده تر ، کلید خارجی همان مقدار کلید اصلی از جدول دیگر است.
-
مقدار یک کلید خارجی میتواند تکراری باشد.
-
اجازه حذف رکوردی از جدول پدر نداریم که فرزندی داشته باشد.
-
اجازه insert رکورد در جدول فرزند با کد پدری که در جدول پدر موجود نیست را نداریم.
-
مقدار کلید پدری را که دارای فرزند هست را نمیتوانیم تغییر دهیم.
برای تعریف یک محدودیت FOREIGN KEY در دستور create table ، روی یک ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Orders ( O_Id int NOT NULL PRIMARY KEY, OrderNo int NOT NULL, P_Id int FOREIGN KEY REFERENCES Persons(P_Id) ) |
CREATE TABLE Orders ( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, PRIMARY KEY (O_Id), CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) ) |
برای تغییر دادن یک محدودیت FOREIGN KEY روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Orders ADD FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) |
ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id) |
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders |
برای مثال : مقادیر داخل فیلد بایستی حتما بزرگتر از ۱۰ باشد در غیر اینصورت در هنگام ورود اطلاعات، کاربر با خطا مواجه گردد.
نکته : محدودیت Check را میتوان برای ستون و جدول تعریف کرد.
محدودیت CHECK هنگامی که جدول ساخته می شود
برای تعریف یک محدودیت Check در دستور create table ، روی یک ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons ( P_Id int NOT NULL CHECK (P_Id>0), LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) |
CREATE TABLE Persons (P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT chk_Person CHECK (P_Id>0 AND City=’Astara’) ) |
ALTER TABLE Persons ADD CHECK (P_Id>0) |
برای تغییر دادن یک محدودیت Check روی چند ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City=’Astara’) |
ALTER TABLE Persons DROP CHECK chk_Person |
محدودیت Default , SQL DEFAULT Constraint یا مقدار پیش فرض در sql
از محدودیت Default یا مقدار پیش فرض در اس کیو ال ، میتوانیم زمانی استفاده کنیم که ، در هنگام ساخت جدول و تعیین نوع فیلدها، مقدار Default Value و یا پیش فرض به یک فیلد بدهیم.
در واقع محدودیت در اینجا به این معنی می باشد که اگر کاربر در هنگام درج یا به روزرسانی مقدار آن فیلد را وارد نکرد، مقدار Default Value به جای آن قرار بگیرد.
محدودیت DEFAULT در هنگام ساخت جدول
برای تعریف یک محدودیت Default در دستور create table از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) DEFAULT ‘Astara’ ) |
برای مثال تابع ()GETDATE
CREATE TABLE Orders ( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, OrderDate date DEFAULT GETDATE() ) |
محدودیت DEFAULT پس از ساخت جدول
برای تغییر دادن محدودیت Default از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ALTER COLUMN City SET DEFAULT ‘Astara’ |
ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT |
از محدودیت NOT NULL در دستور create table زمانی استفاده مکنیم که میخواهیم مقدار Allow Null فیلدها را غیر فعال کنیم.
در حقیقت با تعریف این محدودیت اجازه نمیدهیم که فیلد ما مقدار Null بگیرد. پس در هنگام درج یا به روزرسانی، اگر کاربر مقداری را در این فیلدها وارد نکرد، جلوی انجام عملیات گرفته میشود.
برای تعریف محدودیت NOT NULL از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) ) |
نکته : پیش فرض برای فیلدها در دستور create table ، مقدار دهی آنها allow null است. محدودیت Unique , SQL UNIQUE Constraint در sql
از محدودیت Unique زمانی استفاده میکنیم که بخواهیم مقادیر بعضی از فیلدها تکراری نباشند.
این فیلدها ممکن است کلید نباشند ، اما بنابر لزوم برنامه بایستی غیر تکراری باشند. به عنوان مثال فیلد آدرس ایمیل، کلید نیست اما باید Unique یا واحد باشد. برای این کار از Unique Index ها استفاده میکنیم.
-
محدودیت PRIMARY KEY به صورت خودکار، محدودیت Unique را نیز دارد.
-
در هر جدول بیش از یک فیلد نیز میتواند از محدودیت Unique استفاده کند.
محدودیت UNIQUE در هنگام ساخت TABLE
برای تعریف محدودیت Unique در دستور create table در sql ، روی یک ستون از کلمه کلیدی UNIQUE بصورت زیر استفاده می کنیم:
|
|
$(*).hide() |
ALTER TABLE Persons ADD UNIQUE (P_Id)
|
|
فیلد identity در sql به این معناست که به ازای هر رکوردی که در جدول وارد می کنیم ، فیلد identity شده ، به صورت اتوماتیک مقدار دهی خواهد شد و نمی توانیم این فیلد را مقدار دهی کنیم .
فیلد identity دو خصوصیت دارد:
Identity Increment : که مشخص می کند مقدار فیلد چند تایی افزایش پیدا کند، به طور پیش فرض مقدار آن یک است و می تواند اعداد مثبت و همین طور منفی نیز بگیرد.
Identity Mohammd : مشخص می کند مقدار این فیلد از چه عددی شروع شود، به طور پیش فرض از یک شروع می شود ولی می تواند از اعداد منفی و هر عدد مثبتی برای شروع فیلد Identity استفاده کرد.
برای استفاده از فیلد identity در sql از ساختار زیر استفاده مکنیم :
|
آموزش view در sql
view در sql در واقع همان جداول مجازی هستند که توسط آن می توانید عملیات خاصی رو که شامل دستورات sql میشه رو انجام بدهید و به صورت خروجی داشته باشید .
کاربرد view در اسکیوال
از مزیت های view این است که بعد از یک بار اجرا به صورت موقت در سرور ذخیره می شود و برای مراجعات بعدی از همان استفاده می شود و سرعت خیلی بالایی دارد.
ساختار دستور View در sql به صورت زیر است :
|