첫째, 테이블 전체 구문을 작성 :
# 구문 : 표 테이블 이름 (만들기 필드 명 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 레코드에서 다시 시작합니다 효과