테이블의 값(=열,컬럼,필드) 선택
아스테리크(*)기호 사용 시 모든 컬럼값 추출
레코드를 선택할 테이블의 이름 명시
마지막은 세미콜론(;)으로 끝내야함
중복 없이 컬럼을 조회
-- 모든 컬럼을 조회할 경우
SELECT *
FROM 테이블이름
;
-- 특정 컬럼을 조회할 경우
SELECT 컬럼이름, 컬럼이름
FROM 테이블이름
;
-- 특정 컬럼을 중복없이 조회할 경우
SELECT DISTINCT 컬럼이름
FROM 테이블이름
;
-- WHERE 절을 이용, 특정 조건을 만족하는 데이터 가져오기
select *
from basic.theglory
where 성별 ='F'
;
코드를 입력하세요
WHEN은 조건에 따라 더 추가 가능
조건식을 모두 만족하지 않을 경우, ELSE로 간주
SELECT CASE WHEN 조건식1 THEN 결과1
WHEN 조건식2 THEN 결과2
ELSE 결과3
END AS 새로운 컬럼이름
FROM 테이블명
;

동시사용 가능

우선순위를 명시하기 위해 각 조건에 괄호() 작성
각 조건들은 AND로 묶어주기
-- 예시
SELECT *
FROM basic.theglory
WHERE 날짜 IS NOT NULL
AND (성별!='M')
AND (직업 IN('아나운서','승무원','화가'))
AND (나이 BETWEEN 30 AND 40) -- 30 이상, 40 이하

SQL 구문의 가장 마지막에 수행
필수는 아니며, 기본값은 ASC(오름차순)
내림차순은 DSC
여러 컬럼 사용 가능
ORDER BY 바로 뒤에 나오는 구문이 정렬 우선순위
문제1 - 조건절 where 구문의 활용
- 조건
first_login_date 컬럼이 2023-01-01 초과인 날짜의
game_account_id, game_actor_id, serverno 를 추출해주세요.
SELECT game_account_id,
game_actor_id,
serverno
FROM users u
WHERE first_login_date > '2023-01-01'
;
문제2 - 조건절 where 구문의 응용
- 조건
- level 컬럼이 10 초과이고
- serverno컬럼이 1이 아니며
- 아이템 이름 컬럼이 레벨업 패키지 또는 시즌패스이고
- 아이템 획득 경로가 상점에서 구매한 경우
- 결과값
first_login_date, ip_addr, exp, zone_id 를 추출하고 first_login_date을 기준으로 내림차순으로 정렬해주세요.
SELECT first_login_date,
ip_addr,
exp,
zone_id
FROM users u
WHERE `level` > 10
AND (serverno != 1)
AND (etc_str2 = '시즌패스' OR etc_str2 = '레벨업 패키지')
AND (etc_str1 = '상점에서 구매')
ORDER BY first_login_date DESC
;
이 문제.. 제출할때는 그냥 '패스'로 봤는데 시즌패스였따
이미 제출한 거 쩔수다 😉 조건 꼼꼼히 보기!!
문제3 - 조건절 case when 구문의 활용
- 조건
case when 구문을 사용하여 레벨구간을 아래와 같이 구분해주시고, 컬럼이름을 ‘levelgroup’ 으로 설정해주세요.
- 레벨구간
◦ 1~10Lv 이하
◦ 11~20Lv 이하
◦ 21~30Lv 이하
◦ 31~40Lv 이하
◦ 41~50Lv 이하
◦ 51~60Lv 이하
◦ 61~70Lv 이하
◦ 71~80Lv 이하
◦ 81~90Lv 이하
◦ 91~100Lv- 결과값
game_actor_id, level, levelgroup, first_login_date 컬럼을 추출해주시고, first_login_date를 기준으로 내림차순 정렬해주세요.
SELECT game_actor_id,
`level`,
CASE WHEN `level` BETWEEN 1 AND 10 THEN '1~10Lv 이하'
WHEN `level` BETWEEN 11 AND 20 THEN '11~20Lv 이하'
WHEN `level` BETWEEN 21 AND 30 THEN '21~30Lv 이하'
WHEN `level` BETWEEN 31 AND 40 THEN '31~40Lv 이하'
WHEN `level` BETWEEN 41 AND 50 THEN '41~50Lv 이하'
WHEN `level` BETWEEN 51 AND 60 THEN '51~60Lv 이하'
WHEN `level` BETWEEN 61 AND 70 THEN '61~70Lv 이하'
WHEN `level` BETWEEN 71 AND 80 THEN '71~80Lv 이하'
WHEN `level` BETWEEN 81 AND 90 THEN '81~90Lv 이하'
ELSE '91~100Lv'
END 'levelgroup',
first_login_date
FROM users
ORDER BY first_login_date DESC
;
아답터✅ 모의고사 3회✅ 오답노트✅코드카타 8✅ 숙제제출✅코드카타 8✅지각을 해버렸다!!!!!!! 어제 안 그래도 피곤하다 생각했는데 결국🥲 폰 충전기를 안 꽂고 자서 연락 오는 것도 하나도 못 듣고 난리난리 생난리
그나마 다행인 건 라이브세션 시작하는 시간에 일어나서 바로 줌부터 키고 출석 갈김 휴 이번 주 목표 지각 안 하기였는데 마지막 날 이렇게 되네 아쉬워라😭
조장님이 오늘 이것저것 나한테 많이 여쭤봐주셨는데(당연함 그땐 둘 밖에 없었음) 쉬운 것도 설명을 잘 못하는 나에게 답답함을 느꼈다 확실히 내가 아는 것과 남에게 가르쳐주는 것은 다른 문제임을 느꼈고 같이 해결하려고 머리싸매는 과정이 즐거웠다 설명하면서 스스로 정리되는 것 같아서 좋았음
아쉬운 건 이번 조가 다음주 금요일까지만 유지된다고 해서 좀 슬펐당 어차피 영원히 헤어지는 건 아니겠지만 우리 조 사람들이랑 이름이 너무 귀엽단말이쥐 관련해서 이것저것 얘기 나눴는데 아주 좋은 시간이었다 다음에 실제로도 꼭 만나요 우리💞
오늘 어쩌다보니 굉장히 쓸 말이 많아졌네 고생했다 나 자신 내일 시험 파이팅🍀