sql 필드 중 일부

9525 단어 sql
필드 형식 이 다른 필드 형식 은 서로 다른 형식의 데 이 터 를 저장 하 는 데 사 용 됩 니 다.표를 만 들 고 사용 할 때 자주 사용 하 는 다섯 가지 필드 유형 을 이해 해 야 합 니 다. 문자 형, 텍스트 형, 수치 형, 논리성 과 날짜 형 입 니 다.
문자 형 데이터 문자 형 데 이 터 는 매우 유용 하 다.짧 은 문자열 정 보 를 저장 해 야 할 때 는 항상 문자 데 이 터 를 사용 해 야 합 니 다.예 를 들 어 HTML form 의 텍스트 상자 에서 수집 한 정 보 를 문자 필드 에 넣 을 수 있 습 니 다.가 변 길이 의 문자열 정 보 를 저장 할 필드 를 만 들 려 면 표현 식 VARCHAR 을 사용 할 수 있 습 니 다.앞에서 만 든 시계 guestbook 을 고려 하 십시오:
CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate
DATETIME)

이 예 에서 필드 visitor 의 데이터 형식 은 VARCHAR 입 니 다.데이터 형식 뒤에 있 는 괄호 안의 숫자 를 주의 하 세 요.이 숫자 는 이 필드 에 저장 할 문자열 의 최대 길 이 를 지정 합 니 다.이 예 에서 필드 visitor 가 저장 할 수 있 는 문자열 은 최대 40 글자 입 니 다.이름 이 너무 길 면 문자열 이 끊 어 지고 40 글자 만 남 습 니 다.VARCHAR 형식 으로 저장 할 수 있 는 문자열 은 최대 255 글자 입 니 다.더 긴 문자열 데 이 터 를 저장 하려 면 텍스트 데이터 (다음 절 에서 설명) 를 사용 할 수 있 습 니 다.다른 문자 데 이 터 는 고정된 길이 의 문자 데 이 터 를 저장 하 는 데 쓰 인 다.다음은 이러한 데이터 형식 을 사용 하 는 예 입 니 다.
CREATE TABLE guestbook (visitor CHAR(40),comments TEXT,entrydate
DATETIME)

이 예 에서 필드 visitor 는 40 글자 의 고정 길이 문자열 을 저장 하 는 데 사 용 됩 니 다.표현 식 CHAR 는 이 필드 가 고정된 길이 의 문자열 일 것 을 지정 합 니 다.VARCHAR 형 과 CHAR 형 데이터 의 이 차 이 는 미세 하지만 매우 중요 하 다.길이 가 40 글자 인 VARCHAR 형 필드 에 데이터 Bill Gates 를 입력 하면나중에 이 필드 에서 이 데 이 터 를 꺼 낼 때 꺼 낸 데이터 의 길 이 는 10 글자 입 니 다. 문자열 Bill Gates 의 길이 입 니 다.현재 40 글자 길이 의 CHAR 형 필드 에 문자열 을 입력 하면 데 이 터 를 꺼 낼 때 꺼 낸 데이터 길 이 는 40 글자 입 니 다.문자열 뒤에 빈 칸 이 추 가 됩 니 다.자신의 사 이 트 를 만 들 때 VARCHAR 형 필드 를 사용 하 는 것 이 CHAR 형 필드 보다 훨씬 편리 하 다 는 것 을 알 게 될 것 입 니 다.VARCHAR 형 필드 를 사용 할 때 데이터 에 남아 있 는 빈 칸 을 자 르 기 위해 신경 쓸 필요 가 없습니다.VARCHAR 형 필드 의 또 다른 두 드 러 진 장점 은 CHAR 형 필드 보다 더 적은 메모리 와 하 드 디스크 공간 을 차지 할 수 있다 는 것 이다.데이터베이스 가 매우 클 때, 이러한 메모리 와 디스크 공간의 절약 은 매우 중요 하 게 변 할 것 이다.텍스트 형 데이터 문자 형 데 이 터 는 문자열 의 길 이 를 255 자 이상 제한 합 니 다.텍스트 데 이 터 를 사용 하면 20 억 글자 가 넘 는 문자열 을 저장 할 수 있 습 니 다.큰 문자열 의 문 자 를 저장 해 야 할 때 텍스트 데 이 터 를 사용 해 야 합 니 다.텍스트 데 이 터 를 사용 하 는 예 가 있 습 니 다.
CREATE TABLE guestbook (visitor VARCHAR(40),comments TEXT,entrydate
DATETIME)

이 예 에서 필드 comments 는 방문 자가 사이트 에 대한 의견 을 저장 하 는 데 사 용 됩 니 다.텍스트 형 데 이 터 는 길이 가 없 으 며, 이전 절 에서 말 한 문자 형 데 이 터 는 길이 가 있 습 니 다.텍스트 필드 의 데 이 터 는 보통 비어 있 거나 크다.HTML form 의 여러 줄 텍스트 편집 상자 (TEXTAREA) 에서 데 이 터 를 수집 할 때 수 집 된 정 보 를 텍스트 필드 에 저장 해 야 합 니 다.그러나 언제든지 텍스트 필드 사용 을 피 할 수 있다 면 적용 되 지 않 아야 한다.텍스트 필드 는 크 고 느 리 며 텍스트 필드 를 남용 하면 서버 속도 가 느 려 집 니 다.텍스트 필드 는 디스크 공간 도 많이 먹는다.경고: 텍스트 필드 에 데이터 (심지어 빈 값) 를 입력 하면 2K 의 공간 이 자동 으로 분 배 됩 니 다.이 기록 을 삭제 하지 않 으 면 이 저장 공간 을 회수 할 수 없습니다.
수치 형 데이터 SQL Sever 는 다양한 수치 형 데 이 터 를 지원 합 니 다.너 는 정수, 소수, 그리고 돈 수 를 저장 할 수 있다.보통 표 에 숫자 를 저장 해 야 할 때 정형 (INT) 데 이 터 를 사용 해 야 한다.INT 형 데이터 의 표 수 범 위 는 - 2, 147, 483, 647 에서 2, 147, 483, 647 의 정수 이다.다음은 INT 형 데 이 터 를 어떻게 사용 하 는 지 예 입 니 다.
CREATE TABLE visitlog (visitor VARCHAR(40),numvisits INT)

이 시 계 는 사이트 가 방문 한 횟수 를 기록 하 는 데 쓸 수 있다.2, 147, 483, 647 번 이상 방문 하 는 사람 이 없 으 면 nubvisits 필드 에 방문 횟수 를 저장 할 수 있 습 니 다.메모리 공간 을 절약 하기 위해 서 는 SMALLINT 형 데 이 터 를 사용 할 수 있 습 니 다.SMALLINT 형 데 이 터 는 - 32768 에서 32768 까지 의 정 수 를 저장 할 수 있다.이런 데이터 유형의 사용 방법 은 INT 형 과 완전히 같다.마지막 으로 공간 을 절약 할 필요 가 있다 면 TINYINT 형 데 이 터 를 사용 할 수 있다.마찬가지 로 이런 유형의 사용 방법 도 INT 형 과 같 고 다른 것 은 이런 유형의 필드 는 0 에서 255 의 정수 만 저장 할 수 있다 는 것 이다.TINYINT 형 필드 는 음 수 를 저장 하 는 데 사용 할 수 없습니다.일반적으로 공간 을 절약 하기 위해 서 는 가능 한 한 최소한 의 정형 데 이 터 를 사용 해 야 한다.하나의 TINYINT 형 데 이 터 는 하나의 바이트 만 차지한다.하나의 INT 형 데이터 가 네 개의 바이트 를 차지한다.이것 은 보기 에는 차이 가 크 지 않 은 것 같 지만, 비교적 큰 표 에서 바이트 수의 증 가 는 매우 빠르다.다른 한편, 필드 를 만 들 었 다 면 수정 하 는 것 은 매우 어렵다.따라서 안전 을 위해 서 는 한 필드 에 저장 해 야 할 수치 가 얼마나 될 지 예측 한 다음 에 적당 한 데이터 형식 을 선택해 야 한다.필드 에 저 장 된 데 이 터 를 더 많이 제어 하기 위해 서 는 NUMERIC 형 데 이 터 를 사용 하여 하나의 정수 부분 과 소수 부분 을 동시에 표시 할 수 있 습 니 다.NUMERIC 형 데 이 터 는 INT 형 데이터 보다 훨씬 큰 수 를 표시 할 수 있 습 니 다.하나의 NUMERIC 필드 는 - 1038 에서 1038 범위 내의 수 를 저장 할 수 있다.NUMERIC 형 데 이 터 는 소수 부분의 수 를 표시 할 수 있 게 한다.예 를 들 어 NUMERIC 필드 에 소수점 3.14 를 저장 할 수 있 습 니 다.NUMERIC 필드 를 정의 할 때 정수 부분의 크기 와 소수 부분의 크기 를 동시에 지정 해 야 합 니 다.이 데이터 형식 을 사용 하 는 예 가 있 습 니 다.
CREATE TABLE numeric_data (bignumber NUMERIC(28,0),
fraction NUMERIC (5,4) )

이 문 구 를 실행 할 때 numeric 라 는 이름 을 만 듭 니 다.data 의 두 필드 를 포함 하 는 표 입 니 다.필드 bignumber 는 28 비트 의 정수 까지 저장 할 수 있 습 니 다.필드 fraction 은 다섯 개의 정수 부분 과 네 개의 소수 부분의 소 수 를 저장 할 수 있 습 니 다.하나의 NUMERIC 형 데이터 의 정수 부분 은 최대 28 비트 만 있 을 수 있 고 소수 부분의 자릿수 는 정수 부분의 자릿수 보다 작 거나 같 아야 하 며 소수 부분 은 0 일 수 있다.INT 형 이나 NUMERIC 형 데 이 터 를 사용 하여 돈 수 를 저장 할 수 있 습 니 다.그러나 이 목적 에 사용 되 는 다른 두 가지 데이터 형식 이 있다.만약 당신 의 점포 가 많은 돈 을 벌 수 있 기 를 원한 다 면, 당신 은 모 니 형 데 이 터 를 사용 할 수 있 습 니 다.만약 당신 의 야심 이 크 지 않다 면, 당신 은 SMALLMONEY 형 데 이 터 를 사용 할 수 있 습 니 다.모 니 형 데 이 터 는 - 922, 337, 203, 685, 477.5808 에서 922, 337, 203, 685, 477.5807 까지 의 돈 수 를 저장 할 수 있다.이보다 더 큰 금액 을 저장 해 야 한다 면 NUMERIC 형 데 이 터 를 사용 할 수 있다.SMALLMONEY 형 데 이 터 는 - 214, 748.3648 에서 214, 748.3647 의 돈 만 저장 할 수 있다.마찬가지 로 가능 하 다 면 모 니 형 데 이 터 를 SMALLMONEY 형 으로 대체 해 공간 을 절약 해 야 한다.다음 의 예 는 이 두 가지 돈 을 표시 하 는 데이터 유형 을 어떻게 사용 하 는 지 보 여 준다. CREATE TABLE products (product VARCHAR (40), price MONEY, Discount price SMALLMONEY) 이 시 계 는 상품 의 할인 과 일반 판매 가격 을 저장 할 수 있다.필드 price 의 데이터 형식 은 MONEY, 필드 discountprice 의 데이터 형식 은 SMALLMONEY 입 니 다.
문자 논리 값 은 체크 상자 (CHECKBOX) 를 사용 하여 웹 페이지 에서 정 보 를 수집 하면 이 정 보 를 BIT 형 필드 에 저장 할 수 있 습 니 다.BIT 형 필드 는 두 개의 값 만 가 져 올 수 있 습 니 다: 0 또는 1.이 필드 를 어떻게 사용 하 는 지 보 여 주 는 예 가 있 습 니 다.
CREATE TABLE opinion (visitor VARCHAR(40),good BIT)

이 시 계 는 당신 의 점포 에 대해 여론 조 사 를 해서 얻 은 정 보 를 보관 하 는 데 쓸 수 있 습 니 다.방문 자 들 은 그들 이 당신 의 점 포 를 좋아 하 는 지 아 닌 지 를 투표 할 수 있 습 니 다.만약 그들 이 YES 를 던진다 면, BIT 형 필드 에 1 을 저장 하 세 요.반대로 그들 이 NO 를 던 지면 필드 에 0 을 저장 합 니 다. (다음 장 에 서 는 투 표를 어떻게 계산 하 는 지 배 울 것 입 니 다.)시 계 를 만 든 후에 표 에 BIT 필드 를 추가 할 수 없 으 니 조심 하 세 요.표 에 BIT 필드 를 포함 하려 면 표를 만 들 때 완성 해 야 합 니 다.저장 날짜 와 시간 을 네트워크 를 만 들 때 한 동안 방문 자 수 를 기록 해 야 할 수도 있 습 니 다.날짜 와 시간 을 저장 하기 위해 서 는 DATETIME 형 데 이 터 를 사용 해 야 합 니 다. 다음 과 같 습 니 다.
CREATE TABL visitorlog( visitor VARCHAR (40), arrivaltime DATETIME ,
departuretime DATETIME)

이 시 계 는 방문 자가 인터넷 에 들 어 오고 떠 나 는 시간 과 날 짜 를 기록 하 는 데 쓸 수 있다.하나의 DATETIME 형 필드 에 저장 할 수 있 는 날짜 범 위 는 1753 년 1 월 1 일 1 밀리초 에서 9999 년 12 월 31 일 마지막 밀리초 이다.이렇게 넓 은 범위 의 날짜 와 시간 을 덮어 쓸 필요 가 없다 면 SMALLDATETIME 형 데 이 터 를 사용 할 수 있 습 니 다.이 는 DATETIME 형 데이터 와 마찬가지 로 사 용 됩 니 다. 다만 표시 할 수 있 는 날짜 와 시간 범 위 는 DATETIME 형 데이터 보다 작고 DATETIME 형 데이터 보다 정확 하지 않 습 니 다.SMALLDATETIME 형의 필드 는 1900 년 1 월 1 일부 터 2079 년 6 월 6 일 까지 의 날 짜 를 저장 할 수 있 으 며 초 까지 만 정확 할 수 있다.DATETIME 형 필드 는 날짜 와 시간 을 입력 하기 전에 실제 데 이 터 를 포함 하지 않 는 다 는 점 을 인식 하 는 것 이 중요 하 다.다음 장 에 서 는 대량의 SQL 함 수 를 사용 하여 날짜 와 시간 을 읽 고 조작 하 는 방법 을 배 울 것 입 니 다 (아래 의 '부족 값' 절 참조).VBScript 와 JScript 에서 날짜 와 시간 함 수 를 사용 하여 DATETIME 형 필드 에 날짜 와 시간 을 입력 할 수 있 습 니 다.
필드 속성 이전 절 에 서 는 다양한 필드 를 포함 하 는 표를 만 드 는 방법 을 소개 합 니 다.이 절 에서 필드 의 세 가지 속성 을 어떻게 사용 하 는 지 배 울 것 입 니 다.이 속성 들 은 빈 값, 부족 한 값, 표지 값 을 제어 할 수 있 습 니 다.
빈 값 을 허용 하고 금지 합 니 다. 대부분의 필드 에서 빈 값 (NULL) 을 받 아들 일 수 있 습 니 다.한 필드 가 빈 값 을 받 아들 인 후에 바 꾸 지 않 으 면 빈 값 을 계속 유지 합 니 다.빈 값 (NULL) 과 0 은 다 릅 니 다. 엄 밀 히 말 하면 빈 값 은 아무런 값 이 없습니다.한 필드 가 빈 값 을 받 아들 일 수 있 도록 필드 정의 뒤에 표현 식 NULL 을 사용 해 야 합 니 다.예 를 들 어 아래 표 의 두 필드 는 모두 빈 값 을 받 아들 일 수 있 습 니 다.
CREATE TABLE empty (empty1 CHAR (40) NULL,empty2 INT NULL

메모: BIT 형 데 이 터 는 빈 값 일 수 없습니다.이런 유형의 필드 는 0 이나 1 을 가 져 가 야 합 니 다.
필드 에 빈 값 을 사용 하 는 것 을 금지 해 야 할 때 가 있 습 니 다.예 를 들 어 신용카드 번호 와 신용카드 유효기간 이 저 장 된 시계 가 있다 고 가정 하면 누군가가 신용카드 번 호 를 입력 하 기 를 원 하지 않 지만 유효기간 을 입력 하지 않 을 것 이다.두 필드 에 데 이 터 를 입력 하도록 강제 하기 위해 서 다음 방법 으로 이 표를 만 들 수 있 습 니 다.
CREATE TABLE creditcards (creditcard_number CHAR(20) NOT NULL,
Creditcard_expire DATETIME NOT NULL)

좋은 웹페이지 즐겨찾기