SQLite의 두 열 사이에 새 열 추가

Junaid Khan 2023년6월21일
  1. 기존 SQLite 데이터베이스에 새 열 추가
  2. 업데이트된 열로 새 테이블 만들기
  3. 다른 데이터베이스에서 ‘ALTER TABLE ADD COLUMN’ 접근 방식
SQLite의 두 열 사이에 새 열 추가

SQLite 데이터베이스에서는 테이블 내부에 데이터를 저장합니다. 각 테이블에는 데이터를 유지하기 위한 행과 열이 포함되어 있습니다.

열은 데이터베이스의 속성을 나타내고 행은 각 줄의 레코드를 나타냅니다. 데이터베이스 수명 주기 동안 기존 데이터베이스에 새 열을 삽입하거나 추가하려는 경우 채택하고 작업할 수 있는 여러 옵션이 있습니다.

옵션 중 하나는 기존 데이터베이스에 새 열을 삽입하거나 업데이트된 열로 새 테이블을 만들고 행 내부의 데이터를 복사하고 이전 테이블을 삭제하는 것입니다.

기존 SQLite 데이터베이스에 새 열 추가

데이터베이스에 새 열을 삽입하기 위해 ALTER TABLE 명령의 다음 구문을 사용하여 원하는 결과를 얻습니다. 여기에서 테이블의 이름을 언급하고 새 열을 추가하고 싶다고 말해야 합니다.

다음 줄에서 ADD COLUMN 명령 뒤에 열 정의를 지정해야 합니다.

ALTER TABLE name_of_the_table
ADD COLUMN new_column type_of_column;

열 정의는 다음과 같이 정의됩니다.

name_of_the_column type_of_data constraint;

위의 SQL 문을 보면 데이터베이스에 하나의 열을 추가했습니다. 그러나 SQL 테이블에 여러 개의 새 열을 추가하려는 경우 다음 SQL 명령을 사용합니다.

ALTER TABLE name_of_the_table
ADD COLUMN new_column1_definition,
ADD COLUMN new_column2_definition;

기본 키로 customer_id, 고객의 c_first_name, c_last_namec_email의 4개 열이 있는 고객의 테이블을 예로 들어 보겠습니다. 고객의 테이블에 대한 설명은 다음과 같습니다.

CREATE TABLE customers (
    customers_id INT PRIMARY KEY,
    c_first_name VARCHAR(40) NOT NULL,
    c_last_name VARCHAR(40) NOT NULL,
    c_email VARCHAR(100) NOT NULL UNIQUE
);

새 요구 사항은 customers 테이블에 새 열 phone_number를 추가하는 것입니다. 이 작업을 수행하려면 ALTER TABLE 명령을 사용하여 새 열을 추가할 테이블의 이름을 제공해야 합니다.

다음 줄에서 열 이름과 해당 유형을 포함하는 새 열 정의를 추가하려면 ADD COLUMN 명령이 필요합니다.

ALTER TABLE customers
ADD COLUMN phone_number VARCHAR(35);

마찬가지로 여러 개의 새 열을 SQL 데이터베이스에 삽입하려면 각 새 열에 대해 ADD COLUMN 명령을 명시적으로 사용해야 합니다. 여기에서 customers 데이터베이스에 c_mailing_address, c_dob,c_social_media_account라는 세 개의 새 열을 추가했습니다.

이 방법은 현재 열 사이가 아니라 테이블 끝에 새 열을 추가합니다.

다른 데이터베이스에서 ALTER TABLE 명령을 사용하는 다른 구문이 있지만 접근 방식은 동일합니다.

ALTER TABLE customers
ADD COLUMN c_mailing_address VARCHAR(155),
ADD COLUMN c_dob DATE,
ADD COLUMN c_social_media_account VARCHAR(255);

업데이트된 열로 새 테이블 만들기

두 번째 옵션은 누락된 열과 임시 이름으로 새 테이블을 만드는 것입니다. 이 접근 방식은 열을 올바른 위치와 순서로 배치합니다.

그런 다음 이전 테이블의 모든 레코드를 새 테이블로 복사하고 이전 테이블을 삭제합니다. 나중에 새 테이블의 이름을 삭제된 테이블 이름으로 바꿉니다.

임시 이름으로 테이블 생성

초기 단계는 이전 테이블 열과 동일한 열 이름을 사용하여 임시 이름으로 새 테이블을 만드는 것입니다. 이전 테이블의 모든 레코드를 새 테이블로 복사해야 하므로 동일한 열 이름이 필요합니다.

CREATE TABLE {NewTableTemporaryName}
(n_name TEXT, COLNew {type} DEFAULT {defaultValue}, quantity INTEGER, n_rate REAL);

이전 테이블에서 데이터 복사

두 번째 단계에서는 이전 테이블의 레코드를 동일한 열이 있는 새로 생성된 테이블로 복사해야 합니다. INSERT INTO 명령은 SELECT 절이 제공하는 모든 데이터를 삽입하는 데 도움이 됩니다.

INSERT INTO {NewTableTemporaryName}
(n_name, n_quantity, n_rate) SELECT n_name, n_quantity, n_rate FROM Old_Table;

이전 테이블 삭제 또는 삭제

다음 단계에서는 이전 테이블의 모든 레코드(행)를 새 테이블로 복사한 후 이전 테이블을 삭제하거나 삭제해야 합니다. 그 이유는 이전 테이블 레코드가 더 이상 필요하지 않기 때문입니다.

DROP TABLE Old_Table;

이전 테이블 이름으로 새 테이블 이름 바꾸기

마지막 단계는 새 테이블의 이름을 이전 테이블 이름으로 바꾸는 것입니다. 이것은 요구 사항에 따라 모든 항목의 이름을 바꿀 수 있으므로 훨씬 더 나은 접근 방식입니다.

마지막 단계 후에 필요한 이름, 업데이트된 열 및 그 안에 있는 모든 레코드가 있는 테이블이 있습니다.

ALTER TABLE {NewTabletemporaryName} RENAME TO Old_Table;

다른 데이터베이스에서 ‘ALTER TABLE ADD COLUMN’ 접근 방식

우리는 이미 ADD COLUMN 명령을 사용하여 기존 테이블에 열을 삽입하는 방법을 살펴보았습니다. 이 섹션에서는 다른 데이터베이스에서 ALTER TABLE ADD COLUMN 구문을 사용하는 방법에 대해 자세히 설명합니다.

이러한 데이터베이스에는 PostgreSQL, MYSQL, Oracle, SQL Server, SQLite 및 BD2가 포함됩니다.

PostgreSQL

ALTER TABLE name_of_the_table
ADD COLUMN column_definition;

MySQL

ALTER TABLE name_of_the_table
ADD [COLUMN] column_definition;

신탁

ALTER TABLE name_of_the_table
ADD column_definition;

SQL 서버

ALTER TABLE name_of_the_table
ADD column_definition;

SQLite

ALTER TABLE name_of_the_table
ADD COLUMN column_definition;

DB2

ALTER TABLE name_of_the_table
ADD column_definition;
작가: Junaid Khan
Junaid Khan avatar Junaid Khan avatar

Hi, I'm Junaid. I am a freelance software developer and a content writer. For the last 3 years, I have been working and coding with Python. Additionally, I have a huge interest in developing native and hybrid mobile applications.

LinkedIn

관련 문장 - SQLite Column