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)
이것은 이전 진술의 또 다른 버전입니다. 여기서 차이점은 문에 지정된 가상 테이블의 숨겨진 열을 반환한다는 것입니다.
이 경우 .schema
는 PRAGMA
보다 테이블 제약 조건을 포함하여 테이블에 대한 자세한 내용을 표시할 수 있습니다.
올바른 형식의 모든 테이블에 대한 세부 정보가 필요한 경우 다음 명령을 사용하십시오.
.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_schema
및 sqlite_temp_master
와 같은 대체 이름이 있습니다.
여기서 마지막 두 가지 대안은 임시 데이터베이스에 사용됩니다. 모든 데이터베이스 연결과 연관됩니다.
스키마 테이블에 대해 이야기할 때 스키마는 type
, name
, tbl_name
, root page
및 SQL
과 같은 다양한 매개변수를 사용합니다.
type
은 정의된 객체의 유형에 따라 뷰, 인덱스, 테이블 또는 트리거와 같은 텍스트 문자열을 의미합니다. 유형을 sqlite_schema.type
으로 나타낼 수 있습니다. name
은 개체의 열 저장소 이름을 지정합니다.
여기에서 테이블 생성 시 고유 및 기본 키 제약 조건을 지정할 수도 있습니다. 그러나 rowid
테이블에는 기본 키 제약 조건을 사용할 수 없으므로 sqlite_schema
는 기본 키를 허용하지 않지만 SQLite 자동 인덱스는 기본 키를 사용합니다.
tbl_name
은 테이블 이름 또는 뷰 이름을 저장하는 데 사용됩니다. tbl_name
을 sqlite_schema_tbl_name
으로 나타낼 수 있습니다.
루트 페이지
는 테이블 및 인덱스에 대한 루트 트리 페이지의 페이지 번호를 저장하는 데 사용됩니다. sqlite_schema_rootpage
로 표시합니다.
SQL은 다양한 명령을 제공합니다. 즉, 데이터베이스에 대해 실행할 수 있는 트리거를 만들 수 있습니다.
우리는 SQL
을 sqlite_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
문을 사용했습니다.
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