티스토리 뷰
'a string'
"another string"
문자열은 작은따옴표(')나 큰따옴표(")로 이루어질 수 있습니다.
'a string'
'a' ' ' 'string'
문자열은 여러 개의 따옴표를 같이 쓰게 되면 concat(합치다)의 효과를 낼 수 있습니다. 아래 실제 실행 결과를 보시면 알 수 있습니다.
그리고 특별하게 binary set 도 문자열로 구분한다고 합니다. binary 의 경우에는 일반적으로 0x값 형태로 이루어진다고 하는데요. 아래 예시를 보도록 하겠습니다.
0x414243 이라는 binary set 이 "ABC"라는 문자열과 일치하여 1(True/참) 값이 나온 걸 볼 수 있습니다.
참고로 mysql client 프로그램에서 --binary-as-hex 옵션이 켜져있을 경우에는 아래와 같이 hex 문자를 unhex 했을 때 해당 옵션이 자동으로 binary 문자 값은 hex로 변환하여 hex 값 그대로 나오게 됩니다. (char와 unhex 함수 모두 hex 값을 문자로 변환해주는 기능을 하는 함수입니다)
그리고 --binary-as-hex 옵션이 꺼져있을 경우에는 아래와 같이 자동으로 hex 값으로 변환하지 않고 문자 그대로 출력되는 것을 볼 수 있습니다.
mysql client 프로그램에서 해당 옵션을 enable/disable 시킬 수 있는 방법은 아래와 같습니다.
mysql -uroot --binary-as-hex=FALSE
위와 같이 --옵션=TRUE/FALSE 형태로 입력하고서 mysql 에 접속하시면 해당 옵션이 반영된 것을 볼 수 있습니다.
그리고 위와 같은 방법 외에도 아래와 같은 방법을 이용해서 강제로 인코딩을 맞춰주는 방법도 있습니다.
MySQL 에는 특수문자 Escape Sequence 가 존재합니다.
Escape Sequence | 설명 |
\0 | 아스키코드 중 NUL (X'00) 문자에 해당합니다. |
\' | 작은 따옴표(') 문자에 해당합니다. |
\" | 큰 따옴표(") 문자에 해당됩니다. |
\b | 백스페이스 문자에 해당합니다. |
\n | 개행(linefeed) 문자에 해당합니다. |
\r | 캐리지리턴 문자에 해당합니다. |
\t | 탭(Tab) 문자에 해당합니다. |
\z | ASCII 문자로 26(0x1A)에 해당하는 (Control+Z) 문자라고 합니다. 자세한 건 공식 문서를 참고해주세요. |
\\ | 백슬래시(\) 문자에 해당합니다. |
\% | % 문자에 해당합니다. LIKE 연산자를 사용할 때 % 문법과 구별하기 위해서 사용된다고 합니다. |
\_ | _ 문자에 해당합니다. 마찬가지로 LIKE 연산자를 사용할 때 한 문자를 뜻하는 _ 문법과 구별하기 위해서 사용된다고 합니다. |
아래와 같이 위 escape sequence 를 이용해서 문자열들을 표현할 수 있겠습니다.
mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello';
+-------+---------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+---------+-----------+--------+--------+
mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello";
+-------+---------+-----------+--------+--------+
| hello | 'hello' | ''hello'' | hel"lo | "hello |
+-------+---------+-----------+--------+--------+
mysql> SELECT 'This\nIs\nFour\nLines';
+--------------------+
| This
Is
Four
Lines |
+--------------------+
mysql> SELECT 'disappearing\ backslash';
+------------------------+
| disappearing backslash |
+------------------------+
위 내용에 나오는 모든 내용의 출처는 아래 사이트에 있습니다. 참고해주세요.
출처 : https://dev.mysql.com/doc/refman/8.0/en/string-literals.html
'개발환경 > DB' 카테고리의 다른 글
[MySQL] ASCII() 와 ORD() 함수의 차이점 (0) | 2021.10.30 |
---|---|
[mongoDB] ubuntu16.04 mongoDB 설치+실행+관리자만들기 (0) | 2021.10.27 |
firebase firestore에 있는 데이터 내보내기/가져오기 (0) | 2021.04.20 |
[MySql] timestamp가 지원하는 날짜는 언제부터 언제까지일까? (0) | 2021.03.22 |
[mongoDB] 데이터베이스 서버 내에서 특정 컬렉션 데이터를 json으로 다운로드 받기 (0) | 2021.03.21 |