CRUD?
- 데이터베이스의 기초 기능
- Create, Read, Update, Delete 로 구성
데이터베이스 구조
- 하나의 데이터 베이스에 여러개의 '테이블'이 저장되어 있는 형태이다.
- 여러 종류의 데이터를 한 테이블에 통합해놓으면 중복하는 정보가 많아질 수 있기 때문에 여러 테이블로 분산하여 저장한다.
- 여러개의 테이블로 분산해놓고 일정 데이터값(이름, ID 등)을 통해 각 테이블 접속(연결)이 가능하다.
SQL (Structured Query Language): SQLiteStudio
SQL 기초문법 : CREATE
CREATE TABLE [테이블이름] ([COL이름], ...)
- CRUD 중 CREATE에 해당하는 기능이다.
- ex. CREATE TABLE test ( a INT, b TEXT, c TEXT );
- SHOW TABLES 구문으로 테이블 목록확인 (비 SQLite)
- SELECT * FROM sqlite_master WHERE TYPE = "table"; (SQLite에서는 해당 구문으로 테이블 목록 확인)
SQL 기초문법 : SELECT
SELECT [불러올 COL] FROM [불러올 테이블]
- CRUD 중 READ에 해당하는 기능이다.
- 기본 형태에 각종 구문을 추가해 테이블을 다양한 형태로 불러올 수 있다.
- ORDER BY, DESC / AS / WHERE, BETWEEN, LIKE, IN / DISTINCT 등 다양한 구문이 존재한다.
- GROUP BY 를 통해 특정 COL이 일치하는 ROW들을 하나로 만들어 출력할 수도 있다.
- SELECT로 임의의 테이블을 불러오고, 해당 테이블에서 다시 추출된 결과를 출력할수도 있다.
- ex. SELECT COUNT(*) FROM (SELECT DISTINCT CountryCode FROM City);
SQL 기초문법 : INSERT
INSERT INTO [대상테이블] VALUES ([각 COL에 해당하는 값], ...)
- CRUD 중 UPDATE에 해당하는 기능이다.
- 지정되지 않은 값이 있으면 자동으로 NULL로 처리된다.
- ex. INSERT INTO test VALUES ( 1, 'This', 'Right here!' );
- 특정 테이블에서 값들을 가져와 사용할 수도 있다. 이 경우 여러 값들이 동시에 추가될 수 있다.
- ex. INSERT INTO test ( a, b, c ) SELECT id, name, description FROM item;
SQL 기초문법 : UPDATE
UPDATE [대상 테이블] SET [바꿀내용] WHERE [조건]
- CRUD 중 UPDATE에 해당하는 기능이다.
- ex. UPDATE test SET c = 'Extra funny.' WHERE a = 2;
SQL 기초문법 : DELETE
DELETE FROM [대상테이블] WHERE [조건]
- CRUD 중 DELETE에 해당하는 기능이다.
- ex. DELETE FROM test WHERE a = 2;
- WHERE을 사용하지 않고 조건을 주지 않으면 모든 ROW가 삭제된다.
- DROP TABLE [대상테이블] 은 테이블 자체를 완전히 삭제하는 구문이다.
CF
- NULL은 값이 아니라 결측치를 의미하며 0 또는 ' ' (공백)과는 다르다.
- SELECT * FROM test WHERE a = NULL; -- 작동 안함.
- SELECT * FROM test WHERE a IS NULL; -- 작동 함.
- -- 혹은 /* */ 으로 주석처리 가능