mysql data types what are different data types mysql
다양한 MySQL 데이터 유형 (예 : 숫자, 문자열, 날짜 데이터 유형, JSON, 부울 등)에 대해 예를 들어 알아보세요.
이 자습서에서는 MySQL에서 지원하는 다양한 데이터 유형에 대해 알아 봅니다. 데이터 유형은 테이블이 생성 될 때 각 열에 대해 지정되며 기존 테이블에 새 열을 추가하기 위해 테이블을 업데이트 / 변경하는 동안에도 지정됩니다.
숫자 데이터 유형, 문자열 데이터 유형 및 날짜 / 시간 데이터 유형과 같은 세 가지 범주의 데이터 유형에 대해 학습합니다.
학습 내용 :
MySQL 데이터 유형
전제 조건
MySQL의 작업 예제를 통해 모든 데이터 유형을 학습 할 것입니다. 따라서 개념을 더 잘 이해하기 위해 세부 정보와 함께 쿼리를 실행하도록 MySQL을 설치하는 것이 좋습니다.
또한 예제에 사용할 모든 테이블을 포함하는 sql_data_types라는 샘플 데이터베이스를 만들 수 있습니다.
create database sql_data_types; use sql_data_types;
숫자 데이터 유형
숫자 데이터 유형은 3 가지 유형으로 나눌 수 있습니다.
- 정수 데이터 유형
- 고정 소수점 유형
- 부동 소수점 유형
각각에 대해 논의 해 보겠습니다.
정수 데이터 유형
이러한 데이터 유형은 10 진수 표현없이 정수를 지원합니다. INT, TINYINT, MEDIUMINT, SMALLINT, BIGINT와 같은 다양한 하위 유형이 있습니다.
지능 :
통사론:
INT((width)) (UNSIGNED) (ZEROFILL)
사리:
기술 | 범위 | 기억 | 옵션 |
---|---|---|---|
MEDIUMBLOB | 0-16,777,215 (16MB) | CREATE TABLE mediumblob_example(mediumblob_col MEDIUMBLOB); | |
가장 일반적으로 사용되는 숫자 유형입니다. 정수 저장 DEFAULT-부호없는 값 | –2,147,483,648에서 2,147,483,647 | 4 바이트 | UNSIGNED 옵션과 함께 사용하는 경우-범위가 0에서 4,294,967,295 너비 옵션을 ZEROFILL과 함께 사용하여 너비보다 작은 값에 대해 항목을 0으로 채울 수 있습니다. |
예 :
INT 데이터 유형과 다른 옵션을 가진 1 개의 열이있는 테이블을 생성합니다.
CREATE TABLE numbers_int(int_col INT) INSERT into numbers_int values(100),(-324),(2456),(-100000); select * from numbers_int
SELECT 명령의 출력 :
CREATE TABLE numbers_int_options(int_col_with_options INT(4) ZEROFILL ); INSERT into numbers_int_options values(1),(123),(1234),(12345); select * from numbers_int_options;
위 명령의 출력 :
INT의 다른 변형 :
특정 요구 사항에 따라 INT에 사용할 수있는 여러 옵션이 있습니다. 이들은 일반적으로 메모리 또는 공간이 문제가 될 때 사용되지만 모든 실용적인 목적으로 INT가 가장 널리 사용됩니다.
사용 가능한 INT 데이터 유형의 다양한 변형은 다음과 같습니다.
데이터 형식 | 범위 | 예 | 사용 된 메모리 / 바이트 |
---|---|---|---|
TINYINT | -128 ~ 127 | CREATE TABLE numbers_tinyint(tinyint_col TINYINT); | 1 |
SMALLINT | -32768-32767 | CREATE TABLE numbers_smallint(smallint_col SMALLINT); | 두 |
MEDIUMINT | -8388608-8388607 | CREATE TABLE numbers_mediumint(mediumint_col MEDIUMINT); | 삼 |
BIGINT | -2 ^ 63-(2 ^ 63-1) | CREATE TABLE numbers_bigint(bigint_col BIGINT); | 8 |
부동 소수점 유형
부동 소수점 유형은 근사값 유형이며 이는 번호에 따라 다릅니다. 컬럼 유형 선언 중에 지정된 소수점 정밀도
부동 소수점 데이터 유형에는 두 가지 유형이 있습니다. 다른 범위를 지원하고 메모리 / 스토리지를 소비하는 FLOAT 및 DOUBLE.
플로트 및 더블
새로운 권장 구문에 따라 FLOAT 및 DOUBLE 정밀도는 FLOAT 데이터 유형 만 사용하여 지정할 수 있습니다.
통사론:
FLOAT(p)
여기, 피 -> 정밀도
사리:
기술 | 기억 | 옵션 | 예 |
---|---|---|---|
FLOAT / DOUBLE은 근사값으로 부동 소수점 숫자를 나타냅니다. 즉 MySQL이 이러한 값을 저장할 때 이러한 값은 선언 된 유형에 따라 가장 가까운 정밀도로 근사됩니다. 0-23 사이의 정밀도는 FLOAT 유형을 나타내는 반면 24-53은 8 바이트를 소비하는 double 유형을 생성합니다. | -정밀도-0-23 => 4 바이트 -정밀도 -24-53 => 8 바이트 | -부동 소수점 번호는 서명 및 UNSIGNED 가능 -FLOAT는 일반적으로 소수점 이하 7 자리까지 정확하고 DOUBLE은 소수점 이하 14 자리까지 정확합니다. -정밀도 포인트를 지정하여 FLOAT 및 DOUBLE을 선언하는 또 다른 비표준 방법이 있습니다. FLOAT (n, d)-여기서 n은 총 자릿수이고 d는 소수점이 아닙니다. | -열 DOUBLE 데이터 유형으로 테이블 작성 CREATE TABLE numbers_double (double_col FLOAT (30)); -열 DOUBLE 데이터 유형 및 정밀도 자릿수가 5 인 테이블 작성 CREATE TABLE numbers_double (double_col DOUBLE (20,5)); |
double 유형의 값을 검색하는 몇 가지 예를 살펴 보겠습니다.
CREATE TABLE numbers_double(double_col DOUBLE(20,5)); insert into numbers_double VALUES(123.45),(-145),(12.3456788); select * from numbers_double;
SELECT 문의 출력 :
여기서 값이 데이터 유형 선언 중에 지정된대로 소수점 5 자리까지 저장되는 것을 볼 수 있습니다.
고정 소수점 유형
이러한 데이터 유형은 결정된 정밀도로 정확한 값을 저장하는 데 사용됩니다. 이러한 데이터 유형은 일반적으로 정확한 정밀도 저장이 필요할 때 사용됩니다. 예를 들면 은행 계좌는 소수점 이하 2 자리로 잔액을 유지해야하며 정확한 정밀도로 데이터를 저장해야합니다.
십진수 / 숫자
통사론:
DECIMAL((width(,decimals))) (UNSIGNED) (ZEROFILL)
사리:
기술 | 범위 | 기억 | 옵션 |
---|---|---|---|
DECIMAL은 MySQL의 숫자 데이터 유형이며 지정된 정밀도로 정확한 값을 저장합니다. DECIMAL 데이터 유형의 기본 스케일 또는 너비는 10 및 0 정밀도입니다. DECIMAL 및 NUMERIC 유형은 서로 바꿔서 사용할 수 있습니다. | 지정된 범위에 따라 다름 예를 들면 DECIMAL (5,2)의 범위는 -999.99 ~ 999.99입니다. | MySQL 사용자 바이너리 형식은 DECIMAL 데이터 유형을 저장합니다.-9 자리마다 4 바이트가 필요합니다. 예를 들면 DECIMAL (14,2)가있는 경우-총-9 (4) + 2 (1) => 7 바이트가 필요합니다. | -너비의 최대 값은 265가 될 수 있습니다. -소수점 수는 선택 사항이며 기본값은 0입니다. |
예:
CREATE TABLE numbers_decimal(dec_col DECIMAL(4,2)) INSERT INTO numbers_decimal values(-99),(50.50);
DateTime 데이터 유형
이름에서 알 수 있듯이 MySQL의 DateTime 데이터 유형은 MySQL 데이터베이스에 날짜 및 시간 값을 저장하는 데 사용됩니다.
MySQL에서 지원하는 두 가지 임시 유형이 있습니다. – DATETIME 및 TIMESTAMP
아래 섹션에서이 두 가지를 모두 논의하겠습니다.
날짜 시간
통사론:
DATETIME(n)
여기서 n-> 초 부분의 정밀도 / 분수 부분 (지원되는 최대 정밀도는 6)입니다.
사리:
기술 | 범위 | 기억 | 예 |
---|---|---|---|
MySQL 열에 날짜와 시간을 저장하는 데 사용됩니다. 쿼리하면 열 데이터는 아래 형식으로 datetime을 표시합니다. YYYY-MM-DD HH : MM : SS | 1000-01-01 00:00:00-9999-12-31 23:59:59 | 5 바이트 소수 부분이 포함되면 각 2 개의 소수 자릿수에 대해 추가 바이트가 사용됩니다. | CREATE table datetime_example(date_col DATETIME); // 출력 date_col 2020-08-08 22:22:53 |
타임 스탬프
통사론:
TIMESTAMP(n)
여기서 n-> 초 부분의 정밀도 / 분수 부분 (지원되는 최대 정밀도는 6)
사리:
기술 | 범위 | 기억 | 예 |
---|---|---|---|
datetime을 저장하는 데 사용되는 또 다른 임시 데이터 유형입니다. 1970 년에서 2038 년 사이의 제한된 범위로 날짜 시간을 UTC로 저장합니다. | 1970-01-01 00:00:01 UTC-2038-01-19 03:14:07 UTC | 4 바이트 | CREATE table timestamp_example(ts_col TIMESTAMP); 산출 ts_col 2020-08-08 22:19:11 |
문자열 데이터 유형
이름에서 알 수 있듯이 문자열 데이터 유형은 문자열 / 텍스트 또는 텍스트 정보의 얼룩을 데이터베이스에 저장하는 데 사용됩니다. 사용 사례에 따라 사용 가능한 데이터 유형이 다릅니다-CHAR, VARCHAR, BINARY, VARBINARY, TEXT, ENUM, SET & BLOB
예제를 통해 이러한 각 데이터 유형을 이해해 보겠습니다.
CHAR 및 VARCHAR
이 두 유형은 모두 MySQL의 열에 문자열 값을 저장하는 데 사용되지만 값이 저장되고 검색되는 방식이 다릅니다.
CHAR & VARCHAR은 열에 저장하려는 문자열의 최대 길이를 나타내는 length로 선언됩니다.
통사론:
CHAR(n) VARCHAR(n)
여기서 n-> max no. 컬럼에 저장 될 문자 수
사리:
유형 | 기술 | 범위 | 예 |
---|---|---|---|
숯 구문-CHAR (n) | CHAR은 선언 중에 정의 된대로 'n'길이의 문자열을 저장할 수 있습니다. 문자열이 n 자 미만이면 공백으로 채워집니다. | CHAR 데이터 유형의 길이는 0-255까지 다양합니다. 길이에 따라 메모리 사용량은 0-255 바이트입니다. | CREATE TABLE string_example(char_col CHAR(50)); |
VARCHAR 구문-VARCHAR (n) | VARCHAR을 사용하면 가변 길이 문자열을 저장하고 열 정의 중에 지정된 최대 값이 아닌 저장된 문자열의 실제 크기에 대해 메모리를 사용할 수 있습니다. | VARCHAR 데이터 유형의 길이는 0-65535 사이 일 수 있습니다. 길이에 따라 메모리 사용량은 0-65535 바이트입니다. | CREATE TABLE string_example(varchar_col VARCHAR(50)); |
BINARY 및 VARBINARY
CHAR 및 VARCHAR과 유사합니다.이 데이터 유형은 문자열을 저장하지만 바이너리 형식입니다.
BINARY 및 VARBINARY 데이터 유형의 길이는 CHAR 및 VARCHAR 데이터 유형의 문자 수와 반대로 바이트 단위로 측정됩니다.
통사론:
BINARY(n) VARBINARY(n)
여기서 n-> max no. 열에 의해 저장 될 바이트 수.
사리:
유형 | 기술 | 범위 | 예 |
---|---|---|---|
바이너리 구문-BINARY (n) | BINARY는 'n'바이너리 바이트를 저장할 수 있습니다. n보다 작은 값의 경우 오른쪽에 0 바이트가 채워지고 저장됩니다. | BINARY 데이터 유형의 길이는 0-255까지 다양합니다. 길이에 따라 메모리 사용량은 0-255 바이트입니다. | CREATE TABLE binary_string(binary_col BINARY(50)); |
VARBINARY 구문-VARBINARY (n) | VARBINARY를 사용하면 최대 'n 길이의 가변 길이 이진 문자열을 저장할 수 있습니다 (열 정의에 지정된대로). | VARBINARY 데이터 유형의 길이는 0-65535까지 다양합니다. 길이에 따라 메모리 사용량은 0-65535 바이트입니다. | CREATE TABLE variable_binary_string(varbinary_col VARBINARY(50)); |
BINARY 데이터 유형을 더 자세히 이해하겠습니다. binary 및 varbinary 데이터 유형 각각의 열이있는 테이블을 만들고 내용을 검사합니다.
CREATE TABLE binary_strings(binary_col BINARY(50), varbinary_col VARBINARY(50)); INSERT into binary_strings values('hello', 'hello'); SELECT * from binary_strings;
이제 출력을 BLOB로 보았습니다. 비 inary 엘 나쁜 OB ject – 이것은 우리가 열에 삽입 한 문자열 값의 이진 / 16 진수 표현 일뿐입니다.
이제이 바이너리 문자열의 값을 검사하고 저장 방법을 살펴 보겠습니다.
먼저 BINARY 데이터 유형 인‘binary_col’에있는 값을 살펴 보겠습니다.
저장되는 값이 무엇인지 이해해 보겠습니다. – 처음 5 개 항목에 대한 값을 발견 한 경우 – 즉, 첫 번째 행과 처음 5 개 열 (0-4)
이것은 우리가 저장 한 문자열 'hello'의 문자에 대한 HEX 표현 일뿐입니다.
이제 길이가 50 인 BINARY 데이터 유형이므로 나머지 바이트가 숫자‘0’에 대한 바이트 표현 일 뿐인‘00’값으로 채워지는 것을 볼 수 있습니다.
VARBINARY 데이터 유형 인‘varbinary_col’에있는 값을 참조하십시오.
여기에서 VARBINARY의 경우 값이 우리가 저장 한 문자열 길이에 해당하는 5의 길이로 채워지는 것을 볼 수 있습니다. 길이가 50 인 VARBINARY 열을 선언 했음에도 0 채우기가 없습니다.
BLOB 및 텍스트
BLOB 및 TEXT 데이터 유형은 기본 대응 유형에 비해 더 큰 크기를 지원할 수 있다는 차이점이있는 BINARY 및 CHAR 데이터 유형과 유사합니다.
BLOB는 데이터를 바이너리 문자열로 저장하고 TEXT 데이터 유형은 바이너리가 아닌 문자열로 저장한다는 점에 유의해야합니다. 또한 이러한 모든 데이터 유형은 데이터 유형을 언급하면서 길이를 지정할 필요가 없습니다. 본질적으로 가변 길이이며 실제 열 값으로 저장된 것에 대해서만 메모리를 사용합니다.
BLOB 데이터 유형은 일반적으로 이미지, pdf 문서 등과 같은 파일을 안전하고 효율적인 방법으로 바이너리 문자열로 저장하는 데 사용됩니다.
BLOB 및 TEXT 데이터 유형의 다양한 변형에 대한 세부 정보는 다음과 같습니다.
유형 | 범위 | 기술 | 예 |
---|---|---|---|
TINYTEXT | 0-255 (255 바이트) | 범위는 VARCHAR과 동일합니다.-제목, 저자 이름 등과 같은 작은 정보를 저장하는 데 사용됩니다. | CREATE TABLE tinytext_example(tinytext_col TINYTEXT); |
본문 | 0-65535 (64KB) | 이 데이터 유형은 중소 규모 기사의 텍스트를 저장하기에 충분합니다. | CREATE TABLE text_example(text_col TEXT); |
MEDIUMTEXT | 0-16,777,215 (16MB) | 이 데이터 유형은 전체 교과서의 텍스트를 저장하기에 충분할 수 있습니다. | CREATE TABLE mediumtext_example(mediumtext_col MEDIUMTEXT); |
LONGTEXT | 0 ~ 4,294,967,295 (4GB) | LONGTEXT는 특히 MEDIUMTEXT로 충분하지 않은 경우 거의 사용되지 않습니다. | CREATE TABLE longtext_example(longtext_col LONGTEXT); |
TINYBLOB | 0-255 (255 바이트) | 모든 BLOB 데이터 유형은 이진 문자열을 저장하는 데 사용되며 일반적으로 이미지, pdf 문서 또는 작은 응용 프로그램 자체와 같은 파일을 저장하는 데 선호됩니다. 크기 요구 사항에 따라 다른 BLOB 데이터 유형을 선택하고 사용할 수 있습니다. | CREATE TABLE tinyblob_example(tinyblob_col TINYBLOB); |
얼룩 | 0-65535 (64KB) | CREATE TABLE blob_example(blob_col BLOB); | |
LONGBLOB | 0 ~ 4,294,967,295 (4GB) | CREATE TABLE longblob_example(longblob_col LONGBLOB); |
ENUM
ENUM은 열이 가질 수있는 허용 된 값을 미리 정의하는 문자열 데이터 유형입니다. JAVA, C # 등과 같은 다른 프로그래밍 언어에 존재하는 ENUM 데이터 유형과 유사합니다.
ENUM 값은 저장 될 때 각 열 값에 대해 숫자로 변환되어 레코드 수가 많은 테이블에 대해 상당한 메모리 절약을 가져옵니다. 이면의 인덱스 1,2,3.
통사론:
ENUM({comma separated enum values})
쿼리 예 :
모바일 모델을 문자열로 저장하고 회사 이름을 값이있는 ENUM 데이터 유형 (APPLE, SAMSUNG 및 NOKIA)으로 저장하기위한 2 개의 열이있는 테이블을 만듭니다. 특정 ENUM 값에 대한 데이터를 가져 오는 쿼리도 살펴 보겠습니다.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA')); INSERT INTO mobile_details values ('IPHONE X', 'APPLE'),('GALAXY M1', 'SAMSUNG'), ('GALAXY M2', 1) ;
위의 쿼리에서 삽입하는 동안 Enum 이름과 숫자 인덱스를 모두 사용했음을 알 수 있습니다.
브랜드 이름이‘SAMSUNG’인 모든 모바일 기기를 쿼리하고 삼성의 숫자 인덱스 인‘1’을 쿼리 해 보겠습니다.
SELECT * FROM mobile_details where brand='SAMSUNG' SELECT * FROM mobile_details where brand=1
위의 두 쿼리의 출력은 아래에 언급 된 것과 동일합니다.
세트
MySQL SET 데이터 유형은 열 정의 중에 설명 된대로 허용 된 범위에서 하나 이상의 값을 가질 수있는 문자열 객체입니다. ENUM과 유사하지만 정의 된 목록의 여러 값을 열 값으로 연결할 수 있습니다.
또한 SET 데이터 유형은 2 ^ 0 – 즉 1,2,4,8 등으로 시작하는 숫자 인덱스로 저장됩니다.
통사론:
SET({comma separated list of allowed values})
예:
예제를 통해 SET 데이터 유형을 이해해 보겠습니다. String 유형의 열 모델과 set 데이터 유형이며 지원되는 운영 체제 버전 목록이 포함 된 supported OS라는 열을 사용하여 mobile_details라는 테이블을 생성합니다.
CREATE TABLE mobile_details(model VARCHAR(100), supported_os SET('ios9', 'ios10', 'android8', 'android9','android10'));
SET 데이터 유형이있는 열의 일부로 운영 체제 값을 나열했음을 알 수 있습니다. 여기에 할당 된 해당 DECIMAL 값은 다음과 같습니다.
이제 SET 값을 할당하려면 예를 들면 행에 'android8, android9'를 추가하면 할당 된 십진수 값 (예 : 12)을 더해 동일한 효과를 얻을 수 있습니다.
모델 이름이‘GALAXYM1’인 행에 할당하려면 위의 INSERT 쿼리를 참조하세요.
INSERT INTO mobile_details values ('IPHONE X', ('ios9,ios10')),('GALAXY M1', (12)), ('GALAXY M2', ('android9,android10')) ; SELECT * from mobile_details;
위 명령의 출력 :
10 진수 표현에 대해 SET 열을 쿼리 할 수도 있습니다. 'ios9, ios10'을 쿼리한다고 가정하면 10 진수 표현의 합이 3이므로 다음과 같이 쿼리 할 수 있습니다.
SELECT * from mobile_details where supported_os=3
산출:
특수 데이터 유형
부울
MySQL 부울 데이터 유형은 열 값을 TRUE 또는 FALSE로 저장합니다. 이 데이터 유형은 일반적으로 MySQL 테이블에 플래그 값을 저장하는 데 적합합니다. 예를 들면 – is_savings_account라는 열이있는 은행 계좌 테이블은 true 또는 false를 저장할 수 있습니다.
BOOLEAN 값은 MySQL에 TRUE 및 FALSE에 대해 각각 1 또는 0으로 저장됩니다.
통사론:
columnName BOOLEAN
예:
CREATE TABLE account_details(accNo BIGINT, is_savings BOOLEAN); INSERT into account_details values (123456,true), (110002, false), (234567, 1);
BOOLEAN 데이터 유형의 값을 삽입하거나 검색하는 동안 TRUE 또는 FALSE 또는 숫자 표현 (예 : 1 또는 0)을 사용할 수 있습니다.
select * from account_details where is_savings=1;
위 명령의 출력 :
JSON
MySQL은 JSON 표기법의 객체에 대한 데이터 유형으로 네이티브 JSON을 지원합니다. JSON 형식 문서에 대한 저장, 쿼리 및 검색을 텍스트 문자열 또는 이진 Blob으로 저장하는 대신 쉽게 만듭니다.
통사론:
columnName JSON
사리:
정의 | 범위 | 예 |
---|---|---|
JSON 데이터 유형은 JSON 형식의 문서를 저장하는 데 사용됩니다. JSON으로 정의 된 모든 열은 INSERT 쿼리에 의해 잘못된 JSON이 저장되면 오류가 발생합니다. | JSON 데이터 유형의 범위 또는 크기는 LONGTEXT 또는 LONGBLOB와 유사합니다. | CREATE TABLE json_example(json_col JSON); |
예:
MySQL은 JSON 데이터 쿼리를위한 다양한 기능을 제공합니다. JSON 아래에 삽입 해 보겠습니다. 그러면 쿼리 할 MySQL 함수가 표시됩니다.
{ 'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson', } } { 'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johson', } }
테이블을 생성하고 JSON 데이터를 삽입하는 명령어를 살펴 보겠습니다.
create table json_example(json_col JSON); insert into json_example values( '{'data': { 'id': 1, 'email': 'test@abc.com', 'first_name': 'Steve', 'last_name': 'Wilson' }}'); insert into json_example values( '{'data': { 'id': 2, 'email': 'test@123.com', 'first_name': 'Alex', 'last_name': 'Johnson' }}');
테이블을 쿼리하고 테이블 행에 저장된 JSON 데이터에서 이름과 이메일 필드를 인쇄합니다.
select json_col->'$.data.first_name' as firstname, json_col->'$.data.email' as email from json_example
산출:
자주 묻는 질문
Q # 1) 할당 된 MySQL 열의 데이터 유형을 어떻게 변경할 수 있습니까?
대답: 열의 데이터 유형은 다음을 사용하여 변경할 수 있습니다. ALTER TABLE 명령 .
각각 VARCHAR 및 INT 유형의 2 개의 열 이름과 연령을 갖는 student_info 테이블을 고려하십시오. 다음 CREATE TABLE 명령을 사용하여 수행 할 수 있습니다.
CREATE TABLE student_info(name CHAR(20), age INT);
이 명령에는 몇 가지 변형이 있습니다.
5 년 경력의 SQL 인터뷰 질문
- 열의 데이터 유형 만 변경하려면 – ALTER와 함께 MODIFY 명령을 사용할 수 있습니다.
위의 표에서 age 열의 데이터 유형을 변경하고 싶다면 다음 명령을 사용할 수 있습니다.
ALTER TABLE student_info MODIFY age TINYINT
- 열 이름과 열의 데이터 유형을 변경하려는 경우 – ALTER와 함께 CHANGE 명령을 사용할 수 있습니다.
위의 표에서 열 이름을‘name’에서‘sname’으로 변경하고 데이터 유형을 CHAR에서 VARCHAR (50)로 변경한다고 가정합니다. 다음 명령을 사용할 수 있습니다.
ALTER TABLE student_info CHANGE name sname VARCHAR(50)
Q # 2) mysql에서 이미지의 데이터 유형은 무엇입니까?
대답: 이미지, pdf 등과 같은 파일 유형을 MySQL에 저장하려면 BLOB 또는 바이너리 데이터 유형이 가장 적합한 유형입니다. 저장하려는 대상 파일의 크기에 따라 사용할 수있는 다양한 BLOB 데이터 유형이 있습니다. TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB와 같은 BLOB 변형을 사용할 수 있습니다.
Q # 3) mysql에 문서를 저장하는 데 더 적합한 데이터 유형은 무엇입니까?
대답: 이미지 또는 pdf 파일 용 BLOB와 유사하게 텍스트 문서 / 기사를 저장하기 위해 TEXT 데이터 유형을 사용할 수 있습니다. 이는 추가 문자 스토리지를 지원하는 CHAR 데이터 유형의 확장입니다.
사용 가능한 TEXT 데이터 유형의 다양한 변형은 다음과 같습니다. – TEXT, TINYTEXT, MEDIUMTEXT 및 LONGTEXT
Q # 4) MySQL의 통화 데이터 유형은 무엇입니까?
대답: 통화 값에 대한 데이터를 저장하는 경우 가장 적합한 데이터 유형은 DECIMAL입니다. 정확한 정밀도로 데이터 유형을 저장하는 데 사용됩니다. 예를 들면 유형이 DECIMAL (4,2) 인 열 이름은 -99.99에서 99.99 범위의 값을 저장하고 검색시 동일한 정밀도로 값을 리턴합니다. 부동 소수점 수에 대한 근사.
Q # 5) 누군가가 UNSIGNED 정수 열에 음수를 삽입하려고하면 어떻게됩니까?
대답: MySQL은 이러한 삽입 문에 대해 오류를 생성합니다.
UNSIGNED 옵션이있는 INT 열이있는 테이블을 만들어 보겠습니다.
CREATE TABLE int_unsigned(age INT UNSIGNED); INSERT into int_unsigned values(-350);
Error Code: 1264. Out of range value for column 'int_col_with_options' at row 1
Q # 6) mysql에서 현재 날짜 데이터를 얻는 방법은 무엇입니까?
대답: MySQL은 현재 값을 가져 오기 위해 2 개의 내장 날짜 시간 함수를 제공합니다.
CURDATE () 함수는 현재 날짜를 반환합니다.
SELECT CURDATE();
산출
2020-08-10
NOW () 함수는 타임 스탬프와 함께 현재 날짜를 반환합니다.
SELECT NOW();
산출
2020-08-10 00:42:54
Q # 7) CHAR와 VARCHAR 중 어느 것이 더 적합합니까?
대답: VARCHAR은 가변 문자를 나타내며 동일한 길이의 CHAR에 비해 메모리를 적게 사용한다는 중요한 이점이 있습니다. 예를 들면 길이가 20 인 문자열을 저장하는 경우 VARCHAR (50)이있는 열은 CHAR (50)으로 선언 된 데이터 유형과 반대로 20 바이트 만 소비합니다.
Q # 8) MySQL에서 ENUM 값을 업데이트하는 방법은 무엇입니까?
대답: MySQL에서 ENUM 열을 업데이트하려면 기존 항목이 그대로 유지되도록 기존 열 값을 언급하도록 수정해야합니다.
예를 들어 이것을 이해하려고 노력합시다.
모델 필드가 문자열 (VARCHAR) 인 mobile_details 테이블과 초기 값이‘APPLE’, SAMSUNG’및‘NOKIA’인 ENUM 인 브랜드 열이 있다고 가정합니다.
이제 기존 열거 형에 다른 브랜드 이름 인 'MOTOROLA'를 추가한다고 가정합니다. 실행해야 할 쿼리를 살펴 보겠습니다.
CREATE TABLE mobile_details(model VARCHAR(100), brand ENUM('SAMSUNG', 'APPLE', 'NOKIA'));
생성되면 DESCRIBE 명령을 사용하여 원래 ENUM 값의 세부 정보를 얻을 수 있습니다.
DESCRIBE mobile_details;
이제 ENUM을 업데이트하는 명령을 실행하겠습니다.
ALTER TABLE mobile_details MODIFY column brand ENUM('SAMSUNG', 'APPLE', 'NOKIA', 'MOTOROLA');
DESCRIBE 명령을 다시 실행하여 업데이트가 성공적으로 적용되었는지 확인할 수 있습니다.
DESCRIBE mobile_details
위 명령의 출력은 다음과 같습니다.
결론
이 자습서에서는 MySQL에서 지원하는 다양한 데이터 유형에 대해 배웠습니다.
우리는 구문 및 다양한 예제와 함께 숫자, 부동, 문자열 및 날짜 시간 데이터 유형에 대해 배웠습니다.
MySQL 데이터 유형은 시작하기위한 기본 구성 요소이며 MySQL 스키마 설계 중 가장 중요한 측면 중 하나입니다.