티스토리 뷰
728x90
SQL 1주차
[수업 목표]
- 데이터베이스와 SQL 이 무엇인지 이해한다
- SELECT, FROM 문을 이용하여 데이터를 조회한다
- WHERE 절을 이용하여 데이터를 필터링한다
1. 설치하기
- DBeaver 다운로드 후 mySQL을 실행한다.
- host와 password가 필요하다
2. 데이터베이스
- '데이터 베이스'를 '폴더'라고 생각하고 '테이블'을 폴더 안에 있는 '파일'이라 할 수 있다.
- 테이블을 엑셀과 비슷한 구조를 가지고 있다. 그 중 각 열을 '컬럼' 또는 '필드'라고 부른다.
- 테이블 목록에는 아래처럼 각각의 목록이 있는데 그것을 찾아 조회 할 수 있다.(외울필요는 없이 필요할 때 찾아서 쓰는 용도)
- 테이블1 - food_orders
- order_id : 주문 번호
- customer_id : 고객 번호
- restaurant_name : 음식점 이름
- cuisine_type : 음식 종류
- price : 음식 가격
- quantity : 주문 수량
- day_of_the_week : 주말 구분
- rating : 음식점 평점
- food_preparation_time : 음식 준비 시간 (분)
- delivery_time : 음식 배달 시간 (분)
- 테이블1 - food_orders
3. SQL 데이터 조회하기 (SELECT, FROM)
- DB를 열어 SQL의 양피지 모양의 아이콘을 클릭 후 실행
- 아래의 코드를 입력하고 Ctrl + Enter 을 하면 실행된다.
SELECT *
from food_orders
- 기본 명령어
- SELECT : 데이터를 가져오는 기본 명령어로, 데이터를 조회하는 모든 Query 에 사용됨
- FROM : 데이터를 가져올 테이블(각 파일)을 특정해주는 문법
- * : 모든 컬럼을 가져와준다는 의미
- 쿼리를 작성하기 전에 코드가 아닌 데이터베이스에 대한 요청 '언어' 이므로 작성 전에 어떤 요청을 할 지 미리 생각해 보는 것이 좋다. 어떤 데이터, 파일을 가져올까?
- 위의 그림처럼 payments 테이블의 데이터와 customers 테이블의 데이터가 조회되는 것을 볼 수 있다.
4. 필요한 항목만 뽑아서 사용하기
- 원하는 컬럼 선택하기
- select 컬럼1, 컬럼2
from 테이블
- select 컬럼1, 컬럼2
- select 에서 ' * ' 모든을 선택하는 것에서 컬럼 1, 컬럼 2와 같이 선택하여 추출할 수 있다. 컬럼이 많아서 필요한 정보를 확인하기 어려웠던 것에서, 원하는 컬럼만 조회할 수 있다.
- 컬럼의 이름이 길 때 바꾸어 줄 수 있다.
- 방법 1 : 컬럼 1 as 별명 1
- 방법 2 : 컬럼 2 별명 2 (띄어씌기만 해주고 나서 바꾸어 줄 수 있다.)
- 별명을 지어줄 때 영어, 언어바로 적어주거나 특수문자와 한글은 "" 큰 따옴표 안에 적어준다. (예시 - ord_no, "ord no", "주문번호", "e-mail" (하이픈도 특수 문자라서 쌍따옴표 써줌) )
- 아래의 사진처럼 바뀌는 것을 볼 수 있다.
5. 조건에 맞는 데이터로 필터링하기 (WHERE 이란)
- WHERE 절의 개념
- 데이터 중에서 특정 조건을 필터링하기 위해 쓰인다. 필터링은 숫자가 아닌 문자에도 사용 가능하다. 문자를 사용할 때에는 작은 따옴표 ' ' 를 사용한다.
- 나이가 21살인 사람을 필터링 해보자.
select * # 전체에서
from customers # 테이블
where age=21 # 필터링 조건 (21살 이상)
- 코리안을 적을 때 소문자, 대문자 구분해서 적어야 한다.
6. 필터링을 할 때 유용한 표현 알아보기 (비교연산, BETWEEN, IN, LIKE)
- 비교연산자의미예시는 다음과 같다.
같다 | age=21 gender=’female’ |
같지 않다 (다르다) | age<>21 gender<>’female’ |
크다 | age>21 |
크거나 같다 | age>=21 |
작다 | age<21 |
작거나 같다 | age<=21 |
- 다양한 조건의 종류 (BETWEEN, IN, LIKE)
- between a and b : 예시 : where age between 10 and 20
- IN : ‘포함’ 하는 조건 주기 예시 : age in (15, 21, 31) / cuisine_type in ('Korean', 'Japanese')
- LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
- 특정문자로 시작 예시 : 기본 문법 : like ‘시작문자**%**’ , ‘김’ 으로 시작하는 이름 : name like '김%'
- 특정문자를 포함 예시 2 : 기본 문법 : like ‘%포함문자%’ : 식당 이름에 ‘Next’ 를 포함하는 경우 restaurant_name like '%Next%'
- 특정 문자로 끝남 예시 3 : ‘임’ 으로 끝나는 이름, 기본 문법 : like ‘**%**시작문자’ : name like '%임'
7. 여러 개의 조건으로 필터링하기 (논리연산)
- 필터링 조건 여러개를 하나의 Query 문에서 적용해보자
- 여러개의 조건을 적용할 때 사용되는 연산이 '논리연산'입니다.
- 논리연산의 종류
- AND : 그리고, age>20 and gender=’female’ → 나이가 20세 이상이고, 여성
- OR : 또는 , age>20 or gender=’female’ → 나이가 20세 이상이거나, 여성
- NOT : 아닌, not gender=’female’ → 여성이 아닌
- 예시 : 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
8. 에러메세지에 당황하지 않고 스스로 문제 해결하기
- 에러 메세지에 대처하는 자세
- 당황하지 않고 왜 에러가 났는지 확인하는 것이 중요하다
- 어떤 에러가 났는지 알려주기 때문에 확인을 해본다
- 자주 만날 수 있는 에러메세지
- ⚠️ 테이블 명을 다르게 적었을 때 : SQL Error [1146][42S02] : Table 'sparta_lecture.payment' doesn't exist
- ⚠️ 필터링 조건을 줄 때 문자에 ‘ ‘ 작은 따옴표를 안했을 때 → Korea 에 문제가 있다는 메시지 : SQL Error [1054][42S22] : Unknown colum 'pay_typ' in 'field list'
- ⚠️ 컬럼 명을 다르게 적었을 때 → 필드명이 잘못 되었다는 메시지 : SQL Error [1054][42S22] : Unknown colum 'Korea' in 'where clause'
- 🔥 이 외에도 여러 경우가 있지만, 중요한 것은 ‘에러 메시지를 읽어보는 것’ 이다.
반응형
'AI웹 개발자 과정 공부 (팀스파르타) > SQL' 카테고리의 다른 글
SQL 문제 풀이 (0) | 2024.05.30 |
---|