-
챗 지피티와 SQL 공부하기 - Day5챗지피티랑 공부하기 2024. 8. 13. 10:44
[복습]
1. 모든 학생의 정보를 조회하세요.
> SELECT * FROM students; (O)
2. 모든 학생의 이름과 나이만 조회하세요.
> SELECT name, age FROM students; (O)
3. 18세 이상인 학생들의 정보를 조회하세요.
> SELECT * FROM students WHERE age >= 18; (O)
4. 성적이 80 이상인 학생들의 이름과 성적을 조회하세요.
> SELECT name, grade FROM students WHERE grade >= 80; (O)
5. 나이가 18세 이상이고 성적이 90점 이상인 학생들의 정보를 조회하세요.
> SELECT * FROM students WHERE age >= 18 AND grade >= 90; (O)
6. 나이가 18세 이상 22세 이하인 학생들의 이름과 나이를 조회하세요.
> SELECT name, age FROM students WHERE age BETWEEN 18 AND 22; (O)
7. 이름이 'John Doe'인 학생의 정보를 조회하세요.
> SELECT * FROM students WHERE name = 'John Doe'; (O)
8. 성적이 70점 이하인 학생들의 정보를 조회하세요.
> SELECT * FROM students WHERE grade <= 70; (O)
9. 이름에 'John'이 포함된 학생들의 이름을 조회하세요.
> SELECT name FROM students WHERE name LIKE '%John%'; (O)
10. 성적 정보가 없는 학생들의 정보를 조회하세요.
> SELECT * FROM students WHERE grade IS NULL; (O)
[예제]
> CREATE TABLE 'products' (product_id INT, product_name varchar(100), price decimal(10,2), quantity_in_stock INT, category varchar(50), date_added date); (X)
*테이블 이름 설정에 '따옴표' 안씀.
*product_id에 기본키 설정 : PRIMARY KEY
답) CREATE TABLE products (product_id INT PRIMARY KEY, product_name varchar(100), price decimal(10,2), quantity_in_stock INT, category varchar(50), date_added date);
1) products 테이블에서 price가 50 이상이고 quantity_in_stock이 10 이상인 제품들의 product_name, price, 그리고 quantity_in_stock을 조회하세요. 결과는 price 기준으로 내림차순으로 정렬하세요.
> SELECT product_name, price, quantity_in_stock FROM products WHERE price >= 50 AND quantity_in_stock >= 10, price 기준으로 내림차순으로 정렬) (X)
*price 기준으로 내림차순 정렬 : ORDER BY price DESC;
답) > SELECT product_name, price, quantity_in_stock FROM products WHERE price >= 50 AND quantity_in_stock >= 10, ORDER BY price DESC;
[ORDER BY 복습]
: ORDER BY ___ ASC / DESC
- ASC : 오름차순 (낮은순) *기본 (하나의 정렬값을 쓸 때는 꼭 ASC를 쓰지 않아도 됨.)
- DESC : 내림차순 (높은순)
- 여러 열로 정렬 : ORDER BY ___ DESC, ___ ASC;
2) products 테이블에서 category가 'Electronics'인 제품들의 개수를 세세요. (COUNT 함수 사용)
> SELECT COUNT(product_id) FROM products WHERE category = 'Electronics'; (O)
3) products 테이블에서 가격이 100 이상인 제품들의 평균 가격을 계산하고, 이 평균 가격을 'average_price'라는 이름으로 출력하세요. (AVG 함수 사용)
> SELECT AVG(price) FROM products WHERE price >= 100, (이름 설정); (X)
*새로운 열 이름 설정 : AS
답) SELECT AVG(price) FROM products WHERE price >= 100 AS average_price;
4) products 테이블에서 price가 가장 높은 제품의 product_name과 price를 조회하세요. (MAX 함수 사용)
> SELECT product_name, price FROM products WHERE MAX(price); (X)
답) SELECT product_name, price FROM products
WHERE price = (SELECT MAX(price) FROM products);
[WHERE 절 안에서 연산함수 사용]
- 서브쿼리 : 서브쿼리는 다른 쿼리 내에서 실행되는 쿼리입니다. WHERE 절에서 집계 함수를 사용할 때 주로 서브쿼리를 사용하여 조건을 설정합니다.
예시1) 제품의 가격이 평균 가격보다 높은 제품 조회.
> SELECT product_name FROM products WHERE price > (SELECT AVG(price) FROM products);
5) products 테이블에서 price가 평균 가격보다 낮은 제품들의 product_name과 price를 조회하세요. (AVG 함수와 서브쿼리 사용)
> SELECT product_name, price FROM products WHERE price <= (AVG(price) FROM products); (X)
답) SELECT product_name, price FROM products WHERE price <= (SELECT AVG(price) FROM products);
6) products 테이블에서 가장 오래된 날짜에 추가된 제품의 product_name, price, date_added를 조회하세요. (MIN 함수 사용)
> SELECT product_name, price, date_added FROM products WHERE (SELECT MIN(date_added) FROM products); (X)
답) SELECT product_name, price, date_added FROM products WHERE date_added = (SELECT MIN(date_added);
FROM products);
7) products 테이블에서 각 category별로 재고 수량(quantity_in_stock)의 합계를 계산하고, 이 합계를 total_stock이라는 이름으로 출력하세요. 결과는 total_stock 기준으로 내림차순으로 정렬하세요. (SUM 함수 사용)
> SELECT category SUM(quantity_in_stock) FROM products AS total_stock ORDER BY total_stock DESC; (X)
[GROUP BY절]
: 결과 집합을 하나 이상의 열을 기준으로 그룹화하여 각 그룹에 대해 집계 함수를 적용할 수 있게 합니다.
요건 내일 공부하도록 하자.
728x90반응형'챗지피티랑 공부하기' 카테고리의 다른 글
챗 지피티와 SQL 공부하기 - Day4 (0) 2024.08.12 챗 지피티와 SQL 공부하기 - Day3 (0) 2024.08.09 챗 지피티와 SQL 공부하기 - Day2 (0) 2024.08.07 챗 지피티와 SQL 공부하기 - Day1 (0) 2024.08.05