drop table if exists testtbl;
create table testtbl
(
id int auto_increment,
name varchar(10),
in_date date
);
테이블 생성
select id, name, in_date from testtbl
join 연결 테이블 a on a column = b column
where 조건
group by 그룹 기준 column
order by 정렬 기준 desc/asc
limit 제한수;
테이블 조회
SELECT
review_id,
score,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
WHEN score >= 60 THEN 'D'
ELSE 'F'
END AS grade
FROM review;
select 조회시 조건 검색
INSERT INTO review (
user_id,
product_id,
score,
comment,
created_at
)
VALUES (
p_user_id,
p_product_id,
p_score,
p_comment,
CURDATE()
);
insert 문법
update testtbl
set name = change_name
where 조건;
테이블 업데이트
alter table testtbl
add column extra_colume int;
alter table testtbl
modify extra_colume char(10);
alter table testtbl
drop column extra_column;
테이블 수정
delimiter $$
create function testfunc(test_int int)
returns int
deterministic
begin
if test_int / 4 < 2 then
return 1;
else
return 0;
end if;
end $$
delimiter ;
스토어드 함수
delimiter $$
create procedure testproc(test_int int, test_char char(1))
main:begin
if test_int / 2 = 0 then
select '짝수';
leave main;
elseif not exists (select 1 from testtbl where name = test_char) then
select '찾는 이름 없음';
leave main;
end if;
end $$
delimiter ;
스토어드 프로시저
delimiter $$
create trigger test_trigger
before/after update/insert/delete on testtbl
for each row
begin
-- [핵심] NEW와 OLD
-- INSERT 시: NEW.컬럼명 (들어온 값)
-- UPDATE 시: NEW.컬럼명 (새 값), OLD.컬럼명 (옛날 값)
-- DELETE 시: OLD.컬럼명 (지워진 값)
UPDATE 다른테이블
SET 카운트 = 카운트 + 1
WHERE ID = NEW.ID; -- [주의] WHERE 조건 필수!
end $$
delimiter ;
트리거
import pymysql
# 1. 연결
conn = pymysql.connect(host='localhost', user='root', password='...', db='...', charset='utf8')
cur = conn.cursor()
# 2. SQL 준비 (%s 사용)
sql = "SELECT * FROM question WHERE question_id = %s"
# 3. 실행 (튜플로 전달)
input_id = 1
cur.execute(sql, (input_id,))
# 4. 결과 받기
rows = cur.fetchall() # 전체 다 가져오기
# 5. 출력 (f-string 포맷팅)
for row in rows:
print(f"{row[0]:<10} {row[1]}")
# 만약 insert 같은것이 있다면
conn.commit()
# 6. 마무리
conn.close()
pymysql 사용
'공부 > 데이터베이스' 카테고리의 다른 글
| 데이터베이스 (2025 11 17) (0) | 2025.11.17 |
|---|---|
| 데이터베이스 (2025 11 12) (1) | 2025.11.12 |
| 데이터베이스 - SQL, join table (0) | 2025.11.03 |
| 12. 데이터베이스 응용 기술 / 총 정리 (0) | 2025.09.16 |
| 12. 데이터베이스 응용 기술 / 02 객체관계 데이터베이스 / 03 분산 데이터베이스 시스템 (0) | 2025.09.16 |