본문 바로가기
  • 반가워요 : )
교육/개인 취미

SQL 배우기 1주차 feat.스파르타 코딩

by 교육의 기울기 2022. 3. 22.
반응형

sql배우기

이 강의는 데이터베이스 같은 머리 아픈 내용이 아니라

실제 실무에서 어떤 식으로 사용할지에 대한 내용을 다루고 있다.

1주 차에는 SQL이 무엇인지, 왜 배워야 하는지에 대해 배우고

SQL을 실행해볼 프로그램 설치, 간단한 문법을 배웠다.

 

목차

     

    SQL 기초개념

     

    ① DB( 데이터 베이스) 

     

    - DB : 데이터를 담은 통의 개념

    1) 필요한 데이터만 불러와서 작업할 수 있어 속도 상승
    2) 충돌이 생겼을 경우 에러를 띄우는 기능을 추가해서 충돌로 생기는 문제 사라짐

     

    - 데이터 베이스의 기능(CRUD)

     

    C (Create): 데이터의 생성을 의미
    R (Read): 저장된 데이터를 읽어오는 것을 의미
    U (Update): 저장된 데이터를 변경
    D (Delete): 저장된 데이터를 삭제하는 것을 의미

     

    ② SQL의 필요 이유

     

    - SQL : 데이터베이스에 요청(QUERY)을 날려서 원하는 데이터를 가져오게 하는 언어를 말한다.

    CRUD 중의 R인 READ를 편하게 만들어준다.

    데이터를 깔끔하게 정리/분석하는 기능 추가된다.

     

    여기 중에 Read에 해당하는 것만 중심으로 배우게 되는데 

    이것을 하기 위해서는 하나의 프로그램을 다운로드하여야 한다.

     

     

    설치 링크는 아래와 같다.

     

    다운로드 링크

     

    반응형

     

    다운로드하고 실행 시 위와 같은 화면이 나온다. 이화면에서 MYSQL을 선택한다.

     

     

    그러고 나면 'Connection Settings'가 뜬다.

    그리고 아래와 같이 하면 된다.

     

     a. Server에 서버 주소를 넣어준다.

     b. 데이터베이스 이름을 넣어준다.

     c. 그리고 username에 내 계정 이름을 넣어준다.

     d. 패스워드 설정

     e. 좌측 하단에 'Test connection' 클릭한 후에 뜨는 창에서 'Download' 클릭해서 다운로드

     f. Connection Test 결과에 'Connected'라는 결과가 나오면 확인을 누르고 완료 누르기.

     

     

    DBeaver 화면에 대해서 알아보자.

     

    첫 화면이 위와 같이 나오면 먼저 빨간색 동그라미를 눌러서 sql 편집기를 띄운다.

    그리고 파란색 동그라미를 눌러서 하위에 어떤 게 있는지 살펴본다.

     

     

    그러면 편집기에서는 명령어를 입력할 수 있다.

    여기서 Select 쿼리문을 이용해서 테이블을 가져와봤다.

    위 그림에서  빨간 동그라미에 있는 걸 테이블이라고 한다. 일종의 엑셀 시트라고 보면 된다.

    그리고 파란 동그라미가 'orders'라는 테이블을 가져온 결과다.

    이 테이블의 상단에 order_no, created_at, updated_at 등으로 분류가 되어있는데

    이렇게 분류해주는 것들을 필드라고 한다.

    이렇게 테이블, 필드, 쿼리문을 이용해서 데이터를 정리하고 뽑아낼 수 있다.

     

     

    명령어들을 알아봅시다.

     

    1.show tables ( 테이블 정보를 가져와라)

     

    데이터베이스에 어떤 테이블들이 있는지 알 수 있다.

    checkins, courses... 등 7개의 테이블이 있는 걸 알 수 있다.

    아래 사진을 통해 알 수 있다.

     

     

    2.select * from 테이블명 : 특정 테이블에서 모든 정보를 가져와라

     

    위와 같이 orders에서 모든 필드를 가져온 결과이다. orders라는 테이블을 연 것과 같은 거라고 볼 수 있다.

     

    3. select 특정 필드명 from 테이블명

     

    orders라는 테이블에서 course_title이라는 필드를 가져온 결과이다.

     

     

    4.where : 조건절으로서 테이블에서 정보를 가져올 때 특정 조건을 맞추어서 가져올 수 있다.

    SELECT * from orders 
    WHERE course_title = '앱개발 종합반'

     

    위 코드를 예시로 들면 'orders'라는 테이블을 가져오는데

    'course_title' 이 '앱 개발 종합반'인 것만 가져와라 라는 조건절이라고 할 수 있다.

     

    5. 여러 조건을 사용할 때는 and를 사용하면 됨

    SELECT * from orders 
    WHERE course_title = '앱개발 종합반' and payment_method ='kakaopay'

    위 코드를 실행 시 아래와 같은 사진의 결과가 나온다.

     

    6. 같지 않음 조건 '!=' 사용

    SELECT * from orders 
    WHERE course_title != '앱개발 종합반'

    위 코드를 실행 시 아래와 같은 결과가 나온다.

     

    앱 개발 종합반이 아닌 데이터만 표시된다.

     

    7. 범위 조건 사용 시 between 사용

    SELECT * from orders 
    WHERE created_at BETWEEN '2020-07-13' and '2020-07-15'

     

     

    위 코드는 7월 13일과 15일 사이의  것을 불러오는 코드다.

    날짜가 13,14 일만 나온 걸 알 수 있다.

     

    8. 포함 조건 사용 시 in 사용

    특정 필드에서 특정값을 포함하는 것을 불러오는 코드다.

    SELECT * from orders 
    WHERE payment_method in('kakaopay', 'card')

     

    카카오페이, 카드로 결제한 사람을 가져왔다.

     

    9. 패턴 조건 사용 시 like 사용

    특정 패턴을 지닌 것을 가져오는 코드다.

    SELECT * from orders 
    WHERE email LIKE '%gmail.com'

     

    여기서 '%' 라는건 '아무거나'라는 뜻이다.

    위의 '% gmail.com'이라는 건 '아무것'으로 시작해서 'gmail.com'으로 끝나는 것을 불러오라는 뜻이다.

    이것을 응용 시 여러 가지 데이터를 불러올 수 있다.

    'a%. com'  이것은 a로 시작해서. com으로 끝나는 데이터를 불러오라는 뜻이다.

     

    10. 일부 데이터 가져올 때 limit

    : 데이터를 가져오는데 조금만 보고 싶을 때 사용

    select * from orders 
    where payment_method = "kakaopay"
    limit 5

     

    위같이 5개의 정보만 나온다. 

     

    11. 중복 데이터 제거하고 데이터 가져올 때 distinct

    select distinct(payment_method) from orders;

     

    위와 같이 payment method 배열을 가져오는데 중복된걸 다 삭제 후에 데이터를 가져온다.

    즉 어떤 종류가 있는지 알 수가 있다.

     

    12. 숫자 세기 count

    select count(*) from orders

     

    orders가 몇 개로 이루어졌는지 알 수 있다.

     

    13. 종류 세기 count와 distinct를 응용한다.

    select COUNT(distinct(name)) from users;

     

    위와 같이 사용 시 name의 중복된 것을 다 없애고 데이터를 가져오면서 그것을 세준다.

    즉 종류가 몇 개인지 가르쳐주는 코드이다.

    반응형

    댓글