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_name
및 c_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;
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