SQL-첫걸음

권수민·2023년 8월 4일
0

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

<자료 구조>

  • orders......=> tables 안에 있는 elements
  • order_no, created_at, user_id, email => field name
  • 문자열을 쓸때는 무조건 ' ' 따옴표 필요. 숫자일땐 x
    =>select from point_users where point >= 5000;
    /

/*

  • 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 count(*) from users
    where email like "%gmail.com"
    and created_at between "2020-07-12" and "2020-07-14"; 날짜는 문자열이라 따옴표 필요

<숙제>
select * from orders
where email like "%naver.com"
and course_title = "앱개발 종합반"
and payment_method = 'kakaopay';

*/

profile
초보개발자

2개의 댓글

comment-user-thumbnail
2023년 8월 4일

좋은 글 감사합니다. 자주 방문할게요 :)

1개의 답글