DB 23

[mariadb] 컬럼 데이터에 ','를 row로 처리하기

* 컬럼 데이터에 ','를 row 컬럼로 처리하기 DB data row1 : 데이터1,데이터2,데이터3 row2 : 데이터4 row3 : 데이터5 ... (아래와 같이 표현) row1 : 데이터1 row2 : 데이터2 row3 : 데이터3 row4 : 데이터4 row5 : 데이터5 SELECT replace(SUBSTRING_INDEX(SUBSTRING_INDEX(your_column, ',', n.digit+1), ',', -1), ' ','') AS split_data FROM your_table JOIN (SELECT 0 AS digit UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3) n ON LENGTH(your_column) - LENGT..

DB/전체 2023.10.18

[mysql] DB index 추가

데이터 양이 많아질 때, 속도가 느려진다면! 성능 검토 시! DB index를 추가하면, 조회 시 전체 조회를 하지 않기 때문에 속도가 빨라 진다. -- 방법 CREATE INDEX {index명} ON {table_name}({column_name}); -- example CREATE INDEX table1_IDX ON table1(column1); -- 확인 EXPLAIN select * from table1 where column1 = 'test'; (결과) index 없을 시, ==> 1 SIMPLE [table1] ALL index 추가 시, ==> 1 SIMPLE [table1] ref

DB/My SQL 2023.03.21

Docker mysql 시간 변경, vi command not found, docker 서버 시간 변경

SELECT NOW(), @@system_time_zone; -- [현재시간 -9시간],UTC 1. docker mysql 컨테이너아이디 조회 $docker ps -a CONTAINER_ID IMAGE [CONTAINER_ID] mysql 2. docker mysql 접속 $ sudo docker exec -it [CONTAINER_ID] /bin/bash bash-4.4# vi /etc/my.cnf [mysqld] default_time_zone = '+09:00' [mysqld] # 아래 추가 default_time_zone = '+09:00' 3. docker mysql 재기동 $ sudo docker stop [CONTAINER_ID] $ sudo docker start [CONTAINER_ID]..

DB/My SQL 2023.02.23

[MYSQL] SQL Error [10930][HY000] : You can't specify target table 해결

mysql insert문 안에 select문 있을 시, error 발생 SQL Error [10930][HY000] : You can't specify target table insert into table_name (column1, column2, column3) values ((select ifnull(max(seq), 0) + 1 from table_name), 'value2', 'value3') 해결! insert문 안에 select max 함수를 사용 할 때는, select max 함수 table에 별칭 추가 insert into table_name (column1, column2, column3) values ((select ifnull(max(seq), 0) + 1 from table_nam..

DB/My SQL 2023.02.16

[mysql] 현재기준 월요일~일요일, 특정 요일 조회

mysql 현재 기준 각 요일 별 일자 조회 -- 2021.06.15 (화) 기준 SELECT ADDDATE(CURDATE(), -WEEKDAY(CURDATE())+0); -- 0 : 월요일 2021-06-14 SELECT ADDDATE(CURDATE(), -WEEKDAY(CURDATE())+1); -- 1 : 화요일 2021-06-15 SELECT ADDDATE(CURDATE(), -WEEKDAY(CURDATE())+2); -- 2 : 수요일 2021-06-16 SELECT ADDDATE(CURDATE(), -WEEKDAY(CURDATE())+3); -- 3 : 목요일 2021-06-17 SELECT ADDDATE(CURDATE(), -WEEKDAY(CURDATE())+4); -- 4 : 금요일 202..

DB/My SQL 2021.06.15

DB 생성/삭제/이동, Table 생성/삭제/컬럼추가/컴럼삭제/등록

-- 데이터베이스 생성 create database test -- 데이터베이스 삭제 drop database test; -- 데이터베이스 이동 use database test; -- 테이블 생성 CREATE TABLE test.member ( `member_id` varchar(20) NOT NULL, `member_pw` varchar(100) NOT NULL, `member_nm` varchar(100) NOT NULL, `hp` varchar(13) NULL, `addr_zc` varchar(20) NULL, `addr_name` varchar(200) NULL, `addr_detail` varchar(200) NULL, `reg_dttm` datetime NOT NULL, `mod_dttm` da..

DB/전체 2021.06.12

[PPAS-날짜] 날짜 초기화 (월,일,시,분,초)

함수 : DATE_TRUNC('YEAR', sysdate) 타입 : 년 미만 : YEAR, 월 미만 : MONTH, 일 미만 : DAY, 시 미만 : HOUR, 분 미만 : MINUTE * 월 부터 초기화 select DATE_TRUNC('YEAR', sysdate); result) 01-JAN-20 00:00:00 | 23-SEP-20 16:25:07 * 일 부터 초기화 select DATE_TRUNC('YEAR', sysdate); result) 01-SEP-20 00:00:00 | 23-SEP-20 16:25:07 * 시 부터 초기화 select DATE_TRUNC('YEAR', sysdate); result) 23-SEP-20 00:00:00 | 23-SEP-20 16:25:07 * 분 부터 초기..

DB/PPAS 2020.09.24