열거(enum) 유형은 다음으로 구성된 데이터 유형입니다. 특정 순서를 갖는 사전 정의된 정적 값 세트입니다. 그들은 와 동일열거형여러 개의 항목을 입력합니다. 프로그래밍 언어. 열거형 유형의 예는 다음과 같습니다. 요일 또는 특정 기간에 대한 상태 값 세트 데이터.
Enum 유형은 다음을 사용하여 생성됩니다.스포츠 토토 사이트 생성명령(예:
CREATE TYPE 기분 AS ENUM ('슬픔', '괜찮아', '행복');
일단 생성되면 열거형 유형을 테이블과 테이블에서 사용할 수 있습니다. 다른 유형과 마찬가지로 함수 정의:
열거형 유형의 값 순서는 다음과 같습니다. 유형이 선언될 때 나열된 값입니다. 모두 표준 비교 연산자 및 관련 집계 함수 열거형이 지원됩니다. 예를 들어:
예 8-4. 열거형 순서
INSERT INTO person VALUES ('래리', '슬픈');
INSERT INTO person VALUES ('Curly', 'ok');
SELECT * FROM 사람 WHERE current_mood '슬픔';
이름 | 현재_기분
------+---------------
모에 | 행복하다
곱슬 | 좋아요
(2열)
SELECT * FROM 사람 WHERE current_mood 'sad' ORDER BY current_mood;
이름 | 현재_기분
------+---------------
곱슬 | 좋아요
모에 | 행복하다
(2열)
사람에서 이름 선택
WHERE current_mood = (SELECT MIN(current_mood) FROM 사람);
이름
-------
래리
(1행)
열거 스포츠 토토 사이트은 완전히 별개의 데이터 스포츠 토토 사이트이며 서로 비교하지 마십시오.
예 8-5. 캐스팅 부족
CREATE TYPE 행복 AS ENUM ('행복함', '매우 행복함', '황홀함');
CREATE TABLE 휴일(
num_weeks 정수,
행복 행복
);
INSERT INTO holiday(num_weeks,happiness) VALUES (4, 'happy');
INSERT INTO holiday(num_weeks,happiness) VALUES (6, '매우 행복함');
INSERT INTO holiday(num_weeks,happiness) VALUES (8, 'ecstatic');
INSERT INTO holiday(num_weeks,happiness) VALUES (2, 'sad');
오류: 열거형 행복에 대한 잘못된 입력 값: "sad"
SELECT 사람.이름, 휴일.num_weeks FROM 사람, 휴일
어디에서 person.current_mood = holiday.happiness;
오류: 연산자가 존재하지 않습니다. 기분 = 행복
당신이 정말로 그런 일을 해야 한다면, 당신은 다음 중 하나를 할 수 있습니다 사용자 정의 연산자를 작성하거나 명시적 캐스트를 추가하십시오. 질문:
열거형 값은 디스크에서 4바이트를 차지합니다. 의 길이 열거형 값의 텍스트 레이블은에 의해 제한됩니다.NAMEDATALEN설정이 다음으로 컴파일됨PostgreSQL; 표준 빌드에서는 이것이 의미합니다 최대 63바이트입니다.
열거형 라벨은 대소문자를 구분하므로'행복해요'다음과 동일하지 않습니다'행복해요'. 라벨의 공백은 중요합니다. 도.