
SQLite에서 키 사용 방법
2022-06-04 last update
5 minutes reading SQLiteSQLite는 데이터베이스 관리 시스템으로 MySQL처럼 관계 데이터베이스의 데이터를 관리하는 데 사용되며 다른 데이터베이스처럼 유일성, 메인 키와 외부 키 등 많은 제약을 포함한다.
그렇다면 SQLite에서 어떻게 작동하는지에 대한 제약은 무엇입니까?이 글은 SQLite에서 주 키 구속을 사용하는 방법에 대한 포괄적인 지침입니다.
제약은 같은 데이터 유형의 데이터를 테이블에 삽입하는 원칙으로 열의 구조를 구성하고 테이블에 저장된 데이터의 신뢰성을 확보한다.많은 제한이 있습니다. 그 중 일부는 다음과 같습니다. 기본 키 외부 키 고유 구속조건 기본 구속조건 검사 제약
메인 키는 테이블의 유일한 열입니다. 열에 삽입된 항목이 유일해야 하며, 다른 테이블의 외부 키를 인용하는 데도 사용됩니다.키를 사용하지 않는 상태에서 테이블을 만들 수 있지만, 테이블이 키를 사용하면 테이블에 키를 하나만 할당할 수 있습니다.각종 테이블을 가진 데이터베이스를 만들 때 메인 키는 매우 중요하기 때문에 서로 다른 데이터베이스 간에 관계를 만들려면 메인 키를 사용해야 한다.
주 키는 다음 규칙을 따라야 합니다. 주 키의 열은 빈 값으로 정의할 수 없음 키 열에 삽입된 줄의 데이터는 유일해야 한다 주 키는 다른 표 의 특정 외부 키라고 해야 한다 테이블에는 주 키가 하나만 포함됩니다 기본 키는 데이터베이스에서 빈 값일 수 없지만 SQLite의 경우 "장기적인 인코딩 감독"으로 인해 빈 값을 할당할 수 있습니다.
하나의 테이블에는 하나의 키만 있어야 하지만, 하나의 키에 여러 열을 정의할 수 있으며, 여러 열이 하나의 키로 사용될 때 복합 키라고 부른다.
테이블을 만들 때 다음과 같은 두 가지 키 할당 방법이 있습니다.부터 테이블 까지의 단일 열부터 테이블 까지의 다중 열
기본 키를 단일 열에 할당하여 테이블을 만들 수 있습니다. 일반적인 구문은 다음과 같습니다.
CREATE TABLE 자구는 테이블을 만드는 데 사용됩니다 table\uname 대신 테이블 이름을 입력합니다.column_name1 대신 열 이름을 입력하고 데이터 형식을 기록합니다 열을 주 키로 지정하려면 주 키 서브문장을 사용하고 NULL 또는 NOT NULL 으로 정의합니다.column_name2 대체 이름 입력
그것을 이해하려면 예시를 생각해 보십시오. 우리는 학생 표를 만들었습니다. 그 중에서 유일한 학생 id가 있습니다. 이름은 (std\uid), 학생 이름은 (std\uname) 입니다.이 표에서 학생 이름은 같을 수 있지만 학생 id는 같을 수 없습니다. 따라서 std\U id에 키를 할당합니다.
school\u students 테이블이 만들어졌습니다. 그 중 하나가 키로 되어 있습니다.
기본 키를 여러 열에 할당하여 테이블을 만들 수 있습니다. 일반적인 구문은 다음과 같습니다.
이 점을 다시 이해하기 위해서, 우리는 employees\u 데이터 테이블의 예시를 고려합니다. 우리는 세 열을 사용하여 emp\uid,emp\uname,emp\udep를 만들고, emp\uid와emp\uname를 메인 키로 지정합니다.
이 테이블은 메인 키를 사용하여 만든 것입니다. 메인 키에는 두 열이 있습니다.
Alter 자구를 사용하여 SQLite의 기존 테이블에 키를 추가할 수는 없지만 SQLite의 테이블에 키를 할당하려면 다음 절차를 따릅니다. 외부 키 구속조건 비활성화 테이블의 이름을 다른 이름으로 변경 이전에 만든 것과 같은 구조를 가진 새 표를 만듭니다 이 테이블의 데이터를 이 테이블로 복사 이름이 바뀐 테이블 삭제 마지막으로 키 제약조건 열기 데이터베이스에 students\u data라는 테이블이 있습니다. 이 테이블은 메인 키가 없습니다. 내용은 다음과 같습니다.
"id"키를 할당하려면 다음 명령을 실행합니다.
주 키가 id라는 열에 할당되었는지 확인하려면 다음 명령을 실행하십시오.
주 키가 테이블 students\u 데이터에 성공적으로 할당되었습니다.
다른 데이터베이스와 마찬가지로, 우리는drop와 ALTER 명령을 사용하여 제약을 삭제할 수 없습니다. 메인 키 제약을 삭제하려면 같은 과정을 따라 제약을 기존 테이블에 추가하고 테이블의 구조를 다시 정의해야 합니다. 어떤 열에도 메인 키를 정의하지 않습니다.위의 키 추가 예제를 다시 한 번 고려해 보겠습니다. 키 삭제는 다음과 같습니다.
메인 키는 특히 테이블과 다른 테이블의 관계를 맺을 때 매우 유용하다. 왜냐하면 외부 키는 항상 테이블의 메인 키를 가리키고, 테이블은 하나의 메인 키만 있지만, 그 필드는 하나 이상일 수 있기 때문이다.본고에서 우리는 SQLite에서 키를 어떻게 사용하는지 토론했고 예를 통해 키를 하나 이상의 열에 분배하는 방법과 이미 존재하는 키가 없는 표에 대해 토론했다.
그렇다면 SQLite에서 어떻게 작동하는지에 대한 제약은 무엇입니까?이 글은 SQLite에서 주 키 구속을 사용하는 방법에 대한 포괄적인 지침입니다.
SQLite의 제약조건은 무엇입니까?
제약은 같은 데이터 유형의 데이터를 테이블에 삽입하는 원칙으로 열의 구조를 구성하고 테이블에 저장된 데이터의 신뢰성을 확보한다.많은 제한이 있습니다. 그 중 일부는 다음과 같습니다.
SQLite의 기본 키는 무엇입니까?
메인 키는 테이블의 유일한 열입니다. 열에 삽입된 항목이 유일해야 하며, 다른 테이블의 외부 키를 인용하는 데도 사용됩니다.키를 사용하지 않는 상태에서 테이블을 만들 수 있지만, 테이블이 키를 사용하면 테이블에 키를 하나만 할당할 수 있습니다.각종 테이블을 가진 데이터베이스를 만들 때 메인 키는 매우 중요하기 때문에 서로 다른 데이터베이스 간에 관계를 만들려면 메인 키를 사용해야 한다.
주 키는 다음 규칙을 따라야 합니다.
하나의 테이블에는 하나의 키만 있어야 하지만, 하나의 키에 여러 열을 정의할 수 있으며, 여러 열이 하나의 키로 사용될 때 복합 키라고 부른다.
SQLite의 모든 테이블에 기본 키를 추가할 수 있는 몇 가지 방법
테이블을 만들 때 다음과 같은 두 가지 키 할당 방법이 있습니다.
SQLite의 열에 기본 키를 할당하는 테이블을 만드는 방법
기본 키를 단일 열에 할당하여 테이블을 만들 수 있습니다. 일반적인 구문은 다음과 같습니다.
CREATE TABLE TABLE_NAME (column_name1 PRIMARY KEY NOT NULL, column_name2 );
이 구문은 다음과 같이 해석됩니다.그것을 이해하려면 예시를 생각해 보십시오. 우리는 학생 표를 만들었습니다. 그 중에서 유일한 학생 id가 있습니다. 이름은 (std\uid), 학생 이름은 (std\uname) 입니다.이 표에서 학생 이름은 같을 수 있지만 학생 id는 같을 수 없습니다. 따라서 std\U id에 키를 할당합니다.
CREATE TABLE school_students (std_id INTEGER PRIMARY KEY NOT NULL, std_names);

school\u students 테이블이 만들어졌습니다. 그 중 하나가 키로 되어 있습니다.
SQLite의 여러 열에 기본 키를 할당하는 테이블을 만드는 방법
기본 키를 여러 열에 할당하여 테이블을 만들 수 있습니다. 일반적인 구문은 다음과 같습니다.
CREATE TABLE TABLE_NAME (column_name1 , column_name2 , column_name3 , PRIMARY KEY(column_name1, column_name2));
위의 문법에서, 우리는 문장의 끝에 메인 키를 정의하고, 열의 이름을 메인 키에 포함할 괄호에 두었다.이 점을 다시 이해하기 위해서, 우리는 employees\u 데이터 테이블의 예시를 고려합니다. 우리는 세 열을 사용하여 emp\uid,emp\uname,emp\udep를 만들고, emp\uid와emp\uname를 메인 키로 지정합니다.
CREATE TABLE employees_data (emp_id INTEGER, emp_name TEXT, emp_dep TEXT,emp_name PRIMARY KEY(emp_id, emp_email));

이 테이블은 메인 키를 사용하여 만든 것입니다. 메인 키에는 두 열이 있습니다.
SQLite의 기존 테이블에 키를 추가하는 방법
Alter 자구를 사용하여 SQLite의 기존 테이블에 키를 추가할 수는 없지만 SQLite의 테이블에 키를 할당하려면 다음 절차를 따릅니다.
SELECT * FROM students_data;

"id"키를 할당하려면 다음 명령을 실행합니다.
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE students_data RENAME TO new_students_data;
CREATE TABLE students_data (id INTEGER NOT NULL PRIMARY KEY, name TEXT NOT NULL, attendance INTEGER NOT NULL);
INSERT INTO students_data SELECT * FROM new_students_data;
DROP TABLE new_students_data;
COMMIT;
PRAGMA foreign_keys=ON;

주 키가 id라는 열에 할당되었는지 확인하려면 다음 명령을 실행하십시오.
PRAGMA table_info([students_data]);

주 키가 테이블 students\u 데이터에 성공적으로 할당되었습니다.
SQLite에서 키 구속조건을 삭제하는 방법
다른 데이터베이스와 마찬가지로, 우리는drop와 ALTER 명령을 사용하여 제약을 삭제할 수 없습니다. 메인 키 제약을 삭제하려면 같은 과정을 따라 제약을 기존 테이블에 추가하고 테이블의 구조를 다시 정의해야 합니다. 어떤 열에도 메인 키를 정의하지 않습니다.위의 키 추가 예제를 다시 한 번 고려해 보겠습니다. 키 삭제는 다음과 같습니다.
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
ALTER TABLE students_data RENAME TO new_students_data;
CREATE TABLE students_data (id INTEGER NOT NULL, name TEXT NOT NULL, attendance INTEGER NOT NULL);
INSERT INTO students_data SELECT * FROM new_students_data;
DROP TABLE new_students_data;
COMMIT;
PRAGMA foreign_keys=ON;

결론
메인 키는 특히 테이블과 다른 테이블의 관계를 맺을 때 매우 유용하다. 왜냐하면 외부 키는 항상 테이블의 메인 키를 가리키고, 테이블은 하나의 메인 키만 있지만, 그 필드는 하나 이상일 수 있기 때문이다.본고에서 우리는 SQLite에서 키를 어떻게 사용하는지 토론했고 예를 통해 키를 하나 이상의 열에 분배하는 방법과 이미 존재하는 키가 없는 표에 대해 토론했다.