תרגול זה מסתמך על מאגר הנתונים ACDB. לתרגולים נוספים בנושאים שונים ניתן להשתמש במדריך ה SQL.

1.  מתוך טבלת CUSTOMERS, הציגו את שמם הפרטי, שם משפחתם, ומספר החבילה של הלקוחות אשר שם משפחתם הוא King

2.      מתוך טבלת PACKAGES הציגו את כל הנתונים עבור חבילות הגלישה במהירות 5Mbps

3.      מתוך טבלת CUSTOMERS, עבור הלקוחות אשר סכום ההנחה חודשית שלהם נמוך מ 30, הציגו את שמם, שם משפחתם, מספר חבילת הגלישה וסכום ההנחה חודשית.

4.      מתוך טבלת CUSTOMERS, הציגו את כל המידע אודות הלקוחות אשר הצטרפו לחברה לפני שנת 2007 (2007-JAN-01).

5.      מתוך טבלת CUSTOMERS, הציגו מספר לקוח, שם פרטי, מדינה, עיר ומס' חבילת גלישהעבור הלקוחות בחבילות גלישה 21, 28, 14 ו- 7  .

6.      מתוך טבלת CUSTOMERS, הציגו את אותם נתונים עבור הלקוחות אשר לא נמצאים בחבילות גלישה 27, 10, ו-3.

7.      מתוך טבלת CUSTOMERS, הציגו את שם המשפחה, מספר הטלפון הראשי, סכום הנחה חודשית ומספר החבילה, עבור הלקוחות שמספר הלקוח שלהם הוא 314, 560, 703

8.      מתוך טבלת CUSTOMERS, הציגו את שמם הפרטי ואחוז ההנחה החודשית של כל הלקוחות אשר שמם הפרטי מסתיים באות E.

9.      מתוך טבלת CUSTOMERS, הציגו את שם משפחתם ומספר החבילה של הלקוחות אשר האות השניה בשם משפחתם היא  D.

10.   מתוך טבלת CUSTOMERS, הציגו את כל המידע אודות הלקוחות אשר שם משפחתם מכיל את האותיות L או  J או H, מיינו את התוצאות לפי סכום הנחה חודשית (בסדר יורד).

11.   מתוך טבלת CUSTOMERS, הציגו את שם הלקוח, תאריך הצטרפות, אחוז הנחה חודשית ומס' חבילת גלישה עבור הלקוחות אשר שמם לא מכיל את האותA  מיינו את התוצאות לפי מספר החבילה (סדר עולה).

12.   מתוך טבלת CUSTOMERS, הציגו את כל הנתונים עבור הלקוחות ללא חבילה.

13.   מתוך טבלת CUSTOMERS, הציגו את שמות הלקוחות (שם משפחה משורשר עם רווח משורשר עם השם הפרטי) ואחוז הנחה חודשית עבור הלקוחות אשר סכום ההנחה החודשית לא נמצא בטווח של 30-20 מיינו את התוצאות לפי  שמם המלא.

14.   מתוך טבלת CUSTOMERS, הציגו בעמודה אחת את שמו המלא של הלקוח תחת הכינוי  FULL_NAME, בעמודה שניה טלפון ראשי ורחוב תחת הכינוי  CONTACTS, ובעמודה שלישית סכום הנחה חודשית תחת הכינוי  DC, עבור אלה שסכום ההנחה החודשית נמצאת בטווח שבין 11 ו-27.

15.   מתוך טבלת CUSTOMERS, הציגו את כל פרטי הלקוחות עבור
אלו שסכום ההנחה החודשית נע בין 30 ל-40 וגם שם המדינה שלהם היא
New York

            או
אלו אשר אינם נמצאים בחבילות גלישה 30, 19, 8 וגם צורפו לחברה לפני שנת 2007.
מיינו את התוצאות בסדר ראשי לפי מספר חבילת הגלישה וסדר משני לפי סכום ההנחה החודשית (שניהם בסדר עולה).

16.   מתוך טבלת CUSTOMERS, הציגו את שם המשפחה, מספר החבילה, ויום ההולדת עבור הלקוחות אשר צורפו לחברה בין ה 12 לדצמבר 2007 ל- 17 לאפריל 2010. סדרו את התוצאות בסדר עולה לפי תאריך יום ההולדת.

17.   מתוך טבלת PACKAGES, הציגו את מספר החבילה, תאריך תחילתה, ומהירות הגלישה עבור החבילות אשר פורסמו לפני שנת 2007

18.   מתוך טבלת PACKAGES, הציגו את מספר החבילה, מהירות הגלישה ומספר הסקטור עבור החבילות שמספר הסקטור שלהם שווה ל 1

19.   מתוך טבלת PACKAGES, הציגו את מספר החבילה, מהירות הגלישה ומספר הסקטור עבור החבילות שמהירות הגלישה שלהם שווה ל 5Mbps או 10Mbps

20.  מתוך טבלת CUSTOMERS, הציגו את שם המשפחה וסכום ההנחה החודשית של הלקוחות אשר נמצאים בעיר Orlando

        האם ניתן להציג את נתונים אלו עפ"י התנאי המבוקש ללא הצגת העיר ?

21.   מתוך טבלת CUSTOMERS, הציגו את שם המשפחה ואת מספר חבילת הגלישה עבור אלו שמספר חבילת הגלישה שלהם היא 9 או 18 . בצעו את התרגיל בשני אופנים.

        האם התרגיל יחזיר תוצאות בצורה הבאה?

SELECT last_name , customer_id 
FROM customers 
WHERE pack_id = 30 AND pack_id = 19

22.  הציגו מתוך טבלת CUSTOMERSאת שמו הפרטי ומספרי הטלפון השונים (ראשי ומשני) של הלקוח   עבור הלקוחות אשר לא עודכן להם מספר טלפון משני

23.  הציגו מתוך טבלת CUSTOMERS  את שמו הפרטי של הלקוח, סכום הנחה חודשית ומספר חבילה עבור אלו ללא אף הנחה.

פתרונות

-- 1
SELECT first_name , last_name , pack_id
FROM    customers
WHERE last_name = 'king' 

-- 2
SELECT *
FROM	packages
WHERE speed = '5Mbps' 

-- 3
SELECT first_name , last_name , pack_id ,  monthly_discount
FROM customers
WHERE monthly_discount < 30 

-- 4
SELECT *
FROM customers
WHERE join_date < '2007-01-01'

-- 5
SELECT customer_id , first_name , state , city , pack_id
FROM customers
WHERE pack_id IN (7, 14 , 21, 28)

-- 6
SELECT customer_id , first_name , state , city , pack_id
FROM customers
WHERE pack_id NOT IN (27, 10 , 3)

-- 7
SELECT  last_name , main_phone_num , monthly_discount ,pack_id
FROM customers
WHERE customer_id IN (314,560,703)

-- 8
SELECT first_name , monthly_discount
FROM	customers
WHERE first_name LIKE '%E'

-- 9
SELECT last_name , pack_id
FROM customers
WHERE last_name LIKE '_D%' 

-- 10
SELECT *
FROM customers
WHERE last_name LIKE '%L%' OR last_name LIKE '%J%' OR last_name LIKE '%H%'
ORDER BY monthly_discount DESC 

-- 11
SELECT first_name , join_date, pack_id
FROM    customers
WHERE first_name NOT LIKE '%A%'
ORDER BY pack_id 

-- 12
SELECT *
FROM customers
WHERE pack_id IS NULL 

-- 13
SELECT first_name + ' ' + last_name AS 'FULL_NAME' ,
              monthly_discount
FROM customers
WHERE monthly_discount NOT BETWEEN	20 AND 30
ORDER BY first_name + ' ' + last_name

-- 14
SELECT first_name + ' ' + last_name AS 'FULL_NAME' ,
			  main_phone_num + ' - ' + street AS 'CONTACTS' ,
			  monthly_discount AS 'DC'
FROM	 customers
WHERE monthly_discount BETWEEN 11 AND 27 

-- 15
SELECT *
FROM customers
WHERE monthly_discount BETWEEN 30 AND 40 AND state = 'New York'
OR
			 pack_id NOT IN (30, 19, 8) AND join_date < '2007-01-01'
ORDER BY pack_id, monthly_discount

-- 16
SELECT last_name , pack_id , birth_date
FROM customers
WHERE join_date BETWEEN '2007-12-12' AND '2010-04-17'
ORDER BY birth_date 

-- 17
SELECT pack_id , strt_date , speed
FROM packages
WHERE strt_date < '2007-01-01' 

-- 18
SELECT pack_id , speed , sector_id
FROM packages
WHERE sector_id = 1 

-- 19
SELECT pack_id , speed , sector_id
FROM packages
WHERE speed IN ('5Mbps' , '10Mbps')

-- 20
SELECT last_name , monthly_discount
FROM customers
WHERE city = 'Orlando'  

-- 21
SELECT last_name , pack_id
FROM customers
WHERE pack_id IN (9 , 18) 

SELECT last_name , pack_id
FROM customers
WHERE pack_id = 9
OR
	pack_id = 18 

-- No results
SELECT  last_name, customer_id
FROM Customers
WHERE pack_id = 30 AND pack_id = 19;

-- 22
SELECT first_name , main_phone_num , secondary_phone_num
FROM customers
WHERE secondary_phone_num IS NULL 

-- 23
SELECT  first_name , monthly_discount, pack_id
FROM customers
WHERE monthly_discount IS NULL