SQLite 테이블 설명

Bilal Shahid 2023년6월21일
  1. SQLite 테이블 설명
  2. 스키마 테이블
SQLite 테이블 설명

SQLite는 모든 장치의 텍스트 파일에 데이터를 저장하는 서버리스 오픈 소스 SQL 데이터베이스입니다. C 프로그래밍 라이브러리에 포함된 안정적이고 빠르며 모든 기능을 갖춘 완전한 기능의 SQL 데이터베이스 엔진입니다.

이 소프트웨어는 전 세계적으로 매우 인기가 있습니다. 휴대 전화, 대부분의 컴퓨터 및 전 세계 다양한 응용 프로그램이 내장되어 있습니다.

SQLite는 사용자를 위한 여러 가지 명령을 갖추고 있습니다. 이러한 명령 중 하나는 describe 명령입니다.

이를 통해 사용자는 테이블의 자세한 구조를 볼 수 있습니다.

SQLite 테이블 설명

SQLite는 사용자가 마음대로 사용할 수 있는 많은 명령을 사용하는 관계형 데이터베이스 관리 시스템입니다. 이 데이터베이스 소프트웨어는 .schema 명령을 사용하여 데이터베이스의 테이블을 설명합니다.

여기서 .schema 명령은 필요한 테이블의 자세한 구조를 가져오는 데 사용할 수 있는 명령줄 프로그램입니다. 테이블을 기술한다는 것은 기본적으로 열 이름, 열의 데이터 유형 및 열 크기와 같은 테이블의 모든 열에 대한 특정 세부 정보를 인쇄할 수 있음을 의미합니다.

SQLite는 다양한 방식으로 테이블 설명을 허용합니다.

SQLite에서 .schema를 사용하여 테이블 설명

테이블을 설명하는 구문은 다음과 같습니다.

.schema yourTableName

여기서 yourTableName은 설명이 필요한 테이블 이름이고 .schema는 사용해야 하는 명령입니다. 모든 테이블을 보려면 .tables 명령을 사용하십시오. 그러나 특정 테이블을 확인해야 하는 경우 .schema tablename 명령을 사용하십시오.

.schema 또는 sqlite_master의 쿼리가 출력을 제공하지 않는 경우 이는 존재하지 않는 테이블 이름을 나타냅니다.

SQLite에서 PRAGMA를 사용하여 테이블 설명

앞에서 언급했듯이 .schema 메서드는 지정된 테이블 이름으로 테이블을 설명하는 데 사용할 수 있습니다. 그러나 이 명령에서는 먼저 테이블을 만들어야 합니다.

다음으로 사용할 수 있는 방법은 PRAGMA 방법입니다. 이 명령을 사용하기 위한 구문은 다음과 같습니다.

PRAGMA table_info(tablename)

이 명령은 SQL describe 명령과 동일합니다. 열에 지정한 테이블의 모든 열에서 단일 행을 반환합니다.

PRAGMA table_xinfo(tablename)

이것은 이전 진술의 또 다른 버전입니다. 여기서 차이점은 문에 지정된 가상 테이블의 숨겨진 열을 반환한다는 것입니다.

이 경우 .schemaPRAGMA보다 테이블 제약 조건을 포함하여 테이블에 대한 자세한 내용을 표시할 수 있습니다.

올바른 형식의 모든 테이블에 대한 세부 정보가 필요한 경우 다음 명령을 사용하십시오.

.schema --indent

SQLite에서 sqlite_master를 사용하여 테이블 설명

다른 명령은 다음과 같습니다.

sqlite_master tablename

이것은 테이블을 설명하는 데 사용되는 명령입니다.

스키마 테이블

모든 SQLite 데이터베이스는 단독 스키마 테이블로 구성됩니다. 이 테이블은 목록과 트리거에서 데이터베이스 내부의 보기에 이르기까지 테이블의 모든 것을 설명하는 데이터베이스 스키마를 보유합니다.

스키마 테이블은 다음과 같습니다.

 CREATE TABLE sqlite_schema(
  type text,
  name text,
  tbl_name text,
  rootpage integer,
  SQL text
);

SQLite는 데이터베이스가 생성될 때 스키마 테이블을 생성하고 SQLite 사용자가 실행을 위해 명령문을 제출할 때 해당 콘텐츠를 계속 수정합니다.

정상적인 조건에서는 수정할 필요가 없습니다. 사용자가 수정하는 경우 데이터베이스 손상 위험을 감수해야 합니다.

sqlite_schema에는 sqlite_schema 테이블 자체에 대한 항목이 없는 경우를 제외하고 스키마의 각 테이블, 인덱스, 뷰 및 트리거에 대한 단일 행이 포함됩니다. sqlite_schema는 스키마 테이블에 대한 참조이며 sqlite_master, sqlite_temp_schemasqlite_temp_master와 같은 대체 이름이 있습니다.

여기서 마지막 두 가지 대안은 임시 데이터베이스에 사용됩니다. 모든 데이터베이스 연결과 연관됩니다.

스키마 테이블에 대해 이야기할 때 스키마는 type, name, tbl_name, root pageSQL과 같은 다양한 매개변수를 사용합니다.

type은 정의된 객체의 유형에 따라 뷰, 인덱스, 테이블 또는 트리거와 같은 텍스트 문자열을 의미합니다. 유형을 sqlite_schema.type으로 나타낼 수 있습니다. name은 개체의 열 저장소 이름을 지정합니다.

여기에서 테이블 생성 시 고유 및 기본 키 제약 조건을 지정할 수도 있습니다. 그러나 rowid 테이블에는 기본 키 제약 조건을 사용할 수 없으므로 sqlite_schema는 기본 키를 허용하지 않지만 SQLite 자동 인덱스는 기본 키를 사용합니다.

tbl_name은 테이블 이름 또는 뷰 이름을 저장하는 데 사용됩니다. tbl_namesqlite_schema_tbl_name으로 나타낼 수 있습니다.

루트 페이지는 테이블 및 인덱스에 대한 루트 트리 페이지의 페이지 번호를 저장하는 데 사용됩니다. sqlite_schema_rootpage로 표시합니다.

SQL은 다양한 명령을 제공합니다. 즉, 데이터베이스에 대해 실행할 수 있는 트리거를 만들 수 있습니다.

우리는 SQLsqlite_schem.sql로 나타냅니다. sqlite_schema.sql 열의 텍스트는 생성된 원래 CREATE 문 텍스트의 복사본입니다. 그러나 이전에 설명한 대로 정규화하고 ALTER TABLE 문을 진행하여 수정했습니다.

내부 인덱스의 경우 NULL입니다. 이들은 PRIMARY KEY 또는 UNIQUE 제약 조건에 의해 자동으로 생성됩니다.

SQLite에서 테이블 설명의 예

먼저 create table 문을 사용하여 테이블을 생성합니다.

create table employee (id integer primary key, name text not null, dept text not null, salary text not null);

이제 다음 명령을 입력하십시오.

PRAGMA table_info(employee);

앞에서 언급했듯이 이 명령은 테이블을 설명합니다.

.schema employee

이것은 또한 동일합니다:

SELECT SQL
FROM sqlite_master
WHERE tbl_name = 'employee';

여기서는 sqlite_master 명령의 SQL 매개변수를 추출하기 위해 sql_master와 함께 select 문을 사용했습니다.

작가: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

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

관련 문장 - SQLite Table