티스토리 뷰

728x90
반응형

 

'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

 

MySQL :: MySQL 8.0 Reference Manual :: 9.1.1 String Literals

A string is a sequence of bytes or characters, enclosed within either single quote (') or double quote (") characters. Examples: 'a string' "another string" Quoted strings placed next to each other are concatenated to a single string. The following lines a

dev.mysql.com

 

728x90
반응형
댓글