본문 바로가기

전체 글

[내일 배움 캠프 3-7] Data Type 오류 + 3주차 숙제 MySQL은 Data Type이 달라도 연산이 가능하다. 하지만 자동 형 변환(type conversion)이 발생할 수 있어 결과가 예상과 다를 수 있다.위 DB에서 rating 컬럼은 숫자로도 이루어져 있지만, Data Type이 문자형(A-Z)이다.만약, Data Type을 확인하지 않고 숫자와 연산을 하게 되면 다른 SQL 문법에서는 연산이 되지 않을 수 있다.   1. 데이터 타입 변경--숫자로 변경cast(if(rating='Not given', '1', rating) as decimal) --문자로 변경concat(restaurant_name, '-', cast(order_id as char))다음 과정을 통해 Data Type도 일치시키고 그에 따른 데이터 처리도 함께 해주면, 올바른 계산.. 더보기
[내일 배움 캠프 3-4] IF, CASE 조건 범주별로 값을 구할 때 GROUP BY 를 썼던 것 처럼, 조건도 범주별로 다른 연산을 적용할 수 있도록 SQL이 제공한다.  1. IF - 조건에 따라 다른 방법을 적용하고 싶을 때 사용한다.- 구조 : IF(조건, 조건을 충족하는 경우, 조건을 충족하지 못하는 경우)SELECT restaurant_name, cuisine_type "원래 음식 타입", IF(cuisine_type='Korean', '한식', '기타') "음식 타입"FROM food_ordersIF는 SELECT, WHERE, ORDER BY에서 사용할 수 있다.   2. CASE- 조건을 여러가지 지정하고 싶을 때 사용한다.- 구조 : CASE WHEN 조건1 THEN 값(수식)1                  .. 더보기
[내일 배움 캠프 3-2] 필요한 포맷대로 SQL 가공하기(REPLACE, SUBSTRING, CONCAT) 1. REPLACE 함수 :- 데이터의 특정 문자열을, 다른 문자열로 치환 후 조회할 때 사용한다.- 구조 : REPLACE(컬럼, 바뀔 문자열, 대체할 문자열)SELECT restaurant_name "원래 상점명", replace(restaurant_name, 'Blue', 'Pink') "바뀐 상점명"FROM food_ordersWHERE restaurant_name like '%Blue Ribbon%'실제 DB가 업데이트된 것이 아닌 단순히 조회할 때 문자열이 대체된 것이다.   2. SUBSTRING 함수 :- 데이터의 특정 문자열 중, 내가 원하는 부분을 추출하고 싶을 때 사용한다.- 구조 : SUBSTRING(컬럼, 시작 위치, 추출할 문자 개수) SELECT addr "원래 주소.. 더보기
[MySQL] SQL 실행 순서 + 2주차 숙제 2주차까지 복습하면서 느낀 것 : 이해없이, 쿼리를 작성하고 그때마다 결과를 확인하는 것에만 의지하는 것은 어려운 문제에 직면했을 때, 오히려 더 발목을 잡는다고 느꼈다.따라서 정확한 이해를 위해 SQL 실행 순서에 대해 추가적으로 공부하였다. SQL 실행 순서에 대한 이해가 있어야 쿼리 문을 자세히 이해하는데 도움이 된다. 1. SQL 실행 순서FROM → 테이블을 선택WHERE → 개별 행(raw)을 필터링GROUP BY → 그룹을 만든다 (여기서 집계 대상 그룹이 결정됨)HAVING → 그룹별로 필터링SELECT → 최종적으로 컬럼을 선택하고, 여기서 집계 함수가 실행됨ORDER BY → 정렬 2. 숙제[문제]음식 종류별 가장 높은 주문 금액과 가장 낮은 주문금액을 조회하고, 가장 낮은 주문금액.. 더보기
[MySQL]집계 함수란? ※ 시작하기 앞서, 집계 함수의 사용법은 이미 알고있기에 따로 정리하지 않고 공부하면서 헷갈렸던거 위주로 정리하고자 한다. 1. 집계 함수란 여러 행(raw)의 값을 하나의 결과값으로 요약하는 함수이다.집계 함수 종류 : sum(), count(), avg(), min(), max()가 있다. 2. 집계 함수 특징- 나의 경험 : 집계 함수를 어느 문에서 사용할 수 있는지 헷갈렸던 적이 있었다.SELECT, GROUP BY에서 사용 가능하다.WHERE 절에서 사용 불가하다. 3. 집계 함수 헷갈림 포인트!!- 나의 경험 : 집계 함수를 사용할 때, 헷갈렸던 개념을 정리해보았다.집계 함수는 기본적으로 전체 table에 영향을 받는다.SELECT cuisine_type, count(1) .. 더보기
[MySQL] SELECT, FROM, WHERE 데이터 조회하기 목차기본 명령어필요한 항목(컬럼)만 뽑아서 사용컬럼에 별명(alias)를 주기조건에 맞는 데이터만 필요할 때, WHERE 절로 필터링하기여러가지 조건을 주는 방법, 논리 연산자 사용하기1주차 숙제 기본 명령어SELECT : 데이터를 가져오는 기본 명령어, 데이터를 조회하는 모든 Query 문에 사용된다.FROM : 데이터를 가져올 테이블을 특정해준다.SELECT *FROM food_orders* : 모든 컬럼(열)을 가져온다는 의미이다. 필요한 항목(컬럼)만 뽑아서 사용구조 : SELECT 컬럼명1, 컬럼명2...SELECT price, quantity, addrFROM food_ordersfood_orders 테이블에서 price, quantity, addr 컬.. 더보기
[MySQL] 데이터베이스란? 1. 데이터베이스(DB)란 데이터가 체계적으로 저장, 관리되는 공간이다.데이터 베이스는 저장 방식과 구조에 따라 관계형, NoSQL, 객체지향, 그래프 데이터베이스 등으로 나뉜다.내일 배움 캠프에서 진행하는 방식은 관계형 데이터베이스(Relational DataBase)이다. 2. RDB : 관계형 데이터베이스 customer_idnameage11234anon12데이터를 테이블(Table) 형태로 저장한다.테이블은 행(RAW, →)과 열(COLUMN, ↓)로 이루어진 2차원 구조이다. 3. RDBMS : 관계형 데이터베이스 관리 시스템RDB를 운영하고 데이터를 저장, 검색, 수정, 삭제할 수 있도록 지원하는 프로그램이다.MySQL은 SQL을 사용해 데이터베이스를 만들고 관리하는 오픈 소스 RDB.. 더보기
[MySQL] SQL이란? 1. 처음에는 SQL과 데이터베이스(DB)와의 차이가 무엇인지 잘 몰랐다.SQL(Structured Query Language)은 데이터베이스(DB)와 대화를 하기 위한 언어이다.DB는 데이터를 체계적으로 저장하고 관리하는 공간이다. 2. SQL 언어를 이용하여 데이터베이스(DB)에 요청을 하는 질의를 'Query'라고 한다.SELECT * FROM food_orders다음과 같은 Query 문을 통해 데이터베이스에 데이터를 요청할 수 있다. 3. SQL과 Query는 동일한가?SQL은 데이터베이스(DB)와 상호작용하는 언어 자체(SELECT, UPDATE ..등)이다.SQL을 사용해서 작성된 하나의 명령어를 "Query"라고 한다.나의 결론 : SQL은 큰 개념, Query는 그 안에 포함된 개념 더보기