SQLite CRUD

장서연·2021년 6월 29일
0
  • SQL의 기본연산은 CRUD
  • F9 로 한줄 실행시킬 수 있음
  • 실행시키고 싶은 줄 한줄 드래그선택하여 실행가능
  • LIMIT 다음에 OFFSET 와야됨. 순서주의
  • SQLite에서 컬럼이름 바꾸는 것은 매우 번거로움
  • 내림차순 정렬 DESC
  • 컬럼과 컬럼과의 연산 쌉가능
  • WHERE의 경우, 조건은 열에 걸어서 데이터는 행을 가져옴
  • SQLite의 자료형은 5개
  • 테이블 전체보기하면 현재 테이블과 더불어sqlite_sequence도 나오는데, sqlite_sequence 테이블은 sqlite 내부 관리테이블임.
CREATE TABLE IF NOT EXISTS test (a INT, b TEXT, c TEXT);
SELECT * FROM sqlite_master WHERE TYPE = "table"; --테이블 목록 (SQLite)
INSERT INTO test VALUES (1,'That','Right here!');
INSERT INTO test (b,c) VALUES ('That', 'Over there!');
SELECT * FROM test;
-- 다른 테이블에서 SELECT 로 가져온 결과로 행추가 가능
INSERT INTO test (a,b,c) SELECT id, name, description FROM item;
SELECT * FROM test;

-- UPDATE + SET 로 특정 행의 특정 컬럼값을 변경할 수 있다.
UPDATE test SET c = NULL WHERE a =2;
SELECT * FROM test;

UPDATE test SET (b,c) = ('T-Rex', 'Toy dinosaur') WHERE a =2;
SELECT * FROM test;

-- DELETE FROM으로 특정 행을 삭제할 수 있다.
DELETE FROM test WHERE a=2;
DELETE FROM test WHERE a=1;
SELECT * FROM test;
DELETE FROM test; -- 주의! 모든 행 삭제! 단 테이블은 남음
SELECT * FROM test;

-- DROP TABLE 로 특정 테이블을 삭제할 수 있음
DROP TABLE test; -- 데이터베이스에서 "test" 테이블 삭제

-- NULL은 값이 아니라 결측지를 의미하며, 0또는 ''(공백)과는 다르다.
CREATE TABLE test (a INT, b TEXT, c TEXT);
INSERT INTO test (b,c) VALUES ('This','That'); -- 'a'에는 공백을 넣어줌
INSERT INTO test (a,b,c) VALUES(2,'These', 'Those'); -- Null없이 행 추가
SELECT * FROM test; -- NULL 포함 다 보여줌

SELECT * FROM test WHERE a = NULL; -- 작동안함
SELECT * FROM test WHERE a IS NULL; -- 작동함
SELECT * FROM test WHERE a IS NOT NULL; -- 작동함

SELECT COUNT(*) FROM test WHERE a is NULL; --'a' 컬럼의 NULL 수 세어줌.

0개의 댓글