Select

פקודת Select

פקודת Select תביא את המידע שבטבלה

select * from employees

אם רוצים עמודות מסויימות

select [employeeID], [FirstName] from employyes

לא חייב [] אבל אם יש רווח בשם העמודה אז צריך.

הערות

הערות עם — זה של שורה אחת

הערות של יותר שורה אחת בתוך /* */.

בחירת עמודות

Select 
  EmployeeID ,FirstName, LastName 
From Employees

שינוי שם עמודה

alias לתת לתוצאת העמודה שם אחר.

SELECT 
  FirstName AS f_name 
FROM table_name

שם העמודה יהפוך ל-f_name.

יש data types שונים ב-SQL. נומרים ומחרוזות ותאריך.

שירשור מידע

Select 
  FirstName+’ ‘+ LastName as Name, EmployeeID 
From Employees

אפשר לבצע את השירשור כי סוגי העמודות הם אותו הדבר.

פעולות אריתמטיות

אפשר לבצע פעולות אריתמטיות

select 
  ProductName, UnitPrice, UnitPrice*1.18 
from products

לעמודה אחרי החישוב כדאי לתת שם כלשהו.

Select 
  ProductName, UnitPrice*0.9 AS "New Price" 
From products

פתרון בעיית כפילות

אם אני רוצה את כתובות הלקוחות שבצעו הזמנה על פי מספר לקוח, יחזרו אלי המון רשומות כפולות כי לקוח ביצע הרבה הזמנות. אנחנו רוצים שכל לקוח יופיע פעם אחת.

Select distinct 
  CustomerID 
From Orders

אם יש יותר מעמודה אחת, ה-distinct יהיה לשניהם. כלומר כרשומה לא יופיע אותו צירוף עמודות פעמיים.

SELECT DISTINCT 
  CategoryID, SupplierID 
FROM Products

תרגול select – שאלות

  1. הצג את כל המידע מטבלת Orders.
  2. הצג את כל העמודות מטבלת Employees.
  3. הצג מטבלת Employees את העמודות הבאות: Country , Region , HireDate , FirstName.
  4. הצג מטבלת Orders את העמודות הבאות: OrderDate , OrderID , CustomerID.
  5. הצג מטבלת Products את העמודות הבאות: ProductID (ProId), ProductName(ProNm), UnitPrice(UntPr).

, )Ct – אליאס ( City , )Add – אליאס ( Address : את העמודות הבאות Employees 6. הצג מטבלת ) reg – אליאס ( Region

שתי עמודות: קוד הלקוח בעמודה אחת, הכתובת והעיר משורשרות יחדיו customers 7. הצג מטבלת לעמודה השנייה. "full address" בעמודה שנייה. יש לתת את השם

שלוש עמודות: Employees 8. הצג מטבלת Full השמות המלאים של העובדים )שם פרטי משורשר עם שם משפחה( תחת הכותרת ,Name ,Birth Date את תאריך יום ההולדת שלהם פלוס 8 ימים תחת הכותרת .Manager# תחת הכותרת )ReportsTo ואת קוד המנהל )עמודת

מהם מגיעים העובדים בצורה ייחודית )City( את הערים Employees 9. הצג מטבלת

מהם מגיעים העובדים בצורה ייחודית )Country( את המדינות Employees 10 . הצג מטבלת

של העובדים בצורה ייחודית )Title( את תיאור המשרה Employees 11 . הצג מטבלת

(City) ואת העיר )Country( את המדינה Customers 12 . א. הצג מטבלת את השילוב הייחודי של המדינה והעיר Customers ב. הצג מטבלת

את שמו הפרטי של העובד , תאריך הולדתו , Employees 13 . הצג מטבלת ותאריך הולדתו + 5 ימים

את שם המוצר, מחיר ליחידה , והמחיר ליחידה + 10 Products 14 . הצג מטבלת

15 . הצג מטבלת המוצרים את העמודות הבאות: קוד מוצר שם מוצר מחיר ליחידה מחיר לאחר העלאה של 16.5% )יש לתת לעמודה כינוי מתאים( מספר מוצרים במלאי מספר מוצרים מוזמנים. ההפרש בין מספר המוצרים במלאי למספר המוצרים המוזמנים

שאלת אתגר את העמודות הבאות: products 16 . יש להציג מטבלת מספר המוצר, שם מוצר, ועלות המוצרים במלאי שלא הוזמנו )כלומר חישוב ההפרש בין מספר המוצרים במלאי ומספר המוצרים שהוזמנו כפול מחיר ליחידה(. יש לתת שם מתאים לעמודה.

תרגול select – תשובות

-- ex1
select * from orders

-- ex2
select * from employees

-- ex3
select FirstName, HireDate, Region, Country from employees

-- ex4
select CustomerID, OrderID, OrderDate from Orders

-- ex5
select
    ProductID as ProId,
    ProductName as ProNm,
    UnitPrice as UntPr
from Products

-- ex6
select
    Address as Ad,
    City as Ct,
    Region as reg
from Employees

-- ex7
select
    customerID,
    address+' '+city as 'full address'
from customers

-- ex8
select
    FirstName+' '+LastName as 'Full Name',
    BirthDate+8 as 'Birth Date',
    ReportsTo as Manager#
from Employees

-- ex9
select distinct
    City
from Employees

-- ex10
select distinct
    Country
from Employees

-- ex11
select distinct
    Title
from Employees

-- ex12
select
    Country, City
from Customers

select distinct
    Country, City
from Customers

-- ex13
select
    FirstName,
    BirthDate,
    BirthDate+5 as Plus5
from Employees

-- ex14
select
    ProductName,
    UnitPrice,
    UnitPrice+10 as Plus10
from Products

-- ex15
select
    ProductID,
    ProductName,
    UnitPrice,
    UnitPrice*116.5 as [Plus-Maam],
    UnitsInStock,
    UnitsOnOrder,
    UnitsInStock-UnitsOnOrder as [Available units]
from Products

-- ex16
select
    ProductID,
    ProductName,
    UnitsInStock-UnitsOnOrder*UnitPrice as [Stock Value]
from Products