본문 바로가기
반응형

IT/Database97

InsertSelect / UpdateSelect 데이터베이스를 다루는 쿼리는 다양하게 있지만 InsertSelect 과 UpdateSelect 라는 구문도 있다. 구문은 쉬우나 자주 헷갈리는 문법이라서 포스팅 해두고 직접 보려고 작성하였다. InsertSelect Insert Into 테이블A A Select * from 테이블B B //여기에서는 컬럼이 동일한 갯수, 자료형 이어야 한다. UpdateSelect UPDATE 테이블A A SET ( A.업데이트 받을 컬럼 ) = ( SELECT B.업데이트 할 컬럼 FROM 테이블 B B WHERE B.NO = '특정번호' ) WHERE A.NO ='특정번호'; 2022. 7. 23.
Join의 종류 데이터베이스에서 join이라고 하면 다들 inner join이나 left outerjoin 혹은 cross join 등은 많이 들어봤을 것이다. 하지만 이런 조인은 조인의 종류로 나뉜것으고 이 종류들이 데이터베이스에서 수행하는 방법이 있다. 수행방법의 조인은 Nested Loop / Sort Merge / Hash 조인이 있다. NL (Nested Loop) Join nl 조인이라고도 많이 부르는 이 조인 수행기법은 다음과 같다. 그림에 있는 숫자가 수행하는 순서이다. 1. 선행테이블에서 첫번째 행을 접근. 2. 그 행의 조인할 속성을가지고 후행테이블 인덱스를 거쳐 접근 3. 1-2번의 작업을 반복하여 맵핑하며 결과를 버퍼에 저장하여 마지막에 출력함. 특징은 다음과 같다. 1. 선행테이블은 풀스캔하므로,.. 2022. 7. 8.
[Mysql] 백업 및 복원 데이터를 마이그레이션 하거나 서버를 옮기거나 등등 작업때문에 백업 및 복원에 대해서 빈번하게는 아니지만 할일이 생긴다. 전체 DB백업 mysqldump -uroot -p --all-databases >filename.sql 특정 DB백업 mysqldump -uroot -p --databases name > filename.sql 특정 DB복원 mysql -uroot -p name < filename.sql 2022. 5. 20.
[Mysql] now() , sysdate() 차이 mysql에는 다양한 자료형들이 있고 그중에서 많이 사용되는 Date , 날짜 관련 함수이다. now와 sysdate의 차이가 있다. 알고 사용하도록 하자. 필자 역시 뭐 같은거겠거니 하고 사용하였고 많은 이들도 그렇게 생각하고 있을것이다. 하지만 우연히 데이터가 다른것을 발견하고 무슨 차이이지 확인하다가 알게 된 점을 공유한다. 결과만 먼저 말하면 now는 쿼리가 실행되는 순간이고 sysdate는 해당 함수를 호출한 시간을 의미한다. 단순 select에서는 비교할수 없을정도로 빠르게 진행이 되서 비교하기 힘들순 있지만 sleep함수를 넣는다면? 이 사진 한장으로 설명을 마친다. 2022. 5. 13.
Key의 종류(간결 설명) 데이터베이스를 사용하게 되면 Key라는 개념을 들어봤을것이다. 대표적으로는 Primary Key, Foreign Key 를 많이 들어봤을텐데. 오늘은 좀더 심화적으로 다뤄볼 예정이다. 먼저 후보키에 대한 설명이다. 후보키 테이블을 구성하는 속성들 중 튜플을 유일하게 식별할수 있는 집합이다. 그말은 즉슨 이 컬럼이 다른컬럼들과 비교를 해도 중복이 없는 컬럼이어야한다. 이들중에 하나를 기본키라고 한다. 기본키 다른말로 Primary Key , PK라고 하며 테이블의 기본 기준, 이 되는 컬럼이다. null이 될수 없으며 중복이 될수 없다. 이 기본키는 한가지일수도 있고 여러가지가 복합해서 하나의 기본키가 될수도 있다. 그럴경우 그것을 복합키라고 한다 복합키 예를들어 동물원은 많지만 서울광진구에있는 동물원은 .. 2022. 4. 1.
데이터베이스 실행계획 dbms에서 쿼리를 날리면 데이터베이스에서는 3단계를 거친다. sql 파싱 sql 최적화 sql 실행 순서를 거치는데 간단하게 설명을 하면 파싱부분에서는 syntax, semantic 등의 구문오류나 대상이 올바르게 존재하는지에 대해 판단을 내리고, 최적화 부분에서는 옵티마이저가 실행계획을 생성한다. 다음은 만들어진 실행 계획에 따라 실행을 한다. 여기서 말하는 실행 계획이란 무엇인가? sql을 데이터베이스에서 어떻게 처리할 것인가? 에 대한 것이다. 즉 해당 쿼리를 돌리기 위한 비용을 계산하고 어떤것이 가장 최적화 된 쿼리인지를 판단한다. (비용이란 컴퓨터의 자원을 얼마나 쓰는지를 뜻한다) 인덱스가 있는 경우라던가 pk기준으로 쿼리를 짜는등의 작업이 이루어 지면 대부분 옵티마이저가 최적의 실행계획을 작.. 2022. 1. 17.
[Mysql] database 작업 폴더 경로조회 코딩을 하거나 쿼리를 짜다가 데이터가 저장되는 공간을 경로로 잡아야 할경우가 생기는데 그럴때 사용하는 쿼리이다. 데이터가 저장되는 디렉토리 조회하는 쿼리. show variables like 'datadir'; 2021. 11. 26.
반응형