본문 바로가기
반응형

SQL/MySQL66

MySQL 다른 테이블의 값으로 UPDATE 하는 방법 MySQL에서 다른 테이블의 값을 가지고 특정 테이블에 UPDATE 하려는 경우 UPDATE JOIN을 사용해주면 간단하게 적용 가능한데 사용방법은 아래와 같이 사용해주면 되는데 UPDATE 테이블명1 A JOIN 테이블명2 B ON 조인조건 SET 컬럼 = 값 WHERE 조건; 일반적으로는 두 테이블을 동일한 키 값으로 JOIN시킨 뒤 A.컬럼명 = B.컬럼명 위와 같이 다른 테이블에서 값을 끌어다 넣어주면 된다 마지막으로 예제에 사용한 쿼리는 아래와 같다 UPDATE TB1 A JOIN TB2 B ON A.NAME = B.NAME SET A.AGE = B.AGE WHERE A.NAME = '철수'; 2021. 1. 16.
MySQL SELECT INSERT 동시에 하는 방법 MySQL에서 SELECT 한 내용을 바로 INSERT 시키려면 다음과 같이 쿼리를 사용해주면 되는데 INSERT INTO 넣을_테이블명(컬럼명) -- 테이블이 동일할 경우에는 컬럼 안써도 됨 SELECT 컬럼명 , 컬럼명 FROM 조회할_테이블명 WHERE 조회조건 동일한 테이블에서 조회한 뒤 삽입하는 경우라면 넣을_테이블명에 컬럼명을 넣지 않아도 되지만 다른 테이블에 넣어주려면 컬럼을 넣어야 하고 SELECT시 조회한 컬럼이 차례대로 넣을_테이블명(컬럼명) 에 순서대로 들어가게 된다 마지막으로 예제에 사용한 쿼리는 다음과 같다 INSERT INTO TB2(NAME, AGE) -- 테이블이 동일할 경우에는 컬럼 안써도 됨 SELECT NAME , AGE FROM TB1 WHERE NAME = '철수'; 2021. 1. 16.
MySQL LIMIT OFFSET 사용법 정리 MySQL에서는 LIMIT OFFSET을 이용해서 출력되는 행 갯수를 지정할 수 있는데 먼저 LIMIT OFFSET을 사용하는 방법은 LIMIT 행_갯수 OFFSET 시작행; 순으로 사용해주면 되는데 첫 행은 1이 아니라 0부터 시작이다 OFFSET은 필수가 아니므로 넣지 않으면 0처리되서 첫 행부터 나오게 된다 다음으로 LIMIT만 사용하는 경우에는 LIMIT 시작행, 끝행 이렇게 사용해주면 되는데 LIMIT 2, 3; 이렇게 사용해주면 3번째와 4번째 행만 나오게 된다 마지막으로 예제에 사용한 쿼리는 다음과 같다 WITH TBL AS ( SELECT '철수' AS NAME, 20 AS AGE UNION ALL SELECT '영희' AS NAME, 30 AS AGE UNION ALL SELECT '희영.. 2021. 1. 16.
MySQL START TRANSACTION 개념 및 예제 MySQL에서 INSERT, UPDATE, DELETE와 같이 DB 내용을 변경하는 쿼리를 사용하는 경우 주변에서 반드시 START TRANSACTION을 먼저 사용하라고 하는데 이게 뭐냐면 START TRANSACTION을 사용한 후에는 COMMIT이나 ROLLBACK을 사용하기 전에는 수정한 내용이 DB에 반영되지 않기 때문에 쿼리를 돌려본 뒤에 이게 맞으면 COMMIT하는 거고 아니면 ROLLBACK으로 돌려버리면 되는거다 근데 자연스럽게 COMMIT; ROLLBACK; 을 쓰지 않으면 애초에 반영 안되는건데 굳이 START TRANSACTION을 쓸 필요가 있나 하는 생각이 들거다 하지만 MySQL은 오라클과 다르게 기본 옵션이 쿼리 수행 시 바로 COMMIT 시켜버리기 때문에 되돌릴 수 없는 참.. 2021. 1. 15.
MySQL DATEDIFF, TIMESTAMPDIFF를 이용한 날짜 차이 비교방법 MySQL에서는 DATEDIFF와 TIMESTAMPDIFF를 이용해 두 날짜간의 차이를 구할 수 있는데 먼저 DATEDIFF는 DATEDIFF(기준 날짜, 비교할 날짜) 이렇게 사용해주면 되는데 몇일 차이가 나는지 구할 수 있게 된다 하지만 일(DAY) 차이밖에 구하지 못하는 만큼 월, 시간 등으로 구하려면 TIMESTAMPDIFF를 사용해주면 된다 TIMESTAMPDIFF는 TIMESTAMPDIFF(단위, 기준 날짜, 비교할 날짜) 이렇게 사용해주면 되는데 단위에 뭘 넣느냐에 따라 원하는 기준으로 비교를 해서 가져올 수 있다 SELECT DATEDIFF(기준 날짜, 비교할 날짜) AS DIFF; -- DAY로만 비교 SELECT TIMESTAMPDIFF(단위,기준 날짜, 비교할 날짜) AS DIFF2;.. 2021. 1. 15.
MySQL 테이블 컬럼 조회방법 MySQL에서 INFORMATION_SCHEMA.COLUMNS 를 이용하면 특정 스키마의 테이블을 조회할 수 있는데 사용방법은 아래 쿼리를 복사 붙여넣기 한 후 스키마명과 테이블명만 변경해주면 된다 SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='스키마명' AND TABLE_NAME='테이블명'; 주로 보게 될 컬럼은 다음과 같다 TABLE_SCHEMA - 스키마명 TABLE_NAME - 테이블명 COLUMN_NAME - 컬럼명 COLUMN_KEY - KEY 여부 COLUMN_DEFAULT - 기본값 IS_NULLABLE - NULL 가능 여부 DATA_TYPE - 데이터타입 COLUMN_TYPE - 데이터타입(크기 포함) 2021. 1. 15.

반응형