שאילתות SQL

בחירת כל עמודות

נניח יש לנו טבלה HumanResources.Department בבסיס נתונים AdventureWorks2019

ואנחנו רוצים להציג את כל עמודות הקיימות בטבלה ורק 200 שורות הראשונות.

SELECT TOP (200) *
FROM HumanResources.Department

תוצאה:

בחירת רק לפי עמודות ספציפיות

נניח אנחנו רוצים להציג שורות אשר בטבלה רק לפי העמודות DepartmentID ו-GroupName.

SELECT DepartmentID, GroupName
FROM HumanResources.Department

תוצאה:

בחירת רק שורות שונות זו מזו

ניתן לראות בצילום מסך שיש לנו כמה שורות זהות  – יש להם אותו ערך בעמודה GroupName:

ניתן לבחור שורות שונות זו מזו תוך שימוש במילת מפתח – DISTINCT

SELECT DISTINCT GroupName
FROM HumanResources.Department;

חישוב מספר שורות

COUNT – חישוב מספר שורות שונות זו מזו

בנוסף אנחנו רוצים להציג את המספר שורות בעמודה בשם TOTAL

SELECT COUNT(DISTINCT GroupName) AS TOTAL
FROM HumanResources.Department

נקבל

בחירת שורות ספציפיות מהטבלה

לפני הכל, אני מזכיר מה יש לנו בטלה HumanResources.Department

SELECT * 

FROM HumanResources.Department

תוצאה:

נניח אנחנו רוצים לבחור מתוך הטבלה רק את השורה, אשר ערך העמודה של DepartmentID יהיה 13 וערך עמודה של GroupName יהיה Quality Assurance.

SELECT DepartmentID, GroupName 
FROM HumanResources.Department
WHERE DepartmentID='13' AND GroupName ='Quality Assurance';

נקבל:

OR

בחירת רק GroupName  שווה ל- Quality Assurance או ל- Sales and Marketing

SELECT DepartmentID, GroupName 
FROM HumanResources.Department
WHERE GroupName ='Sales and Marketing' OR GroupName ='Quality Assurance';

NOT

בחירת כל שורות חוץ משורות שבהן עמודה GroupName שווה ל- Quality Assurance

SELECT * FROM HumanResources.Department
WHERE NOT GroupName ='Quality Assurance';

SORT

נניח אנחנו רוצים קודם כל לעשות מיון לפי GroupName בסדר עולה – ASC.

לאחר זה צרכים לעשות מיון משני לפי Name בסדר יורד – DESC.

SELECT * FROM HumanResources.Department 
ORDER BY GroupName DESC, Name ASC;

UPDATE

עדכון מידע בשורה אחת מסוימת.

לדוגמה אנחנו רוצים לשנות בשורה שבה GroupName  שווה ל- Quality Assurance
לערך חדש GroupName  שווה ל- Quality Assurance NEW

UPDATE HumanResources.Department 
SET GroupName = 'Quality Assurance NEW'
WHERE GroupName = 'Quality Assurance';

נקבל:

SELECT * 

FROM HumanResources.Department

מחיקה שורה מטבלה

לצורך דוגמה בואו ניצור טבלה Cities עם המודות PersonID , FirstName, City

CREATE TABLE Persons 
(
PersonID int,
FirstName varchar(255),
City varchar(255)  
);

ונוסיף נתונים

INSERT INTO Persons 
( PersonID, FirstName, City ) 
VALUES 
('1','Shalom','Tel Aviv'),
('2','Wulf','Netanya'),
('3','Moshe','Jerusalem');

ואז נקבל:

נניח אנחנו רוצים למחוק שורה 2 בטבלה איפה ש City=Netanya

DELETE FROM dbo.Persons 
WHERE 
City='Netanya';

ואז קבלנו טבלה ללא שורה איפה ש City=Netanya

TOP

בחירה רק שלושה שורות הראשונות בטבלה

SELECT TOP 3 * FROM Customers;

 PERCENT

בחירה רק של 50% ממספר שורות מטבלת הלקוחות

SELECT TOP 50 PERCENT * FROM Customers;

MAX

לצורך דוגמה בואו ניצור טבלה ShopProducts עם המודות ProductID , ProductName, UnitPrice

CREATE TABLE ShopProducts
(
ProductID int,
ProductName varchar(255),
UnitPrice DECIMAL(13, 2) NOT NULL);

ונוסיף נתונים

INSERT INTO ShopProducts
( ProductID, ProductName, UnitPrice) 
VALUES 
('1','Ice Cream','3'),
('2','Coffee','4.26'),
('3','Yogurt','2');

ואז נקבל:

נמצא מחיר מקסימלי לפי עמודה UnitPrice וניתן שם לתוצאה LargestPrice

SELECT MAX(UnitPrice) AS LargestPrice
FROM ShopProducts;

כנ"ל ניתן למצוא ממוצע של כל שורות לפי עמודה:
SELECT 
AVG(UnitPrice) AS Average 
FROM ShopProducts;

כנ"ל ניתן למצוא סכום של כל שורות לפי עמדה:
SELECT 
SUM(UnitPrice) AS TotalPrice 
FROM ShopProducts;

דילוג לתוכן