Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Nonamed Develog

[TIL] AI 웹 개발 7기 사전 캠프 2-5 본문

WHAT I LEARN/TIL

[TIL] AI 웹 개발 7기 사전 캠프 2-5

노네임드개발자 2024. 5. 31. 19:05

일일 알고리즘 코드카타 풀어보기

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