SQLite는 새 레코드를 삽입하거나 이미 존재하는 경우 업데이트합니다.
이 문서에서는 INSERT
, UPDATE
및 INSERT OR UPDATE
명령을 사용하는 방법에 대해 설명합니다. 또한 새 레코드를 INSERT
하거나 레코드가 이미 있는 경우 UPDATE
하는 방법에 대해서도 설명합니다.
SQLite INSERT
명령
SQLite에서 테이블에 데이터를 삽입하는 것은 매우 간단합니다. INSERT
문을 사용하여 작업을 완료할 수 있습니다.
SQLite에서 다양한 형태의 INSERT
문을 사용하면 여러 행, 단일 행 및 기본값을 테이블에 삽입할 수 있습니다. SELECT
문을 사용하여 테이블에 데이터 행을 삽입할 수 있습니다.
단일 행을 데이터베이스 테이블에 삽입하려면 다음 형식의 INSERT
문을 사용할 수 있습니다.
INSERT INTO table (c1,c2, c3..) VALUES( val1, val2,val3..);
추가하기 전에 INSERT INTO
문 뒤에 데이터를 삽입하려는 테이블의 이름을 지정해야 합니다.
테이블 열의 경우 쉼표로 구분된 목록을 추가해야 합니다. 목록은 선택 사항이지만 적어 두는 것이 좋습니다.
동일한 열 순서로 VALUE
키워드 뒤에 별도의 쉼표 값 목록을 추가합니다. 열 목록을 생략하도록 선택한 경우 값 목록의 모든 열에 대한 값을 지정해야 합니다.
목록의 열과 값의 수는 동일해야 합니다.
유사한 형식을 사용하여 테이블에 여러 행을 삽입할 수 있습니다. INSERT
문을 사용하여 다음과 같은 방식으로 이를 수행할 수 있습니다.
INSERT INTO table1 (c1,c2,c3..) VALUES (val1,val2,val3...), (val1,val2,val3...), ... (val1,val2,val3...), ;
VALUES
절 다음에 작성된 모든 값 목록은 테이블에 행으로 삽입됩니다.
이전 예에서 테이블에 세 개의 행을 추가합니다. 이 작업이 완료되면 SQLite는 "Row Affected: 3"
메시지를 발행합니다.
이는 세 행의 데이터가 수정되었음을 의미합니다. select
문을 사용하여 원하는 삽입이 데이터베이스에 있는지 확인하기 위해 테이블의 내용을 볼 수 있습니다.
테이블에 기본값을 지정하고 입력할 수도 있습니다. 이렇게 하면 이전에 지정된 기본값을 사용하여 테이블에 새 행이 삽입됩니다.
사용 가능한 기본값이 없고 NOT NULL
제약 조건이 지정되지 않은 경우 NULL
이 할당됩니다.
SQLite UPDATE
명령
SQLite에서 데이터를 수정해야 하는 경우 UPDATE
쿼리를 사용하십시오. 선택한 행을 업데이트하려면 UPDATE
쿼리와 함께 WHERE
쿼리를 사용할 수 있습니다. 그렇지 않으면 모든 테이블 행이 업데이트됩니다.
SQLite에서 데이터를 업데이트하는 구문은 다음과 같습니다.
UPDATE table_name
SET c1 = val1, c2 = val2...., cName = valName
WHERE [your condition];
여러 조건을 충족해야 하는 경우 AND
또는 OR
연산자를 결합할 수 있습니다. 모든 테이블 행을 업데이트하기 위해 WHERE
절을 사용할 필요가 없습니다.
SQLite INSERT
새 레코드 또는 UPDATE
레코드가 이미 존재하는 경우
INSERT OR UPDATE
명령은 본질적으로 INSERT
명령의 확장입니다. 주요 차이점은 삽입 중인 행이 존재하지 않는 경우 INSERT OR UPDATE
가 INSERT
작업을 수행한다는 것입니다.
그러나 삽입된 행이 이미 존재하는 경우 INSERT OR UPDATE
는 UPDATE
작업을 수행합니다. 이 작업은 특정 열 값으로 행을 업데이트합니다.
이 업데이트는 지정된 데이터 값이 기존 데이터와 동일한 경우 발생합니다. INSERT OR UPDATE
는 INSERT
문에서 사용하는 것과 동일한 구문, 기능 및 제한 사항을 사용합니다.
고유한 값이 있는 레코드를 추가해야 하는 경우 값(예: name
)이 이미 있으면 필드가 수정됩니다. 이를 위해 다음 코드를 사용할 수 있습니다.
insert or replace into Employee (ID, Name, Type, Age, Salary) values
((select ID from Employee where Name = "SearchName"), "SearchName", ...);
테이블 행이 이미 존재하는 경우 insert
목록에 존재하지 않는 모든 필드에 NULL
이 할당됩니다. 따라서 여기서는 ID
열에 대한 하위 선택을 사용합니다.
대체 사례에서 이 명령문은 값을 NULL
로 설정한 다음 새 ID
가 할당됩니다.
대체 사례의 행에 특정 필드 값을 그대로 두고 삽입 사례에서 필드 값을 NULL
로 설정하려는 경우 유사한 접근 방식을 사용할 수 있습니다.
이전 예제에서 Salary
열을 그대로 두려고 한다고 가정해 보겠습니다. 이는 다음과 같은 방식으로 달성할 수 있습니다.
insert or replace into Employee (ID, Name, Type, Age, Salary) values (
(select ID from Employee where Name = "SearchName"),
"SearchName",
5,
6,
(select Salary from Book where Name = "SearchName"));
이에 대한 또 다른 접근 방식은 INSERT OR IGNORE
다음에 UPDATE
를 사용하는 것입니다.
예: (여기서 name
은 기본 키입니다.)
INSERT OR IGNORE INTO Employee (name, age) VALUES ('Janet,' 23)
UPDATE Employee SET age = 23 WHERE name='Janet'
여기서 첫 번째 명령은 레코드를 삽입합니다. 레코드가 존재하면 기존 기본 키와의 충돌로 인한 오류를 무시합니다.
여기서 두 번째 명령은 이 경우 현재 존재하는 레코드를 업데이트합니다.
SQLite는 사용자가 필요에 따라 데이터를 삽입, 수정 및 추출할 수 있는 여러 명령을 사용합니다. INSERT
및 UPDATE
명령은 작업을 완료하는 데 중요합니다.
이러한 명령을 사용하는 것과 관련된 접근 방식뿐만 아니라 다양한 변경 사항이 있습니다. 이 문서에서는 사용 방법을 알 수 있도록 이러한 명령의 구문과 기능에 대해 설명했습니다.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub