본문 바로가기
반응형

MySQL/MySQL SQL기초4

Composite 인덱스 인덱스는 단순히 하나의 컬럼이 아니라, 여러 개의 컬럼에 대해서, 합쳐서도 만들 수 있습니다. 무슨 말인지 볼게요. 코팡 데이터베이스에서 상품을 조회를 할 때 하나의 기준이 아니라, 여러 개의 기준을 합쳐서 많이 한다고 할게요. 예를 들어 브랜드와 종류, 나이코 회사의 반팔티 이렇게요. 이때 각각 브랜드와 종류에 대해서 따로 인덱스가 있다고 하면 어떻게 할까요? 둘 중 하나를 해야합니다. 먼저 특정 브랜드, 나이코에 해당하는 로우들을 인덱스와 이진 탐색으로 찾고, 그 다음에 이 로우들에서 반팔티 제품들을 선형 탐색으로 찾거나, 반팔티 제품인 로우들을 인덱스와 이진 탐색으로 찾고, 그 다음에 이 로우들에서 나이코인 제품을 선형 탐색으로 찾아야하는 거죠. 어찌됐던 간에, 결국에는 선형 탐색으로 데이터를 찾아.. 2022. 6. 29.
MySQL SQL Null을 다른 값으로 변환하는 다양한 함수 테이블에 존재하는 NULL을 다른 직군의 사람들도 잘 이해할 수 있도록 다른 표현으로 변환하는 방법을 배웠던 거, 기억나시죠? 그때는 COALESCE 함수를 사용했었는데요. MySQL에서 NULL을 다른 값으로 변환할 수 있는 방법에는 COALESCE 함수 말고 다른 것들도 있습니다. NULL을 다른 값으로 변환하는 방법들, 한번 정리해볼게요. 1. COALESCE 함수 우리가 배웠던 COALESCE 함수입니다. 이전에 배웠던 것처럼 COALESCE 함수는 괄호 속 인자 중에서 가장 첫 번째로 NULL이 아닌 값을 반환합니다. 지금 저는 height 컬럼의 NULL들을 ‘N/A’라는 문자열로 교체했는데요. N/A는 Not Available, Not Applicable의 줄임말로 테이블에서 어떤 값이 없거.. 2022. 6. 16.
MySQL SQL 활용 기초 CASE 문 CREATE TABLE `member` ( `id` int NOT NULL AUTO_INCREMENT, `email` text, `age` int DEFAULT NULL, `gender` text, `height` double DEFAULT NULL, `weight` double DEFAULT NULL, `birthday` date DEFAULT NULL, `sign_up_day` date DEFAULT NULL, `address` text, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; INSERT INTO `member` (`id`, `email`, `age`, `gender`, `height.. 2022. 6. 16.
MySQL Null 기초 NULL에 관해서 꼭 알아두어야할 사실 두 가지가 있는데요. 하나씩 설명할게요. 1. IS NULL 과 = NULL은 다릅니다. 간혹 IS NULL을 써야할 자리에 = NULL이라고 쓰는 실수를 하는 분들이 있습니다. 그러니까 이렇게 써야할 SQL 문을 이렇게 써버리는 거죠. 이런 실수를 하면, 위 그림에서 보이는 것처럼 아무 row도 출력되지 않습니다. NULL은 어떤 값이 아니기 때문에 애초에 등호(=)를 사용해서 어떤 값과 비교할 수 있는 대상이 아닙니다. 그래서 = NULL은 절대 True일 수가 없죠. 그래서 IS NULL이라는 키워드가 별도로 마련된 겁니다. 앞으로 NULL인지를 확인할 때는 = NULL을 쓰면 안 되고, 반드시 IS NULL을 써야한다는 점을 꼭 기억하셔야 합니다. 그럼 당연.. 2022. 6. 15.
반응형