인덱스(Index)란? 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 단어의 뜻 그대로 책의 색인과 같다. 우리는 책에서 원하는 내용을 찾고 싶을 때, 책의 저자가 책의 맨 앞 또는 맨 뒤에 만들어놓은 색인 페이지에서 원하는 단어가 있는 페이지를 쉽게 찾을 수 있다. 이 단어들은 가나다 혹은 abc 순서로 정렬되어있기에 쉽게 찾을 수 있다. 인덱스를 사용하면, 조회하는 SELECT 쿼리 외에도 UPDATE 와 DELETE 의 성능도 함께 향상된다. 왜냐하면 수정 & 삭제를 할 Row 를 찾는 조회 과정이 선행되기 때문이다. DELETE FROM user WHERE name = 'giken'; 인덱스를 다루는 쿼리 인덱스 생성 --문법 ..
https://school.programmers.co.kr/learn/courses/30/parts/17045 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 이름이 없는 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL ORDER BY ANIMAL_ID; where 절에서 name is null 을 해줍니다. 말 그대로 NAME 컬럼의 DATA가 NULL인 튜플을 SELECT 하게 됩니다. 2. 이름이 있는 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE N..
1. 고양이와 개는 몇 마리 있을까 SELECT ANIMAL_TYPE, COUNT(*) count FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE; 동물의 TYPE 별로 그룹핑하고, 오름차순 정렬을 해줘서 조회합니다. 또한 COUNT(*)로 각 그룹에 속하는 튜플의 갯수도 같이 출력합니다. 2. 동명 동물 수 찾기 SELECT NAME, COUNT(*) COUNT FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME HAVING COUNT > 1 ORDER BY NAME; GROUP의 뒤에 HAVNIG 절을 달아줌으로써 COUNT > 1 에 대항하는 GROUP만 조회합니다. 3. 입양 시각 구하기(1) SEL..
최댓값 구하기 SELECT MAX(DATETIME) FROM ANIMAL_INS 가장 높은 DATETIME의 값을 가진 튜플을 조회합니다. 아마도 가장 높은 DATETIME을 가진 튜플이 2개 이상이라면 그 모든 튜플을 반환하겠죠? 최솟값 구하기 SELECT MIN(DATETIME) FROM ANIMAL_INS 동물 수 구하기 SELECT COUNT(ANIMAL_ID) count FROM ANIMAL_INS 모든 튜블의 수를(동물의 수) 조회하는 것입니다. 주의해야할 점은 ANIMAL_ID에는 NULL 값이 들어올 수 없도록 정해져있기 때문에 가능했습니다. 만약에 ANIMAL_ID의 NULLABLE이 NAME 처럼 TRUE 였고, ANIMAL_ID 에 NULL이 들어있는 동물이 두 마리 였을 경우에는, ..
모든 레코드 조회하기 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; ORDER BY는 오름차순이 default 랍니다. 오름차순 : ORDER BY attribute ASC; (ASC는 생략 가능) 내림차순 : ORDER BY attribute DESC; 역순 정렬하기 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC; 역순 정렬 (즉 오름차순 정렬의 역순이 내림차순 정렬입니다.) 아픈 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' ORDER BY ANIMAL_ID; WHERE 조건절을 통해서 'sick'한 tuple을 ..