در عصری که داده ها در مقادیر بسیار زیاد تولید می شوند، نیاز دائمی به مدیریت داده ها در پایگاه های داده وجود دارد. پایگاه داده های رابطه ای یکی از محبوب ترین پایگاه های داده هستند و SQL اساس پایگاه داده های رابطه ای است. بنابراین مهارتهای SQL در بیشتر نقشهای شغلی ضروری است. در این مقاله در مورد دستورات SQL، دستورات و عباراتی را که باید در SQL درک کنید را مورد بحث قرار خواهیم داد.
موضوعات بررسی شده در این مقاله:
- Data Definition Language(DDL): شامل دستوراتی است که برای تعریف پایگاه داده استفاده می شود.
- Data Manipulation Language(DML): شامل دستوراتی است که برای تغییر داده های موجود در پایگاه داده استفاده می شود.
- Data Control Language(DCL): شامل دستوراتی است که با مجوزهای کاربر و کنترل های سیستم پایگاه داده سروکار دارد.
- Transaction Control Language(TCL): شامل دستوراتی است که با تراکنش پایگاه داده سروکار دارد.
Comments در SQL Server:
دو روش وجود دارد که می توانید در SQL نظر بدهید، یعنی کامنت تک خطی یا کامنت چند خطی.
کامنت تک خطی:
نظر تک خطی با دو خط فاصله (–) شروع می شود. بنابراین، هر متنی که بعد از (–)، تا انتهای یک خط ذکر شود توسط کامپایلر نادیده گرفته می شود.
--Select all: SELECT * FROM Employee_Info;
کامنت چند خطی:
نظرات چند خطی با /* شروع می شود و با */ پایان می یابد. بنابراین، هر متنی که بین /* و */ ذکر شود توسط کامپایلر نادیده گرفته می شود.
/*Select all the columns of all the records from the Employee_Info table:*/ SELECT * FROM Students;
Data Definition Language Commands (DDL):
این بخش از مقاله به شما بینشی در مورد دستوراتی میدهد که از طریق آنها میتوانید پایگاه داده خود را تعریف کنید. دستورات به شرح زیر است:
- دستور CREATE
- دستور DROP
- دستور TRUNCATE
- دستور ALTER
- BACKUP دیتابیس
دستور CREATE:
همانطور که از اسمش پیداست این دستور برای ایجاد جدول یا پایگاه داده استفاده میشود.
CREATE DATABASE DatabaseName;
مثال:
CREATE TABLE Employee_Info ( EmployeeID int, EmployeeName varchar(255), Emergency ContactName varchar(255), PhoneNumber int, Address varchar(255), City varchar(255), Country varchar(255) );
همچنین می توانید با استفاده از جدول دیگری یک جدول ایجاد کنید. به دستور و مثال زیر توجه کنید:
CREATE TABLE NewTableName AS SELECT Column1, column2,..., ColumnN FROM ExistingTableName WHERE ....;
CREATE TABLE ExampleTable AS SELECT EmployeeName, PhoneNumber FROM Employee_Info;
دستور DROP:
این دستور برای حذف یک جدول موجود یا یک پایگاه داده استفاده میشود. این عبارت برای حذف یک پایگاه داده موجود استفاده می شود. هنگامی که از این عبارت استفاده می کنید، اطلاعات کامل موجود در پایگاه داده از بین میرود.
DROP Table Employee_Info;
دستور TRUNCATE:
این دستور برای حذف اطلاعات موجود در جدول استفاده می شود اما جدول را حذف نمی کند. بنابراین، هنگامی که از این دستور استفاده می کنید، اطلاعات شما از بین می رود، اما نه جدول.
TRUNCATE Table Employee_Info;
دستور ALTER:
این دستور برای حذف، تغییر یا اضافه کردن محدودیتها یا ستونها در جدول موجود استفاده میشود. شما میتوانید با توجه به نیاز خود از دستور ALTER TABLE با دستور ADD/DROP Column استفاده کنید. اگر میخواهید یک ستون اضافه کنید، از دستور ADD و اگر میخواهید ستونی را حذف کنید، از دستور DROP COLUMN استفاده میکنید.
-ADD Column BloodGroup: ALTER TABLE Employee_Info ADD BloodGroup varchar(255); --DROP Column BloodGroup: ALTER TABLE Employee_Info DROP COLUMN BloodGroup ;
این عبارت برای تغییر نوع داده یک ستون موجود در جدول استفاده میشود.
--Add a column DOB and change the data type to Date. ALTER TABLE Employee_Info ADD DOB year; ALTER TABLE Employee_Info ALTER DOB date;
BACKUP دیتابیس:
این عبارت برای ایجاد یک نسخه پشتیبان کامل از یک پایگاه داده موجود استفاده میشود.
BACKUP DATABASE DatabaseName TO DISK = 'filepath';
BACKUP DATABASE Employee TO DISK = 'C:UsersSahitiDesktop';
همچنین میتوانید از differential back up استفاده کنید. این نوع پشتیبان گیری فقط از قسمتهایی از پایگاه داده پشتیبان تهیه میکند که از آخرین نسخه پشتیبان کامل پایگاه داده تغییر کرده است.
BACKUP DATABASE DatabaseName TO DISK = 'filepath' WITH DIFFERENTIAL;
BACKUP DATABASE Employee TO DISK = 'C:UsersSahitiDesktop' WITH DIFFERENTIAL;
اکنون که دستورات تعریف داده را میدانید، اجازه دهید انواع مختلفی از کلیدها و محدودیتهایی را که قبل از یادگیری پایگاههای داده باید بدانید، آشنا کنم.
انواع مختلف کلید در پایگاه داده:
عمدتاً 7 نوع کلید وجود دارد که می توان آنها را در یک پایگاه داده در نظر گرفت. در این مقاله قصد داریم جداول زیر را در نظر بگیرم تا کلیدهای مختلف را برای شما توضیح دهم.
Candidate Key: مجموعهای از ویژگیها که میتوانند یک جدول را بهطور منحصربهفرد شناسایی کنند، یک جدول میتواند بیش از یک کلید Candidate داشته باشد و از بین کلیدهای کاندید انتخاب شده، یک کلید میتواند به عنوان کلید اصلی انتخاب شود. در مثال بالا، از آنجایی که EmployeeID، InsuranceNumber و PanNumber میتوانند هر تاپل را بهطور منحصربهفرد شناسایی کنند، به عنوان یک کلید نامزد در نظر گرفته میشوند.
Super Key: مجموعه ای از ویژگی هایی که میتوانند به طور منحصر به فرد یک تاپل را شناسایی کنند به عنوان Super Key شناخته می شوند. بنابراین، یک کلید کاندید، کلید اولیه و یک کلید منحصر به فرد یک سوپرکلید است، اما بالعکس درست نیست.
Alternate Key : کلیدهای جایگزین کلیدهای کاندید هستند که به عنوان کلید اصلی انتخاب نمی شوند. از مثال بالا، کلیدهای جایگزین PanNumber و Insurance Number هستند.
Unique Key: کلید یکتا شبیه به کلید اصلی است، اما یک مقدار NULL را در ستون اجازه میدهد. در اینجا شماره بیمه و شماره پان را میتوان به عنوان کلیدهای منحصر به فرد در نظر گرفت.
Foreign Key: مشخصهای که فقط میتواند مقادیر موجود را به عنوان مقادیر یک ویژگی دیگر بگیرد، کلید خارجی مشخصهای است که به آن اشاره دارد. در مثال بالا، Employee_ID از جدول Employee_Information به Employee_ID از جدول Employee_Salary اشاره میشود.
Composite Key: یک کلید ترکیبی ترکیبی از دو یا چند ستون است که هر تاپل را به طور منحصر به فرد شناسایی می کند. در اینجا، Employee_ID و Month-Year_Of_Salary را میتوان با هم گروهبندی کرد تا بهطور منحصربهفرد هر تاپلی در جدول شناسایی شود.
محدودیت ها در یک پایگاه داده برای تعیین قوانین برای داده ها در یک جدول استفاده می شوند. در زیر انواع مختلفی از محدودیت ها وجود دارد:
- NOT NULL
- UNIQUE
- CHECK
- DEFAULT
- INDEX
NOT NULL:
این محدودیت تضمین می کند که یک ستون نمی تواند مقدار NULL داشته باشد.
--NOT NULL on Create Table CREATE TABLE Employee_Info ( EmployeeID int NOT NULL, EmployeeName varchar(255) NOT NULL, Emergency ContactName varchar(255), PhoneNumber int NOT NULL, Address varchar(255), City varchar(255), Country varchar(255) ); --NOT NULL on ALTER TABLE ALTER TABLE Employee_Info MODIFY PhoneNumber int NOT NULL;
UNIQUE:
این محدودیت تضمین میکند که تمام مقادیر یک ستون منحصر به فرد هستند.
--UNIQUE on Create Table CREATE TABLE Employee_Info ( EmployeeID int NOT NULL UNIQUE, EmployeeName varchar(255) NOT NULL, Emergency ContactName varchar(255), PhoneNumber int NOT NULL, Address varchar(255), City varchar(255), Country varchar(255) ); --UNIQUE on Multiple Columns CREATE TABLE Employee_Info ( EmployeeID int NOT NULL, EmployeeName varchar(255) NOT NULL, Emergency ContactName varchar(255), PhoneNumber int NOT NULL, Address varchar(255), City varchar(255), Country varchar(255), CONSTRAINT UC_Employee_Info UNIQUE(Employee_ID, PhoneNumber) ); --UNIQUE on ALTER TABLE ALTER TABLE Employee_Info ADD UNIQUE (Employee_ID); --To drop a UNIQUE constraint ALTER TABLE Employee_Info DROP CONSTRAINT UC_Employee_Info;
CHECK:
این محدودیت تضمین می کند که تمام مقادیر یک ستون یک شرایط خاص را برآورده میکند.
--CHECK Constraint on CREATE TABLE CREATE TABLE Employee_Info ( EmployeeID int NOT NULL, EmployeeName varchar(255), Emergency ContactName varchar(255), PhoneNumber int, Address varchar(255), City varchar(255), Country varchar(255) CHECK (Country=='India') ); --CHECK Constraint on multiple columns CREATE TABLE Employee_Info ( EmployeeID int NOT NULL, EmployeeName varchar(255), Emergency ContactName varchar(255), PhoneNumber int, Address varchar(255), City varchar(255), Country varchar(255) CHECK (Country = 'India' AND Cite = 'Hyderabad') ); --CHECK Constraint on ALTER TABLE ALTER TABLE Employee_Info ADD CHECK (Country=='India'); --To give a name to the CHECK Constraint ALTER TABLE Employee_Info ADD CONSTRAINT CheckConstraintName CHECK (Country=='India'); --To drop a CHECK Constraint ALTER TABLE Employee_Info DROP CONSTRAINT CheckConstraintName;
DEFAULT:
این محدودیت شامل مجموعهای از مقادیر پیش فرض برای یک ستون است که هیچ مقداری مشخص نشده است.
--DEFAULT Constraint on CREATE TABLE CREATE TABLE Employee_Info ( EmployeeID int NOT NULL, EmployeeName varchar(255), Emergency ContactName varchar(255), PhoneNumber int, Address varchar(255), City varchar(255), Country varchar(255) DEFAULT 'India' ); --DEFAULT Constraint on ALTER TABLE ALTER TABLE Employee_Info ADD CONSTRAINT defau_Country DEFAULT 'India' FOR Country; --To drop the Default Constraint ALTER TABLE Employee_Info ALTER COLUMN Country DROP DEFAULT;
INDEX:
این محدودیت برای ایجاد ایندکسها در جدول استفاده میشود که از طریق آنها می توانید خیلی سریع دادهها را از پایگاه داده ایجاد و بازیابی کنید.
--Create an Index where duplicate values are allowed CREATE INDEX IndexName ON TableName (Column1, Column2, ...ColumnN); --Create an Index where duplicate values are not allowed CREATE UNIQUE INDEX IndexName ON TableName (Column1, Column2, ...ColumnN);
CREATE INDEX idex_EmployeeName ON Persons (EmployeeName); --To delete an index in a table DROP INDEX Employee_Info.idex_EmployeeName;
Data Manipulation Language Commands (DML):
این بخش از مقاله به شما بینشی در مورد دستوراتی می دهد که از طریق آنها می توانید پایگاه داده را دستکاری کنید. دستورات به شرح زیر است:
- دستور USE
- دستور INSERT INTO
- دستور UPDATE
- دستور DELETE
- دستور SELECT
به غیر از این دستورات، عملگرها/توابع دیگری مانند:
- اپراتورها
- توابع جمع
- توابع NULL
دستور USE:
دستور USE برای انتخاب پایگاه دادهای که میخواهید عملیات را روی آن انجام دهید استفاده میشود.
INSERT INTO TableName (Column1, Column2, Column3, ...,ColumnN) VALUES (value1, value2, value3, ...); --If you don't want to mention the column names then use the below syntax INSERT INTO TableName VALUES (Value1, Value2, Value3, ...);
INSERT INTO Employee_Info(EmployeeID, EmployeeName, Emergency ContactName, PhoneNumber, Address, City, Country) VALUES ('06', 'Sanjana','Jagannath', '9921321141', 'Camel Street House No 12', 'Chennai', 'India'); INSERT INTO Employee_Info VALUES ('07', 'Sayantini','Praveen', '9934567654', 'Nice Road 21', 'Pune', 'India');
دستور UPDATE:
این عبارت برای اصلاح رکوردهای موجود در جدول استفاده میشود.
UPDATE TableName SET Column1 = Value1, Column2 = Value2, ... WHERE Condition;
UPDATE Employee_Info SET EmployeeName = 'Aahana', City= 'Ahmedabad' WHERE EmployeeID = 1;
دستور DELETE:
این عبارت برای حذف رکوردهای موجود در یک جدول استفاده میشود.
DELETE FROM Employee_Info WHERE EmployeeName='Preeti';
دستور SELECT:
این دستور برای انتخاب دادهها از یک پایگاه داده استفاده می شود و داده های برگشتی در یک جدول نتیجه به نام مجموعه نتیجه ذخیره میشود.
SELECT Column1, Column2, ...ColumN FROM TableName; --(*) is used to select all from the table SELECT * FROM table_name; -- To select the number of records to return use: SELECT TOP 3 * FROM TableName;
دستور GROUP BY:
این دستور “GROUP BY” همراه با توابع جمع برای گروه بندی مجموعه نتایج توسط یک یا چند ستون استفاده میشود.
SELECT Column1, Column2,..., ColumnN FROM TableName WHERE Condition GROUP BY ColumnName(s) ORDER BY ColumnName(s);
در مفاله بعدی در مورد اپراتورها سایر دستورات Data Manipulation Language(DML) و Data Control Language(DCL) صحبت خواهیم کرد.