SQL 1주차 수업 내용이다.
1주차에서는 SQL의 기본적인 문법을 공부했다.
Select쿼리문
쿼리(Query)는 질의를 의미합니다. 그 말그대로 데이터베이스에게 질의 하겠다, 명령을 내리겠다.
select쿼리문은 "데이터를 선택해서 가져오겠다." 라는 뜻이다.
쿼리문 사용법
데이터 베이스를 연결하고 쿼리문을 입력할 스크립트를 연다.
스크립트에 명령을 내린다.
기본문법 ↓↓↓↓↓
show table
테이블 들을 불러온다. 데이터 베이스에 어떤 테이블 들이 들어있는지 확인 할 수 있다.
select * from orders
해당테이블 데이터를 불러온다. "*"은 전부를 의미한다. 즉 orders테이블 내의 전부를 불러온다.
select created_at, course_title, payment_method, email from orders;
위와 같이 테이블의 선택한 데이터만 가져올 수도있다. 필요한 데이터만 입력하면 그 데이터만 가지고 온다.
Where절 이용법
where절은 다른 프로그램 언어의 if문과 유사하다 가져올 데이터에 조건을 걸어서 필요한 데이터만 가져온다.
select * from orders
where payment_method = "kakaopay";
#orders테이블에서 payment_method데이터가 "kakaopay"인것만 가져와라
위와 같이 where (데이터명) = (값)으로 같은 데이터를 가져올 수 있다.
같지 않은 것을 찾을 때는 !=를 이용 등호는 다른 프로그램 언어랑 비슷한것 같다.
Where절 활용
select * from point_users
where point>=10000
#point_users테이블에서 point데이터가 10000보다 높은 데이터만 가져와줘
여러 조건걸기
- and는 양쪽 조건이 모두 맞아야하며 or은 양쪽중 한쪽이라도 맞으면 가져온다.
ex) where course_title = "앱개발 종합반" or payment_method = "kakaopay";
select * from orders
where course_title = "앱개발 종합반" and payment_method = "kakaopay";
#orders테이블에서 course_title이 "앱개발 종합반"이면서 payment_method가 "kakaopay"인것만 가져와줘
Between
between은 범위를 지정할 때 사용한다.
select * from orders
where created_at between "2020-07-13" and "2020-07-15";
#orders테이블에 created_at데이터 내에서 "2020-07-13" 부터 "2020-07-15" 까지의 데이터만 뽑아줘
위와 같이 where (데이터명) between (처음 값) and (끝 값)으로 입력하면 범위를 정해 범위 내부의 데이터만 가져올 수 있다.
In
in은 포함하는 것을 모두 가져올 때 사용한다.
select * from checkins
where week in (1, 3);
#checkins테이블의 week데이터가 1,3을 포함한 데이터만 가져와줘
위와 같이 in은 뒤의 괄호 내부의 값들이 포함된 데이터를 모두 뽑아온다.
2가지만 되는게 아닌 ,뒤에 더 붙인다면 몇가지든 가능하다.
Like
like는 패턴 즉 문자열 규칙을 지정할 수 있다.
select * from users
where email like '%daum.net';
#users테이블에 email데이터가 daum.net으로 끝나는 것들만 가져와줘
위와 같이 %뒤에 나오는 문자열로 끝나는 것들을 가져온다.
select * from users
where email like 's%daum.net';
#s로 시작하면서 daum.net으로 끝나는 것만 가져와줘
%앞에도 문자를 넣으면 그 문자로 시작하는 문장만 찾을 수 도 있다.
select * from orders
where email like '%abc%'
#필드값에 abc를 포함하는 모든 데이터를 가져와줘
%두개 사이에 값을 넣으면 그 값을 포함하는 데이터들을 모두 가져온다.
Limit
limit는 말그대로 리미트 불러오는 값 개수에 리미트를 걸어준다.
select * from orders
where payment_method = "kakaopay"
limit 5;
#orders테이블에 payment_method가 "kakaopay"인것을 5개만 가져와줘
Count
count는 조건에 부합하는 데이터의 개수를 세어준다.
select count(*) from orders
#*은 모든 데이터 라고 했으므로 orders테이블의 모든데이터 개수를 구해줘
Distinct
distnct는 중복되는 데이터를 제외하고 가져온다.
select distinct(payment_method) from orders;
#orders테이블의 payment_method데이터들중에 중복되는 것들을 제외하고 가져와줘
중복되는 것들은 다 하나빼고 제외되어서 하나만 출력한다고 보면 된다.
데이터 안에 데이터의 종류가 궁금할 때 사용하면 유용하다.
그럼 데이터의 종류의 갯수는?
SELECT count(distinct(name)) from users;
#users의 테이블에 name데이터의 중복되는 것을 제외한 데이터의 갯수를 구해줘
위와같이 두가지를 같이 이용하면 쉽게 구할 수 있다.