Nonamed Develog
[TIL] AI 웹 개발 7기 사전 캠프 2-5 본문
일일 알고리즘 코드카타 풀어보기
Q. 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
def solution(arr):
answer = sum(arr)/len(arr)
return answer
갑자기 배열이라는 말이 나와서 헷갈렸지만 합을 구하는 함수 sum(), 길이를 구하는 함수 len()을 이용해 봤다.
엑셀보다 쉽고 빠른 SQL 1주차
1-1 1주차 오늘 배울 것
SQL 이 무엇이고 왜 필요한가요?
- SQL 은 데이터베이스와 대화를 하기 위한 언어, 문법 입니다.
- 옆의 사람에게 필요한 것을 요청할 때 ‘A 를 주시겠어요?’ 와 하는 것과 같이 데이터베이스에게도 ‘A를 주겠니?’ 라고 이야기할 때 사용하는 언어라고 할 수 있습니다.
- (Tip!) SQL 이란 언어를 이용하여 데이터베이스에 요청을 하는 질의, 행위를 ‘Query’ 라고 합니다. 강의에서도 데이터베이스에 요청을 할 때 Query 작성이라는 말을 사용하게 됩니다.
1-2 함께 시작하기
데이터베이스: 데이터가 저장되어 있는 큰 폴더
'데이터베이스'라는 폴더가 있고, 그 안에 '테이블'이라는 파일이 있다.
데이터를 조회할 때 데이터베이스라는 폴더에서 테이블이라는 파일을 열어서 본다.
테이블과 컬럼
테이블은 엑셀과 유사한 구조로 데이터를 갖고 있고, 각 열을 ‘컬럼’ 혹은 ‘필드’ 라고 부른다.(앞으로는 '컬럼'이라고 명명)
테이블 안에 있는 컬럼은 어떤 데이터를 조회할 때 사용되는 정보이기 때문에 모두 외울 필요는 없다. 예를 들어 food_orders라는 테이블을 사용할 고객 번호가 있는 거 같아서 조회를 해볼 수 있다.
1-3 SQL 데이터 조회하기 (SLECT, FROM)
select *
from food_orders
기본 명령어 한 눈에 보기
- SELECT : 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query 에 사용됨
- FROM : 데이터를 가져올 테이블을 특정해주는 문법
- * : 모든 컬럼을 가져와준다는 의미
실습
1. payments 테이블의 데이터 조회하기
select *
from payments
2. customers 테이블의 데이터 조회하기
select *
from customers
4. 필요한 항목만 뽑아서 사용하기
원하는 컬럼을 선택하기
- 테이블의 모든 컬럼이 필요하지 않을 때, 필요한 것만 선택하여 조회 가능합니다.
- 모든 것을 조회한다는 ‘*’ 대신에, 필요한 컬럼만 적어줍니다.
- 컬럼이 많아서 필요한 정보를 확인하기 어려웠던 것에서, 원하는 컬럼만 조회하는 것으로 바뀐 것을 볼 수 있습니다.
select restaurant_name, addr
from food_orders
컬럼에 별명(alias) 을 주기
- 원하는 컬럼만 뽑았지만, 평소에 사용하는 명칭과 다를 때가 있습니다. 이럴 때 컬럼 명에 별명을 지정하여 변경할 수 있습니다.
- 별명 지정 방법 : 컬럼 옆쪽에 별명을 적어줍니다. 또는 as를 이용할 수 있다.
select restaurant_name as "음식점", addr as address
from food_orders
select restaurant_name "음식점", addr address
from food_orders
select order_id as ord_no,
restaurant_name "식당 이름"
from food_orders
이렇게 예문을 볼 수 있다. 컬럼을 적을 때 개행을 해도 실행하는데 문제는 없다.
실습
1. 주문 (food_orders) 테이블에서 order_id, price, quantity 를 가져와서 ord_no, 가격, 수량 으로 별명 지어주기
select order_id as ord_no,
price "가격",
quantity as "수량"
from food_orders
2. 고객 (customers) 테이블에서 name, email 을 가져와서 이름, e-mail 으로 별명 지어주기
select name as 이름,
email "e-mail"
from customers
별명을 지을 때 큰 따옴표를 붙여야한다고 했는데 그냥 한글을 썼는대도 데이터를 받을 수 있었다.(왜지?)
질문 게시판에 올려서 확인해 봤다.
한글 표기 작성 시 공백이나 특수문자를 포함하지 않는 일반적인 문자열의 경우 큰 따옴표 없이 사용 가능합니다! 대신 특수문자나 공백이 포함되어있으면 큰 따옴표를 사용해주셔야 합니다. 작은 따옴표도 가능하지만 큰 따옴표로 작성하는걸 권장하도록 되어있습니다
5. 조건에 맞는 데이터로 필터링하기(WHERE)
SQL 의 ‘WHERE’ 문법을 이용하면 전체 데이터 중 원하는 데이터만 필터링을 할 수 있습니다.
SELECT *
FROM customers
WHERE age=21
SELECT *
FROM customers
WHERE gender='male'
문자를 불러올 때는 작은 따옴표를 붙여줘야 한다.
반드시 from 다음에 where가 나와야 한다.
실습
1. 주문 (food_orders) 테이블에서 한국음식을 주문한 경우만 조회하기
SELECT *
FROM food_orders
WHERE cuisine_type = 'Korean'
SQL은 대소문자를 꼭 구분해야 한다!
2. 결제 (payments) 테이블에서 카드로 결제한 경우만 조회하기
SELECT *
FROM payments
WHERE pay_type = 'card'
6. 필터링을 할 때 유용한 표현 알아보기 (비교연산, BETWEEN, IN, LIKE)
where절에는 비교연산자를 사용할 수 있다.(작다<, 크다>, 같다= 등)
SELECT *
FROM customers
WHERE age > 21
<> :같지 않다.
SELECT *
FROM customers
WHERE gender <> 'male'
다양한 조건의 종류 (BETWEEN, IN, LIKE)
BETWEEM : A 와 B 사이
SELECT *
FROM customers
WHERE age BETWEEN 21 and 23
IN : ‘포함’ 하는 조건 주기
SELECT *
FROM customers
WHERE age IN (21, 25, 27)
SELECT *
FROM customers
WHERE name IN ('윤주아', '정현준')
21 25 27 / 윤주아, 정현준 하나씩 뽑아줄 수 있다. 숫자, 문자, 모두 사용 가능.
LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
SELECT *
FROM customers
WHERE name LIKE '김%'
김으로 시작되는 모든 사람을 불러 올 수 있다.
특정한 문자로 시작되는 경우: 시작문자%
특정한 문자를 포함하는 경우: %포함문자%
특정한 문자로 끝나는 경우: %시작문자
%가 모든 문자라고 대치해서 생각하면 된다.
[실습] WHERE 절에 비교 연산자 적용하기
1. 고객 (customers) 테이블에서 나이가 40세 이상인 고객 조회하기
SELECT *
FROM customers
WHERE age >= 40
2. 주문 (food_orders) 테이블에서 주문 금액이 15,000원 미만인 고객 조회하기
SELECT *
FROM food_orders
WHERE price < 15000
[실습] WHERE 절에 다양한 조건을 적용하기
1. 주문 (food_orders) 테이블에서 주문 금액이 20,000~30,000원 사이인 고객 조회하기
SELECT *
FROM food_orders
WHERE price BETWEEN 20000 and 30000
2. 주문 (food_orders) 테이블에서 B 로 시작하는 상점의 주문 조회하기
SELECT *
FROM food_orders
WHERE restaurant_name LIKE 'B%'
7. 여러 개의 조건으로 필터링하기 (논리연산)
WHERE 절에 여러 조건을 적용하기
- 지금까지 배운 필터링 조건 여러개를 하나의 Query 문에서 적용할 수 있습니다.
- 예) ‘나이가 20세 이상인’, ‘여성 고객’ 두가지 조건 적용
- 여러개의 조건을 적용할 때 사용되는 연산이 ‘논리연산’ 입니다.
- AND: 그리고 - 앞/조건 모두 만족할 때 사용
- OR: 또는 - 하나의 조건만 만족할 때 사용
- NOT: 아닌 - <>와 같은 문법
SELECT *
FROM customers
WHERE age >= 21
AND gender = 'male'
[실습] 여러 조건을 적용하여 데이터 필터링하기
1. 주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회
SELECT *
FROM food_orders
WHERE cuisine_type = 'Korean'
AND price >= 30000
2. 결제 (payments) 테이블에서 카드로 결제했거나, vat 율이 0.2 이하인 경우 조회
SELECT *
FROM payments
WHERE pay_type = 'card'
OR vat <= 0.2
HW. 1주차 숙제 해설
상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기
SELECT food_preparation_time, customer_id
FROM food_orders
WHERE cuisine_type = 'Korean'
AND food_preparation_time BETWEEN 20 and 30
'WHAT I LEARN > TIL' 카테고리의 다른 글
[TIL] AI 웹 개발 7기 사전 캠프 3-2 (1) | 2024.06.04 |
---|---|
[TIL] AI 웹 개발 7기 사전 캠프 3-1 (2) | 2024.06.03 |
[TIL] AI 웹 개발 7기 사전 캠프 2-4 (0) | 2024.05.30 |
[TIL] AI 웹 개발 7기 사전 캠프 2-3 (0) | 2024.05.29 |
[TIL] AI 웹 개발 7기 사전 캠프 2-2 (1) | 2024.05.28 |