320x100
반응형
320x100
반응형
개요 하나의 UPDATE 쿼리에 여러 개의 테이블이 조인되어 있는 상황을 볼 수 있다. 이는 참조되어 있는 다른 테이블의 값을 확인하여 대상이 되는 테이블의 값을 수정하기 위함인데, 가끔 참조하는 테이블까지 같이 수정해야 하는 경우가 있다. 예를 들어, 이름과 주소가 각각 다른 테이블에 되어 있을 때, 공통되는 키를 참조하여 조인을 해서 번거롭게 여러 번의 UPDATE 쿼리문을 작성해야 한다. -- t1 : id, name UPDATE t1 SET name = 'eunbyeol'; -- t2 : id, address UPDATE t2 SET address = 'incheon'; 한 두 번이면 상관없지만... 반복되는 업데이트 쿼리문을 작성하기에는 솔직히 조금 귀찮다. 이 경우, 조인을 해서 한꺼번에 업데..
Error DATETIME 형식인 컬럼에 문자열로 된 날짜를 넣으려고 했는데 다음과 같은 에러가 출력되었다. insert into t1 select '08 31 2017 7:14PM' /* Error Code: 1292. Incorrect datetime value: '08 31 2017 7:14PM' for column 'col_date' at row 1 */ 해결 방법 MySQL이 DATETIME 형식을 인식할 수 있는 형식으로 변환해야 한다. 일반적으로 MySQL에서는 'YYYY-MM-DD HH:MM:SS' 형식을 따른다. DATETIME 형식을 변환하기 위해서는 STR_TO_DATE() 함수를 사용하면 된다. 입력하는 문자열의 형식을 DATETIME으로 변환할 수 있도록 형식을 매치시켜서 기입해주..
Error MS-SQL의 데이터를 MySQL의 데이터베이스에 마이그레이션 해야하는 작업이 있었다. M-SSQL SSMS에서 쿼리 결과를 CSV 파일로 만들었고, MySQL Workbench에서 CSV 파일을 Import 하려는 도중 아래와 같은 에러 문구가 출력되었다. Unhandled exception: 'cp949' codec can't decode byte : illegal multibyte sequence 해결 방법 결론부터 말하면 CSV 파일을 열어 그냥 CSV파일 확장자로 변경하면 된다. 오류가 출력되는 이유는 MySQL 자체에서 지원하지 않는 인코딩 형식이라는 것이다. 대개 한글이 포함된 파일의 경우 'CP949'의 인코딩 형식이 많다고 한다. 하지만 MySQL에서는 CSV 파일의 인코딩 형..
서론 MySQL에서 SELECT의 조회 결과가 1000개가 출력된다. 문제는 결과의 행이 1000개 일리 없는 데이터 결과 셋이 계속 1000개로 고정되어서 결과가 조회된다는 것이다. select count(*) from t1; 심지어 확인해보니 계속 LIMIT 키워드가 적용되어 있다. select * from t1; 나는 제한을 걸어준 적이 없는 LIMIT 1000으로 인해 결과 셋의 행이 천 개로 제한되는 것이다. 이 LIMIT를 없애려면 어떻게 해야할까? 방법1 : 직접 LIMIT 제한 범위를 걸어주기 직접적인 해결 방법은 아니지만, 쿼리 자체가 'LIMIT 1000'으로 고정되기 때문에 쿼리에 LIMIT를 넣어 직접적으로 리미트 제한을 늘려준다. 다만 이런 방식으로도 조회할 수 있다는 방법 중 하..
개요 다음과 같은 테이블이 있다. select * from test; 이 테이블을 간단히 union해보자. 한 개의 테이블로 간단 예시를 보여주기 위해 union이 아닌 union all 을 사용하였다. select * from test union all select * from test; 문제1. order by 와 limit를 사용하여 union 결과셋 출력 한 개의 테이블에 order by 와 limit 키워드를 사용한 결과셋을 union으로 합쳐보자. 테이블1 : id 내림차순, 결과셋은 1행만 출력 테이블2 : 모든 행 출력 테이블1과 2를 하나로 합치기 -- 오류 출력 select * from test order by id desc limit 1 union all select * from te..
Error 테이블 확인 한글로 이루어진 데이터 DB에 저장 오류 발생 ERROR 1366 (HY000): Incorrect string value: '~~~' for column '~~~' at row 1 쉽게 말해서, 한글이 깨짐. 이는 데이터베이스 자체에서 한글을 지원하지 않는다는 의미로 해석할 수 있음 해결 방법 - 특정 테이블 컬럼에 한글 지원 특정 테이블 컬럼에 한글 적용하기 문자열을 지원하는 컬럼에 인코딩 형식을 변경하여 한글을 지원하도록 함 테이블 컬럼 내용 확인하기 SHOW COLUMNS FROM tablename; -- 예시 -- SHOW COLUMNS FROM memo; 각 컬럼의 문자 인코딩 변경하기 ALTER TABLE tablename MODIFY columns datatype C..