단비의 코딩 공부 blog

[SQL] 기초개념 - 1주차 본문

SQL

[SQL] 기초개념 - 1주차

황굽달 2023. 8. 2. 17:58

1. 데이터베이스의 기초개념

- 데이터 베이스란?

 : 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통이라고 생각하면 쉽다.

 

- CRUD : 통상적으로 모든 데이터베이스는 CRUD에 해당하는 기능을 제공한다.

  C(Create) : 데이터의 생성을 의미한다.

  R(Read) : 저장된 데이터를 읽어오는 것을 의미한다.

  U(Update) : 저장된 데이터를 변경한다.

  D(Delete) : 저장된 데이터를 삭제하는것을 의미한다.

 

2. SQL은 왜 필요한가?

- 데이터를 읽어오는 과정인 R(Read)를 엄청 편하게 만들어 주고, 데이터를 손쉽고 깔끔하게 정리/분석하는 기능도 지원한다.

 

3. Select, Where 절 등 문법 연습하기

1) Where 절의 개념 : Where절은 Select 쿼리문으로 가져올 데이터에 조건을 걸어주는것을 의미한다.

2) where 절과 자주쓰는 문법 

- '같지 않음' 조건 :  !=

예시 :
select * from orders
where course_title != 'SQL';  // SQL 단어 빼고 추출하기

- '범위' 조건 : between

예시 : 
select * from orders
where created_at between '2020-07-13' and '2020-07-15';     //7월13일 부터 15일까지 데이터만 받기

- '포함' 조건 : in

예시 :
select * from checkins
where week in (1, 3);     //1,3주차만 보기

- '패턴' 조건 : like

예시 : 
select * from users
where email like '%daum.net';     //다음으로 끝나는 이메일만 추출하기 (% = 아무거나 포함)

4. 일부데이터 / 중복데이터 제외하고 가지고 오기

1) 일부데이터만 가지고 오기 : Limit

예시 :
select * from orders
where payment_method = 'kakaopay' limit 5;     //kakaopay 포함 후 5개만 출력

2) 중복데이터 가지고 오기 : Distinct

예시 : 
select distinct(payment_method) from orders;     //중복데이터는 제외하고 method 출력

5. 숫자 세기

1) 몇개인지 숫자 세어보기 : Count

예시 : 
select count(*) from orders    // oders테이블에 데이터가 몇개 들어있는지 출력

6. 응용해보기

1) distinct와 count 함께 써보기

예시 :
SELECT count(distinct(name)) from users;     //이름이 몇개인지 갯수가 궁금한 경우 출력

7. 퀴즈풀어보기

1) 성이 남씨인 유저의 이메일만 추출하기

정답 :
select email from users 
where name = "남**";

2) gmail을 사용하는 2020/07/13~에 가입한 유저 추출하기

정답 : 
select * from users
where created_at between "2020-07-12" and "2020-07-14"
and email like "%gmail.com";     
  • 7월 12일 부터 13일까지 데이터를 추출하는데 왜 14일까지 입력해야할까?
    between "2020-07-12" and "2020-07-13"으로 입력할 경우 between "2020-07-12 00:00:00" and "2020-07-13 00:00:00”으로 컴퓨터가 받아들이기 때문에 원하는 대로 출력되지 않는 것.
  • 그 답은 날짜가 인식되는 형식에 있습니다! 코드에 “2020-07-12”로 입력하더라도 “2020-07-12 23:59:59”로 인식하는 것이 아니라 “2020-07-12 00:00:00”으로 인식하기 때문

3) gmail을 사용하는 2020/07/13~에 가입한 유저의 수를 추출하기

정답 :
select count(*) from users
where created_at between "2020-07-12" and "2020-07-14"
and email like "%gmail.com";

4. naver이메일을 사용하면서, 웹개발 종합반을 신청했고 결제는 kakaopay인 데이터 추출하기

정답 : 
select * from orders
where email like '%naver.com'
and course_title ='웹개발 종합반'
and payment_method = 'kakaopay'

'SQL' 카테고리의 다른 글

[SQLD] 독학 합격 후기  (0) 2024.04.17
[SQL] 기초개념 - 4주차 (기초 완)  (1) 2023.08.13
[SQL] 기초개념 - 3주차  (0) 2023.08.09
[SQL] 기초개념 - 2주차  (0) 2023.08.07