본문 바로가기

컴/데이터베이스

(6)
WITH문 임시테이블. 이름을 가진 서브쿼리를 정의하여 사용하기 위함 view는 create로 생성하여 drop하기 전까지 없어지지 않고 모든 테이블에서 사용 가능하지만 with절의 경우 한번 실행한 쿼리문 내에 정의하여 해당 쿼리 안에서만 실행됨 쿼리의 가독성을 높이고 재사용할 수 있다는 장점 WITH [별명] AS ( subquery )
MySQL - WHERE절 조회하는 데이터에 특정 조건을 부여할 목적으로 사용 보통 FROM 절 뒤에 온다 SELECT 칼럼명 FROM 테이블명 WHERE 조건식; 조건식은 칼럼명, 비교 연산자, 문자,숫자표현식, 비교칼럼명(JOIN) 등으로 구성 [연산자의 종류] 연산자의 우선순위 : 괄호() -> NOT -> 비교, SQL비교 -> AND -> OR * 와일드 카드 % : 0개 이상의 어떤 문자 _ : 1개인 단일 문자 ex : 이름에 '장'이 들어가는 선수 정보 조회하기 SELECT * FROM player WHERE player_name LIKE '%장%';
MySQL - CASE 문 프로그래밍 언어의 switch 문과 비슷 CASE WHEN 조건1 THEN '반환값1' WHEN 조건2 THEN '반환값2' ELSE '조건에 맞지 않는 경우 반환값' END WHEN과 THEN은 한쌍이어야 하고, 여러개가 있을 수 있다 OR나 AND를 이용해 조건을 지정할 수 있다 ELSE가 존재하지 않다면, 모든 조건에 맞지 않을 때 NULL을 반환 예제 : 프로그래머스 '중성화 여부 파악하기' 문제 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시 SELECT animal_id, name, CASE..
MySQL - 날짜 함수 출처 : https://jang8584.tistory.com/7 dayofweek(date), weekday(date) 날짜를 몇 번째 요일인지를 나타내는 숫자로 리턴 dayofweek : 일요일(1), 월요일(2), ..., 토요일(7) weekday : 월요일(0), 화요일(1), ..., 일요일(6) dayofmonth(date) 그 달의 몇 번째 날인지를 리턴 (일자 리턴) dayofyear(date) 한 해의 몇 번째 날인지 리턴 (1~366) ex) select dayofyear('2020-02-01'); -> 32 month(date) 해당 날짜가 몇 월인지 리턴 week(date) 해당 날짜가 몇 번째 주인지를 리턴 (0~52) year(date) 년도를 리턴 (1000~99..
MySQL - group by, having GROUP BY절 데이터들을 원하는 그룹으로 나눌 수 있다 나누고자 하는 그룹의 컬럼명을 SELECT 절과 GROUP BY 절 뒤에 추가하면 된다 보통 집합 함수(aggregate function)와 함께 사용 (AVG, SUM, COUNT 등) HAVING GROUP BY 결과에 조건을 붙이고 싶을 때 사용 (GROUP BY의 WHERE 절) example 동물 종류별로 각각 몇 마리인지 조회하기 SELECT ANIMAL_TYPE, COUNT(*) AS COUNT FROM ANIMALS GROUP BY ANIMAL_TYPE;3마리 이상인 동물 종류 조회하기 SELECT ANIMAL_TYPE FROM ANIMALS GROUP BY ANIMAL_TYPE HAVING COUNT(*)>=3;
프로그래머스 - SQL 연습 출처 : 프로그래머스 - 코딩테스트 연습 NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N) FALSE [ANIMAL_INS 테이블 구조] Q1. 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; Q2. 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 ANIMAL_ID 역순으로 조회하는 SQL문을 작성 SELEC..