SQL Lite 사용 방법

SQL Lite 사용 방법 #

초기 설정 #

설치 #

brew install sqlite3

실행 #

sqlite3 mydb.db

SQLite Shell 명령어 #

.tables #

.tables person

.schema #

.schema person

.exit #

.exit

.backup #

.backup main b_mydb.db

SQL #

DDL (Data Definition Language: 데이터 정의 언어) #

TABLE #

CREATE TABLE #
CREATE TABLE person (
	id INTEGER NOT NULL,
	name TEXT NOT NULL,
	age INTEGER,
	PRIMARY KEY (id AUTOINCREMENT)
);
ALTER TABLE #
ALTER TABLE person ADD COLUMN salary INTEGER NOT NULL;
DROP TABLE #
DROP TABLE person;

VIEW #

CREATE VIEW #
CREATE VIEW name_person AS
SELECT name FROM person;
DROP VIEW #

INDEX #

  • 인덱스는 데이터를 빠르게 찾도록 도와주는 목차 같은 구조입니다.
  • 인덱스로 검색하면 전체 데이터를 다 보지 않고 원하는 데이터를 바로 찾아가기 때문에 훨씬 빠릅니다.
  • 단, 인덱스는 검색은 빠르게 하지만 삽입/갱신 시 성능에 약간의 영향을 줄 수 있으니 꼭 필요한 컬럼에만 사용하는 게 좋아요.
CREATE INDEX #
CREATE INDEX index_person ON person(name);
DROP INDEX #

DML (Data Manipulation Language: 데이터 조작 언어) #

SELECT #

SELECT * FROM person;

INSERT INTO #

INSERT INTO person (name, age) VALUES ('사원1', 28);

UPDATE #

UPDATE person SET name = '사원2' WHERE name = '사원1';

DELETE #

DELETE FROM person;

WHERE #

SELECT * FROM person WHERE name = '사원1';
SELECT * FROM person WHERE name IS NOT NULL;

ORDER BY #

SELECT * FROM person ORDER BY age;

DESK #

SELECT * FROM person ORDER BY age DESC;

LIKE #

SELECT * FROM person WHERE name LIKE '사원%'

AS #

SELECT
	id AS '사원 번호',
	name AS '사원 이름',
FROM person;
-- | 사원 번호 | 사원 이름 |
-- | 1         | 사원1     |
-- | 2         | 사원2     |

SELECT
	id '사원 번호',
	name '사원 이름',
FROM person;

CASE #

SELECT name, salary,
CASE
    WHEN salary < 3000000 THEN '신입'
    WHEN salary >= 3000000 AND salary < 4000000 THEN '사원'
    WHEN salary >= 4000000 AND salary < 5000000 THEN '대리'
    WHEN salary >= 5000000 AND salary < 7000000 THEN '과장'
    ELSE '임원'
END AS position
FROM person;

round() #

SELECT round(12.34567, 2) -- 12.34

substr() #

SELECT substr('abcdefg', 2); -- bcdefg
SELECT substr('abcdefg', 3, 4); -- cdef

strftime() #

SELECT strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime');

기타 #

PRAGMA #

PRAGMA table_info(person);

EXPLAIN QUERY PLAN #

-- 이렇게 입력하면 SQLite가 어떻게 검색할지를 알려줘요.
EXPLAIN QUERY PLAN SELECT * FROM person WHERE name = '사원1';