본문 바로가기

728x90

IT/DB

(27)
데이터베이스 쿼리 left join, (+) 표기하는 방식 차이 LEFT JOIN과 (+) 표기 방식은 **외부 조인(OUTER JOIN)**을 표현하는 두 가지 방법으로, SQL 표준 방식과 특정 DBMS의 고유 방식의 차이를 보여줍니다. 1. LEFT JOIN 표기 방식SQL 표준(ANSI SQL-92 이후)에서 도입된 외부 조인 표현 방식.가독성이 높고 직관적으로 이해하기 쉽기 때문에 널리 사용.LEFT JOIN은 왼쪽 테이블의 모든 행을 유지하고, 오른쪽 테이블의 조건에 일치하지 않는 경우 NULL로 채웁니다.예제SELECT A.ID, A.Name, B.Order FROM A LEFT JOIN B ON A.ID = B.ID; 설명:LEFT JOIN은 왼쪽 테이블(A)의 모든 행을 포함하며, 오른쪽 테이블(B)의 조건에 일치하지 않는 경우 결과에 NULL로 표시..
데이터 타입 int, bigint 차이 int와 bigint는 정수 값을 저장하기 위한 데이터 타입으로, 주로 데이터베이스나 프로그래밍 언어에서 사용됩니다. 이 두 데이터 타입의 주요 차이는 저장할 수 있는 값의 범위와 메모리 사용량에 있습니다.1. int (Integer)범위:Signed(기본): -2,147,483,648 ~ 2,147,483,647Unsigned(일부 DB 지원): 0 ~ 4,294,967,295크기: 4 바이트 (32비트)용도:값이 비교적 작은 정수(수천만 단위까지)를 처리할 때 사용.일반적으로 ID, 카운트, 상태 플래그 등 크기가 크지 않은 숫자 데이터에 적합.2. bigint (Big Integer)범위:Signed: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807..
기존 데이터 백업 insert 쿼리 만드는 방법 데이터 삭제 시 백업용으로 데이터 복구를 위해 다시 insert가 필요한 케이스가 있는데 임시테이블을 만들어서 해당 데이터를 테이블에 넣는 방법과 insert 쿼리를 리스트로 만들어서 필요시  쿼리를 실행시켜서 데이터를 다시 넣어서 복구하는 방법이 있습니다. 테이블을 자유롭게 생성하고 삭제하기 어려운 환경이라 1000건 정도 데이터에 대해서 아래와 같이 간편하게 insert 쿼리를 만드는 방법이 있다  INSERT 쿼리 생성 스크립트 만들기INSERT 구문을 생성하려면 다음 단계를 따릅니다:3.1. 쿼리 출력 형식으로 데이터 생성MySQL의 'CONCAT' 함수를 사용해 각 행에 대해 INSERT 쿼리를 출력합니다. 구문SELECT CONCAT( 'INSERT INTO 백업_테이블명 (컬럼1, 컬럼2, ..
데이터 삭제 delete와 truncate 차이는? DELETE와 TRUNCATE는 MySQL에서 데이터를 삭제하는 데 사용되지만, 작동 방식, 속도, 복구 가능성 등에서 중요한 차이점이 있습니다. 1. DELETE 특징행 단위 삭제: DELETE는 특정 조건을 만족하는 행 또는 모든 행을 삭제합니다.WHERE 절 사용 가능: 조건을 지정하여 특정 데이터만 삭제할 수 있습니다.로그 기록: 각 삭제 작업이 트랜잭션 로그에 기록되어 데이터 복구가 가능합니다.트리거(trigger): 삭제 작업 시 정의된 트리거가 실행됩니다.속도: 삭제할 데이터 양이 많아질수록 속도가 느려질 수 있습니다.구문DELETE FROM 테이블명 WHERE 조건; 예제employees 테이블에서 id가 5인 데이터를 삭제:DELETE FROM employees WHERE id = 5; ..
left join 과 left outer join 차이는? LEFT JOIN과 LEFT OUTER JOIN은 MySQL 및 대부분의 SQL 데이터베이스 시스템에서 동일합니다. 둘 다 왼쪽 테이블의 모든 행을 포함하며, 오른쪽 테이블에서 일치하는 행이 없을 경우 NULL로 채웁니다.  차이점LEFT JOIN: 표준 SQL에서 사용되는 약칭.LEFT OUTER JOIN: 더 명시적으로 표현한 형태.SQL 표준에서 OUTER 키워드는 선택 사항이기 때문에, **LEFT JOIN**을 사용하는 것과 **LEFT OUTER JOIN**을 사용하는 것은 기능적으로 동일합니다. 예시 테이블 1 (table1)IDname1Alice2Bob3Charlie 테이블 2 (table2)IDscore185390LEFT JOINSELECT t1.id, t1.name, t2.score F..
MySQL SQL 오류코드 Error Code: 1046. No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar MySQL 쿼리 실행 시 발생하는 오류로 Error Code: 1046. No database selected 오류는 MySQL에서 데이터베이스를 지정하지 않고 쿼리를 실행하려고 할 때 발생합니다. 데이터베이스를 명시적으로 선택하거나 설정하지 않으면 MySQL은 어떤 데이터베이스를 대상으로 쿼리를 실행해야 할지 알 수 없습니다.  오류 원인데이터베이스 선택 누락쿼리를 실행하기 전에 특정 데이터베이스를 선택하지 않았기 때문에 발생합니다.워크벤치에서 기본 데이터베이스 미설정MySQL Workbench에서 데이터베이스를 선택하지 않은 경우 발생합니다.쿼리 작성 시 데이터베이스 지정 누락테이블 이름 앞에 데이터베이스 이름을 지정하지 않은 경우 발생할 수 있습니다. 해결 방법1. USE 명령어로 데이터베이스 선택..
AND EXISTS (SELECT 1 FROM 테이블) 쿼리 조건 뜻? SQL 쿼리에서 AND EXISTS (SELECT 1 FROM 테이블) 조건은 특정 하위 쿼리의 결과가 존재하는지를 확인하는 데 사용됩니다. 이를 통해 상위 쿼리가 실행되기 위한 추가 조건을 설정할 수 있습니다. EXISTS의 기본 개념**EXISTS**는 서브쿼리의 결과가 하나 이상 존재하면 TRUE를 반환하고, 결과가 없으면 FALSE를 반환합니다.서브쿼리의 반환값 자체는 중요하지 않으며, 결과가 존재하는지 여부만 평가됩니다.따라서 SELECT 1, SELECT *, 또는 다른 반환 값은 동일한 의미를 가집니다.AND EXISTS (SELECT 1 FROM 테이블)의 의미AND: 상위 쿼리의 다른 조건들과 논리적으로 연결.EXISTS: 지정된 서브쿼리의 결과가 하나 이상 존재하면 상위 쿼리가 실행되도..
group by a, group by a,b 차이 GROUP BY 구문에서 **GROUP BY a**와 **GROUP BY a, b**의 차이는 데이터를 그룹화하는 기준의 범위에 있습니다. GROUP BY a컬럼 a를 기준으로 데이터가 그룹화됩니다.동일한 값을 가진 a의 모든 행이 하나의 그룹으로 처리됩니다.a만 그룹화되므로 다른 컬럼 값은 무시됩니다(집계 함수 사용 시).예제SELECT a, COUNT(*) AS cnt FROM my_table GROUP BY a;  결과 예시:acnt132234테이블의 모든 행에서 a의 값이 같은 데이터가 한 그룹으로 계산됩니다.그룹별로 행의 개수를 계산한 결과를 보여줍니다. GROUP BY a, b컬럼 a와 b를 조합하여 그룹화합니다.a와 b의 조합이 동일한 행만 같은 그룹으로 처리됩니다.더 세부적으로 데이터를 그..

728x90