집 >데이터 베이스 >MySQL 튜토리얼 >MySQL의 데이터 유형 개념을 이해하는 방법은 무엇입니까?
이 기사의 내용은 MySQL의 데이터 유형 개념을 이해하는 방법에 대한 것입니다. 이는 특정 참고 가치가 있으므로 도움이 될 수 있습니다.
1. 데이터란 무엇인가요?
데이터는 특정 데이터 유형으로 데이터베이스에 저장된 정보 모음입니다. 데이터에는 이름, 숫자, 통화, 텍스트, 이미지, 소수, 계산, 통계 등 상상할 수 있는 거의 모든 것이 포함됩니다. 데이터 클라이언트는 대문자, 소문자 또는 대소문자 혼합으로 저장하며 데이터를 조작하거나 수정할 수 있으며 대부분의 데이터는 수명 동안 변경되지 않습니다.
데이터 유형은 열에 포함된 데이터에 대한 규칙을 지정하는 데 사용되며 열에 할당된 너비와 값이 문자, 숫자, 날짜 및 기타 형식일 수 있는지 여부를 포함하여 데이터가 열에 저장되는 방식을 결정합니다. 횟수 등 모든 데이터 또는 데이터 조합에는 해당 데이터 유형이 있습니다. 이러한 데이터 유형은 문자, 숫자, 날짜 및 시간, 이미지, 이진 데이터 등을 저장하는 데 사용됩니다. 더 자세히 말하면 데이터에는 이름, 설명, 숫자, 계산, 이미지, 이미지 설명, 문서 등이 포함될 수 있습니다.
데이터는 데이터베이스의 본질이며 보호되어야 합니다. 데이터를 보호하는 사람은 데이터베이스 관리자(DBA)이지만, 각 데이터베이스 사용자는 데이터 보호를 위해 필요한 조치를 취할 책임도 있습니다.
2. 기본 데이터 유형
데이터 유형은 데이터 자체의 특성이며 그 특성은 테이블의 필드에 설정됩니다. 예를 들어, 필드에 숫자 값이 포함되어야 하고 숫자나 문자 문자열을 입력할 수 없도록 지정할 수 있습니다. 또한 통화 값을 저장하는 필드에 문자가 입력되지 않도록 할 수도 있습니다. 데이터베이스의 각 필드에 대한 데이터 유형을 정의하면 데이터베이스 오류로 인해 잘못된 데이터를 크게 줄일 수 있습니다. 필드 정의(데이터 유형 정의)는 각 필드에 입력할 수 있는 데이터를 알려주는 데이터 검증 방법입니다.
1. 고정 길이 문자열.
고정 길이 문자열은 일반적으로 길이가 동일하며 고정 길이 데이터 유형을 사용하여 저장됩니다. 다음은 SQL 고정 길이 문자열의 표준입니다.
CHARACTER(n)
n은 필드에 저장할 수 있는 최대 문자 수를 정의하는 숫자입니다.
일부 SQL 구현에서는 CHAR 데이터 유형을 사용하여 고정 길이 데이터를 저장합니다. 이 데이터 유형에는 문자를 저장할 수 있습니다.
고정 길이 데이터 형식에서는 일반적으로 부족한 문자 수를 보충하기 위해 공백을 사용합니다. 문자 길이가 10자이고 입력 데이터가 5자리일 경우 나머지 5자리는 공백으로 기록됩니다. 패딩을 사용하면 필드의 각 값이 동일한 길이가 됩니다.
PS: 이름과 같은 가변 길이의 데이터를 저장하기 위해 고정 길이 데이터 유형을 사용하지 마십시오. 고정 길이 데이터 유형을 부적절하게 사용하면 사용 가능한 공간이 낭비되고 다른 데이터의 정확한 비교에 영향을 미칠 수 있습니다. 데이터베이스 공간을 절약하기 위해 가변 길이의 문자열을 저장하려면 가변 길이 데이터 유형을 사용해야 합니다.
2. 가변 길이 문자열.
Sql은 가변 길이 문자열, 즉 가변 길이의 문자열을 지원합니다. 다음은 SQL 가변 길이 문자열의 표준입니다.
CHARACTER VARYING(n)
n은 필드에 저장할 수 있는 최대 문자 수를 나타내는 숫자입니다.
일반적인 가변 길이 문자열 데이터 유형에는 VARCHAR, VARINARY 및 VARCHAR2가 있습니다. VARCHAR은 ANSI 표준이며 Microsoft Sql Server에서도 사용되며 MySql에서도 VARINARY 및 VARCHAR2는 모두 Oracle에서 사용됩니다. 문자로 정의된 필드에는 숫자와 문자가 포함될 수 있습니다. 즉, 데이터에 숫자가 포함될 수 있습니다. VARBINARY는 가변 길이의 바이트를 포함한다는 점을 제외하면 VARCHAR 및 VARCHAR2와 유사합니다. 이 데이터 유형은 일반적으로 이미지 파일과 같은 디지털 데이터를 저장하는 데 사용됩니다.
고정 길이 데이터 유형은 공백을 사용하여 필드의 공백을 채우지만 가변 길이 문자열은 이를 수행하지 않습니다. 예를 들어, 가변 길이 필드의 길이가 10으로 정의되고 입력 문자열의 길이가 5인 경우 값의 전체 길이는 5이며 필드의 공백을 채우는 데 공백이 사용되지 않습니다. .
3. 대형 객체 유형.
일부 가변 길이 데이터 유형은 현재 일반적인 BLOB 및 TEXT 데이터 유형과 같이 일반적으로 VARCHAR 필드에 예약된 길이를 초과하는 더 긴 데이터를 저장해야 합니다. 이러한 데이터 유형은 대규모 데이터 세트를 보유하도록 특별히 설계되었습니다. BLOB는 이진 대형 개체이며 해당 데이터는 매우 긴 이진 문자열입니다. BLOB는 이미지, MP3 등 바이너리 미디어 파일을 데이터베이스에 저장하는 데 적합합니다. TEXT 데이터 유형은 큰 VARCHAR 필드로 간주될 수 있는 긴 문자열 유형으로 일반적으로 데이터베이스에 큰 문자 집합을 저장하는 데 사용됩니다. 블로그와 같은 사이트의 HTML 입력입니다. 이러한 유형의 데이터를 데이터베이스에 저장하면 사이트를 동적으로 업데이트할 수 있습니다.
4. 숫자 유형.
숫자는 일반적으로 NUMBER, INTERGER, REAL/DECIMAL 등을 포함한 특정 숫자 유형으로 정의된 필드에 저장됩니다.
Xiaomi는 SQL 값의 표준입니다:
(1).BIT(n);
(2).BIT VARYING(n);
(3).DECIMAL(p,s);
(4 ) .INTEGER;
(5).SMALLINT;
(6).SIGINT;
(7).FLOAT(p,s);
(8).DOUBLE PRECISION(P,S);
( 9 ).REAL(S);
P는 필드의 최대 길이를 나타냅니다. s는 소수점 이하 자릿수를 나타냅니다.
SQL 구현에서 일반적인 숫자 유형은 ANSI 표준을 준수하는 NUMERIC입니다. 값은 0, 양수, 고정 소수점 수, 부동 소수점 수일 수 있습니다. 다음은 NUMERIC을 사용하는 예입니다.
NUMERIC(s), 이 명령은 필드가 허용할 수 있는 최대값을 99,999로 제한합니다. 이 책의 예제와 관련된 모든 데이터베이스 구현에서 NUMERIC은 DECIMAL 유형으로 구현됩니다.
5. 십진수 유형.
십진수 유형은 숫자 값의 전체 길이입니다. 예를 들어, 수치 정의 ZDECIMZAL(4,2)에서 유효 자릿수는 4이므로 전체 자릿수는 4입니다. 스케일은 소수점 이하 자릿수로 2입니다. 이전 예. 실제 값의 소수 자릿수가 정의된 자릿수를 초과하는 경우 값은 반올림됩니다. 예를 들어 34.33이 DECIMAL(3,1)로 정의된 필드에 기록되면 34.3으로 반올림됩니다. .
값이 다음과 같이 정의되면 최대값은 99.99입니다.
DECIMAL(4,2)
유효 숫자는 4로, 값의 전체 길이가 4임을 나타냅니다. 소수점 이하 2자리가 유지됩니다. 소수점 자체는 문자로 간주되지 않습니다.
DECIMAL(4,2)로 정의된 필드는 다음을 포함한 입력 배열을 허용합니다:
(1).12
(2).12.4
(3).12.44
(4).12.449
마지막 것 값 12.449는 필드에 저장될 때 12.45로 반올림됩니다. 이 정의에서 12.45에서 12.499 사이의 값은 12.45로 반올림됩니다.
6. 정수.
정수는 소수점을 포함하지 않는 숫자 값입니다(양수와 음수 포함).
다음은 유효한 정수입니다:
(2).0;
(4).99; ;
(6).199;
7. 부동 소수점 수.
부동소수점 숫자는 가변 유효 숫자와 소수 자릿수가 있는 십진수 값이며 어떤 유효 자릿수와 소수 자릿수도 허용됩니다. REAL 데이터 유형은 단정밀도 부동 소수점 값을 나타내고, DOUBLE PRECISION은 배정밀도 부동 소수점 값을 나타냅니다. 단정밀도 부동 소수점 값의 유효 자릿수는 1~21(포함)이고 배정밀도 부동 소수점 값의 유효 자릿수는 22~53(포함)입니다. 다음은 FLOAT 데이터 유형의 몇 가지 예입니다.
(2).FLOAT(15);
(3).FLOAT(50);
날짜 및 시간 데이터 유형은 분명히 날짜 및 시간 정보를 저장하는 데 사용됩니다. 표준 SQL은 다음 유형을 포함하는 DATETIME 데이터 유형을 지원합니다.
(2).TIME;
(4).TIMESTAMP; 유형 요소는 다음과 같습니다:
(2).MONTH;
(4).HOUR;
ps: 두 번째 요소 또한 초 단위로 나눌 수 있으며 범위는 00.000~61.999이지만 모든 SQL 구현이 이 범위를 지원하는 것은 아닙니다. 윤초를 달성하기 위해 추가 1.999초가 사용됩니다.
각 SQL 구현에는 날짜와 시간을 저장하기 위한 사용자 정의 데이터 유형이 있을 수 있습니다. 앞서 소개한 데이터 유형과 요소는 모든 SQL 공급업체가 준수해야 하는 표준이지만, 대부분의 구현에는 날짜 값을 실제로 저장되는 방식과 다른 형식으로 유지하는 자체 데이터 유형이 있습니다. 날짜 데이터는 일반적으로 길이를 지정하지 않습니다. 나중에 날짜 정보가 일부 구현에서 저장되는 방법, 변환 함수를 사용하여 날짜와 시간을 조작하는 방법, 예제를 사용하여 실제 작업에서 날짜와 시간을 사용하는 방법을 보여주는 등 날짜 유형을 더 자세히 소개합니다. 9. 리터럴 문자열. 리터럴 문자열은 사용자나 프로그램이 명시적으로 지정하는 이름이나 전화번호와 같은 일련의 문자입니다. 리터럴 문자열에는 이전에 소개된 데이터 유형과 동일한 속성을 가진 데이터가 포함되어 있지만 문자열의 값은 알려져 있습니다. 일반적으로 각 열에는 모든 레코드의 필드에 대해 서로 다른 값이 포함되어 있으므로 열 자체의 값은 일반적으로 결정적이지 않습니다. 실제로 필드를 리터럴 문자열 데이터 유형으로 지정할 필요가 없고 문자열로 지정할 필요가 있습니다. 리터럴 문자열의 예는 다음과 같습니다: (1).'Hello';(2).45000;(3).'45000';(4).3.14;(5 ). '1997년 11월 1일';문자열은 작은따옴표로 묶이고, 값 45000은 작은따옴표로 묶이지 않으며, 두 번째 45000은 큰따옴표로 묶습니다. 일반적으로 문자열에는 작은따옴표가 필요하지만 숫자 문자열에는 그렇지 않습니다.
데이터 유형을 숫자 유형으로 암시적으로 변환하는 절차적 용어. 이 프로세스 중에 데이터베이스는 사용해야 하는 데이터 유형을 자동으로 결정합니다. 따라서 데이터가 작은따옴표로 묶이지 않은 경우 SQL 프로그램은 이를 숫자 유형으로 식별합니다. 따라서 데이터 형식에 특별한 주의를 기울여야 합니다. 그렇지 않으면 저장 결과가 편향되거나 오류가 보고될 수 있습니다. 나중에 데이터베이스 쿼리에서 리터럴 문자열을 사용하는 방법을 설명하겠습니다.
10.NULL 데이터 유형.
NULL 값은 값이 없음을 의미합니다. NULL 값은 테이블 생성, 쿼리 검색 조건, 심지어 리터럴 문자열까지 포함하여 SQL에서 널리 사용됩니다.
NULL 데이터 유형을 사용하는 경우 해당 필드에 데이터 입력이 필요하지 않음을 명확하게 표시해야 합니다. 필드에 데이터가 포함되어야 하는 경우에는 NOT NULL로 설정하세요. 필드에 데이터가 포함되어 있지 않다면 NULL로 설정하는 것이 가장 좋습니다.
11.부울 값.
Boolean 값의 값 범위는 TRUE, FlASE, NULL이며 데이터 비교에 사용됩니다. 예를 들어 쿼리에 조건을 설정하면 각 조건은 TRUE, FLASE 또는 NULL로 평가됩니다. 쿼리의 모든 조건 값이 TRUE이면 데이터가 반환되고, 특정 조건의 값이 FLASE 또는 NULL이면 데이터가 반환되지 않습니다. 예를 들어 다음 예는 다음과 같습니다.
WHERE NAME = 'SMITH'
이것은 쿼리의 조건일 수 있습니다. 대상 테이블의 각 데이터 행은 이 조건을 기반으로 평가됩니다. 테이블 행의 NAME 필드 값이 SMITH이면 조건값이 TRUE이고 해당 레코드가 반환됩니다.
대부분의 데이터베이스 구현에는 엄격한 BOOLEAN 유형이 없지만 대신 다른 구현 방법을 사용합니다. MySql은 BOOLEAN 유형을 사용하지만 기본적으로 기존 TINYINT 유형과 동일합니다. Oracle은 사용자가 부울 값 대신 CHAR(1) 값을 사용할 수 있도록 하는 반면 SQL Server는 대신 BIT를 사용합니다.
12.맞춤형.
사용자 정의 유형은 사용자 정의 유형으로, 이를 통해 사용자는 기존 데이터 유형을 기반으로 자신의 데이터 유형을 사용자 정의하여 데이터 저장 요구 사항을 충족할 수 있습니다. 사용자 정의 유형은 데이터 저장 가능성을 크게 향상시켜 개발자에게 데이터베이스 프로그램 개발 프로세스에서 더 큰 유연성을 제공합니다. CREATE TYPE 문은 사용자 정의 유형을 생성하는 데 사용됩니다.
예를 들어 MySql 및 Oracle에서는 다음과 같은 유형을 생성할 수 있습니다.
CREATE TYPE PERSON ASOBJECT
(NAME VARCHER (30),
SSN VARCHAR(9);
)
그러면 다음을 수행할 수 있습니다. 다음과 같이 사용자 정의 유형을 참조하십시오.
CREATE TABLE EMP_PAY
(EMPLOYEE PERSON,
SALARY DECIMAL(10,2),
HIRE_DATE DATE);
테이블 EMP_PAY의 첫 번째 열, EMPLOYEE 유형은 PERSON입니다. this 앞서 생성한 Custom Type입니다.
13. 도메인.
도메인은 사용할 수 있는 유효한 데이터 유형의 모음입니다. 도메인은 데이터와 연결되어 특정 데이터만 허용됩니다. 도메인이 생성된 후 도메인에 제약 조건을 추가할 수 있습니다. 제약 조건은 데이터 유형과 함께 작동하여 필드가 허용할 수 있는 데이터를 추가로 제한합니다. 필드는 사용자 정의 유형과 유사하게 사용됩니다.
다음과 같이 도메인을 생성하세요:
CREATE DOMAIN MONEY_D AS NUMBER(0,2);
다음과 같이 도메인에 제약 조건을 추가하세요:
ALTER DOMAIN MONEy_D
ADD CONSTRAINT MONEY_CON
CHECK(VALUE>5 ); 다음과 같이 도메인을 참조하십시오 유형은 다른 프로그래밍 언어를 사용해 본 사람에게는 낯설지 않습니다. 데이터 유형을 사용하면 단일 문자, 소수, 날짜 및 시간과 같은 다양한 유형의 데이터를 데이터베이스에 저장할 수 있습니다. C와 같은 3세대 프로그래밍 언어를 사용하든 관계형 데이터베이스를 사용하여 SQL 코딩을 구현하든 데이터 유형의 개념은 동일합니다. 물론 데이터 유형의 이름은 구현마다 다르지만 작동 방식은 기본적으로 동일합니다. 또한, ANSI 표준에 명시된 모든 데이터 유형에 대해 관계형 데이터베이스 관리 시스템을 구현할 필요는 없으며 ANSI와 호환되는 것으로 간주되므로 사용되는 데이터 유형을 이해하려면 특정 문서를 확인하는 것이 가장 좋습니다.
데이터 유형, 길이, 규모 및 정밀도를 고려할 때 단기 및 장기적으로 신중하게 계획하세요. 또한 회사 정책과 사용자가 데이터에 액세스하는 방법도 고려해야 할 요소입니다. 개발자는 데이터의 성격을 이해해야 합니다. 적절한 데이터 유형이 사용되도록 데이터베이스에서 데이터가 서로 어떻게 관련되어 있는지.
이 문서에서는 SQL의 데이터 유형만 설명합니다! 순수한 텍스트 설명! 이 글은 "Sql Beginner's Classic"에서 발췌한 것입니다. 다음 기사에서는 SQL을 시작하는 방법을 설명합니다. (3) 데이터베이스 개체 관리 !위 내용은 MySQL의 데이터 유형 개념을 이해하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!