Last active
November 27, 2021 12:27
-
-
Save alperbayram/699f24aea76b50de3dd6329205461474 to your computer and use it in GitHub Desktop.
SQL notes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--------------------------------------- 1 -------------------------------------- | |
--film tablosunda bulunan title ve description sütunlarındaki verileri sıralayınız. | |
--film tablosunda bulunan tüm sütunlardaki verileri film uzunluğu (length) 60 dan büyük VE 75 ten küçük olma koşullarıyla sıralayınız. | |
--film tablosunda bulunan tüm sütunlardaki verileri rental_rate 0.99 VE replacement_cost 12.99 VEYA 28.99 olma koşullarıyla sıralayınız. | |
--customer tablosunda bulunan first_name sütunundaki değeri 'Mary' olan müşterinin last_name sütunundaki değeri nedir? | |
--film tablosundaki uzunluğu(length) 50 ten büyük OLMAYIP aynı zamanda rental_rate değeri 2.99 veya 4.99 OLMAYAN verileri sıralayınız. | |
SELECT title, description FROM film | |
SELECT * FROM film WHERE length>60 AND length<75 | |
SELECT * FROM film | |
WHERE rental_rate = 0.99 AND (replacement_cost = 12.99 OR replacement_cost = 28.99) | |
SELECT first_name, last_name FROM customer | |
WHERE first_name = 'Mary' | |
SELECT length FROM film | |
WHERE NOT length>50 AND (rental_rate = 2.99 OR rental_rate = 2.99) | |
--------------------------------------- 2 -------------------------------------- | |
--film tablosunda bulunan tüm sütunlardaki verileri replacement cost değeri 12.99 dan büyük eşit ve 16.99 küçük olma koşuluyla sıralayınız ( BETWEEN - AND yapısını kullanınız.) | |
--.actor tablosunda bulunan first_name ve last_name sütunlardaki verileri first_name 'Penelope' veya 'Nick' veya 'Ed' değerleri olması koşuluyla sıralayınız. ( IN operatörünü kullanınız.) | |
--film tablosunda bulunan tüm sütunlardaki verileri rental_rate 0.99, 2.99, 4.99 VE replacement_cost 12.99, 15.99, 28.99 olma koşullarıyla sıralayınız. ( IN operatörünü kullanınız.) | |
SELECT * FROM film | |
WHERE replacement_cost BETWEEN 12.99 AND 16.99 | |
SELECT first_name, last_name FROM actor | |
WHERE first_name IN ('Penelope', 'Nick', 'Ed') | |
SELECT * FROM film | |
WHERE rental_rate IN(0.99, 2.99, 4.99) AND replacement_cost IN(12.99, 15.99, 28.99) | |
--------------------------------------- 3 -------------------------------------- | |
--country tablosunda bulunan country sütunundaki ülke isimlerinden 'A' karakteri ile başlayıp 'a' karakteri ile sonlananları sıralayınız. | |
--country tablosunda bulunan country sütunundaki ülke isimlerinden en az 6 karakterden oluşan ve sonu 'n' karakteri ile sonlananları sıralayınız. | |
--film tablosunda bulunan title sütunundaki film isimlerinden en az 4 adet büyük ya da küçük harf farketmesizin 'T' karakteri içeren film isimlerini sıralayınız. | |
--film tablosunda bulunan tüm sütunlardaki verilerden title 'C' karakteri ile başlayan ve uzunluğu (length) 90 dan büyük olan ve rental_rate 2.99 olan verileri sıralayınız. | |
SELECT * FROM country | |
WHERE country LIKE 'A%a' | |
SELECT country FROM country | |
WHERE length(country)>=6 AND country LIKE '%n' | |
SELECT title FROM film | |
WHERE title ILIKE '%T%T%T%T%' | |
SELECT * FROM film | |
WHERE title LIKE 'C%' AND (length>90 AND rental_rate =2.99) | |
--------------------------------------- 4 -------------------------------------- | |
--film tablosunda bulunan replacement_cost sütununda bulunan birbirinden farklı değerleri sıralayınız. | |
--film tablosunda bulunan replacement_cost sütununda birbirinden farklı kaç tane veri vardır? | |
--film tablosunda bulunan film isimlerinde (title) kaç tanesini T karakteri ile başlar ve aynı zamanda rating 'G' ye eşittir? | |
--country tablosunda bulunan ülke isimlerinden (country) kaç tanesi 5 karakterden oluşmaktadır? | |
--city tablosundaki şehir isimlerinin kaç tanesi 'R' veya r karakteri ile biter? | |
SELECT DISTINCT(replacement_cost) FROM film | |
SELECT COUNT(DISTINCT(replacement_cost)) FROM film | |
SELECT COUNT(title) FROM film | |
WHERE title LIKE 'T%' AND rating ='G' | |
SELECT COUNT(*) FROM country | |
WHERE length(country)=5 | |
SELECT COUNT(*) FROM city | |
WHERE city LIKE '%R' OR city LIKE '%r' | |
--------------------------------------- 5 -------------------------------------- | |
--film tablosunda bulunan ve film ismi (title) 'n' karakteri ile biten en uzun (length) 5 filmi sıralayınız. | |
--film tablosunda bulunan ve film ismi (title) 'n' karakteri ile biten en kısa (length) ikinci(6,7,8,9,10) 5 filmi(6,7,8,9,10) sıralayınız. | |
--customer tablosunda bulunan last_name sütununa göre azalan yapılan sıralamada store_id 1 olmak koşuluyla ilk 4 veriyi sıralayınız. | |
SELECT title FROM film | |
WHERE title LIKE '%n' | |
ORDER BY length(title) DESC | |
LIMIT 5 | |
SELECT title FROM film | |
WHERE title LIKE '%n' | |
ORDER BY length(title) ASC | |
OFFSET 5 | |
LIMIT 5 | |
SELECT * FROM customer | |
WHERE store_id = 1 | |
ORDER BY length(last_name) ASC | |
LIMIT 4 | |
--------------------------------------- 6 -------------------------------------- | |
--film tablosunda bulunan rental_rate sütunundaki değerlerin ortalaması nedir? | |
--film tablosunda bulunan filmlerden kaç tanesi 'C' karakteri ile başlar? | |
--film tablosunda bulunan filmlerden rental_rate değeri 0.99 a eşit olan en uzun (length) film kaç dakikadır? | |
--film tablosunda bulunan filmlerin uzunluğu 150 dakikadan büyük olanlarına ait kaç farklı replacement_cost değeri vardır? | |
SELECT AVG(rental_rate) FROM film | |
SELECT COUNT(title) FROM film | |
WHERE title LIKE 'C%' | |
SELECT MAX(length) FROM film | |
WHERE rental_rate = 0.99 | |
SELECT DISTINCT(replacement_cost) FROM film | |
WHERE length > 150 | |
--------------------------------------- 7 -------------------------------------- | |
--film tablosunda bulunan filmleri rating değerlerine göre gruplayınız. | |
--film tablosunda bulunan filmleri replacement_cost sütununa göre grupladığımızda film sayısı 50 den fazla olan replacement_cost değerini ve karşılık gelen film sayısını sıralayınız. | |
--customer tablosunda bulunan store_id değerlerine karşılık gelen müşteri sayılarını nelerdir? 4. city tablosunda bulunan şehir verilerini country_id sütununa göre gruplandırdıktan sonra en fazla şehir sayısı barındıran country_id bilgisini ve şehir sayısını paylaşınız. | |
--city tablosunda bulunan şehir verilerini country_id sütununa göre gruplandırdıktan sonra en fazla şehir sayısı barındıran country_id bilgisini ve şehir sayısını paylaşınız. | |
SELECT rating | |
FROM film | |
GROUP BY rating | |
SELECT replacement_cost, COUNT(*) | |
FROM film | |
GROUP BY replacement_cost | |
HAVING COUNT(*) > 50 | |
SELECT store_id ,COUNT(*) | |
FROM customer | |
GROUP BY store_id | |
SELECT country_id ,COUNT(*) | |
FROM city | |
GROUP BY country_id | |
ORDER BY COUNT(*) DESC | |
LIMIT 1 | |
--------------------------------------- 8 -------------------------------------- | |
--test veritabanınızda employee isimli sütun bilgileri id(INTEGER), name VARCHAR(50), birthday DATE, email VARCHAR(100) olan bir tablo oluşturalım. | |
--Oluşturduğumuz employee tablosuna 'Mockaroo' servisini kullanarak 50 adet veri ekleyelim. | |
--Sütunların her birine göre diğer sütunları güncelleyecek 5 adet UPDATE işlemi yapalım. | |
--Sütunların her birine göre ilgili satırı silecek 5 adet DELETE işlemi yapalım. | |
CREATE TABLE employee ( | |
id INTEGER PRIMARY KEY, | |
name VARCHAR(50) NOT NULL, | |
birthday DATE, | |
email VARCHAR(100) | |
); | |
insert into employee (id, name, birthday, email) values (1, 'Edwina', '2015/05/10', 'ehubbart0@google.es'); | |
insert into employee (id, name, birthday, email) values (2, 'Shandie', '2005/08/30', 'sshortin1@vkontakte.ru'); | |
insert into employee (id, name, birthday, email) values (3, 'Celisse', '2003/07/12', 'cmonckton2@dailymotion.com'); | |
insert into employee (id, name, birthday, email) values (4, 'Judie', '2017/12/07', 'jbaumler3@nyu.edu'); | |
insert into employee (id, name, birthday, email) values (5, 'Ricky', '2012/04/08', 'rdriscoll4@slashdot.org'); | |
UPDATE employee | |
SET name = 'Mayak', | |
birthday = '2033/11/30', | |
email = 'mayaka0@apache.org' | |
WHERE id = 1; | |
UPDATE employee | |
SET name = 'UPDATE ' | |
WHERE name LIKE 'K%'; | |
UPDATE employee | |
SET name = 'UPDATE A' | |
WHERE name ILIKE 'a%a%'; | |
UPDATE employee | |
SET name = 'DELELETE', | |
email = 'DELETE' | |
WHERE id > 30 ; | |
DELETE FROM employee | |
WHERE id > 30; | |
DELETE FROM employee | |
WHERE name LIKE 'T%'; | |
--------------------------------------- 9 -------------------------------------- | |
--city tablosu ile country tablosunda bulunan şehir (city) ve ülke (country) isimlerini birlikte görebileceğimiz INNER JOIN sorgusunu yazınız. | |
--customer tablosu ile payment tablosunda bulunan payment_id ile customer tablosundaki first_name ve last_name isimlerini birlikte görebileceğimiz INNER JOIN sorgusunu yazınız. | |
--customer tablosu ile rental tablosunda bulunan rental_id ile customer tablosundaki first_name ve last_name isimlerini birlikte görebileceğimiz INNER JOIN sorgusunu yazınız. | |
SELECT country.country, city.city | |
FROM country | |
JOIN city ON city.city_id = country.country_id; | |
SELECT customer.first_name, customer.last_name , payment.payment_id | |
FROM customer | |
JOIN payment ON payment.customer_id = customer.customer_id; | |
SELECT customer.first_name, customer.last_name , rental.rental_id | |
FROM customer | |
JOIN rental ON rental.customer_id = customer.customer_id; | |
--------------------------------------- 10 -------------------------------------- | |
--city tablosu ile country tablosunda bulunan şehir (city) ve ülke (country) isimlerini birlikte görebileceğimiz LEFT JOIN sorgusunu yazınız. | |
--customer tablosu ile payment tablosunda bulunan payment_id ile customer tablosundaki first_name ve last_name isimlerini birlikte görebileceğimiz RIGHT JOIN sorgusunu yazınız. | |
--customer tablosu ile rental tablosunda bulunan rental_id ile customer tablosundaki first_name ve last_name isimlerini birlikte görebileceğimiz FULL JOIN sorgusunu yazınız. | |
SELECT city.city, country.country | |
FROM city | |
LEFT JOIN country | |
ON country.country_id = city.country_id; | |
SELECT customer.first_name, customer.last_name, payment.payment_id | |
FROM customer | |
RIGHT JOIN payment | |
ON payment.customer_id = customer.customer_id; | |
SELECT customer.first_name, customer.last_name, rental.rental_id | |
FROM customer | |
FULL JOIN rental | |
ON rental.customer_id = customer.customer_id; | |
--------------------------------------- 11 -------------------------------------- | |
--actor ve customer tablolarında bulunan first_name sütunları için tüm verileri sıralayalım. | |
--actor ve customer tablolarında bulunan first_name sütunları için kesişen verileri sıralayalım. | |
--actor ve customer tablolarında bulunan first_name sütunları için ilk tabloda bulunan ancak ikinci tabloda bulunmayan verileri sıralayalım. | |
--İlk 3 sorguyu tekrar eden veriler için de yapalım. | |
(SELECT first_name | |
FROM customer) | |
UNION | |
(SELECT first_name | |
FROM actor); | |
(SELECT first_name | |
FROM customer) | |
INTERSECT | |
(SELECT first_name | |
FROM actor); | |
(SELECT first_name | |
FROM customer) | |
EXCEPT | |
(SELECT first_name | |
FROM actor); | |
(SELECT first_name | |
FROM customer) | |
UNION ALL | |
(SELECT first_name | |
FROM actor); | |
(SELECT first_name | |
FROM customer) | |
INTERSECT ALL | |
(SELECT first_name | |
FROM actor); | |
(SELECT first_name | |
FROM customer) | |
EXCEPT ALL | |
(SELECT first_name | |
FROM actor); | |
--------------------------------------- 12 -------------------------------------- | |
--film tablosunda film uzunluğu length sütununda gösterilmektedir. Uzunluğu ortalama film uzunluğundan fazla kaç tane film vardır? | |
--film tablosunda en yüksek rental_rate değerine sahip kaç tane film vardır? | |
--film tablosunda en düşük rental_rate ve en düşün replacement_cost değerlerine sahip filmleri sıralayınız. | |
--payment tablosunda en fazla sayıda alışveriş yapan müşterileri(customer) sıralayınız. | |
SELECT COUNT(length) | |
FROM film | |
WHERE length > | |
( | |
SELECT AVG(length) | |
FROM film | |
) | |
SELECT COUNT(rental_rate),rental_rate | |
FROM film | |
GROUP BY rental_rate | |
ORDER BY rental_rate DESC | |
LIMIT 1; | |
SELECT title, film_id, rental_rate, replacement_cost | |
FROM film | |
WHERE film_id = ANY | |
( | |
SELECT film_id | |
FROM film | |
ORDER BY rental_rate ASC, replacement_cost ASC | |
); | |
SELECT customer.first_name, customer.last_name, payment.amount FROM customer | |
JOIN payment ON payment.customer_id = customer.customer_id | |
GROUP BY customer.first_name, customer.last_name, payment.amount | |
ORDER BY payment.amount DESC; | |
--------------------------------------- 13 -------------------------------------- | |
--film tablosundan 'K' karakteri ile başlayan en uzun ve replacenet_cost u en düşük 4 filmi sıralayınız. | |
--film tablosunda içerisinden en fazla sayıda film bulunduran rating kategorisi hangisidir? | |
--cutomer tablosunda en çok alışveriş yapan müşterinin adı nedir? | |
--category tablosundan kategori isimlerini ve kategori başına düşen film sayılarını sıralayınız. | |
--film tablosunda isminde en az 4 adet 'e' veya 'E' karakteri bulunan kç tane film vardır? | |
SELECT COUNT(*), category.name | |
FROM category | |
JOIN film_category ON film_category.category_id = category.category_id | |
JOIN film ON film.film_id = film_category.film_id | |
GROUP BY category.name; | |
SELECT COUNT(*), rating | |
FROM film | |
GROUP BY rating | |
ORDER BY COUNT(*) DESC | |
LIMIT 1; | |
SELECT title, length, replacement_cost | |
FROM film | |
WHERE title LIKE 'K%' | |
ORDER BY length DESC, replacement_cost ASC | |
LIMIT 3; | |
SELECT SUM(amount), customer.first_name, customer.last_name | |
FROM payment | |
JOIN customer ON customer.customer_id = payment.customer_id | |
GROUP BY payment.customer_id, customer.first_name, customer.last_name | |
ORDER BY SUM(amount) DESC | |
LIMIT 1; | |
SELECT title | |
FROM film | |
WHERE title ILIKE '%e%e%e%e'; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment