DataBase/SQL 32

[DB][SQL] Multi Table Queries _ Inner Join

1. 사전준비 그 전에 만들어 둔 파일들 삭제 DROP TABLE articles; 사전 셋팅으로 테이블 2개 생성하기 CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(50) NOT NULL ); CREATE TABLE articles ( id INTEGER PRIMARY KEY AUTOINCREMENT, title VARCHAR(50) NOT NULL, content VARCHAR(100) NOT NULL, userId INTEGER NOT NULL, FOREIGN KEY (userId) REFERENCES users(id) ); 테이블 생성이 잘 되었는지 sqlite explorer를 통해서 확인해 보기 특이한 점은 ar..

DataBase/SQL 2024.04.02

[DB][SQL] Multi Table Queries _ Join

▷ Join이 필요한 순간 테이블을 분리하면 데이터 관리가 쉬워질 수 있다. 하지만, 출력할 때 문제가 생긴다. 1개씩 떨어져있는 테이블을, 다른 테이블과 결합하여 출력하는 것이 필요해졌다. 이 때 사용하는 것이 'JOIN'이다. ▷ Join 절 둘 이상의 테이블에서 데이터를 검색하는 방법 Inner Join Left Join 두 테이블에서 값이 일치하는 레코드에 대해서만 결과를 반환 둘이 겹치는 거 오른쪽 테이블과 일치하는 레코드와 함께 왼쪽 테이블의 모든 레코드를 반환한다

DataBase/SQL 2024.04.02

[DB][SQL] 레코드 생성, 수정, 삭제 2

1. update 수정 articles 테이블 1번 레코드의 title 필드 값을 'update title'로 변경한다 UPDATE articles SET title = 'update Title' WHERE id = 1; articles 테이블 2번 레코드의 title, content 필드의 값을 각각 'update Title', 'update Content'로 변경한다 UPDATE articles SET title = 'update Title', content = 'update Content' WHERE id = 2; 2. Delete 삭제 artitcles 테이블의 1번 레코드 삭제 DELETE FROM articles WHERE id = 1; articles 테이블에서 작성일이 오래된 순서대로 레코..

DataBase/SQL 2024.04.02

[DB][SQL] 레코드 생성, 수정, 삭제 1

테이블에 레코드(행)을 생성하고 수정하고 지우기 -- INSERT INTO - 테이블에 레코드 넣는 SQL문 -- UPDATE - 테이블 레코드를 수정하는 SQL문 -- DELETE - 테이블에 레코드를 삭제하는 SQL문 1. 실습 테이블 생성 생성 후 sqlite sqlite explorer 새로고침을 하고 확인 해보기 CREATE TABLE articles ( id INTEGER PRIMARY KEY AUTOINCREMENT, title VARCHAR(100) NOT NULL, content VARCHAR(200) NOT NULL, createdAt DATE NOT NULL ); 참고로 DATE는 데이터타입이 아니라 sqlite에서 날짜 또는 시간을 표기할 때 제공해주는 함수다. 지금 예에서 보이는 ..

DataBase/SQL 2024.04.02

[DB][SQL] Type Affinity 타입 선호도

▷ Type Affinity 컬럼에 데이터 타입이 명시적으로 지정되지 않았거나 지원하지 않을 때 SQLite가 자동적으로 데이터 타입을 추론하는 것 ▷ Type Affinity의 목적 1. 유연한 데이터 타입 지원 데이터 타입을 명시적으로 지정하지 않고도, 데이터를 저장하고 조회할 수 있다 컬럼에 저장되는 값의 특성을 기반으로 데이터 타입을 유추한다 2. 간편한 데이터 처리 INTEGER Type Affinity를 가진 열에 문자열 데이터를 저장해도 SQLite는 자동으로 숫자로 변환하여 처리한다 3. SQL 호환성 다른 데이터베이스 시스템과 호환성을 유지한다. * 공식문서 https://sqlite.org/datatype3.html

DataBase/SQL 2024.04.02

[DB][SQL] ALTER 테이블 _ 필드 이름 바꾸기

▷ ALTER TABLE COLUMN 문법 RENAME COLUMN 키워드 뒤에 바꾸고 싶은 필드를 지정한다. TO 키워드 뒤에 새 이름을 지정하면 된다. 1. examples 테이블의 Address 필드 이름을 PostCode로 변경하기 ALTER TABLE examples RENAME COLUMN Address TO PostCode; 참고로 sqlite는 컬럼(필드)만 따로 수정이 불가하다. 컬럼을 수정하고 싶다면.. 테이블의 이름을 바꾼 후, 새 테이블을 만들고 데이터를 새 테이블에 복사해서 컬럼 수정을 해야 한다

DataBase/SQL 2024.04.02