CREATE: 테이블 생성INSERT: 데이터 삽입DELETE: 데이터 삭제UPDATE: 데이터 수정SELECT: 데이터 조회데이터베이스에 데이터를 테이블을 생성 하기 위해 CREATE 명령을 사용합니다.
# SQL
CREATE TABLE 테이블명 (
필드이름1 데이터타입 제약조건,
필드이름2 데이터타입 제약조건,
...
);
CREATE TABLE: 새로운 테이블을 생성하기 위한 SQL 명령어테이블명: 생성할 테이블의 이름을 지정필드이름 (Column Name): 테이블의 각 열을 정의하는 이름데이터타입 (Data Type): 필드에 저장될 데이터의 유형을 지정INTEGER: 정수 값.REAL: 실수 값.TEXT: 문자열 값.BLOB: 이진 데이터(파일, 이미지 등).DATE, DATETIME: 날짜와 시간.name TEXT, age INTEGER.제약조건 (Constraint): 필드에 적용할 규칙을 지정PRIMARY KEY: 기본 키로, 필드 값이 고유하며 NULL일 수 없습니다.AUTOINCREMENT: 숫자 필드가 자동으로 증가합니다(주로 PRIMARY KEY와 함께 사용).NOT NULL: 필드가 NULL 값을 가질 수 없습니다.UNIQUE: 필드 값이 고유해야 합니다.DEFAULT: 기본값을 지정합니다.FOREIGN KEY: 다른 테이블의 필드와 관계를 정의합니다.id INTEGER PRIMARY KEY AUTOINCREMENT, age INTEGER NOT NULL.# SQL
CREATE TABLE IF NOT EXISTS members (
mem_id INTEGER PRIMARY KEY AUTOINCREMENT,
mem_name TEXT NOT NULL,
mem_age INTEGER
);
CREATE TABLE members: members 테이블을 생성IF NOT EXISTS: 동일한 이름의 테이블이 이미 존재하면 테이블을 새로 생성하지 않도록 합니다.mem_id INTEGER PRIMARY KEY AUTOINCREMENT: mem_id 필드는 고유 값으로 자동 증가합니다.mem_name TEXT NOT NULL: mem_name 필드는 반드시 값을 가져야 합니다.mem_age INTEGER: mem_age 필드는 정수를 허용하며, NULL 값을 가질 수 있습니다.import sqlite3
# SQLite 데이터베이스 연결 (파일 이름: test.db)
con = sqlite3.connect("test.db")
cur = con.cursor() # 커서 생성
# SQL 테이블 생성 명령어 작성
sql = """
CREATE TABLE IF NOT EXISTS members (
mem_id INTEGER PRIMARY KEY AUTOINCREMENT,
mem_name TEXT NOT NULL,
mem_age INTEGER
);
"""
# SQL 명령어 실행
cur.execute(sql)
# 변경 사항 저장
con.commit()
# DB 연결 종료
con.close()
print("테이블 생성 완료")
sqlite3.connect("test.db"): 데이터베이스 파일과 연결하거나 없으면 새로 생성.cur = con.cursor(): SQL 명령을 실행하기 위한 커서 객체를 생성.sql: 데이터 삽입을 위한 SQL 명령.data: SQL 명령에 사용할 데이터(튜플 형태).cur.execute(sql): SQL 문을 실행.con.commit(): 변경 사항을 데이터베이스에 저장.con.close(): 데이터베이스 연결 해제.데이터베이스에 데이터를 추가하기 위해 INSERT 명령을 사용합니다.
INSERT INTO 테이블명 (필드이름1, 필드이름2, ...) VALUES (값1, 값2, ...);
INSERT INTO: 데이터를 추가할 테이블을 지정.필드이름1, 필드이름2, ...: 값을 삽입할 테이블의 필드(열) 이름.VALUES: 삽입할 실제 값들.테이블 members에 데이터를 추가:
INSERT INTO members (name, age) VALUES ('홍길동',150);
name 필드에 '홍길동'을 입력.age 필드에 150을 입력.import sqlite3
# SQLite 데이터베이스 연결
con = sqlite3.connect("test.db") # test.db는 데이터베이스 파일 이름
cur = con.cursor() # 커서 생성
# SQL INSERT 문 작성
sql = "INSERT INTO test_table (mem_name, mem_age) VALUES (?, ?)"
# SQL문에서 사용할 데이터 정의
data = ("홍길동", 150)
# SQL 실행
cur.execute(sql, data)
# 변경 사항 저장
con.commit()
# DB 연결 종료
con.close()
print("데이터 삽입 완료")
sqlite3.connect("test.db"): 데이터베이스 파일과 연결하거나 없으면 새로 생성.cur = con.cursor(): SQL 명령을 실행하기 위한 커서 객체를 생성.sql: 데이터 삽입을 위한 SQL 명령.data: SQL 명령에 사용할 데이터(튜플 형태).cur.execute(sql, data): SQL 문에 데이터를 적용하여 실행.con.commit(): 변경 사항을 데이터베이스에 저장.con.close(): 데이터베이스 연결 해제.데이터베이스에서 특정 조건에 맞는 데이터를 삭제하려면 DELETE 명령을 사용합니다.
DELETE FROM 테이블 명 WHERE 조건
DELETE FROM: 데이터를 삭제할 테이블을 지정.WHERE 조건: 삭제할 데이터를 필터링하는 조건. 조건이 없으면 테이블의 모든 데이터가 삭제됩니다.DELETE FROM members WHERE id = 1;
test_table에서 id가 1인 데이터를 삭제import sqlite3
# 데이터베이스 연결
con = sqlite3.connect("test.db") # test.db는 데이터베이스 파일 이름
cur = con.cursor() # 커서 생성
# DELETE SQL 문 작성
sql = "DELETE FROM test_table WHERE mem_id = ?"
# 삭제할 데이터의 ID
delete_id = 1
# SQL 실행
cur.execute(sql, (delete_id,))
# 변경 사항 저장
con.commit()
# DB 연결 종료
con.close()
print("데이터 삭제 완료")
DELETE FROM members WHERE mem_id = ?: 삭제할 데이터의 조건을 지정.?: 삭제 조건의 값을 동적으로 지정할 수 있는 플레이스홀더.cur.execute(sql, (delete_id,)): delete_id 값을 SQL에 전달하여 삭제 명령 실행.(delete_id,): sqlite3의 execute() 메서드는 SQL 쿼리의 파라미터를 튜플 또는 리스트 형태로 받아들입니다.DELETE FROM members;
데이터베이스에서 특정 데이터의 값을 수정하려면 UPDATE 명령을 사용합니다.
UPDATE 테이블명 SET 컬럼명1 = 새값1, 컬럼명2 = 새값2, ... WHERE 조건;
UPDATE 테이블명: 데이터를 수정할 테이블을 지정합니다.SET: 수정할 열(column)과 새로운 값을 설정합니다.WHERE 조건: 수정할 데이터를 필터링하는 조건을 지정합니다. 조건이 없으면 모든 데이터가 수정됩니다.UPDATE members SET mem_age = 43 WHERE mem_name = '홍길동';
members 테이블에서 mem_name이 '홍길동'인 데이터의 mem_age를 43으로 수정import sqlite3
# SQLite 데이터베이스 연결
con = sqlite3.connect("test.db") # test.db는 데이터베이스 파일 이름
cur = con.cursor() # 커서 생성
# UPDATE SQL 문 작성
sql = "UPDATE members SET mem_age = ? WHERE mem_name = ?"
# 수정할 데이터 설정
input_age = 43
input_name = "홍길동"
data = (input_age, input_name)
# SQL 실행
cur.execute(sql, data)
# 변경 사항 저장
con.commit()
# DB 연결 종료
con.close()
print("데이터 수정 완료")
데이터베이스에서 데이터를 조회할 때는 SELECT 명령을 사용합니다.
SELECT 컬럼명1, 컬럼명2, ... FROM 테이블명 WHERE 조건;
SELECT: 가져올 데이터를 선택합니다.컬럼명: 조회할 열(column)을 지정합니다.*는 모든 컬럼을 조회한다는 의미입니다.FROM 테이블명: 데이터를 가져올 테이블을 지정합니다.WHERE 조건: 데이터를 필터링하는 조건을 지정합니다. 조건이 없으면 모든 데이터가 조회됩니다.SELECT * FROM members WHERE mem_age > 10
members 테이블에서 mem_age가 10보다 큰 데이터를 모두 조회.import sqlite3
# SQLite 데이터베이스 연결
con = sqlite3.connect("test.db") # test.db는 데이터베이스 파일 이름
cur = con.cursor() # 커서 생성
# SELECT SQL 작성
sql = "SELECT * FROM members WHERE mem_age > ?"
# 조건에 사용할 데이터 준비
age_filter = 10
# SQL 실행
cur.execute(sql, (age_filter,))
# 조회된 데이터 가져오기
test_data = cur.fetchall()
# DB 연결 해제
con.close()
# 조회 결과 출력
print("조회된 데이터:", test_data)
cur.fetchall(): 조회된 모든 데이터를 리스트 형태로 반환합니다.fetchone(): 첫 번째 결과만 반환.fetchmany(size): 지정된 수의 결과를 반환.