목차
- SQL 변수 사용법
- 데이터 유형과 변환
- 문자열 내장 함수
- 숫자열 내장 함수
- 날짜/시간 내장 함수
SQL 변수 사용법
MySQL에는 사용자 정의 변수와 시스템 변수의 두 가지 유형의 변수가 있습니다. 사용자 정의 변수는 단일 MySQL 세션 내에서 생성, 설정 및 사용할 수 있는 세션별 변수입니다. 시스템 변수는 MySQL의 동작을 제어하는 전역 또는 세션 수준 변수입니다.
1. 사용자 정의 변수
사용자 정의 변수를 만들거나 업데이트하려면 다음 구문(Syntax)을 사용합니다.
SET @변수_이름 = 값;
예를 들어 다음과 같이 작성할 수 있습니다.
SET @my_variable = 42;
쿼리에서 사용자 정의 변수를 사용하려면 변수 이름 뒤에 '@' 기호를 사용하여 참조하세요.
SELECT * FROM employees WHERE employee_id = @my_variable;
사용자 정의 변수는 강력한 유형이 아니므로 데이터 유형은 변수에 할당된 값에 따라 결정된다는 점을 유의해야 합니다.
2. 시스템 변수
전역 또는 세션 시스템 변수의 값을 보려면 다음 구문(Syntax)을 사용합니다.
SHOW GLOBAL VARIABLES LIKE 'variable_name';
SHOW SESSION VARIABLES LIKE 'variable_name';
예를 들어, 'max_connections' 변수의 전역 값을 보려면 다음을 사용합니다.
SHOW GLOBAL VARIABLES LIKE 'max_connections';
전역 또는 세션 시스템 변수의 값을 설정하려면 다음 구문(Syntax)을 사용합니다.
SET GLOBAL variable_name = value;
SET SESSION variable_name = value;
예를 들어, 'max_connections' 변수의 전역 값을 설정하려면 다음을 사용합니다:
SET GLOBAL max_connections = 1000;
일부 시스템 변수는 'SUPER' 권한과 같은 적절한 권한을 가진 사용자만 설정할 수 있습니다.
쿼리 또는 문에서 시스템 변수를 사용할 때는 변수 이름 뒤에 '@@' 기호를 사용하여 참조할 수 있습니다:
SELECT * FROM employees LIMIT @@max_connections;
결론적으로 MySQL 변수를 사용하면 단일 세션 내에서 값을 저장 및 조작하거나 전역 또는 세션별 시스템 변수를 설정하여 MySQL의 동작을 제어할 수 있습니다.
데이터 유형과 변환
MySQL에서는 CAST(), CONVERT(), 암시적 유형 변환 등 다양한 함수와 기법을 사용하여 데이터 유형과 값을 변환할 수 있습니다.
1. CAST()
CAST() 함수는 한 데이터 유형에서 다른 데이터 유형으로 값을 변환하는 데 사용됩니다. CAST()의 구문(Syntax)은 다음과 같습니다:
CAST(value AS data_type)
예를 들어 VARCHAR 값을 INTEGER로 변환하려면 다음을 사용할 수 있습니다.
SELECT CAST('42' AS 부호 없는 정수);
2. CONVERT()
CONVERT() 함수는 CAST()와 유사하지만 문자 집합 변환 측면에서 더 많은 유연성을 제공합니다. CONVERT()의 구문(Syntax)은 다음과 같습니다.
CONVERT(value, data_type)
또는
CONVERT(value USING character_set)
예를 들어 VARCHAR 값을 DECIMAL로 변환하려면 다음과 같이 사용할 수 있습니다.
SELECT CONVERT('42.5', DECIMAL(10,2));
텍스트 값을 한 문자 집합에서 다른 문자 집합으로 변환하려면 다음을 사용합니다:
SELECT CONVERT('안녕하세요' USING utf8);
3. 암시적 유형 변환
MySQL은 표현식, 할당 또는 함수 인수에 사용될 때 한 데이터 유형에서 다른 데이터 유형으로 값을 자동으로 변환할 수 있습니다. 이를 암시적 유형 변환이라고 합니다. 예를 들어 숫자 컨텍스트에서 문자열 값을 사용하는 경우 MySQL은 문자열 값을 숫자 데이터 유형으로 변환하려고 시도합니다.
SELECT '42' + 0; -- 문자열 '42'가 정수 값으로 변환됩니다.
암시적 유형 변환은 값을 대상 데이터 유형으로 변환할 수 없는 경우 예기치 않은 결과나 오류가 발생할 수 있다는 점에 유의해야합니다.
문자열 내장 함수
MySQL은 문자열 데이터를 조작하고 작업할 수 있는 다양한 내장 문자열 함수를 제공합니다. 다음은 일반적으로 사용되는 몇 가지 문자열 함수에 대한 개요입니다:
1. CONCAT(): 두 개 이상의 문자열을 연결합니다. 결과는 제공된 순서대로 모든 인수가 포함된 단일 문자열입니다.
구문(Syntax): CONCAT(str1, str2, ...)
2. LENGTH(): 문자열의 길이를 바이트 단위로 반환합니다.
구문(Syntax): LENGTH(str)
3. CHAR_LENGTH(): 문자열의 길이를 문자로 반환합니다. 이 함수는 멀티바이트 문자 집합에 유용합니다.
구문(Syntax): CHAR_LENGTH(str)
4. SUBSTRING(): 지정된 위치에서 시작하여 선택적 길이로 문자열에서 부분 문자열을 추출합니다.
구문(Syntax): SUBSTRING(str, start_position, [length])
5. REPLACE(): 문자열 내의 모든 부분 문자열을 새 부분 문자열로 바꿉니다.
구문(Syntax): REPLACE(str, from_substring, to_substring)
6. UPPER(): 문자열을 대문자로 변환합니다.
구문(Syntax): UPPER(str)
7. LOWER(): 문자열을 소문자로 변환합니다.
구문(Syntax): LOWER(str)
8. TRIM(): 문자열에서 선행 및 후행 공백을 제거합니다. 선택적 키워드 'LEADING', 'TRAILING' 또는 'BOTH'를 사용하여 제거할 공백을 지정할 수도 있으며, 공백 대신 사용자 지정 문자를 지정할 수도 있습니다.
구문(Syntax): TRIM([선행 | 후행 | 양쪽] [remstr] FROM str)
9. LEFT(): 문자열의 왼쪽에서 처음 N개의 문자를 반환합니다.
구문(Syntax): LEFT(str, N)
10. RIGHT(): 문자열의 오른쪽에서 처음 N개의 문자를 반환합니다.
구문(Syntax): RIGHT(str, N)
11. REVERSE(): 문자열의 문자를 반전시킵니다.
구문(Syntax): REVERSE(str)
12. CONCAT_WS(): 지정된 구분 기호로 두 개 이상의 문자열을 연결합니다.
구문(Syntax): CONCAT_WS(구분자, str1, str2, ...)
13. LOCATE(): 선택적 시작 위치와 함께 문자열 내에서 하위 문자열의 첫 번째 발생 위치를 반환합니다.
구문(Syntax): LOCATE(substr, str, [start_position])
14. LTRIM(): 문자열에서 선행 공백을 제거합니다.
구문(Syntax): LTRIM(str)
15. RTRIM(): 문자열에서 후행 공백을 제거합니다.
구문(Syntax): RTRIM(str)
숫자형 내장 함수
MySQL은 숫자 데이터에 대한 연산을 수행할 수 있는 다양한 내장 숫자 함수를 제공합니다.
1. ABS(): 숫자의 절대값을 반환합니다.
구문(Syntax): ABS(숫자)
2. ROUND(): 숫자를 가장 가까운 정수 또는 지정된 소수점 이하 자릿수로 반올림합니다.
구문(Syntax): ROUND(number, [decimal_places])
3. CEILING(): 숫자(숫자의 '상한'이라고도 함)보다 크거나 같은 가장 작은 정수값을 반환합니다.
구문(Syntax): CEILING(숫자)
4. FLOOR(): 숫자(숫자의 '바닥'이라고도 함)보다 작거나 같은 가장 큰 정수 값을 반환합니다.
구문(Syntax): FLOOR(숫자)
5. MOD(): 나눗셈 연산(모듈로 연산)의 나머지를 반환합니다.
구문(Syntax): MOD(number1, number2)
6. POWER(): 숫자를 다른 숫자의 거듭제곱으로 올립니다.
구문(Syntax): POWER(base, 지수)
7. SQRT(): 숫자의 제곱근을 계산합니다.
구문(Syntax): SQRT(숫자)
8. RAND(): 0(포함)과 1(제외) 사이의 임의의 부동 소수점 값을 생성합니다.
구문(Syntax): RAND([seed])
9. TRUNCATE(): 반올림하지 않고 지정된 소수점 이하 자릿수로 숫자를 잘라냅니다.
구문(Syntax): TRUNCATE(숫자, 소수 자릿수)
10. SIN(): 각도의 사인(라디안 단위)을 계산합니다.
구문(Syntax): SIN(각도)
11. COS(): 각도의 코사인을 계산합니다(라디안 단위).
구문(Syntax): COS(각도)
12. TAN(): 각도의 탄젠트를 계산합니다(라디안 단위).
구문(Syntax): TAN(각도)
13. ASIN(): 숫자의 아크사인(역사인)을 계산하여 결과를 라디안 단위로 반환합니다.
구문(Syntax): ASIN(숫자)
14. ACOS(): 숫자의 아크 코사인(역 코사인)을 계산하여 결과를 라디안 단위로 반환합니다.
구문(Syntax): ACOS(숫자)
15. ATAN(): 숫자의 호 탄젠트(역탄젠트)를 계산하여 결과를 라디안 단위로 반환합니다.
구문(Syntax): ATAN(숫자)
날짜/시간 내장 함수
MySQL은 날짜 및 시간 값을 조작하고 작업할 수 있는 다양한 내장 날짜 및 시간 함수를 제공합니다.
1. NOW(): 현재 날짜와 시간을 반환합니다.
구문(Syntax): NOW()
2. CURDATE(): 현재 날짜를 반환합니다.
구문(Syntax): CURDATE()
3. CURTIME(): 현재 시간을 반환합니다.
구문(Syntax): CURTIME()
4. DATE_ADD(): 날짜 또는 날짜/시간 값에 시간 간격을 추가합니다.
구문(Syntax): DATE_ADD(날짜, INTERVAL expr 단위)
5. DATE_SUB(): 날짜 또는 날짜/시간 값에서 시간 간격을 뺍니다.
구문(Syntax): DATE_SUB(날짜, INTERVAL expr 단위)
6. DATEDIFF(): 두 날짜 사이의 일 수를 계산합니다.
구문(Syntax): DATEDIFF(date1, date2)
7. DAYOFWEEK(): 날짜의 요일을 반환합니다(일요일은 1, 토요일은 7).
구문(Syntax): DAYOFWEEK(날짜)
8. DATE_FORMAT(): 지정된 형식을 사용하여 날짜 또는 날짜/시간 값의 서식을 지정합니다.
구문(Syntax): DATE_FORMAT(날짜, 형식)
9. STR_TO_DATE(): 지정된 형식을 사용하여 문자열을 날짜 또는 날짜/시간 값으로 변환합니다.
구문(Syntax): STR_TO_DATE(str, format)
10. UNIX_TIMESTAMP(): 날짜 또는 날짜/시간 값을 유닉스 타임스탬프('1970-01-01 00:00:00' UTC 이후 초수)로 변환합니다.
구문(Syntax): UNIX_TIMESTAMP([date])
11. FROM_UNIXTIME(): 유닉스 타임스탬프를 날짜 또는 날짜/시간 값으로 변환합니다.
구문(Syntax): FROM_UNIXTIME(timestamp, [format])
12. EXTRACT(): 날짜 또는 날짜/시간 값에서 날짜의 일부(예: 연도, 월 또는 일)를 추출합니다.
구문(Syntax) EXTRACT(단위 FROM 날짜)
13. YEAR(): 날짜 또는 날짜/시간 값의 연도 부분을 반환합니다.
구문(Syntax) YEAR(date)
14. MONTH(): 날짜 또는 날짜/시간 값의 월 부분을 반환합니다.
구문(Syntax) MONTH(date)
15. DAY(): 날짜 또는 날짜/시간 값의 일 부분을 반환합니다.
구문(Syntax): DAY(날짜)
'SQL' 카테고리의 다른 글
[SQL] SQL 프로그래밍 (0) | 2023.05.09 |
---|---|
[SQL] SQL 피벗과 UNION/IN 연산자 (0) | 2023.05.09 |
[SQL] MySQL 데이터 유형과 종류 (0) | 2023.05.08 |
[MySQL] RANK 함수 (0) | 2023.04.24 |
[SQL] SQL MATH 함수 (0) | 2023.04.24 |