Mysql

혼공학습단 SQL 2주차 기본 미션 & 선택 미션

핹ㅣ 2023. 4. 11. 13:39

안녕하세요!

2번째 주가 밝고 일본여행을 준비하느라

기강이 다 빠져버린... 현지입니다...

mbti를 맹신하는편은 아니지만 극 p인 저라도

혼공단은 못참죠 ..ㅎㅎ

.

.

.

.

.

2주차 기본 미션!

P.138의 확인문제 2번을 풀고 인증하기!

2주차 선택 미션!

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

먼저 기본미션부터 해보겠습니다!

저번시간에 배웠던 SELECT / FROM / WHERE의 설명은 생략하도록 하겠습니다.

▼ 여기서 확인해주세요!

.

.

.

더욱 심화된 SELECT문에는 정렬, 중복제거, 개수제한 등 여러 기능을 "절"을 통해 사용할 수 있습니다!

ORDER BY
결과 정렬
LIMIT
결과의 개수 제한
DISTINCT
중복 데이터 제거
GROUP BY
지정한 열의 데이터 중 같은 데이터를 묶어서 결과 추출
HAVING
WHERE과 같은 개념. GROUP BY와 함께 사용

  1. ORDER BY

만약 market_db 데이터베이스 안에 member 테이블을 이용하여

데뷔 날짜가 빠른 순서대로 출력하고 싶습니다.

EX)

SELECT * FROM member ORDER BY debut_date;

이 문을 작성하면 데뷔날짜가 빠른 순서대로 정렬되겠죠?

ORDER BY는 결과의 값이나 개수에 대해서는 영향을 끼치지 않지만, 결과가 출력되는 순서를 조절합니다.

ORDER BY 열_이름 ASC or DESC를 이용하여 오름차순 / 내림차순 또한 결정할 수 있습니다.

ASC
오름차순
DESC
내림차순

만약 내림차순으로 정렬하고 싶다면?

SELECT * FROM member ORDER BY debut_date DESC;

이런식으로 작성할 수 있습니다.

WHERE을 사용하여 조건을 달 수도 있습니다.

member 테이블에 키가 164이상인 컬럼만 출력하되 내림차순으로, 데뷔 날짜는 빠른 순으로 정렬해보겠습니다.

SELCET * FROM member WHERE height >= 164 ORDER BY height DESC, debut_date ASC;

아름답게 정렬되었습니다..ㅎ

다만 where을 이용하여 조건을 추가하고 싶다면

ORDER BY 전에 사용해주세요!

2. LIMIT

LIMIT은 출력의 개수를 제한하는 역할을 수행합니다.

EX)

SELECT * FROM member LIMIT 3;

LIMIT 숫자 형식으로 입력하면 원하는 숫자만큼의 앞의 것만 조회할 수 있습니다.

하지만 제한을 하는 경우에도 이렇게 무턱대고 3개! 만 조회하는 경우는 잘 없겠죠?

LIMIT는 ORDER BY 등과 함께 사용됩니다!

EX)

SELECT mem_name, debut_date FROM member ORDER BY debut_date LIMIT 3;

member 테이블에서 mem_name, debut_date만 조회하면서 데뷔날짜가 가장 빠른 앞 3건만 노출하게 되는 쿼리문입니다.

그럼 결과는?

짜안...

LIMIT의 형식은

"LIMIT 시작, 개수" 입니다.

LIMIT 3만 쓰게 된다면 LIMIT 0, 3과 같은 의미입니다!

0번째부터 3건이라는 소리겠죠??

SELECT * FROM member ORDER BY height DESC LIMIT 3, 2;

위 예시와 같이 3, 2를 입력하면

3번째부터 2건! 노출하게 됩니다~

3. DISTINCT

DISTINCT는 조회된 결과에서 중복된 데이터를 1개만 남깁니다.

데이터베이스라는 것 자체가 정말 방대한 양의 데이터들이 모여있기때문에

중복 데이터가 많다면 복잡하겠죠 ㅠㅠ?

중복되는 데이터 없이 싸그리 정리할겁니다 !

이럴때! "SELECT 열_이름" 형식 사이에 DISTINCT만 추가해주면?

SELECT DISTINCT addr FROM member;

깔끔합니다 ㅠㅠ

.

.

.

.

.

그럼 이제 우린

138페이지의 문제를 풀 수 있습니다!

기본 미션 성공!

족장님 저 사실 미림 대표 명필이거든요...?

유난히 영어는 잘 안쓰이더라구요..

한글 진짜 잘써요 저.... 저완전 김석봉임....ㅠㅠ

.

.

.

선택미션으로 달려가봅시다!

데이터 입력 / 삭제하는 방법을 알아볼건데요!

우리는 여기서 두가지를 알고 가야합니다~

바로 INSERT와 DELETE입니다!

  1. INSERT

INSERT의 기본 형식은 다음과 같습니다!

데이터베이스 테이블에 데이터를 삽입하는 방법입니다.

INSERT INTO 테이블 [(1,2, ...)] VALUES (1,2, ...)

예를 들면...

이 토이스토리 테이블에 버즈를 추가해보겠습니다!

INSERT INTO hongong1 (toy_id, toy_name, age) VALUES (2, '버즈', 30);

우리 문자는 작은따옴표로 감싸주는거 잊지 말자구요 ...ㅎㅎ

바로 버즈가 추가되었네요!

굳이 순서대로 쓸 필요없이 원하는 순서로 써줘도 상관은 없지만

그래도 이게 제일 편하겠죠?

근데 가만보니 toy_id는 입력말고 자동으로 1씩 증가하면 참 좋을텐데....그쵸?

방법이 다 ... 다...있습니다...

바로 AUTO_INCREMENT!

다시 새로운 테이블을 만들면서

toy_id를 INT로 잡아주면서 AUTO_INCREMENT를 설정해줄겁니다.

id니까 중복되면 안되겠죠? PRIMARY_KEY도 설정해줍시다.

CREATE TABLE hongong2( toy_id INT AUTO_INCREMENT PRIMARY_KEY, toy_name CHAR(4), age INT; )

이 테이블에 데이터 값을 넣어줄건데요!

toy_id는 이제 자동으로 채워질것이니 NULL을 작성해주시면 됩니다.

INSERT INTO hongong2 VALUES (NULL, '보핍', 25); INSERT INTO hongong2 VALUES (NULL, '슬링키', 22); INSERT INTO hongong2 VALUES (NULL, '렉스', 22);

NULL만 써줘도 자동으로...?

우리 21세기의 과학기술을 무시하지 말자구요...ㅎㅎ

2. DELETE

데이터를 삭제하고 싶다면 이 DELETE문을 사용하면 됩니다!

그거아시죠... 만드는건 지이인짜 오래걸리는데 무너뜨리는데는 한순간인거...

그것처럼 삭제도 정말 간단해요,,,

우리 바로위에 보이는 저 사진!

슬링키 친구를 지워보겠습니다!

DELETE FROM hongong2 WHERE toy_name LIKE '슬링키';

WHERE 절이 생략된다면 전체 다지워지니까 우리 불상사 겪지 맙시다.ㅠㅠ

슬링키 안녕 .....ㅠㅠㅠ

삭제도 참 쉽죠 ㅠㅠ

우리 이렇게 2주차 기본미션 & 선택미션 모두 끝마쳤습니다!

이 글 하나 쓰는게 이렇게 정성이 많이들고 시간도 오래걸리는지

참 갓생사는거같아서 기분이 좋네요 후후 ★

족장님 숙제검사 힘내세요!

#혼공S #혼공 #혼공학습단