본문 바로가기

SQL3

중복 제거 중복 제거를 위한 DISTINCT는 SQL에서 사용되는 키워드이며 SELECT 문에서 중복을 제거한 결과를 반환한다. 위와 같은 테이블에서 아래와 같이 조회한다면 SELECT Name FROM table 결과는 Alice, Bob, Alice, John을 반환할 것이다. 그러나 아래와 같이 조회를 한다면 결과는 Alice, Bob, John을 반환할 것이다. SELECT DISTINCT Name FROM table 2023. 3. 20.
MAX() 함수 와 별칭 MAX 함수는 WHERE 절에서 직접 사용이 불가능 하다. 따라서 서브 쿼리를 사용하여야 한다. SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE FROM FOOD_PRODUCT WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT); -- 서브 쿼리 사용 별칭(alias)을 사용하고 싶다면 SELECT한 컬럼에 AS로 별칭을 써주면 된다. SELECT MAX(PRICE) as MAX_PRICE -- 별칭 MAX_PRICE FROM PRODUCT WHERE PRICE = (SELECT MAX(PRICE) FROM PRODUCT); 이렇게 되면 결과로 조회되는 PRICE 컬럼의 이름이 MAX_PRICE로 변경된다. 2023. 3. 20.
SQL 연산자 우선 순위 맨처음 실행은 이랬고 순서대로 OR 과 AND를 할 거라고 생각했으나 type이 0이외에도 출력 SELECT * FROM TB_FAULT tf WHERE device = 3 OR device = 4 AND `type` = 0 ORDER BY write_time DESC 연산자의 순서는 ()괄호 NOT AND OR 따라서 이 문법은 실제로 (device = 3) OR ((device = 4) AND (`type` = 0)) 이렇게 실행되고 있었던 것이다. device 3은 그냥 다 조회했다. 해결은 간단하게 괄호를 써서 해결 SELECT * FROM TB_FAULT tf WHERE (device = 3 OR device = 4) AND `type` = 0 ORDER BY write_time DESC 2023. 3. 17.