🌐 جهان فناوری اطلاعات

💻 تازه ترین های فناوری اطلاعات(IT)

💻 تازه ترین های فناوری اطلاعات(IT)

🌐 جهان فناوری اطلاعات
آخرین نظرات

۶۲ مطلب با کلمه‌ی کلیدی «SQL» ثبت شده است

تابع UCase در اسکیوال مقادیر فیلد را به حروف بزرگ تبدیل میکند.

ساختار دستور Ucase در sql به صورت زیر است :

SELECT UCASE(column_name) FROM table_name

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT

برای ایجاد یک جدول جدید در پایگاه داده sql ، از دستور Create Table استفاده می کنیم . برای ایجاد جدول در اسکیوال بایستی نکات زیر را در نظر گرفت :

  1. تعیین یک نام منحصر به فرد برای جدول .
  2. تعیین تعداد ستون های ( فیلد ها ) جدول و نام آنها که نباید تکراری باشد.
  3. تعیین نوع داده ای ستون های جدول و اندازه آنها در صورت نیاز .

ساختار دستور 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)
)

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT

عملگر In در اسکیوال برای مشاهده اطلاعات رکوردهایی از جدول به کار می رود که شما مقدار دقیق حداقل یکی از فیلدهای آنرا می دانید . دستور in در اسکیول برای کوئری های پیچیده در اس کیو ال بسیار کاربردی است.

ساختار این دستور به صورت زیر است : 

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

مثال : از جدول Persons مشخصات افرادی را بدهید که نام خانوادگی آنها رجبی یا یوسفی است :

Select * From  Persons
Where Family IN ( "رجبی" , "یوسفی" );

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT


تابع Avg در اسکیوال میانگین یک ستون عددی را برمیگرداند.

ساختار دستور avg به صورت زیر است :

SELECT AVG(column_name) FROM table_name

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT



محدودیت Foreign Key , SQL FOREIGN KEY Constraint یا کلید خارجی در اس کیوال

یک FOREIGN KEY یا کلید خارجی در اسکیوال ، در یک جدول به یک PRIMARY KEY در جدولی دیگر اشاره می کند.

  • برای ارتباط بین جداول از محدودیت Foreign Key استفاده می‌شود و در اصل Relational Integrity را فراهم می‌کند.
  • به عبارت ساده تر ، کلید خارجی همان مقدار کلید اصلی از جدول دیگر است.
  • مقدار یک کلید خارجی میتواند تکراری باشد.

فیلد‌های کلید خارجی ، سه نوع محدودیت را ایجاد می‌کنند :

  1. اجازه حذف رکوردی از جدول پدر نداریم که فرزندی داشته باشد.
  2. اجازه insert رکورد در جدول فرزند با کد پدری که در جدول پدر موجود نیست را نداریم.
  3. مقدار کلید پدری را که دارای فرزند هست را نمی‌توانیم تغییر دهیم.

همچنین محدودیت 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

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT


تابع len در sql ، طول (تعداد کاراکترهای) یک فیلد متنی رشته ای را برمیگرداند.

ساختار دستور len در sql به صورت زیر است :

SELECT LEN(column_name) FROM table_name

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT

تابع Sum در sql مجموع مقادیر اعداد در یک فیلد را محاسبه کرده و به عنوان خروجی بر می گرداند.
تابع Sum() باید با فیلدهایی که داده آنها از نوع عددی است ، به کار رود .

ساختار دستور sum در sql به صورت زیر است :

SELECT SUM(column_name) FROM table_name

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT


در این قسمت از آموزش sql ، انواع داده در اسکیوال را شرح میدهیم.

انواع داده رشته ای  در اسکیوال : Character strings 

این نوع فیلد برای نگهداری عبارات و یا حروف ASCII می‌باشد. در این نوع فیلد‌ها، برای نگهداری هر حرف، یک بایت اشغال می‌شود و لذا نیاز به Collation برای تعیین زبان اطلاعات می‌باشد.

نوع داده شرح
char(n) اطلاعات متنی با طول ثابت از ۱ تا حداکثر ۸۰۰۰ حرف را در خود ذخیره می‌کنند.
varchar(n) اطلاعات متنی با طول متغیر از ۱ تا حداکثر ۸۰۰۰ حرف را در خود ذخیره می‌کنند. فرق بین Char و VarChar در این است که در Char، طول رشته ثابت است. یعنی اگر یک فیلد را از نوع Char(20) معرفی کرده و در آن کلمه Orion را قرار دهیم، عین ۲۰ حرف استفاده خواهد شد. یعنی ۵ کاراکتر اول را کلمه مربوطه اشغال کرده و ۱۵ کاراکتر باقی‌مانده، Blank خواهند بود. اما در VarChar اینگونه نیست..
varchar(max) اطلاعات از ۱ تا ۲ مگا حرف ذخیره می‌شود و مکانیزم آن هم بصورت پوینتری می‌باشد.
text اطلاعات از ۱ تا ۲ مگا حرف ذخیره می‌شود. این نوع داده همانند Image و VarBinary(MAX) در خود رکورد ذخیره نمی‌شوند. بلکه توسط یک پوینتر به جای دیگری اشاره می‌کنند. این نوع داده در SQL 10 حذف شده و بجای آن‌ها از VarChar(MAX) استفاده می‌شود..

انواع داده یونیکد  در اسکیوال : Unicode types

این نوع فیلد‌ها برای نگهداری متون Unicode بوده و برای نگهداری هر حرف، از دو بایت استفاده می‌شود. پس مسلماً نسبت به نوع داده‌های کاراکتری، حافظه بیشتری را به خود اختصاص می‌دهد و در ضمن کمی هم کندتر است. این نوع فیلد‌ها، احتیاج به Collation ندارند.

نوع داده شرح
nchar(n) در این نوع داده، اطلاعات از ۱ تا حداکثر ۴۰۰۰ حرف با طول ثابت ذخیره می‌شود.
nvarchar(n) در این نوع داده، اطلاعات از ۱ تا حداکثر ۴۰۰۰ بایت با طول متغیر ذخیره می‌شود.
nvarchar(max) در این نوع داده از ۱ تا ۱ مگا حرف ذخیره می‌شود. مکانیزم آن هم بصورت Pointer می‌باشد.
ntext در این نوع داده، از ۱ تا ۱ مگا حرف ذخیره می‌شود. مکانیزم آن هم بصورت Pointer .

انواع داده باینری  در اسکیوال : Binary types

این نوع فیلد‌ها برای نگهداری اطلاعات بصورت بایناری مانند تصاویر مناسب هستند

نوع داده شرح
bit یک فیلد دو بیتی است و می‌تواند ۰ و ۱ و Null را ذخیره کند.کاربرد آن در زمان‌هایی است که دو حالت وجود داشته باشد. مانند جنسیت زن و مرد.
binary(n) این نوع فیلد‌ها، از ۱ تا ۸۰۰۰ بایت را در خود جای می‌دهند.
varbinary(n) این نوع فیلد‌ها هم از ۱ تا ۸۰۰۰ بایت را در خود جای می‌دهند. (متغیر).
varbinary(max) این نوع Datatype در SQL 2005 معرفی شده و تقریباً همانند داده‌های Image هستند.
image این نوع فیلد‌ها از ۱ تا حداکثر ۲ گیگابایت را می‌توانند ذخیره کنند. فرق این نوع داده‌ها با دو نوع قبلی این است که در دو نوع قبلی، اطلاعات در خود رکورد ثبت می‌شوند ولی در این نوع داده‌ها، اطلاعات در یک Page ذخیره می‌شود و به جایش در رکورد، یک پوینتر ۱۶ بایتی ذخیره می‌شود. این نوع فیلد‌ها در SQL 10 حذف شده و به جایش باید از VarBinary استفاده کرد.

انواع داده عددی  در اس کیو ال : Number types

این نوع فیلد برای نگهداری اعداد صحیح و بدون اعشار استفاده می‌گردد و دارای ۴ نوع به شرح زیر است. در ضمن این نوع فیلد‌ها رتبه یک سرعت در نوع فیلد‌های عددی را دارد.

نوع داده شرح
tinyint یک بایت را اشغال می‌کند و می‌تواند از ۰ تا ۲۵۵ را در خود ذخیره کند.
smallint یک عدد دو بایتی است و می‌تواند از ۳۲۷۶۷ منفی تا ۳۲۷۶۷ مثبت را در خود ذخیره کند.
int یک عدد چهار بایتی است که می‌تواند اعداد بین مثبت و منفی ۲ میلیارد را در خود ذخیره کند.
bigint یک عدد ۸ بایتی است که می‌تواند اعداد بین مثبت و منفی ۴ میلیارد را در خود ذخیره کند.
decimal(p,s) این نوع فیلد برای نگهداری اعداد اعشاری با تعداد اعشار مشخص استفاده می‌گردد. این نوع فیلد‌ها بسیار کند بوده و استفاده از آنها توصیه نمی‌گردد. که در آن Precision به معنای تعداد کل رقم‌های عدد و Scale تعداد ارقام اعشار را مشخص می‌کند. مثلاً اگر فیلدری بصورت Deciaml(6,2) تعریف شود، حداکثر آن برابر ۹۹۹۹٫۹۹ می‌باشد..
numeric(p,s) .
smallmoney یک عدد ۴ بایتی است که می‌تواند ۶ رقم صحیح و ۴ رقم اعشار را در خود ذخیره کند..
money یک عدد ۸ بایتی است که می‌تواند ۱۵ رقم صحیح و ۴ رقم اعشار را در خود ذخیره کند..
float(n) یک عدد ۸ بایتی که اعداد بصورت توانی از ۱۰ نگهداری می‌شوند. .
real یک عدد ۴ بایتی است که اعداد بصورت توانی از ۱۰ نگهداری می‌شوند..

انواع داده تاریخ  در اس کیوال  :Date types

این نوع فیلد‌ها برای نگهداری تاریخ میلادی و ساعت استفاده می‌شود و برای تاریخ شمسی کاربرد ندارد.

نوع داده شرح
datetime این نوع فیلد، ۸ بایتی است و از سال ۱۷۰۰ تا ۹۹۹۹ را با دقت هزارم ثانیه ذخیره می‌کند..
datetime2 .
smalldatetime این نوع فیلد، ۴ بایتی است و از سال ۱۹۰۰ تا ۲۰۷۹ را با دقت هزارم ثانیه ذخیره می‌کند..
date این نوع فیلد‌ها برای نگهداری تاریخ میلادی استفاده می‌شود.
time این نوع فیلد‌ها برای نگهداری ساعت استفاده می‌شود.
datetimeoffset  
timestamp  

انواع دیگر داده ها  در sql: Other data types

 

نوع داده شرح
sql_variant این نوع فیلد برای نگهداری انواع داده استفاده می‌شود و نوع آن با توجه به اولین مقداری که در آن قرار می‌گیرد تعیین خواهد شد. چون نوع و حجم فیلد مشخص نیست، لذا تنها یک اشاره‌گر ۱۶ بایتی در آن قرار گرفته و داده اصلی در فایل جداگانه نگهداری می‌شود. استفاده از این نوع فیلد، توصیه نمی‌گردد..
uniqueidentifier .این فیلد ۱۶ بایتی، به ما کدی Unique یا تک می‌دهد که به اصطلاح GUID می‌گویند. یکی از کاربردهای آن در Replication است.
xml این فیلد بیشتر برای انتقال اطلاعات و دستورات تحت web استفاده می‌شود و شامل انواع MetaData های مختلف است.
table .
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT


جدول ( table ) در پایگاه داده ها چیست ؟ داده ها در دیتابیس یا پایگاه داده داخل جدول یا table ها ذخیره میشوند. هر database  میتواند شامل چندین table باشد .هر جدول از تعدادی سطر و ستون تشکیل شده است.

برای تمام ستون ها در دیتابیس بسته به نوع کارکرد آن میتوانید نوع مورد نظر خود را تعریف کنید ، مقدارهایی که درون هر فیلد ذخیره میشود بایستی با نوع انتخابی فیلد مطابقت داشته باشد.

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

جدول بخشی از پایگاه داده است. یک پایگاه داده از جداول مختلف تشکیل شده است.

مثال : برای ذخیره‌سازی انواع مختلف داده ها شما نیازمند ایجاد جداول جداگانه‌ای هستید. برای مثال، اگر شما یک نرم افزار مدیریت مدرسه دارید، ممکن است نیاز به ایجاد جداول زیر باشد:
دانش آموزان – برای ذخیره لیستی از تمام اعضای دانش آموزان
معلمان – ذخیره لیستی از تمام معلمان
حضور و غیاب – برای پیگیری حضور همه دانش آموزان
MarkList – برای ذخیره لیست علامت همه دانش آموزا

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT

از دستور ISNULL در اسکیوال زمانی استفاده میشود که شما میخواهید تمام فیلدهای null را در خروجی داشته باشید.

مقدار null در اس کیو ال با space ' ' تفاوت دارد.

ساختار دستور is null به همراه مثال آن به صورت زیر است که در این مثال تمام رکوردهایی که حاوی فیلد آدرس null هستند انتخاب می شوند.

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NULL

بر عکس دستور is null در sql ، دستور is not Null هست که مقادیری را برمیگرداند که Null نباشد که بیشتر از این شکل از این دستور استفاده مشود.

مثال : در مثال زیر رکوردهایی که آدرس آنها تهی ( null ) نیستند ، انتخاب و در خروجی این دستور در اسکیوال می روند.

SELECT LastName,FirstName,Address FROM Persons
WHERE Address IS NOT NULL

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT


SQLبه دو قسمت تقسیم میشود :

  • زبان دستکاری داده ها DML (Data Manipulation Language)
  • زبان تعریف داده ها DDL (Data Definition Language)

دستورات DML  شامل بخشهای زیر میشوند 

  1. SELECT واکشی اطلاعات از دیتابیس
  2. UPDATE ویرایش اطلاعات دیتابیس
  3. DELETE پاک کردن اطلاعات از دیتابیس
  4. INSERT INTO اضافه کردن اطلاعات جدید به دیتابیس

دستورات DDLشامل بخشهای زیر میشوند

  1. CREATE DATABASE ایجاد یک دیتابیس جدید
  2. ALTER DATABASE ایجاد تغییرات در دیتابیس
  3. CREATE TABLE ایجاد یک table  جدید
  4. ALTER TABLE اعمال تغییرات در table
  5. DROP TABLE پاک کردن یک table
  6. CREATE INDEX  ایجاد یک شاخصه
  7. DROP INDEX حذف یک شاخص

تعریف شاخصه Index : شاخص عبارتست از یک شماره که به هر یک از فیلدها در سطرهای یک جدول اختصاص داده می شود . شاخص ها در پشت پرده جداول ایجاد شده و از دید کاربر کاملا مخفی هستند . استفاده از شاخص ها باعث می شود تا برنامه بتواند مقادیر سطرهای مختلف را بر حسب مقدار یک فیلد و بر حسب شماره شاخص آنها از کم به زیاد یا بر عکس مرتب کند و در عملیات جستجو باعث بالا رفتن سرعت جستجو می شود .

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT

از محدودیت 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 است.

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT


Database یا دیتابیس یا پایگاه داده یا بانک اطلاعاتی چیست ؟ 

دیتابیس یا پایگاه داده چیست ؟ بانک اطلاعاتی یا پایگاه داده یا دیتابیس (data base) به مجموعه ای از اطلاعات با ساختار منظم  گفته می شود. این پایگاه های اطلاعاتی معمولاً در قالبی که برای دستگاه ها و رایانه ها قابل خواندن و قابل دسترسی باشند ذخیره می شوند.

پایگاه داده اس کیو ال چیست ؟ با گسترش طراحی وب سایت های پویا در شبکه جهانی وب نیاز به یک پایگاه داده و بانک اطلاعاتی (database) بزرگ برای مدیریت محتوا  احساس میشد. مدیریت پایگاه داده ها یک فرایند پیچیده است ، که به طور قابل توجهی با برنامه و زبان برنامه نویسی SQL این نیاز برطرف شده است.

پایگاه داده در اصل مجموعه ای سازمان یافته از اطلاعات است. این واژه از دانش رایانه سرچشمه می گیرد ،اما کاربر وسیع و عمومی نیز دارد، این وسعت به اندازه ای است که مرکز اروپایی پایگاه داده (که تعاریف خردمندانه ای برای پایگاه داده ایجاد می کند) شامل تعاریف غیر الکترونیکی برای پایگاه داده می باشد. در این نوشتار به کاربرد های تکنیکی برای این اصطلاح محدود می شود.

یک تعریف ممکن این است که: پایگاه داده مجموعه ای از رکورد های ذخیره شده در رایانه با یک روش سیستماتیک (اصولی) مثل یک برنامه رایانه ای است که می تواند به سوالات کاربر پاسخ دهد. برای ذخیره و بازیابی بهتر، هر رکورد معمولا به صورت مجموعه ای از اجزای داده ای یا رویداد ها سازماندهی می گردد.

بخش های بازیابی شده در هر پرسش به اطلاعاتی تبدیل می شود که برای اتخاذ یک تصمیم کاربرد دارد. برنامه رایانه ای که برای مدیریت و پرسش و پاسخ بین پایگاه های داده ای استفاده می شود را مدیر سیستم پایگاه داده ای یا به اختصار (DBMS) می نامیم. خصوصیات و طراحی سیستم های پایگاه داده ای در علم اطلاعات مطالعه می شود.

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

پرکاربرد ترین مدلی که امروزه بسیار استفاده می شود، مدل رابطه ای است که به طور عام به صورت زیر تعریف می شود: نمایش تمام اطلاعاتی که به فرم جداول مرتبط که هریک از سطر ها و ستونها تشکیل شده است(تعریف حقیقی آن در علم ریاضیات برسی می شود). در این مدل وابستگی ها به کمک مقادیر مشترک در بیش از یک جدول نشان داده می شود. مدل های دیگری مثل مدل سلسله مراتب و مدل شبکه ای به طور صریح تری ارتباط ها را نشان می دهند.

در مباحث تخصصی تر اصتلاح دادگان یا پایگاه داده به صورت مجموعه ای از رکورد های مرتبط با هم تعریف می شود. بسیاری از حرفه ای ها مجموعه ای از داده هایی با خصوصیات یکسان به منظور ایجاد یک پایگاه داده ای یکتا استفاده می کنند.

معمولا DBMS ها بر اساس مدل هایی که استفاده می کنند تقسیم بندی می شوند: ارتباطی،شی گرا، شبکه ای و امثال آن. مدل های داده ای به تعیین زبانهای دسترسی به پایگاه های داده علاقه مند هستند. بخش قابل توجهی از مهندسی DBMS مستقل از مدل های می باشد و به فاکتور هایی همچون اجرا، همزمانی،جامعیت و بازیافت از خطاهای سخت افزاری وابسطه است.در این سطح تفاوت های بسیاری بین محصولات وجود دارد.

هر database در اسکیوال از قسمتهای مختلفی تشکیل شده است،این بخشها شامل موارد زیر است :

  • Table 
  • View
  • Stored procedre
  • Function 
  • و ....
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT

از دستور Group By در اسکیوال برای دسته بندی یک ستون بر حسب مقادیر مشابه فیلدهای یک ستون دیگر استفاده می شود .

در هنگام استفاده از برخی از توابع درون ساخته SQL که عمل محاسبه ( مثل مجموع و میانگین ) را بر روی داده ها انجام می دهند ، این مشکل وجود دارد که این توابع قادر به جدا کردن و متمایز کردن اطلاعات موجود در دو ستون نسبت به هم نیستند و نتایج محاسبات را به صورت کلی برای همه آنها در نظر می گیرند . در این مواقع از دستور Group By استفاده میکنیم .

ساختار این دستور به صورت زیر است :

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

دستور Group By در sql وقتی استفاده میشود که ما در حال انتخاب چند ستون هستیم و حداقل یک عملگر محاسباتی در دستور select داریم . در این زمان ما باید تمام ستونهای دیگر را گروه کنیم.

مثال : در مثال زیر مجموع نمرات هر دانش آموز را بصورت گروه بندی شده بر اساس فیلد نام دانش آموز به خروجی داده می شود : 

Select Name ,Sum ( Grade ) As مجموع نمرات
From Class
Group By Name ;

نکته : دستور group by در اسکیوال از جمله ی پرکاربردترین دستورات است که یادگیری کامل این دستور ، میتواند تفاوت اسکریپت نویسی حرفه ای در sql باشد.

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT

عملگرهای And و Or برای ترکیب شرط ها در دستور Where در sql استفاده می شود .
گاهی اوقات خروجی که ما میخواهیم در اس کیوال بایستی چند شرط مختلف داشته باشد . به طور مثال افرادی را میخواهیم که سن بالای 23 سال و مدرک تحصیلی بالای لیسانس داشته باشند . در این حالت بایستی هر کدام از شرط ها را جداگانه تعریف کرده و سپس آنها را با هم ترکیب کنیم . برنامه هر کدام از شرط ها را بررسی میکند و خروجی را نمایش میدهد.


عملگر And برای اجرای دستور نیاز دارد تا تمام شرط های تعیین شده برای آن درست باشد .

SELECT * FROM Persons
WHERE FirstName=' saeed '
AND LastName=' rajabi '

عمگر Or فقط نیاز دارد که حداقل یکی از شرط ها درست باشد .

SELECT * FROM Persons
WHERE FirstName='saeed'
OR FirstName='rajabi
'

ترکیب عملگرهای And و Or

Select * From Persons
Where ( ( Grade = 16 AND Major = 'Hard Ware' ) OR ( Garde = 12 AND Major = 'SoftWare' ) ) " ;

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT


برای تغییر نام فیلد در جدول از تغییر کد باید به روش زیر و با کمک 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
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT


به هر یک از خانه های ستون یک جدول فیلد ( Field ) می گویند . هر فیلد یکی از خصوصیات آن موجودیت را به همراه مقدار آن مشخص می کند .

هر فیلد در بر گیرنده یک صفت و ویژگی برای موجودیت می باشد ، که دارای 2 جزء اصلی است :

1.اسم صفت خاصه : نام صفت مورد نظر را تعیین می کند . برای مثال فیلد نام ، نام خانوادگی ،  و ... در جدول اطلاعات مربوط به شخص.
2.مقدار صفت خاصه : در برگیرنده مقدار برای صفت مورد نظر است . برای مثال مقدار " سعید " به عنوان مقدار برای فیلد نام .

یک فیلد نشانه یک ستون در جدول است. یک رکورد مجموعه ای از فیلدها است. تمام رکوردها در همان جدول همان فیلدها راخواهند داشت.

مثال درباره فیلد ها : اگر شما یک جدول با نام “Students” داشته باشید، ممکن است زمینه های زیر مورد نیاز باشند:
Name – برای ذخیره نام و نام خانوادگی دانش آموز
Address – برای ذخیره آدرس
DateofBirth - برای ذخیره تاریخ تولد دانش آموز
RegistrationDate – برای ذخیره تاریخ ثبت نام دانش آموز
و …
اگر شما فیلدی را به جدول اضافه کنید، این فیلد به تمام رکوردهای موجود آن جدول اضافه خواهد شد. در مثال فوق، تمامی رکوردهای جدول در “Students” همان ۴ فیلد را خواهند داشت.

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT

تابع lcase در اسکیوال مقادیر فیلد را به حروف کوچک تبدیل میکند.

ساختار دستور LCase در sql به صورت زیر است :

SELECT LCASE(column_name) FROM table_name

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT


دستور Order By در sql

اطلاعاتی که در دستور select در اسکیوال به عنوان خروجی نمایش داده میشود ی بی نظم و یا بهتر بگوییم بدون نظم مد نظر ما است. مقادیر خروجی در ستون های جدول بر اساس مقدار هیج ستونی مرتب نمیشوند . با دستور دستور Order By میتوان اطلاعات جدول را بر اساس مقادیر یک یا چند ستون برحسب شاخص هایی مثل ترتیب حروف الفبا ، بزرگتر یا کوچکتر بودن اعداد و ...مرتب کرد.

ساختار دستور Order By

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) [ASC|DESC]

علامات [] در اطراف where بدین معناست که میتوانید where را بکار نبرید. اما اگر بکار بردید حتما باید قبل از order باشد . ASC به معنای صعودی بودن (a to z)و DESC به معنای نزولی بودن است (z to a).پیش فرضش ACS است.

نکته : همچنین این نیز امکان پذیرست که مرتب سازی را بر مبنای بیش از یک ستون انجام دهید .برای این منظور بخش مرتب سازی کد بالا بصورت زیر در میاید :

ORDER BY "column_name1" [ASC, DESC], "column_name2" [ASC, DESC]

مثال :

Select Name , Family From Person
Where idnumber="11"
Order By Family

خروجی دستور بالا ، اشخاص با شرط ذکر شده در دستور where را بر اساس نام فامیلی مرتب صعودی میکند.

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT

محدودیت 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

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ آذر ۹۴ ، ۰۰:۰۰
مهندسان IT