반응형

mysql 16

[MySQL/MariaDB]문자열 붙이기(concat, concat_ws)

목차 oracle에서는 ||로 붙이면 되지만 mysql에서는 concat()을 이용해서 붙임 select concat('동해물과','|','백두산이') 애국가1; result : 동해물과|백두산이 -- concat같은 경우 인자값에 null이 있는 경우 null이 return되니 주의 할 것 select concat('동해물과','|','백두산이',null) 애국가1; result : {null} -- 동일한 구분자를 기준으로 계속 문자열을 붙이는 경우는 concat_ws()를 사용하면 됨 select CONCAT_WS('|', '동해물과', '백두산이', '마르고 닳도록', '하느님이', '보우하사', '우리나라', '만세') 애국가1; result : 동해물과|백두산이|마르고 닳도록|하느님이|보우하사..

IT/DBMS 2022.11.25

[MySQL/MariaDB]'테이블명' doesn't exist

목차 테이블이 있는데 테이블이 없다고 나오는 경우 여러이유가 있을 수 있지만 대소문자 구분하는지 확인해 볼 필요가 있음 윈도우는 기본적으로 대소문자 구분이 없이 mariadb가 설치 되지만 리눅스는 대소문자 구분해서 설치하는 경우가 있음 mysql 계정으로 접속 후 아래의 쿼리를 보낸 후 값을 확인해야 함 show variables like 'lower_case_table_names'; 쿼리 질의 값이 0인 경우 대소문자를 구분, 1인 경우 대소문자 구분안하는 걸 의미 만일 0으로 되어 있으면 1로 변경 vi로 /etc/my.cnf을 열어서 [mysqld]안에 lower_case_table_names = 1를 넣어줌(경로는 다를 수 있음) 그 후 mariadb or mysql 서비스 재시작

IT/DBMS 2022.11.23

[MySQL/MariaDB] 테이블/테이블 목록 조회

목차 Mysql/MariaDB 테이블 조회 information_schema DB를 활용(절대 information_schema의 정보를 수정하면 안됨) Mysql 혹은 MariaDB의 메타데이터 정보를 담고 있는 information_schema를 활용해서 다양하게 사용 가능(빈 테이블 조회 등) -- 빈 테이블 조회 SELECT TABLE_NAME AS 테이블명, table_comment AS 코멘트, table_rows AS 행 FROM information_schema.tables WHERE table_schema = '스키마명'AND table_rows

IT/DBMS 2022.11.23

[MySQL/MariaDB] Column 'xx' in where clause is ambiguous 에러

목차 Column 'xx' in where clause is ambiguous 에러 SQL에서 테이블 2개를 조인 했는데 아래처럼 사용해서 그렇다.(아래는 예시 SQL임) SELECT m.mem_seq , tg.tag_type , tg.tag_name FROM member m LEFT OUTER JOIN member_tag_mapping mtm ON m.mem_seq = mtm.mem_seq LEFT OUTER JOIN tag tg ON mtm.tag_seq = tg.tag_seq where mem_seq = 1244 member테이블이 다른 테이블 조인을 위해 별칭을 줬는데 WHERE절의 mem_seq는 별칭을 통해 접근한 필드가 아니라서 그렇다. 아래처럼 m.mem_seq라고 해야 정상적으로 조회가 ..

IT/DBMS 2022.11.22

[MySQL/MariaDB] merge(값이 있으면 update, 아니면 insert)(feat. ON DUPLICATE KEY UPDATE...)

목차 MySQL INSERT INTO...ON DUPLICATE KEY UPDATE... 😃 mysql에도 Oracle의 merge into와 같은 기능이 있다는 걸 알게되어 미래의 내가 보기위해 기록함 테스트를 위해 테이블 하나 생성 CREATE TABLE `test_220714` ( `id` bigint(20) NOT NULL, `name` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 테스트 데이터를 2개 정도 입력 INSERT INTO test_220714(id, name)VALUES(1, 'ironMan'); INSERT INTO test_220714(id, name)VALUES(2, 'th..

IT/DBMS 2022.11.22

[MySQL/MariaDB] GROUP_CONCAT() 간단 사용법(feat. 문자열 붙이기)

목차 GROUP_CONCAT() 간단 사용법 😃 역시나 미래의 내가 보기위해 기록함 업무를 하다보면 특정 필드값을 아래처럼 가로로 붙여서 보여줘야 되는 경우도 있다. 데이터를 클라이언트에 반환 시 쿼리 2번 날릴 걸 1번 날리는게 좋기 때문에 아래처럼 붙이는 방법도 있다. 예를 들어 SNS 서비스에서 최종적으로 반환해야되는 데이터가 회원 정보 + 회원 등록한 해시태그 목록이라고 가정을 해보면 대략 아래와 같은 데이터가 반환되야 될 것이다. 회원일련번호, 회원아이디, 회원이름, 회원이메일, 기타 회원 정보, 그리고 해시태그 DB 테이블 구조 😗 DB 테이블은 아래와 같다. 동일한 테스트를 할 수 있도록 스크립트도 첨부한다. script(DDL) 더보기 -- 회원 테이블 CREATE TABLE `member..

IT/DBMS 2022.11.22
반응형