SQL 4

[MySql] TINYINT

효율적으로 데이터 형식을 결정하기 위해 TINYINT를 쓸 수 있다. 만약, 키에 대한 컬럼의 형식을 정할 때 SMALLINT로 지정할 수 있지만, SMALLINT는 -32768 ~ 32767 까지의 정수를 담을 수 있는데, 이때 키는 그 정도까지의 숫자가 필요하지 않기 때문에 TINYINT를 쓸 수 있다는 것이다. 하지만 TINYINT는 -128 ~ 127 의 숫자를 담을 수 있는데 127 이상인 키를 가진 사람들을 어떻게 담을지 걱정일 수 있다. 이때 TINYINT UNSIGNED로 쓴다면 0 ~ 255로 변환하여 쓸 수 있게 된다. 다른 정수형도 마찬가지로 UNSIGNED를 붙이면 0부터 범위가 지정된다.

DataBase/MySql 2023.02.27

[MySql] HAVING절

HAVING 예를 들어서, 출력 된 결과 중에서 총 구매액이 1000이상인 회원에게만 어떤 조건을 주려한다면 아마 WHERE 절에 조건을 줘야하나 싶을거다. SELECT mem_id, SUM(price*amount) "총 구매금액" FROM buy WHERE SUM(price*amount) > 1000; GROUP BY mem_id; 그 생각대로 이렇게 하면 아마 바로 오류가 날 것이다. 이럴때 WHERE 대신 사용하는 것이 HAVING절이다. HAVING은 WHERE과 비슷한 개념으로 조건을 제한하는 것이지만, 집계함수에 대해서 조건을 제한하는 것이라고 생각하면 된다. 그리고 HAVING은 GROUP BY절 다음에 나와야 한다. SELECT mem_id, SUM(price*amount) "총 구매금액"..

DataBase/MySql 2023.02.24

[MySql] IN()

얼렁뚱땅뚱땅 개발하다보니 기초적으로 놓친것이 너무나 많다. IN() 만약 경기/전남/경남 중 한 곳에 사는 회원을 검색하려면 일일이 OR로 써줘야한다. SELECT mem_name, addr FROM member WHERE addr = '경기' OR addr = '전남' OR addr = '경남'; 이렇게말이다. 하지만 IN()을 사용하면 코드를 훨씬 간결하게 작성할 수 있다. SELECT mem_name, addr FROM member WHERE addr IN('경기', '전남', '경남'); 이렇게 말이다. 조건식에서 여러 문자 중 하나에 포함이 되는지 비교할 때는 IN()이 간결하다는 것을 알 수 있다.

DataBase/MySql 2023.02.24