본문 바로가기
반응형

SQL/MySQL66

MySQL GROUP_CONCAT 을 이용해 여러 행의 내용 합치는 방법 MySQL에서 GROUP_CONCAT을 이용해 여러 행의 데이터를 한 행에 합쳐서 보여줄 수 있는데 예제를 보면 테이블의 NAME 컬럼 안에는 '수철' 과 '철수' 가 들어있는 것이 보이는데 GROUP_CONCAT(컬럼명) 을 사용해주면 해당 테이블 컬럼 데이터를 한 열에 모아주는 것이 보인다 다음은 여러 행을 합칠 경우 붙는 구분자인 쉼표(, comma)인데 기본값이 , 이기 때문에 공백이나 다른 값으로 주고 싶다면 GROUP_CONCAT(컬럼명 SEPARATOR '값'); 을 통해 원하는 값으로 설정이 가능하다 마지막으로는 GROUP_CONCAT 시 ORDER BY 를 사용하는 경우인데 GROUP_CONCAT(컬럼명 ORDER BY 값 ASC/DESC); 이렇게 사용하면 오름차순/내림차순 기준으로 합.. 2021. 5. 14.
MySQL Replace 사용방법 정리(여러개 변경할 경우 포함) MySQL에서 Replace 함수 사용방법은 REPLACE(값_혹은_컬럼, '변경할_값', '뭘로_변경할지'); 이렇게 사용해주면 되는데 예제를 보면 NAME 컬럼에서 '수'인 값이 모두 'REPLACE'로 변경되는 것이 보인다 다음은 REPLACE를 여러번 사용하는 경우인데 A는 B / B는 C 식으로 한번에 여러개를 변경해주고 싶을 경우 REPLACE 함수는 한번에 하나만 지원하기 때문에 REPLACE 후 REPLACE를 다시 사용해 주는 식으로 사용해야 한다 위 예제에서는 NAME 컬럼에서 '수'인 값을 '1' 로 변경한 후 다시 REPLACE를 사용해 '1'인 값을 '2'로 변경하는 것이 보인다 마지막으로 예제에 사용한 쿼리는 다음과 같다 -- REPLACE 사용 SELECT NAME, REPLA.. 2021. 5. 14.
MySQL Count(1) Count(*) Count(컬럼) 차이 정리 MySQL에서 Count(1) Count(*) 은 다르다고 하는데 실제 사용해보면 아무 차이가 없고 퍼포먼스에서도 역시 아무 차이가 없다 심지어 Count(1) 혹은 Count(*) 대신 Count(-2041)을 써도 결과는 똑같다 뭘 써도 상관없지만 대부분은 COUNT(*) 를 사용하는 만큼 가독성을 위해 1보다는 *를 사용할 것을 권장한다 다음으로 COUNT(컬럼명)으로 사용 시 해당 컬럼에서 NULL이 아닌 값의 갯수만 가져오는데 COUNT 안에 컬럼이 들어가는 경우에는 NULL이 아닌 값만 계산한다는 것을 활용해 CASE WHEN이나 IF를 사용해 조건에 맞는 값의 갯수만 가져올 수도 있다 2021. 5. 11.
MySQL JSON 조회 및 데이터 꺼내오는 방법 MySQL에서 위와 같이 컬럼에 JSON 형식으로 데이터가 들어있을 경우에는 JSON_EXTRACT(컬럼명, '$[배열번호].Key명') 을 통해 값을 뽑아올 수 있는데 예제에서는 JSON 배열 첫 번째에 name은 chulsu age는 30이 들어있는 것이 보이는데 JSON_EXTRACT(컬럼명, '$[0].name') 을 해주면 JSON 배열 첫 번째에서 name 값인 chulsu를 가져오게 된다 이후 JSON_UNQUOTE(값); 을 사용해 ""를 뺀 값을 가져와주면 된다 마지막으로 예제에 사용한 쿼리는 아래와 같다 SELECT JSON -- [{"name": "chulsu", "age": "30"}, {"name": "younghee", "age": "20"}] , JSON_EXTRACT(JSON.. 2021. 4. 29.
MySQL SELECT UPDATE 동시에 하는 방법 정리 MySQL에서 SELECT UPDATE 동시에 하는 방법은 UPDATE 시 SET에 서브쿼리를 사용해주면 되는데 위 예제를 보면 AGE = 부분에서 서브쿼리를 사용해서 값을 끌어온 것이 보이는데 서브쿼리를 굳이 두번이나 사용한 이유는 오라클은 서브쿼리 한번만 사용해도 SELECT UPDATE 동시에 사용이 가능하지만 MySQL에서는 에러가 나기 때문에 위와 같은 방법을 사용해줘야 한다 다음은 SELECT UPDATE 여러개를 변경하는 예제인데 MySQL은 오라클처럼 여러 컬럼을 묶어놓은 뒤 서브쿼리로 여러 컬럼을 조회해서 넣어줄 수 없기 때문에 위와 같이 컬럼 하나마다 서브쿼리를 작성해서 변경해줘야 한다 마지막으로 예제에 사용한 쿼리는 다음과 같다 -- SELECT UPDATE (컬럼 하나 변경 시) U.. 2021. 4. 15.
MySQL 모든 테이블 이름 검색방법 MySQL에서는 INFORMATION_SCHEMA.TABLES 안에 모든 테이블에 대한 정보가 담겨있는데 SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '스키마명' 을 사용해주면 스키마별로 모든 테이블의 이름을 검색할 수 있다 WHERE 부분은 생략해도 되지만 조건에 스키마명을 넣어주지 않으면 너무 많은 테이블이 조회되기 때문에 스키마명을 조건으로 넣어서 사용하는 것이 좋다 2021. 4. 12.

반응형