[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

💻 CS/데이터베이스

SQLite - 기초문법

inu 2020. 7. 7. 14:55
반응형

CRUD?

  • 데이터베이스의 기초 기능
  • Create, Read, Update, Delete 로 구성

데이터베이스 구조

  • 하나의 데이터 베이스에 여러개의 '테이블'이 저장되어 있는 형태이다.
  • 여러 종류의 데이터를 한 테이블에 통합해놓으면 중복하는 정보가 많아질 수 있기 때문에 여러 테이블로 분산하여 저장한다.
  • 여러개의 테이블로 분산해놓고 일정 데이터값(이름, ID 등)을 통해 각 테이블 접속(연결)이 가능하다.

SQL (Structured Query Language): SQLiteStudio

  • SQLiteStudio는 사용하기 쉬운 SQL 개발환경이다.
  • https://sqlitestudio.pl/
  • 설치과정없이 압축을 풀고 바로 사용가능

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; -- 작동 함.
  • -- 혹은 /* */ 으로 주석처리 가능
반응형

'💻 CS > 데이터베이스' 카테고리의 다른 글

데이터베이스 모델링 개념  (0) 2021.05.02
Mysql - 기초명령어 정리  (0) 2021.01.20
SQLite - 기본함수  (0) 2020.07.08
SQLite - DB 생성과 변경  (0) 2020.07.08
DB와 SQL  (0) 2020.07.07