دستور CREATE DATABASE در sql
برای ايجاد يک پايگاه داده جديد از دستور CREATE DATABASE استفاده می شود.
ساختار دستور create database در اسکیوال به صورت زیر است:
CREATE DATABASE database_name
برای ایجاد یک دیتابیس با نام mySite_db به صورت زیر عمل میکنیم :
CREATE DATABASE mySite_db
دستور Create Table در sql
برای ايجاد يک جدول جديد در پايگاه داده sql ، از دستور Create Table استفاده می کنیم . برای ایجاد جدول در اسکیوال بایستی نکات زیر را در نظر گرفت :
- تعيين يک نام منحصر به فرد برای جدول .
- تعيين تعداد ستون های ( فيلد ها ) جدول و نام آنها که نباید تکراری باشد.
- تعيين نوع داده ای ستون های جدول و اندازه آنها در صورت نياز .
ساختار دستور create table در sql در ساده ترین حالت ، به صورت زیر است :
CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, column_name3 data_type, .... ) .
برای مثال برای ایجاد جدول Persons با فیلدهای زیر به صورت زیر عمل میکنیم :
CREATE TABLE Persons ( P_Id int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) )
دستور Drop در اسکیوال
تمامی جدول ها ، اندیس ها ، و حتی دیتابیس ها میتوانند با دستور Drop در sql حذف شوند.
شیوه های استفاده از دستور drop در sql به شرح زیر است :
DROP INDEX table_name.index_name
دستور Drop Index
از دستور 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 در sql
از دستور Create Index در اسکیوال برای ايجاد انديس در ستون های جدول استفاده می شود .
در يک جدول می توان برای يک يا چند ستون جدول انديس ايجاد کرد ، که اين انديس ها باعث بالا رفتن سرعت جستجو در رکوردهای جدول مي شود .
انديس يک شماره است که به هر سطر جدول اختصاص داده می شود و معمولا از صفر شروع می شود .
انديس ها از ديد کاربر مخفی هستند و هر انديس يک نام منحصر به فرد دارد . برای ایجاد یک اندیس با داده های تکراری به صورت زیر عمل میکنیم :
CREATE INDEX index_name ON table_name (column_name)
مثال :
CREATE INDEX PIndex ON Persons (LastName)
برای ایجاد یک اندیس یا index ، با داده های منحصر به فرد (unique) به صورت زیر عمل میکنیم :
CREATE UNIQUE INDEX index_name ON table_name (column_name)
برای ايجاد يک انديس ( index ) برای بيش از يک فيلد ، بايد نام فيلد های مورد نظر را به ترتيب در پرانتز بعد از نام جدول وارد کرد .
CREATE INDEX PIndex ON Persons (LastName, FirstName)
دستور Alter Table در sql
از دستور Alter Table برای اضافه کردن يا حذف کامل يک ستون از يک جدول و یا تغییر نوع داده ی فیلد موجود در پايگاه داده sql استفاده می شود.
- اضافه کردن فیلد به جدول در اسکیوال
برای اضافه کردن يک ستون ( فيلد ) جديد به يک جدول موجود در اسکیوال از دستور ALTER TABLE استفاده می شود:
ALTER TABLE table_name ADD column_name datatype
برای حذف يک ستون از يک جدول موجود به روش زير عمل می شود :
ALTER TABLE table_name DROP COLUMN column_name
- تغییر نوع داده ی یک فیلد جدول در sql
برای تغییر نوع داده ی یک فیلد از جدول در اسکیوال از دستور زیر استفاده میکنیم :
ALTER TABLE table_name ALTER COLUMN column_name datatype
همانطور که دیدید ، دستور alter table یکی از مهمترین دستورات در sql است که با 3 پارامتر و کلمه ی کلیدی زیر ، تغییرات جدول را با استفاده از کد در sql راحت میکنند :
- ADD
- DROP COLUMN
- DROP COLUMN
نکته مهم : برای تغییر نام های فیلدهای جدول در اسکیوال باید از sp های اسکیوال استفاده کرد . در آموزش زیر ، تغییر نام فیلدها همراه با مثال توضیح داده شده است :
تغییر نام فیلد در یک جدول با استفاده از دستور sql
برای تغییر نام فیلد در جدول از تغییر کد باید به روش زیر و با کمک stored procedure های خود اسکیوال ، عمل کرد :
sp_RENAME 'table_name.old_name' , 'new_name', 'COLUMN'
مثال از تغییر نام ستون و فیلد TerritoryID به TerrID از جدول Sales از پایگاه داده ی Db_name :
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) )
برای تعریف محدودیت Primary Key روی چند ستون از دستور SQL زیر استفاده می کنیم:
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)
برای تغییر دادن محدودیت Primary Key روی چند ستون از دستور SQL زیر استفاده می کنیم
ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
برای از بین بردن یک PRIMARY KEY
برای از بین بردن محدودیت Primary Key یا کلید اصلی ، از دستور SQL زیر پیروی می کنیم:
ALTER TABLE Persons DROP CONSTRAINT pk_PersonID
محدودیت Foreign Key , SQL FOREIGN KEY Constraint یا کلید خارجی در اس کیوال
یک FOREIGN KEY یا کلید خارجی در اسکیوال ، در یک جدول به یک PRIMARY KEY در جدولی دیگر اشاره می کند.
- برای ارتباط بین جداول از محدودیت Foreign Key استفاده میشود و در اصل Relational Integrity را فراهم میکند.
- به عبارت ساده تر ، کلید خارجی همان مقدار کلید اصلی از جدول دیگر است.
- مقدار یک کلید خارجی میتواند تکراری باشد.
فیلدهای کلید خارجی ، سه نوع محدودیت را ایجاد میکنند :
- اجازه حذف رکوردی از جدول پدر نداریم که فرزندی داشته باشد.
- اجازه insert رکورد در جدول فرزند با کد پدری که در جدول پدر موجود نیست را نداریم.
- مقدار کلید پدری را که دارای فرزند هست را نمیتوانیم تغییر دهیم.
همچنین محدودیت FOREIGN KEY از وارد کردن داده های نامعتبر در جدول جلوگیری میکند. (در فیلد foreign key) ، دلیل آن هم، این است که با مقادیر جدول دیگر که به آن اشاره می کند تطابق ندارد.
برای تعریف یک محدودیت 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) )
برای تعریف یک محدودیت FOREIGN KEY روی چند ستون از دستور SQL زیر استفاده می کنیم:
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 پس از ساخته شدن جدول
برای تغییر دادن یک محدودیت FOREIGN KEY روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Orders ADD FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
برای تغییر دادن محدودیت FOREIGN KEY روی چند ستون، از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Orders ADD CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
از بین بردن FOREIGN KEY
برای از بین بردن محدودیت FOREIGN KEY ، از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Orders DROP CONSTRAINT fk_PerOrders
محدودیت Check , SQL CHECK Constraint یا محدودیت های خاص در sql
از محدودیت Check یا محدودیت خاص در اس کیو ال زمانی استفاده میکنیم که بخواهیم برای یک فیلد، یک سری محدودیت خاص روی فیلد تعریف کنیم.
برای مثال : مقادیر داخل فیلد بایستی حتما بزرگتر از 10 باشد در غیر اینصورت در هنگام ورود اطلاعات، کاربر با خطا مواجه گردد.
نکته : محدودیت 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) )
برای تعریف یک محدودیت Check روی چند ستون از دستور SQL زیر استفاده می کنیم:
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='Sandnes') )
محدودیت CHECK پس از ساخته شدن جدول
برای تغییر دادن یک محدودیت Check روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ADD CHECK (P_Id>0)
برای تغییر دادن یک محدودیت Check روی چند ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ADD CONSTRAINT chk_Person CHECK (P_Id>0 AND City='Sandnes')
از بین بردن محدودیت CHECK
برای از بین بردن محدودیت Check یا محدودیت خاص ، از دستور زیر استفاده می کنیم:
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 'Sandnes' )
از محدودیت Default می توان در مواقعی که میخواهیم از function ها در SQL استفاده کنیم،ز دستور SQL به صورت زیر استفاده می کنیم:
برای مثال تابع ()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 'SANDNES'
از بین بردن محدودیت DEFAULT
برای از بین بردن محدودیت Default یا مقدار پیش فرض در sql ، از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ALTER COLUMN City DROP DEFAULT
محدودیت NOT NULL در sql
از محدودیت 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) )
که در مثال بالا p_Id و LastName اجازه ی null بودن ندارند ولی دیگر فیلدها allow null هستند.
نکته : پیش فرض برای فیلدها در دستور create table ، مقدار دهی آنها allow null است.
محدودیت Unique , SQL UNIQUE Constraint در sql
از محدودیت Unique زمانی استفاده میکنیم که بخواهیم مقادیر بعضی از فیلدها تکراری نباشند.
این فیلدها ممکن است کلید نباشند ، اما بنابر لزوم برنامه بایستی غیر تکراری باشند. به عنوان مثال فیلد آدرس ایمیل، کلید نیست اما باید Unique یا واحد باشد. برای این کار از Unique Index ها استفاده میکنیم.
- محدودیت PRIMARY KEY به صورت خودکار، محدودیت Unique را نیز دارد.
- در هر جدول بیش از یک فیلد نیز میتواند از محدودیت Unique استفاده کند.
محدودیت UNIQUE در هنگام ساخت TABLE
برای تعریف محدودیت Unique در دستور create table در sql ، روی یک ستون از کلمه کلیدی UNIQUE بصورت زیر استفاده می کنیم:
CREATE TABLE Persons ( P_Id int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
برای تعریف محدودیت Unique روی چند ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName) )
محدودیت UNIQUE پس از ساخت جدول
برای تغییر دادن محدودیت Unique روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ADD UNIQUE (P_Id)
برای تغییر دادن محدودیت Unique روی چند ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
از بین بردن یک محدودیت UNIQUE
برای از بین بردن محدودیت Unique از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Persons DROP CONSTRAINT uc_PersonID
فیلد identity در sql
فیلد identity در sql به این معناست که به ازای هر رکوردی که در جدول وارد می کنیم ، فیلد identity شده ، به صورت اتوماتیک مقدار دهی خواهد شد و نمی توانیم این فیلد را مقدار دهی کنیم .
فیلد identity دو خصوصیت دارد:
Identity Increment : که مشخص می کند مقدار فیلد چند تایی افزایش پیدا کند، به طور پیش فرض مقدار آن یک است و می تواند اعداد مثبت و همین طور منفی نیز بگیرد.
Identity Seed : مشخص می کند مقدار این فیلد از چه عددی شروع شود، به طور پیش فرض از یک شروع می شود ولی می تواند از اعداد منفی و هر عدد مثبتی برای شروع فیلد Identity استفاده کرد.
برای استفاده از فیلد identity در sql از ساختار زیر استفاده مکنیم :
CREATE TABLE Persons ( P_Id int PRIMARY KEY IDENTITY, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
نکته مهم : اگر رکوردهای جدول را با Delete حذف کنیم مقدار آخرین Identity حفظ خواهد شد و درج با عدد بعدی آن صورت می گیرد، اگر بخواهیم بعد از حذف داده ها درج با مقدار Seed تعریف شده صورت گیرد به جای Delete از
دستور TRUNCATE table_name استفاده می کنیم، به این ترتیب لاگ هم ذخیره نخواهد شد ، ضمن اینکه سرعت حذف رکوردها بسیار بیشتر است.
آموزش view در sql
view در sql در واقع همان جداول مجازی هستند که توسط آن می توانید عملیات خاصی رو که شامل دستورات sql میشه رو انجام بدهید و به صورت خروجی داشته باشید .
کاربرد view در اسکیوال
از مزیت های view این است که بعد از یک بار اجرا به صورت موقت در سرور ذخیره می شود و برای مراجعات بعدی از همان استفاده می شود و سرعت خیلی بالایی دارد.
ساختار دستور View در sql به صورت زیر است :
CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition
منبع:فوریوسنتر
با ما همراه باشید...