mysql 70

[MySQL] NULL 처리 (IS NULL, IFNULL, COALESCE)

NULL 값이 없는 데이터인 경우 NULL로 채워진다. NULL은 결측치(Missing Value)이므로 데이터 조회, 처리 시 NULL이 없는 데이터만 조회하거나 NULL이 아닌 다른 값으로 치환하는 경우가 발생한다. 💡 결측치 Missing Value. 데이터에 값이 없는 것을 뜻한다. 줄여서 NA 또는 Null로 표현된다. 이 글에서는 NULL을 처리하는 몇 가지 방법을 정리한다. IS NULL / IS NOT NULL =, 와 같은 비교 연산자로는 NULL을 조회할 수 없다. 따라서 NULL을 조회할 때에는 IS NULL, IS NOT NULL연산자를 사용해야 한다. IS NULL은 NULL인 데이터를, IS NOT NULL은 NULL이 아닌 테이터를 조회한다. IS NULL SELECT colu..

Database 2022.06.16

[MySQL] NOW, DATE_FORMAT

날짜 / 시간 데이터 타입 MySQL은 다섯 가지 종류의 날짜 / 시간 데이터 타입을 사용한다. 타입 정보 범위 형식 바이트수 DATE 날짜 정보 1000-01-01 ~ 9999-12-31 YYYY-MM-DD 3 Byte DATETIME 날짜와 시간 정보 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 8 Byte TIMESTAMP 1970-01-01 00:00:00 UTC을 기준으로 한 초수 * MySQL 버전과 서버의 SQL 실행모드에 따라 동작이 다르다. 4 Byte TIME 시각 정보 -838:59:59 ~ 838:59:59 HH:MM:SS 3 Byte YEAR 2자리수 또는 4자리수의 년도 정보. 기본적으로 4자리수를 사용한다. 2자..

Database 2022.06.15

[MySQL] UNION

UNION 여러 개의 SELECT문의 결과를 하나의 테이블로 표현할 때 사용한다. 각 SELECT문으로 선택한 필드의 개수와 타입, 순서는 모두 동일해야 한다. 용법 SELECT column_list UNION [DISTINCT | ALL] SELECT column_list UNION [DISTINCT | ALL] SELECT column_list ... UNION 뒤의 연산자를 지정하지 않으면 기본적으로 DISTINCT로 동작하여 중복 행을 모두 제거한다. 예시 ) 아래와 같이 student1, student2 테이블이 존재한다고 하자. TABLE student1 TABLE student2 두 테이블에서 도시 이름을 한 번에 출력하고 싶다면 아래와 같이 UNION을 사용할 수 있다. SELECT Cit..

Database 2022.06.13

[MySQL] JOIN

JOIN 데이터베이스 내 여러 테이블에서 가져온 데이터를 조합하여 하나의 테이블로 표현한다. 방식에 따라 INNER JOIN, LEFT JOIN, RIGHT JOIN으로 구분한다. JOIN은 크게 아래와 같은 방식으로 사용하며, ON 절의 조건에 따라 여러 테이블을 하나의 테이블로 합쳐 표현할 수 있다. JOIN ON INNER JOIN ON 절을 만족하는 데이터만을 가져오며, 두 테이블 모두 값이 있는 레코드를 선택한다. 따라서 기준 테이블과 참조 테이블의 순서가 바뀌어도 결과에 영향을 미치지 않는다. MySQL에서 JOIN, INNER JOIN, CROSS JOIN 모두 INNER JOIN을 의미한다. 사용법 SELECT * FROM table1 INNER JOIN table2 ON table1.ke..

Database 2022.06.12

[MySQL] GROUP BY

GROUP BY 특정 컬럼을 그룹화한 데이터를 조회할 때 사용한다. 예시 ) SELECT ANIMAL_TYPE FROM ANIMAL_INS GROUP BY ANIMAL_TYPE; HAVING GROUP BY로 그룹화한 데이터는 HAVING 키워드를 사용하여 조건을 걸 수 있다. 💡 WHERE VS HAVING WHERE : 그룹화하기 전의 데이터에 대한 조건문 HAVING : 그룹화한 데이터에 대한 조건문 예시 ) SELECT NAME, count(NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME HAVING count(NAME) > 1; 이 SQL는 FROM -> WHERE -> SELECT -> GROUP BY -> HAVING 순서로 실행된다...

Database 2022.06.11

[MySQL] MAX, MIN, COUNT, DISTINCT

집계함수 MySQL의 대표적인 집계함수 몇 가지를 간단히 정리한다. MAX 지정한 컬럼 데이터의 최댓값을 가져온다. 문자나 숫자가 대상이며 해당하는 값이 없으면 NULL을 반환한다. SELECT MAX(DATETIME) FROM ANIMAL_INS; MIN 지정한 컬럼 데이터의 최솟값을 가져온다. 문자나 숫자가 대상이며 해당하는 값이 없으면 NULL을 반환한다. SELECT MIN(DATETIME) FROM ANIMAL_INS; count 지정한 컬럼 데이터의 수를 가져온다. SELECT count(*) FROM ANIMAL_INS DISTINCT 지정한 컬럼 데이터에서 중복된 값을 제거한다. SELECT count(DISTINCT NAME) FROM ANIMAL_INS; 참고 문서 https://pro..

Database 2022.06.10

[MySQL] mysql-client local-infile 활성화

2022.04.06 - [MySQL] ERROR 2068 (HY000) : LOAD DATA LOCAL INFILE file request rejected due to restrictions on access. 글에서 구글링을 통해 조치한 내용과 공식 문서에서 안내한 내용이 조금 달랐다. 차이점은 다음과 같다. 구글링 공식문서 Group mysql, mysqld client Variables name local-infile loose-local-infile 이전 글에서는 운영 서버에 조치하느라 테스트하지 못했기 때문에, 이 글에서 공식 문서대로 조치했을 때도 mysql-client가 local-infile을 활성화하는지 확인해보려고 한다. 테스트한 서버 OS와 MySQL 클라이언트 버전은 아래와 같다. ..

Database 2022.04.07

[MySQL] ERROR 2068 (HY000) : LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

리눅스에서 mysql-client를 사용해 LOAD DATA LOCAL INFILE 문을 실행했더니, 아래와 같은 에러가 발생하면서 정상 동작하지 않았다. 실행한 명령어 mysql -u -p -P -h < /path/use.sql 에러 메세지 ERROR 2068 (HY000) at line 2: LOAD DATA LOCAL INFILE file request rejected due to restrictions on access. 공식 문서를 확인해보니 LOAD DATA LOCAL에 잠재적인 보안 문제가 있어 서버와 클라이언트 측에 보안 요구사항이 존재하며, 관련하여 MySQL 서버와 클라이언트 양측에서 local-infile을 활성화하지 않은 게 원인이었다. 관련하여 확인하고 조치해본다. 참고로 버전은 ..

Database 2022.04.06

[MySQL] 테이블 용량 확인

데이터베이스의 스토리지 용량이 계속 문제가 돼서 모든 테이블 용량을 확인하려고 한다. 테이블 용량은 테이블의 상태 정보를 통해 확인할 수 있다. 모든 테이블 용량의 합 모든 데이터베이스, 모든 테이블 용량의 합을 계산한다. SELECT SUM(DATA_LENGTH), SUM(INDEX_LENGTH), SUM((DATA_LENGTH + INDEX_LENGTH)) FROM information_schema.TABLES; # GB 단위로 출력 SELECT ROUND(SUM(DATA_LENGTH /(1024 * 1024 * 1024)), 2) AS 'DATA_SIZE(GB)', ROUND(SUM(INDEX_LENGTH /(1024 * 1024 * 1024)), 2) AS 'INDEX_SIZE(GB)', ROUN..

Database 2022.03.12
1 ··· 3 4 5 6 7