MySQL 기능: 문자열, 숫자, 사용자 정의, 저장
기능이란 무엇입니까?
MySQL 데이터를 저장하고 검색하는 것 이상의 일을 할 수 있습니다.. 우리는 또한 할 수 있습니다 데이터를 조작하다 검색하거나 저장하기 전에. 바로 그곳이다 MySQL 함수가 등장합니다. 함수는 단순히 어떤 작업을 수행한 다음 결과를 반환하는 코드 조각입니다. 일부 함수는 매개변수를 허용하는 반면 다른 함수는 매개변수를 허용하지 않습니다.
의 예를 간단히 살펴 보겠습니다. MySQL 기능. 기본적으로, MySQL 날짜 데이터 유형을 "YYYY-MM-DD" 형식으로 저장합니다. 애플리케이션을 구축했고 사용자가 "DD-MM-YYYY" 형식으로 날짜를 반환하기를 원한다고 가정하면 다음을 사용할 수 있습니다. MySQL 이를 달성하기 위해 DATE_FORMAT 함수가 내장되어 있습니다. DATE_FORMAT은 가장 많이 사용되는 함수 중 하나입니다. MySQL우리는 수업을 진행하면서 이에 대해 더 자세히 살펴볼 것입니다.
왜 함수를 사용하나요?
서두에 제시된 예를 바탕으로 컴퓨터 프로그래밍 경험이 있는 사람들은 "왜 귀찮게 해야 합니까?"라고 생각할 수도 있습니다. MySQL 기능? 스크립팅/프로그래밍 언어로도 동일한 효과를 얻을 수 있나요?” 응용 프로그램에 일부 프로시저/함수를 작성하여 이를 달성할 수 있다는 것은 사실입니다.
소개의 DATE 예로 돌아가서 사용자가 원하는 형식으로 데이터를 얻으려면 비즈니스 계층에서 필요한 처리를 수행해야 합니다.
이는 애플리케이션이 다른 시스템과 통합되어야 할 때 문제가 됩니다. 우리가 사용할 때 MySQL DATE_FORMAT과 같은 함수를 사용하면 해당 기능을 데이터베이스에 내장할 수 있으며 데이터가 필요한 모든 애플리케이션은 해당 데이터를 필요한 형식으로 가져옵니다. 이것 비즈니스 로직의 재작업을 줄이고 데이터 불일치를 줄입니다.
우리가 사용을 고려해야 하는 또 다른 이유 MySQL 기능은 클라이언트/서버 응용 프로그램의 네트워크 트래픽을 줄이는 데 도움이 될 수 있다는 사실입니다.. 비즈니스 계층은 데이터를 조작할 필요 없이 저장된 함수만 호출하면 됩니다. 평균적으로 함수를 사용하면 전체 시스템 성능을 크게 향상시키는 데 도움이 될 수 있습니다.
기능 유형
내장 기능
MySQL 다양한 내장 기능이 번들로 제공됩니다. 내장 함수는 단순히 함수에 이미 구현되어 있는 것입니다. MySQL 서버. 이러한 기능을 사용하면 데이터에 대해 다양한 유형의 조작을 수행할 수 있습니다. 내장된 기능은 기본적으로 다음과 같이 가장 많이 사용되는 범주로 분류할 수 있습니다.
- 문자열 함수 – 문자열 데이터 유형에서 작동
- 숫자 함수 – 숫자형 데이터 유형에서 작동
- 날짜 기능 – 날짜 데이터 유형에서 작동
- 집계 함수 – 위의 모든 데이터 유형을 처리하고 요약된 결과 세트를 생성합니다.
- 다른 기능 - MySQL 또한 다른 유형의 내장 함수도 지원하지만 위에서 언급한 함수로만 수업을 제한하겠습니다.
이제 위에서 언급한 각 기능을 자세히 살펴보겠습니다. “Myflixdb”를 이용하여 가장 많이 사용되는 기능을 설명하겠습니다.
문자열 함수
우리는 이미 문자열 함수가 무엇을 하는지 살펴보았습니다. 이를 활용한 실제 사례를 살펴보겠습니다. 영화 테이블에서 영화 제목은 소문자와 대문자의 조합을 사용하여 저장됩니다. 영화 제목을 대문자로 반환하는 쿼리 목록을 얻고 싶다고 가정해 보겠습니다. 이를 위해 "UCASE" 기능을 사용할 수 있습니다. 문자열을 매개변수로 받아 모든 문자를 대문자로 변환합니다. 아래 표시된 스크립트는 "UCASE" 기능의 사용을 보여줍니다.
SELECT `movie_id`,`title`, UCASE(`title`) FROM `movies`;
여기를 클릭하십시오.
- UCASE(`제목`)은 제목을 매개변수로 사용하여 별칭 이름 `upper_case_title`과 함께 대문자로 반환하는 내장 함수입니다.
위 스크립트를 실행하면 MySQL Myflixdb에 대한 워크벤치를 사용하면 아래에 표시된 결과가 나타납니다.
| movie_id | title | UCASE('title') |
|---|---|---|
| 16 | 67% Guilty | 67% GUILTY |
| 6 | Angels and Demons | ANGELS AND DEMONS |
| 4 | Code Name Black | CODE NAME BLACK |
| 5 | Daddy's Little Girls | DADDY'S LITTLE GIRLS |
| 7 | Davinci Code | DAVINCI CODE |
| 2 | Forgetting Sarah Marshal | FORGETTING SARAH MARSHAL |
| 9 | Honey mooners | HONEY MOONERS |
| 19 | movie 3 | MOVIE 3 |
| 1 | Pirates of the Caribean 4 | PIRATES OF THE CARIBEAN 4 |
| 18 | sample movie | SAMPLE MOVIE |
| 17 | The Great Dictator | THE GREAT DICTATOR |
| 3 | X-Men | X-MEN |
MySQL 다양한 문자열 함수를 지원합니다. 내장된 모든 문자열 함수의 전체 목록을 보려면 이 링크를 참조하세요. http://dev.mysql.com/doc/refman/5.0/en/string-functions.html on MySQL 웹 사이트를 방문 하십시오.
숫자 함수
앞서 언급했듯이, 이러한 함수는 숫자 데이터 유형에서 작동합니다. SQL 명령문에서 숫자 데이터에 대한 수학적 계산을 수행할 수 있습니다.
산술 연산자
MySQL SQL 문에서 계산을 수행하는 데 사용할 수 있는 다음과 같은 산술 연산자를 지원합니다.
| 성함 | 기술설명 |
|---|---|
| DIV | 정수 나누기 |
| / | 분할 |
| - | 뺄셈 |
| + | 추가 |
| * | 곱셈 |
| % 또는 MOD | 모듈러스 |
이제 위의 각 연산자의 예를 살펴보겠습니다.
정수 나눗셈(DIV)
SELECT 23 DIV 6 ;
위 스크립트를 실행하면 다음과 같은 결과가 나옵니다.
3
나누기 연산자 (/)
이제 나누기 연산자 예제를 살펴보겠습니다. DIV 예제를 수정하겠습니다.
SELECT 23 / 6 ;
위 스크립트를 실행하면 다음과 같은 결과가 나옵니다.
3.8333
뺄셈 연산자 (-)
이제 뺄셈 연산자 예제를 살펴보겠습니다. 이전 두 예제와 동일한 값을 사용합니다.
SELECT 23 - 6 ;
위 스크립트를 실행하면 17이 나옵니다.
덧셈 연산자(+)
이제 덧셈 연산자 예제를 살펴보겠습니다. 이전 예제를 수정하겠습니다.
SELECT 23 + 6 ;
위 스크립트를 실행하면 29이 나옵니다.
곱셈 연산자 (*)
이제 곱셈 연산자 예를 살펴보겠습니다. 이전 예제와 동일한 값을 사용합니다.
SELECT 23 * 6 AS `multiplication_result`;
위 스크립트를 실행하면 다음과 같은 결과가 나옵니다.
| 곱셈_결과 |
|---|
| 138 |
모듈로 연산자 (-)
모듈로 연산자는 N을 M으로 나누어 나머지를 제공합니다. 이제 모듈로 연산자 예를 살펴보겠습니다. 이전 예제와 동일한 값을 사용합니다.
SELECT 23 % 6 ;
OR
SELECT 23 MOD 6 ;
위 스크립트를 실행하면 5가 나옵니다.
이제 일반적인 숫자 함수 중 일부를 살펴보겠습니다. MySQL.
바닥 – 이 함수는 숫자에서 소수 자릿수를 제거하고 가장 가까운 가장 낮은 숫자로 반올림합니다. 아래에 표시된 스크립트는 사용법을 보여줍니다.
SELECT FLOOR(23 / 6) AS `floor_result`;
위 스크립트를 실행하면 다음과 같은 결과가 나옵니다.
| Floor_result |
|---|
| 3 |
일주 – 이 함수는 소수 자릿수가 있는 숫자를 가장 가까운 정수로 반올림합니다. 아래에 표시된 스크립트는 사용법을 보여줍니다.
SELECT ROUND(23 / 6) AS `round_result`;
위 스크립트를 실행하면 다음과 같은 결과가 나옵니다.
| 라운드_결과 |
|---|
| 4 |
랜드 – 이 함수는 난수를 생성하는 데 사용되며 함수가 호출될 때마다 값이 변경됩니다. 아래 표시된 스크립트는 사용법을 보여줍니다.
SELECT RAND() AS `random_result`;
저장된 기능
저장 함수는 저장 함수를 직접 정의해야 한다는 점을 제외하면 내장 함수와 같습니다. 저장 함수가 생성되면 다른 함수와 마찬가지로 SQL 문에서 사용할 수 있습니다. 저장 함수를 생성하는 기본 구문은 다음과 같습니다.
CREATE FUNCTION sf_name ([parameter(s)]) RETURNS data type DETERMINISTIC STATEMENTS
여기를 클릭하십시오.
- “CREATE FUNCTION sf_name ([매개변수]) “ 필수이며 알려줍니다. MySQL 괄호 안에 정의된 선택적 매개변수를 사용하여 'sf_name'이라는 함수를 생성하는 서버입니다.
- "RETURNS 데이터 유형" 필수이며 함수가 반환해야 하는 데이터 유형을 지정합니다.
- “결정적” 동일한 인수가 제공되면 함수가 동일한 값을 반환한다는 의미입니다.
- “진술” 함수가 실행하는 절차 코드입니다.
이제 내장 함수를 구현하는 실제 예를 살펴보겠습니다. 대여한 영화 중 반납 날짜가 지난 영화를 알고 싶다고 가정해 보겠습니다. 반납 날짜를 매개변수로 받아 현재 날짜와 비교하는 저장된 함수를 만들 수 있습니다. MySQL 섬기는 사람. 현재 날짜가 영화 개봉 날짜보다 이전인 경우 "No"를 반환하고 그렇지 않으면 "Yes"를 반환합니다. 아래에 표시된 스크립트는 이를 달성하는 데 도움이 됩니다.
DELIMITER |
CREATE FUNCTION sf_past_movie_return_date (return_date DATE)
RETURNS VARCHAR(3)
DETERMINISTIC
BEGIN
DECLARE sf_value VARCHAR(3);
IF curdate() > return_date
THEN SET sf_value = 'Yes';
ELSEIF curdate() <= return_date
THEN SET sf_value = 'No';
END IF;
RETURN sf_value;
END|
위 스크립트를 실행하면 `sf_past_movie_return_date` 저장 함수가 생성되었습니다.
이제 저장된 함수를 테스트해 보겠습니다.
SELECT `movie_id`,`membership_number`,`return_date`,CURDATE() ,sf_past_movie_return_date(`return_date`) FROM `movierentals`;
위 스크립트를 실행하면 MySQL myflixdb에 대한 워크벤치의 결과는 다음과 같습니다.
| movie_id | membership_number | return_date | CURDATE() | sf_past_movie_return_date('return_date') |
|---|---|---|---|---|
| 1 | 1 | NULL | 04-08-2012 | NULL |
| 2 | 1 | 25-06-2012 | 04-08-2012 | yes |
| 2 | 3 | 25-06-2012 | 04-08-2012 | yes |
| 2 | 2 | 25-06-2012 | 04-08-2012 | yes |
| 3 | 3 | NULL | 04-08-2012 | NULL |
사용자 정의 함수
MySQL 또한 확장하는 사용자 정의 함수도 지원합니다. MySQL. 사용자 정의 함수는 다음과 같은 프로그래밍 언어를 사용하여 만들 수 있는 함수입니다. C, C++ 등을 추가한 다음 MySQL 섬기는 사람. 추가되면 다른 기능과 마찬가지로 사용할 수 있습니다.
제품 개요
- 기능을 사용하면 다음의 기능을 향상할 수 있습니다. MySQL.
- 함수는 항상 값을 반환하며 선택적으로 매개변수를 받을 수 있습니다.
- 내장 기능은 함께 제공되는 기능입니다. MySQL. 이러한 함수는 문자열, 날짜, 숫자 등 내장 함수와 같이 처리하는 데이터 유형에 따라 분류할 수 있습니다.
- 저장된 기능은 사용자가 생성합니다. MySQL 서버이며 SQL 문에서 사용할 수 있습니다.
- 사용자 정의 함수는 외부에서 생성됩니다. MySQL 그리고 다음과 같이 통합될 수 있습니다. MySQL 서버.

