1. 오늘 한일.
오늘은 스파르타코딩클럽 사이트에 있는 ' 엑셀보다 쉽고 빠른 SQL 1주차' 시정하고 공부했습니다.
2. 배운내용.
■ SQL 이란?
- 구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다.
- SQL 문을 사용하여 데이터베이스에서 정보를 저장, 업데이트, 제거, 검색을 할 수 있습니다.
- 데이터베이스 성능을 유지 관리하고 최적화하는 데 SQL을 사용할 수도 있습니다.
■ 데이터베이스 개념?
- 데이터베이스는 "데이터가 저장되어있는 큰 폴더"
- 데이터베이스(폴더)가 있고 그안에 테이블(파일)이 있다고 생각하면된다.
■ 테이블과 칼럼이란?
- 테이블은 마치 "엑셀 파일"과 같이 생겼다.
- 테이블은 엑셀과 유사한 구조로 데이터를 갖고 있고, 각 열을 "컬럼" 혹은 "필드" 라고 부른다.
- ex) 예시
[테이블 목록]
food_orders : 음식 주문 정보 테이블
[컬럼 목록]
- order_id : 주문 번호
- customer_id : 고객 번호
- restaurant_name : 음식점 이름
- cuisine_type : 음식 종류
- price : 음식 가격
(이하 생략)
payments : 결제 정보 테이블
custormers : 고객 정보 테이블
■ SQL 기본구조를 익히고 데이터 조회를 시작하기 (SELECT, FROM)
1) SELECT / FROM 문의 개념.
- Query를 작성 하기전에 생각해 볼 사항
- SQL은 "코드"가 아니라 데이터베이스에 요청 하기 위한 "언어" 이므로, 작성 전에 어떤 요청을 할지 생각해야함
- 원하는 곳에서 데이터를 가져 오는 기본적인 명렁어이다. (SELECT, FROM)
(1) SELECT : 데이터를 가져오는 기본 명려어, 데이터를 조회하는 모든 Query에 사용됨.
(2) FROM : 데이터를 가져올 테이블을 특정해주는 문법
(3) * : 모든 컬럼을 가져와준다는 의미
2) 문법 예시
select *
form food_orders
(문법 해석 food_orders 에서 모든 데이터를 가져와라)
3) SELECT / FROM 실습 해보기.
- payments 테이블의 데이터 조회하기. (실습완료)
- customers 테이블의 데이터 조회하기. (실습완료)
■ 필요한 항목만 뽑아서 사용해보자.
1) 원하는 컬럼을 선택해보자.
- 테이블의 모든 컬럼이 필요하지 않을 때, 필요한 것만 선택하여 조회 가능.
- '*' 대신에, 필요한 컬럼을 적어보자.
- ex) 예시
select 컬럼1, 컬럼2
form 테이블
(문법 해석 - 테이블에서 컬럼1, 컬럼2를 찾아주세요.)
2) 컬럼에 별명 추가
- 원하는 컬럼만 뽑았지만, 평소에 사용하는 명칭과 다를 때가 있다. 이럴 떄 컬럼 명에 별명을 지정하여 변경가능.
- 별명 지정 방법 : 컬럼 옆쪽에 별명을 적어준다 (2가지 방법.)
- ex) 예시
- 방법1 : 컬럼1 as 별명1
- 방법2 : 컬럼2 별명2
- 별명을 지을 때 유의사항
(1) 영문, 언더바 : 별명만 적음 (ard_no)
(2) 특수문자, 한글 : "별명"으로, 큰 따옴표 안에 적어줌 ("ord no", "주문번호")
3) [실습] 컬럼을 선택하고 별명 지정하기
- 주문(food_orders) 테이블에서 order_id, price, quantity를 가져와서 ord_no, 가격, 수량 으로 별명 지어주기.(실습완료)
- 고객(customers) 테이블에서 name, email을 가져와서 이름, e-mail으로 별명 지어주기. (실습완료)
■ 조건에 맞는 데이터로 필터링하기 (WHERE)
1) WHERE 질의 개념
- SQL 의 'WHERE' 문법을 이용하면 전체 데이터 중 원하는 데이터만 필터링을 할 수 있습니다.
- WHERE의 구조
select *
from 테이블
where 필터링 조건 (age, 20살 이상 ) => shere age=21
(문자형일 경우 '' 작은 따움표를 써야함.)
2)[실습] WHERE을 이용한 필터링
- 주문 (food_orders) 테이블에서 한국음식을 주문한 경우만 조회하기 (실습완료)
- 결제 (payments) 테이블에서 카드로 결제한 경우만 조히하기 (실습완료)
■ 필터링을 할 때 유용한 표현 알아보기 (비교연산, BETWEEN, IN, LIKE)
1) 같음, 큼, 작음 등의 조건을 지정해보기
- 비교연산자 =(같다), <>(같지 않다), >(크다), >=(크거나같다), <(작다), <=(작거나 같다)
2) 다양한 조건의 종류 (BETWEEN, IN, LIKE)
- SQL 문법은 비교연산자와 더불어 다양한 조건의 필터를 제공한다.
(1) BETWEEN : A 와 B 사이
(예시 : WHERE age BETWEEN 21 and 23 = 21살~ 23살 사이를 구해주세요)
(2) IN : '포함'하는 조건 주기
(예시 : WHERE age IN (21, 25, 27) = 21살, 25살, 27살을 구해주세요.)
(예시 : WHERE name in ('윤주아','정현준') = 윤주아, 정현준을 구해주세요.)
(3) LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
(예시 : WHERE name LIKE '김%' = 김으로 시작하는 이름을 구해주세요.)
(특정한 문자로 시작하는 경우 : "이름%")
(특정한 문자로 포함하는 경우 : "%이름%")
(특정한 문자로 끝나는 경우 : "%이름")
3)[실습] WHERE에 비교연산자 적용하기
- 고객(customers) 테이블에서 나이가 40세 이상인 고객 조회하기. (실습완료)
- 주문(food_orders) 테이블에서 주문 금액이 15,000원 미만인 고객 조회하기. (실습완료)
4)[실습] WHERE에 다양한 조건을 적용하기
- 주문 (food_orders)테이블에서 주문 금액이 20,000 ~ 30,000원 사이인 고객 조회하기. (실습완료)
- 주문 (food_orders)테이블에서 B로 시작하는 상점의 주문 조회하기. (실습완료)
■ 필터링 조건으로 여러개를 적용해야 할때 (논리연산)
1) WHERE에 여러조건을 적용하기.
- 지금까지 배운 필터링 조건 여러개를 하나의 Query문에서 적용할 수 있다.
- 여러개의 조건을 적용할 때 사용되는 연산이 '논리연산'이다.
- 논리연산 종류
(1) AND : 그리고 (age>20 AND gender='female' -> 나이가 20세 이상이고, 여성)
(2) OR : 또는 (age>20 or gender='female' -> 나이가 20세 이상이거나, 여성)
(3) NOT : 아닌 (not gender='female' -> 여성이 아닌)
2) [실습] 여러 조건을 적용하여 데이터 필터링하기
- 주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회 (실습완료)
- 결제 (payments) 테이블에서 카드로 결제했거나, vat 율이 0.2 이하인 경우 조회 (실습완료)
■ 1주차 과제
1) 상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기
[지시사항]
(1) 조회해야 할 컬럼 특정하기
(2) '사이' 조건 : BETWEEN
(3) 특정 조건 지정 : =
(4) 복수의 조건 지정 : AND
3. 공부도 중 생긴 문제.
■ 강의 영상에서 FROM를 소문자로 사용해서 똑같이 타이핑 중 에러 발생.
- 해결 : 대문자로 변환하니 에러는 사라짐.
- 검색 결과 : 대소문자를 구분하지 않지만 대부분의 데이터베이스 시스템에서는 대문자를 쓰는 게 권장된다.
데이터 베이스의 시스템의 문법 규칙 중의 하나로, 대문자로 키어드를 작성하는 것이 일반적인
규칙이기 때문이다.
4, 결론.
아직까지 어려운 부분이 없었고 재미있었습니다. 다음 공부할 부분이 기다려집니다.
'TIL' 카테고리의 다른 글
2024-10-15 (0) | 2024.10.15 |
---|---|
2024-10-14 (0) | 2024.10.14 |
2024-10-11 (1) | 2024.10.11 |
2024-10-10 (1) | 2024.10.10 |
2024-10-07 (0) | 2024.10.07 |