우잉's Development

SQLite3_Table 2_제약 조건1 본문

개발/SQLite3

SQLite3_Table 2_제약 조건1

우잉이 2021. 12. 28. 14:18
728x90
반응형

1. PRIMARY KEY 제약조건

CREATE TABLE 테이블명 (컬럼명 PRIMARY KEY, ... )

PRIMARY KEY 제약을 준 컬럼명이 기본 키가 된다. 기본 키는 하나 이상의 컬럼의 조합으로 설정되고, 테이블에 하나만 존재 한다. 기본키가 설정된 컬러에서는 다른 데이터와 중복된 값을 포함할 수 없다.

즉, ① 테이블에 하나만 존재 ② 중복 불가 두가지가 설정이 된다. 

user 테이블을 생성하고 데이터를 추가 하는데 id값이 1이 중복되어 error가 발생했다. 

 

여러 컬럼의 조합에 대해 PRIMARY KEY 제약 조건을 설정 하려면 다음과 같이 작성한다.

CREATE TABLE 테이블명 ( 컬럼명1, 컬럼명2, ..., PRIMARY KEY (컬럼명1, 컬럼명2, ... ));

컬럼의 데이터 타입은 INT가 포함 된 경우 모든 INTEGER 타입이 되지만,
일련 번호가 자동적으로 부여되는 것은 컬럼에 INTEGER PRIMARY KEY로 작성한 경우일 뿐이다.
INT PRIMARY KEY와 같이 작성하면 이런 동작하지 않는다.

id값을 (3다음 4가 아닌) 8로 새로운 데이터를 넣고 다시 name만 있는 데이터를 넣으면 아래와 같이 id가 9가 된다.

2. ROWID 참조 및 INTEGER PRIMARY KEY 와 의 관계

ROWID는 테이블에 존재하는 숨겨진 컬럼이다. 테이블에 데이터를 추가 할 때마다 자동으로 ROWID에 값이 설정된다.

그러나 primary key 를 설정하면 아래와 같이 rowid가 primary key를 따라가게된다. 

또한 ROWID값을 지정해 줄 수 있다.

3. AUTOINCREMENT 설정 했을 때 값의 할당 규칙

일단 AUTOINCREMENT 설정을 안했을 때를 살펴 보겠습니다.

 3개의 데이터를 입력하고 그 중 id =3인 데이터를 삭제했습니다.

그리고 다시 데이터를 insert 하면 id가 그 전 id의 최댓 값인 2 다음 번호 3으로 지정이 됩니다.

 

다음은 AUTOINCREMENT 를  설정 했을 경우를 살펴 보겠습니다.

 AUTOINCREMENT를 설정해주면 위와 같이 실행 했을 때, 지금까지 저장된 수있는 최대 값 (현재 3)에 1을 더한 값이 자동으로 설정되어 4로 저장된다.

 

그럼 여기서 현재까지 할당된 최대 값을 확인할 수 있는 방법을 알아 보겠습니다.

(AUTOINCREMENT 설정 했을 때만 가능)

 

728x90
반응형

'개발 > SQLite3' 카테고리의 다른 글

SQLite3_View 뷰  (0) 2021.12.29
SQLite3_Table 2_제약 조건2  (0) 2021.12.29
SQLite3 _ Table 1  (0) 2021.12.28
SQLite 기본 명령어 사용하기  (0) 2021.12.28
SQLite3 설치하기  (0) 2021.12.28
Comments