본문 바로가기

 

순서

  1. SQLite3 Tool 실행, 종료, 도움말
  2. SQLite3 DB File 생성, 삭제
  3. SQLite3 DB Table 생성, 삭제
  4. SQLite3 DB Table Values 생성, 조회, 갱신, 삭제

 

 

아래와 같은 형태로 Data 모델을 사용하기 위해서, Table 을 생성한다고 이해하시면 됩니다.

 

 

파일 구조에서, field(필드)는 파일을 구성하는 요소 중에서 의미를 갖는 가장 작은 논리적 단위이다.

 

 

SQLite 저장 Data Type

 

데이터 타입 설명
NULL NULL
INTEGER 부호있는 정수. 1, 2, 3, 4, 6, or 8 바이트로 저장
REAL 부동 소수점 숫자. 8 바이트로 저장
TEXT 텍스트. UTF-8, UTF-16BE or UTF-16-LE 중 하나에 저장
BLOB Binary Large OBject. 입력 데이터를 그대로 저장

 

데이터베이스에서는 컬럼별로 데이터 타입을 지정한다.

SQLite3는 테이블을 만들 때에 컬럼에 데이터 타입을 지정하는 수 있는데 필수는 아니다.

데이터 타입을 지정하지 않은 컬럼은 다양한 형태의 값이 저장 될 수 있다.

 

단지 데이터 유형을 지정하지 않은 경우에도 컬럼에 저장된 값이 어떤 데이터 타입인지를 구분하고 NULL, INTEGER, REAL, TEXT, BLOB 이렇게 5가지 데이터 타입으로 분류 된다.

 

SQL 문에 작성 된 값의 작성 방법에 따라 그 값의 데이터 유형을 결정된다. 예를 들어 작은 따움표(’)로 둘러싸여 있으면 TEXT 타입으로, 소수점도 지수도 없으면 INTEGER 타입으로, 소수점 또는 지수가 있으면 REAL 타입으로 결정된다.

 

create table test (val1, val2);
insert into test values(null, 51);
insert into test values(3.14, 'hello');
insert into test values('Good Morning', 1.3e-2);

 

아래 처럼 출력된다.

 

 

SQLite 지정 Data Type

 

데이터 타입 설명
NONE NONE 타입의 컬럼의 경우는 변환이 처리가 없다.
INTEGER INTEGER 타입의 컬럼에 정수로 나타낼 수 있는 REAL 타입의 값(예 : 34.0 등), 또는 같은 타입의 TEXT 타입의 값이 포함된 경우 INTEGER 형으로 변환되어 저장된다.
REAL REAL 타입의 컬럼에 INTEGER 값이 포함 된 경우 REAL 타입으로 변환되어 저장한다.
TEXT TEXT 타입의 컬럼에 INTEGER 또는 REAL 데이터 타입의 값이 포함 된 경우, TEXT 타입으로 변환 되어 저장된다.
NUMERIC NUMERIC 타입의 컬럼에 TEXT 타입의 값이 포함 된 경우, INTEGER 타입 또는 REAL 타입으로 변환을 해보고 성공하면 데이터 타입으로 저장되지만, 실패하면 TEXT 타입 그대로 저장된다.

 

SQLite3에서 컬럼에 지정 가능한 타입은 TEXT, NUMERIC, INTEGER, REAL, NONE 이렇게 5 가지다

 

예시)

CREATE TABLE IF NOT EXISTS "tbl1"(
"No" INTEGER NOT NULL,
"Id" TEXT NOT NULL,
"Pw" TEXT NOT NULL,
"Age" INTEGER,
"Name" TEXT,
"Ph" TEXT,
"Birth" TEXT,
"Active" INTEGER NOT NULL,
PRIMARY KEY("No" AUTOINCREMENT)
);

 

 

DML

Data Manipulation Language

데이터 조작 언어

DML은 데이터를 추가, 삭제, 갱신, 조회하는 데 사용한다

INSERT, DELETE, UPDATE, SELECT 문이 DML에 있다.

 

 

CRUD

 

데이터베이스 관리 시스템(DBMS)에서 데이터를 다루는 생성(Create), 조회(Read), 갱신(Update), 삭제(Delete)  4가지 방법을 의미합니다. 컴퓨터 프로그램이 데이터를 처리하기 위해 필요한 기능들이기 때문에 간단하면서도 매우 중요한 요소입니다.

 

이는 데이터 베이스를 사용하기 위한 기초적인 4가지 쿼리 형식으로

 

생성(Create)으로 표에 데이터를 생성하고,

조회(Read)로 표의 데이터를 읽고,

갱신(Update)으로 새로운 데이터를 표에 추가하고,

삭제(Delete)로 표의 데이터를 삭제합니다.

 

이름 기능 SQL
Create 생성 INSERT
Read 읽기 SELECT
Update 갱신 UPDATAE
Delete 삭제 DELETE

 

 

 

INSERT - 데이터 생성(Create)

 

INSERT 문을 사용하여 테이블에 데이터를 추가하는 방법

 

INSERT INTO 테이블명 VALUES (값1, 값2, ...);
INSERT INTO test VALUES(null, '테스트', sysdate(), '공부', '0000');

sysdate()는 날짜를 기록한다.

 

모든 컬럼에 데이터 추가하기

 

 

특정 컬럼에 데이터 추가하기

 

 

 

데이터 조회(Read)

 

정보를 읽는다는 의미다.

SQL은 SELECT 명령어로 필요한 데이터를 조회할 수 있다.

 

모든 컬럼 한번에 조회

 

SELECT * FROM 테이블명

 

 

특정 컬럼만 조회

 

SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명;

 

 

 

컬럼명 변경해서 조회하는 방법

 

 

 

 

데이터 갱신(Update)

 

기존의 정보를  수정하는 의미다.

UPDATE 문을 사용하여 테이블에 저장되어 있는 데이터를 새로운 값으로 수정

 

UPDATE 테이블명 SET 컬럼명 1 = 값1, 컬럼명2 = 값2, ... WHERE 조건식;

 

 

만약에 WHERE 가 없다면?

 

 

데이터 삭제(Delete)

 

기존의 정보를 삭제한다는 의미다.

DELETE 문을 사용하여 테이블에 저장되어 있는 데이터를 삭제

DELETE FROM 테이블명 WHERE 조건식;

 

 

기본적으로 데이터에 삭제라는 개념은 없다.

 

 

 

 

 

 

 

 

5. Database 에 Table 만들기

 

이제 본격적으로 data를 구조적으로 관리하기 위한 Table을 만들어야 한다.

 

5.1 Database를 새로 생성하여 연결하거나, 기존에 만들어 놓은 Database 연결을 확인한다.

 

5.2 member.db 라는 데이터베이스 파일에, student 라는 테이블을 생성한다.

 

데이터베이스 파일에 테이블을 생성하기 위해서, CREATE TABLE 이라는 SQL 문법을 사용한다.

 

CREATE TABLE <table name>( <column name> <data type> <column constraint> <table constraint>);

 

CREATE TABLE <table name> : 생성할 테이블 이름을 지정합니다.

 

<column name> <data type> : 컬럼 이름은 테이블의 열 이름입니다. 컬럼의 데이터 타입을 지정합니다.

 

<column constraint> : (옵션) NOT NULL 과 같은 추가 조건 사항입니다.

 

<table constraint> : (옵션) PRIMARY KEY 와 같은 선택하항입니다.

 

 

학생 테이블 생성 예시

CREATE TABLE student (
    id INTEGER PRIMARY KEY,
    first_name TEXT,
    last_name TEXT,
    age INTEGER,
    student_email TEXT NOT NULL,
    class TEXT
    );

 

 

5.3 일반적으로 CREATE TABLE 은 main 으로 연결된 DB 파일에 테이블을 생성하기 때문에, 연결된 DB 파일이 여러개라면, 테이블 이름을 지정할 때 보다 명시적으로 아래와 같이 지정한다.

 

CREATE TABLE test.student (
    id INTEGER PRIMARY KEY,
    first_name TEXT,
    last_name TEXT,
    age INTEGER,
    student_email TEXT NOT NULL,
    class TEXT
    );

 

 

 

 


 

1. 데이터와 정보, 기본자료형과 복합자료형을 먼저 이해한다.

 

data: 가공되지 않은 자료

information: 의미가 부여되어 특정 형태로 가공된 자료

기본 자료형과 복합 자료형을 관점으로 data와 information을 사용하는 방법을 이해한다.

 

2. 실제 사용되는 테이블 형태를 기반으로 이해한다.

 

복합 자료형 관점에서 column(열), attribute(속성) 용어를 이해한다.

attribute(속성) = column(열) 

 

회원관리에는 어떤 데이터들이 저장되어야 하는가?

프로그래밍에서 회원 정보를 다루는 로직을 만든다면, 기본 자료형이 같은 Data 가 여러 개 저장될 경우는? 

 

information 관점에서 

Tuple(튜플) = row(행, 로우) = record(레코드)

 

Tuple 어원
어떤 순서를 따르는 요소들을 포함한 집합

(a, b) -> pairs
(a, b, c) -> triples
(a, b, c, d) -> quadruples
(a, b, c, d, e) -> quintuples

 

 

 

BasicLike

어? 나 프로그래밍 좋아하네?