SQL이란걸 처음 배워보는데 일단 스파르타코딩에서 SQL첫걸음으로 나의 발자취를 시작한다.
1주차 과정 요약 정리를 해보려한다.
먼저 DBeaver를 개발환경으로 사용할껀데...
다운로드는 https://dbeaver.io/download/ 이곳에서 알아서 진행하길 바란다.ㅎ
먼저 데이터와 연결해주는 작업을 해야한다.
맨 위에 플러그 플러스 표시있는곳을 클릭해서 MySQL을 선택후
host - password. 를 설정해 주어야 한다.
옳바르게 데이터와 연결되었다면
show tables => database 안에 들어있는 tables 폴더 데이터를 보여준다.
show tables; 따옴표 를 써주지 않아도 기능은 한다. 편의상 붙히지 않겠 여기선. 하지만 붙혀주는것이 좋겠찌?
key : command+ enter => 실행
select * from orders => tables안에있는 orders폴더안의 모든데이터 추출
'*' => all
select order_no, created_at, user_id, email from orders => orders 안의 몇가지 연달아 자료추출 가능
show orders => 로 바로 들어가서 추출할수 잇나 > no
show tables select from ~ 할수 잇나? > no
=> show tables; select from ~ > ok
<자료 구조>
/*
where => Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것
======>!!그렇기에 select 함수의 조건절로 종속절이다. where 독자적으로 사용 불가능.
select * from orders
where payment_method = "kakaopay"; => orders 테이블에서 결제수단이 카카오페이인 데이터만 가져오기
쿼리 문은 길어지면 너무보기가 힘들어서 깔끔하게 규칙적으로 길지않게 나눠써주는게 중요!
하지만 띄어썼다고 ; 붙혀서는 자료 받아올수없음.
=> select * from orders;
where payment_method = "kakaopay";
예시> select * from point_users where point >= 5000;
=> point_users 테이블에서 포인트가 5000점 이상인 데이터만 가져와줘!
예시2> select * from orders where course_title = "앱개발 종합반" and payment_method = 'CARD';
=> orders 테이블에서 주문한 강의가 앱개발 종합반이면서, 결제수단이 카드인 데이터만 가져와줘!
더 자세한 수업 내용
https://teamsparta.notion.site/SQL-1-edffbff0b5234ad7989ce63e29d39e62#562891e9c9254f26861a36e165ff52df
<예시>
select from orders where payment_method != "CARD";
select from point_users
where point between 20000 and 30000;
select from users
where email like "s%com" and name like "이%";
<기본적인 다른 특수함수>
!= 일치하지않음
%=문자열
ex> 시작이 a 끝이 t => 'a%t'
ex> 끝이 t => '%t'
ex> 시작이 a => 'a%'
between ~ and ~ 사이의 값을 추출
in (1,3,5....) 가로안의 값을 추출하고 싶을때
ex> where week in (1,4) week란에 1, 4번째주 추
distinct(필드) 중복되는것을 걸러줌
ex> select payment_method from orders ;=> 너무 많은 중복 방법이 나옴
오직 몇가지의방법이 있는지 알고 싶을때
=>select distinct(payment method) from orders;
limit 숫자 :: 보여질 줄의
너무 방대한 양의 데이터가 로드되기까지 오래걸리므로 그 데이터가 맞는지 빠르게 확인할때 사용.
ex> select * from users
limit 5;
count() :: row 줄의 수를 보는 작업 : 몇개가 있는
ex> select count(*) from orders
where payment_method = 'kakaopay';
주의!!!
빈칸이 있는 값이 있을때, count(필드명)을 할 경우 해당 null값의 행은 세어지지 않습니다.
(null을 제외하고 count)
하지만 count(*)을 할 경우 빈칸이 있는 행도 1개로 셉니다.(null을 포함하여 count)
distinct 와 count 같이써보기
ex> select count(distinct(name)) from users => 중복되는 모든 성을 제외하고 그 수가 얼마인지 데이터 추출하는
*select email from users => 이메일만 추출
where name = '남**';
<숙제>
select * from orders
where email like "%naver.com"
and course_title = "앱개발 종합반"
and payment_method = 'kakaopay';
*/
좋은 글 감사합니다. 자주 방문할게요 :)