mysql 8

[MySQL] DETERMINISTIC vs NOT DETEMINISTIC

🔹 의미DETERMINISTIC = “같은 입력값에 대해서 항상 같은 결과를 반환한다”CREATE FUNCTION double_value(x INT)RETURNS INTDETERMINISTICBEGIN RETURN x * 2;END;NOT DETERMINISTIC = “같은 입력값이라도 상황(시간, 환경 등)에 따라 결과가 달라질 수 있다”CREATE FUNCTION random_value()RETURNS DOUBLENOT DETERMINISTICBEGIN RETURN RAND();END;두 함수가 동일한 동작을 해도 함수 호출 시에 호출 횟수 등에 차이가 발생할 수 있다.→ 이전에 계산된 값을 재사용할 수 있다면 굳이 함수를 다시 호출할 필요가 없기 때문이다.인덱스 사용 시 DETERMIN..

DB/MySQL 15:09:17

[MySQL] VARCHAR vs TEXT

해당 내용은 인프런 Real MySQL 시즌1 - PART 1 강의를 참고하여 작성한 것입니다.공통점문자열 속성 값을 저장최대 65,535 Bytes까지 저장 가능차이점VARCHAR 타입 컬럼에는 지정된 글자 수만큼만 데이터 저장 가능VARCHAR(10) → 10글자 이하만 저장 가능TEXT 타입 컬럼은 인덱스 생성 시 반드시 Prefix 길이 지정 필요CREATE INDEX ix_text_column on table(text_column(100));위와 같이 사용하면 앞의 100글자까지만 인덱스로 사용하겠다는 뜻지정하지 않으면 에러 발생TEXT 타입 컬럼은 표현식으로만 디폴트 값 지정 가능CREATE TABLE tb1 (col TEXT DEFAULT ‘abc’) → 에러 발생CREATE TABLE tb..

DB/MySQL 11:20:33

[MySQL] CHAR vs VARCHAR 타입 선정

해당 내용은 인프런 Real MySQL 시즌1 - PART 1 강의를 참고하여 작성한 것입니다. 공통점문자열 저장용 컬럼최대 저장 가능 문자 길이 명시바이트 수 X → CHAR(10)이면 문자 종류 관계없이 10글자차이점값의 실제 크기에 관계없이 고정된 공간 할당 여부최대 저장 길이 : CHAR(255) vs VARCHAR(16383) → (65535바이트)저장된 값의 길이 관리 여부 (VARCHAR와 가변 길이 문자셋 사용하는 CHAR는 저장된 값 길이 관리)0~255 bytes → length-bytes : 1256~65535 bytes → legnth-bytes : 2저장 방식Latin1CHAR(10)4바이트를 넣으면 6바이트를 공백으로 관리한다.VARCHAR(10)4바이트를 넣으면 길이 저장용 1..

DB/MySQL 10:00:33

[MySQL] DATE 자료형 정리

MySQL의 날짜 시간 타입 Mysql에는 시간에 대한 다양한 자료형이 있다. 대표적으로 TIMESTAMP , DATE , DATETIME 같은 것들이 있다. JAVA를 주로 사용하는 나를 기준으로 하자면 LocadDate -> DATE, LocalDateTime -> DATETIME 로 바뀌게 된다. 그렇다면 각자 무엇을 어떻게 나타내주는 것인지 알아보자.DATE 와 DATETIME주로 사용되는 자료형이다. 둘 다 타입명 자체에서 알 수 있듯이 날짜와 날짜+시간을 저장하기 위한 타입이다. DATE : 'YYYY-MM-DD' 포맷으로 표현되고, DATETIME : 'YYYY-MM-DD hh:mm:ss' 의 포맷으로 표현된다.이 때 구분자는 다른 구두점으로도 변경 가능하나 주의를 하며 변경해야한다.DAT..

DB/MySQL 2024.11.20

[프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기(SQL)

문제https://school.programmers.co.kr/learn/courses/30/lessons/144854풀이(15분)SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') as PUBLISHED_DATEFROM (BOOK INNER JOIN AUTHOR ON BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID)WHERE CATEGORY = '경제'ORDER BY PUBLISHED_DATE; 날짜 형식을 맞추기 위해 DATE_FORMAT를 사용한다.inner join 을 통해 책의 저자 아이디와 저자 리스트의 아이디가 동일하고,카테고리가 경제인 경우에 대하여,출판일 기준으로 오름차순 출력한다.

[프로그래머스] 경기도에 위치한 식품 창고 목록 출력하기(SQL)

문제https://school.programmers.co.kr/learn/courses/30/lessons/131114 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이(15분)SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, ifnull(FREEZER_YN,'N') as FREEZER_YN FROM FOOD_WAREHOUSE WHERE ADDRESS LIKE '경기도%'ORDER BY WAREHOUSE_ID ASC; ifnull이라는 메서드를 통해 null값을 대체할 수 있다.ifnull(칼럼명, '대체하고 싶은 텍스트') 라고 작성하면 된다. 이 경우 null을 발견..