MySQL의 데이터 유형 및 제약

첫째, 테이블 전체 구문을 작성 :

# 구문 : 
표 테이블 이름 (만들기 
필드 명 1 유형 [(폭) 제약, 
필드 명 [(폭) 제약]의 2 종류의 
필드 이름 타입 3 (폭) 제약] 
) 

#의 주 : 
1 . 같은 테이블에 같은 필드 이름이 아닌
 2 . 또한 폭과 제약, 필드 이름 및 유형이 필요합니다
 3 마지막 필드 뒤에 쉼표가 될 수 없습니다! 

# 라이트 : 
# 1 데이터 기억 제한의 폭을 지칭 
표 사용자 정보 (문자 이름)를 생성 
INSERT INTO 사용자 정보 값 ( ' 제이슨 ' )
 "" " 
1. 데이터베이스에는 안전 모드 버전 없으나 데이터를 저장하기 만 할 수있다 J에 입금됩니다 
데이터베이스의 최신 버전을 직접 프롬프트 오류 저장할 수 없습니다 2 : 1 행의 데이터 컬럼의 이름 '너무 긴을 
"" " 

# 2. 제약 지인 >>> NUT와 널 널 
하여 테이블 T1을 작성합니다 (위의 아이디 INT 언급 ,
T1 값으로 INSERT ( 1. ' J ' );   # 일반 메모리 
T1 값으로 INSERT (2, NULL);   #의 오류 

# 요약 형 제약 차이 
#의 종류 : 제한 필드가 있어야합니다 데이터 저장의 유형 
#의 제약 : 제약을 넘어 제한의 추가 유형을 추가하는 것입니다

둘째, 기본 데이터 유형

1 정수

테이블 T1 만들기 (X TINYINT) 
INSERT INTO T1 값 ( 128) (- 129 ), 모드 엄격한 오차 아래 #. 왜냐하면 범위의 

(X TINYINT 부호) T2 테이블을 생성 ; #unsigned 표시 취소 
T2 값 (삽입 반 -1), (256 ), #는, 그 범위는 엄격 모드 주어지는 

테이블 T3 (X의 INT 부호)를 생성 # 단계; 에 범위 엄격 모드 오류 
T3 값 INSERT INTO ( 4294967296);

참고 : 정수의 경우, 메모리 폭의 데이터 유형이 제한되지 않지만, 해상도 제한 때문에 필드가 완전히 디스플레이, 기본 디스플레이 폭의 폭을 지정하지 않고, 정수 타입에 사용되는 경우, 테이블을 만들 때, 충분한 완전한 원래 데이터가 저장되는 표시.

 

엄격 모드 및 설정 소개 :

쇼와 같은 변수 " % 모드 % " ;   #은 모드 구성 매개 변수를 포함하는 데이터베이스 변수 이름 구성보기 
#은 보안 모드 수정 
세션 SET # 현재 사용자 인터페이스 활성 
SET 글로벌   # 전 세계적으로 유효 

SET 글로벌을 sql_mode = ' STRICT_TRANS_TABLES ' 
# 수정 한 후를 종료 현재 클라이언트가 수 다시 로그인

 

2, 플로트

# 스토리지 제한 
float를 (255,30 ) # 정밀도 최소 
두 번 ( 255,30 )에 # 정밀도 
진수 ( 255,30 ) 최대 정확도 번호에 

# 정확성을 검사하는 
표 T9 만들기 (X float를 (255,30 ));       
표 T10은 (더블 X를 (작성 255,30 )); 
표 T11 (X 진수 (만들기 65,30 )); 

INSERT INTO T9 값 ( 1.111111111111111111111111111111 ); 
INSERT INTO T10 값 ( 1.111111111111111111111111111111 ); 
INSERT INTO T11 값 ( 1.111111111111111111111111111111);

 

3, 문자 유형

CHAR, VARCHAR

만들기 ((4) 이름 char) 표 T10   #이 네 개의 문자가 주어지고 초과는 4 개 문자 보완 할 수있는 충분한 공간이없는 
(이름 VARCHAR (4))에이 표 T11 만들기   #이 충분하지 몇 몇 가지가 있습니다 유지하는 네 문자에게 오류를 초과 네 

#의 인증 저장 한계 
T12 값 INTO INSERT ( ' 안녕하세요 ' ) 
INSERT INTO T13 값 ( ' 안녕하세요 ' )
 #의 검증 메모리 길이 
T12 값 INTO INSERT ( ' ' ) # 'A' 
T13 값으로 INSERT ( ' ' ) # 'A ' 
* SELECT 에서 T12 
SELECT * 로부터 T13의   #의 실제 결과를 볼 수 없습니다 

선택 (SELECT) CHAR_LENGTH (이름) 에서 T12 
은 SELECT CHAR_LENGTH (이름) 에서 T13의   #을 실제 결과를 볼 수 없습니다 여전히 

"" ". 먼저 하드 디스크 메모리가 절대적으로 실제 데이터를 있는지 확인해야하지만, 시간을 표시 MySQL은 자동으로 후행 공백을 제거합니다 "" " 
#을 사용하면 MySQL의 도움이 자동으로 작동 후행 공백을 제거하지 않으려면, 당신은 다른 모드를 추가 할 필요가 
세트를 , (주) 무료 가입 sql_mode = " STRICT_TRANS_TABLES, PAD_CHAR_TO_FULL_LENGTH을 " ;
 #이 방문 다시 클라이언트를 종료 
선택 CHAR_LENGTH (X) 로부터 T12, # . 4 
SELECT CHAR_LENGTH (Y) 로부터 T13, # . 1 

# CHAR 타입은 MySQL을는 하드 디스크에 저장된 보완 데이터 공간에 저장된다. 결과를 읽을 때 자동으로 후행 공백을 취할 것입니다 


. ""
숯불과 VARCHAR의 차이 사용 
"" " 
이름 문자를 ( 5. )
 #의 단점 : 낭비되는 공간 
#의 장점 : 빠른 액세스 속도 
에곤 알렉스 LXX JXX TXX의   

이름 varchar ( . 5 )
 #의 단점 : 느린 접속 속도 
#의 장점 : 저장 공간 
1bytes + 에곤의 1bytes + 알렉스 1bytes + LXX 1bytes + jxx 1bytes + TXX

 

4 시간 형식

날짜, 시간, 날짜, 년

테이블 학생 (생성 
    아이디 INT, 
  이름 char ( 16 ), 
  born_year 년, 
  생년월일, 
  study_time 시간, 
  reg_time의 날짜를 
); 
학생 값을 삽입 ( 1 ' 에곤 ' , ' 2019 ' , ' 2019년 5월 9일 ' , ' 11시 11분 0초 ' , ' 2019년 11월 11일 11시 11분 11초 ' );

 

5, 열거 및 수집 유형

열거 설정

테이블 사용자 (생성 
    아이디 INT, 
  이름 char ( 16 ), 
  성별 ENUM ( ' 남성 ' , ' 여성 ' , ' 다른 사람 ' ) 
); 
사용자 값에 삽입 ( 1, ' 제이슨 ' , ' XXX ' )   #이 报错 
사용자 값 (2, 삽입 ' 에곤 ' , ' 여성 ' )   # 正确! 


테이블 교사 (생성 
    아이디 INT, 
  이름 문자를 ( 16 ),
  성별 열거 ( ' MALE ' , ' FEMALE ' , ' 기타 ' ), 
  취미 SET가 ( ' 읽기 ' , ' SLEEP을 ' , ' 사나 ' , ' DBJ ' ) 
); 
INSERT INTO 교사 값 ( . 1, ' 에곤 ' , ' MALE ' , ' 읽기, SLEEP는 DBJ ' )   #의 세트는 또한 존재할 수 밖에

 

셋째, 제약

"" " 
테이블의 기본 키 필드의 정체성에 대한 PRIMARY KEY합니다 (PK)는 고유 식별자 기록 
외래 키 테이블 식별 (FK) 필드 FOREIGN KEY를 
NULL이 아닌 필드 식별자는 null 일 수 없습니다 
UNIQUE KEY (UK) 확인 이 필드의 값은 고유 
자동 성장 (정수 타입, 기본 키)를 식별 AUTO_INCREMENT 값 필드 
기본 대한 디폴트 값 필드 

부호 부호 
0 가득 ZEROFILL을 
"" "

 

그는 추가 :

삭제] 에서 TB1; 
강조 :이 명령은 위의 모든 기록을 정말 테이블이 삭제 할 수 있지만 ID가 0으로 재설정됩니다, 
그래서 그 부분은 테이블을 취소하는 명령되지 닫고 사용 삭제 일치하는 일부 기록 테이블 삭제 
(가) 삭제 에서 WHERE 위에서 언급 한 ID> 10 TB1 , 

당신은 테이블을 비우려면, TB1자를 사용하여 
전체 테이블을 다시 설정, ID가 0 레코드에서 다시 시작합니다 효과

 

추천

출처www.cnblogs.com/wujc3/p/11384928.html