[혼공S] 2주차 미션

sujinzzang수진짱·2024년 1월 9일
0

hongongSQL

목록 보기
2/6

03-1 기본 중에 기본 SELECT ~ FROM WHERE

SELECT

SELECT 문은 구축이 완료된 테이블에서 데이터를 추출하는 기능.

실습

  1. 카페에서 자료 다운받기
  2. 데이터베이스 생성
  3. 테이블 생성
    • 컬럼명은 영문으로 생성하는 것이 좋다
    • 데이터타입은 나중에 다시 배우기로.
  4. INSERET를 통해 데이터 입력
  5. SELECT문으로 조회

USE

어떤 데이터베이스를 사용할지 정하는 것

  • 한번 USE를 하면 계속 쓸 수 있다.
    (다시 껐다 끄거나, 다른 DB 선택하기 전까지)

SELECT

  • 모든 테이블을 보는 경우는 별로 없다. -> WHERE 조건을 써서 어떤 내용만 보겠다 정한다.

  • 여러 줄로 나누어서 써도 된다. 세미콜론이 있기 전까지는 한 문장

  • DB를 지정해서 쓸 수도 있다.

  • 일반적이지는 않은 방법.

  • db를 지정하지 않아서 에러간 난 경우

  • 원하는 컬럼만 지정해서 보는 경우

  • ALIAS를 이용해 별칭을 주는 경우

다양한 WHERE 조건

  • 회원 수가 4인 경우

  • 크다 작다

  • AND 조건

  • OR 조건

  • BETWEEN 조건 : 숫자의 범위를 쓸 때, AND 와 똑같이 기능

    • AND 사용

    • BETWEEN 사용

  • IN 조건 : 여러가를 OR 할 때와 똑같이 기능

    • OR 사용

    • IN 사용

  • LIKE: 문자열을 비교

    • % 는 여러 글자

    • _ 는 한글자

ORDER BY

  • 정렬 전

  • ORDER BY로 오름차순 정렬 - ASC는 생략가능

  • ORDER BY로 내림차순 정렬 - DESC

예약어 순서

  • 예약어 순서를 잘못 입력할 경우 에러

  • 제대로

ORDER BY 여러개

  • 키가 큰 순, 키가 동률일 경우에는 데뷔일자가 빠른 순 정렬

LIMIT

  • LIMIT만

  • 데뷔일자가 빠른 순 3팀 (순서 주의)

LIMIT 옵션

  • LIMIT에 숫자 2개 쓴 경우 (n, m) n번째로부터 m개

DISTINCT

  • 중복된 것은 제외하고 하나씩만 보여준다

GROUP BY

  • GROUP BY와 집계함수 함께 쓴다

SUM

  • 별칭

  • 총 구매 금액 SUM 에 곱한 값을 넣을 수 있다.

AVG

  • 전체 회원의 평균 구매개수

  • 회원별 평균 구매개수

COUNT

  • 전체 회원 수 세기

  • 조건을 만족하는 회원 수 세기
    - phone1 컬럼에 값이 있는 회원 수 세기
    - NULL 인 값을 빼고 COUNT 한다

HAVING

  • 회원 별 총 구매금액 알아보기

  • 총 구매금액이 1000보다 큰 회원들만 보기

    • 에러가 난다
    • GROUP BY 한 값에서 조건을 주려면 HAVING으로 줘야한다
  • 총 구매금액이 1000보다 큰 회원들만 보기

  • 내림차순으로 보기

03-3 데이터 변경을 위한 SQL문

테이블을 변경하는 구문 - INSERT, UPDATE, DELETE

INSERT

  • 데이터 넣는 방법 여러가지

    • 3번 라인 - 순서대로 넣기
    • 5번 라인 - 컬럼 지정해서 넣기
    • 7번 라인 - 컬럼 지정해서 넣는 경우, 순서는 상관없다
  • AUTO_INCREMENT : 번호가 자동 생성되며 PRIMARY KEY여야 한다.

  • AUTO_INCREMENT를 지정한 컬럼은 NULL값을 넣는다.

  • 조회하면 toy_id 컬럼에 값이 들어가있다

  • 마지막 값이 궁금할 때 조회

SELECT LAST_INSERT_ID();

  • ID를 100번부터 입력하고 싶다 - ALTER
ALTER TABLE hongong2 AUTO_INCREMENT=100;

  • 100번으로 입력됨

  • 처음부터 1000에서 시작되게 AUTO_INCREMENT설정

  • 자동 생성 숫자에 간격을 주고 싶을 때

SET @@auto_increment_increment=3;

  • 조회

INSERT INTO ~ SELECT

다른 테이블에 있는 데이터를 왕창 INSERT 한다.

  • world 테이블의 데이터를 조회해보자

  • 테이블 정보 확인 DESC

  • 테이블 5건만 조회

  • 테이블 새로 생성

  • 새 테이블에 데이터 INSERT

  • 새 테이블 조회

UPDATE

  • 데이터 조회

  • 테이블 값 바꾸다가 에러발생 (MySQL 설정 때문에)

  • UPDATE SET 에러 해결방법 (설정 후 껐다 켜야한다)

  • UPDATE SET문

  • WHERE절을 사용하지 않은 경우: 모든 데이터가 한 값으로 변경된다.

DELETE

기본 미션

p. 138의 확인 문제 2번 풀고 인증하기
2. 다음 보기 중에서 각 문항의 빈칸에 들어갈 것을 고르세요.
1. SELECT FROM member ORDER BY height;
2. SELECT
FROM member LIMIT 5, 2; (5번째부터 2개)
3. SELECT DISTINCT phone FROM member;

선택 미션

데이터 입력, 삭제하는 기본 형식 작성하기
1. 데이터 입력

# 순서대로 전부
INSERT INTO table VALUES(val1, val2, val3);

# 컬럼 지정
INSERT INTO table (col1, col2, col3) VALUES (val1, val2, val3);
  1. 데이터 삭제
DELETE FROM table 
WHERE col1 = val;

0개의 댓글