본문 바로가기

728x90

IT

(38)
기존 데이터 백업 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의 조합이 동일한 행만 같은 그룹으로 처리됩니다.더 세부적으로 데이터를 그..
데이터베이스 SQL JOIN, LEFT JOIN 차이는? JOIN(또는 INNER JOIN)과 LEFT JOIN(또는 LEFT OUTER JOIN)은 SQL에서 테이블을 결합할 때 사용하는 연산자로, 두 테이블 간의 관계를 기반으로 데이터를 결합합니다. 그러나 반환되는 결과가 다릅니다. JOIN (또는 INNER JOIN)교집합: 두 테이블에서 조인 조건을 만족하는 공통 데이터만 반환.일치하는 데이터만 필요할 때 사용.조건이 일치하지 않는 데이터는 결과에 포함되지 않습니다.예제테이블 AIDName1Alice2Bob3Charlie 테이블 BIDOrder1A1232B4564D789  SELECT A.ID, A.Name, B.Order FROM A JOIN B ON A.ID = B.ID;  결과 (JOIN):IDNameOrder1AliceA1232BobB456 LE..
DBMS 뜻? 종류? DBMS(Database Management System)은 데이터를 효율적으로 관리하고, 저장하며, 검색하고, 업데이트하는 소프트웨어입니다. DBMS는 데이터베이스와 사용자 간의 인터페이스를 제공하여 데이터에 대한 접근과 관리를 용이하게 해줍니다. DBMS의 주요 기능데이터 저장: 데이터를 구조화된 형식으로 저장.데이터 검색: 사용자가 쿼리를 통해 데이터를 효율적으로 검색.데이터 무결성: 데이터가 정확하고 일관성을 유지하도록 관리.데이터 보안: 접근 권한 설정 및 데이터 보호.동시성 제어: 여러 사용자가 동시에 데이터에 접근하더라도 충돌을 방지.백업 및 복구: 데이터 손실 방지 및 복구 기능. DBMS의 종류 DBMS는 데이터 모델과 구조에 따라 여러 가지로 분류됩니다. 주요 DBMS의 종류는 다음과 ..

728x90