MySQL에서 작은따옴표(') 삽입하기
MySQL에 작은따옴표(')와 같은 특수 문자를 삽입하려면 역슬래시(\)를 붙인 이스케이프 문자 \'를 사용해야 합니다. 작은따옴표는 문자열을 감싸는 구분 기호로 해석되기 때문에, 그대로 입력하면 쿼리 오류가 발생합니다.
기본 문법
INSERT INTO yourTableName(yourColumnName) VALUES('yourValue\'s');예제 테이블 생성
실제 동작을 확인하기 위해 먼저 테이블을 생성해 보겠습니다.
mysql> CREATE TABLE AvoidInsertErrorDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Sentence text
-> );
Query OK, 0 rows affected (0.53 sec)
작은따옴표가 포함된 데이터 삽입
이제 INSERT 문에 이스케이프 문자 \'를 사용하여 작은따옴표가 포함된 문자열을 삽입합니다.
mysql> INSERT INTO AvoidInsertErrorDemo(Sentence) VALUES('a woman\'s hat');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO AvoidInsertErrorDemo(Sentence) VALUES('Mrs. Chang\'s house');
Query OK, 1 row affected (0.31 sec)결과 확인
SELECT 문으로 저장된 데이터를 조회합니다.
mysql> SELECT * FROM AvoidInsertErrorDemo;
실행 결과는 다음과 같습니다.
+----+--------------------+
| Id | Sentence |
+----+--------------------+
| 1 | a woman's hat |
| 2 | Mrs. Chang's house |
+----+--------------------+
2 rows in set (0.00 sec)
참고: 다른 대체 방법
- 작은따옴표 두 번 사용: 문자열 안에서 작은따옴표를 두 번 연속 입력(예: 'a woman''s hat')하면 하나의 작은따옴표로 처리됩니다.
- 큰따옴표로 문자열 감싸기: ANSI_QUOTES 모드가 비활성화된 경우 "a woman's hat"처럼 큰따옴표로 묶어도 됩니다.
- 프리페어드 스테이트먼트(Prepared Statement): 실무에서는 SQL 인젝션 방지를 위해 매개변수 바인딩 방식을 사용하는 것이 가장 안전합니다.