>  기사  >  데이터 베이스  >  MYSQL 테이블 작업

MYSQL 테이블 작업

齐天大圣
齐天大圣원래의
2020-05-27 08:48:45162검색

라이브러리가 생성되면 다음 단계는 테이블을 생성하는 것입니다. 테이블을 생성하려면 구문뿐만 아니라 컬럼 유형, 인덱스 등도 알아야 합니다. 다음에서는 테이블 생성 구문에 대해서만 설명하고 열 유형에 대해서는 설명하지 않습니다.

테이블 만들기

테이블 만들기 구문:

CREATE TABLE [IF NOT EXISTS] 表名 (
    字段名1 列类型 [属性] [索引],
    字段名2 列类型 [属性] [索引],
    字段名3 列类型 [属性] [索引],
    ......
) [表类型] [表字符集]

여기서 한 가지 주의할 점은 필드 이름이 mysql의 키워드와 일치해서는 안 된다는 것입니다. 필드 이름 앞뒤에 ` 기호를 추가하려면 이 기호는 탭 키 위에 있습니다.

이제 사용자 ID, 사용자 이름, 사용자 비밀번호, 휴대폰 번호, 성별, 생일 필드가 있는 사용자 테이블을 생성해 보겠습니다.

create table if not exists users(
  user_id int(10) unsigned auto_increment primary key,
  username varchar(16) not null default '' collate utf8mb4_bin comment '用户名',
  userpass char(32) not null collate utf8mb4_bin default '',
  mobile char(11) not null default '' unique,
  gender enum('未知', '男', '女') default '未知',
  birth date not null default '1900-01-01',
  index username(username)
) engine=innodb default charset utf8mb4 collate utf8mb4_general_ci;

일반적으로 향후 작업을 용이하게 하기 위해 각 테이블에 대해 고유한 식별 필드(여기서는 user_id)를 생성합니다. 여기서는 사용자 이름 및 userpass 필드 모두에 대해 대조가 설정되어 있습니다. 이는 이 두 필드가 대소문자를 구분한다는 점에서 다르기 때문입니다. 또한 테이블에 대해 모바일 필드와 사용자 이름 필드라는 두 개의 인덱스를 만들었습니다. 모바일에는 고유한 색인이 설정되어 있으므로 휴대전화 번호는 중복될 수 없습니다. 사용자 이름에 대한 일반 색인을 생성하면 사용자 이름을 통한 검색 속도가 빨라집니다.

테이블 및 테이블 구조 보기

테이블이 생성된 후 실제로 성공적으로 생성되었는지 확인하고 싶습니다. 테이블 표시를 통해 현재 라이브러리 아래의 모든 테이블을 볼 수 있습니다.

mysql> show tables;
+---------------+
| Tables_in_job |
+---------------+
| users      |
+---------------+
1 row in set

실제로는 테이블이 성공적으로 생성되었는데, 테이블에 어떤 필드와 속성이 있는지 알고 싶다면 설명 테이블 이름을 통해 확인할 수 있습니다.

테이블 지우기 및 삭제

참고: 테이블 삭제는 위험한 작업이므로 주의해서 작업하세요!

테이블 삭제 구문: DROP TABLE [IF EXISTS] 테이블 이름

여기에는 데모가 없습니다.

테이블 구문 지우기: TRUNCATE 테이블 이름

여기에서는 사용자 자르기와 사용자 삭제의 차이점에 중점을 둘 것입니다.

  • truncate는 먼저 테이블을 삭제한 다음 테이블을 다시 만드는 것과 같습니다. 테이블의 모든 데이터가 재설정되었습니다.

  • 삭제는 테이블의 데이터만 삭제하지만, 자동 증가된 ID와 같은 테이블의 일부 속성 정보는 재설정되지 않습니다.

테이블 수정

마지막으로 테이블 수정 방법을 살펴보겠습니다. 구문이 가장 복잡하고 테이블 작업에서 가장 어려운 부분이기 때문에 맨 마지막에 넣었습니다.

ALTER TABLE 数据表名 alter_spec[,alter_spec] ... table options

공통 연산을 정리했습니다.

  • 새 필드 추가: ALTER TABLE 테이블 이름 ADD 필드 이름 8ba4d18ca0820705b92b31ca3d45068b ]

  • 필드 수정: ALTER TABLE 테이블 이름 변경|수정 목록 8ba4d18ca0820705b92b31ca3d45068b 참고: 수정과 변경의 차이점은 수정은 열 유형만 수정할 수 있고, 변경은 열 유형 수정 외에도 열 이름도 변경할 수 있다는 것입니다. .

  • 필드 삭제: ... DROP 열 이름

  • 인덱스 이름 추가: ... ADD INDEX [INDEX_NAME] (index_col1,index_col2,...)

  • 인덱스 삭제: ...DROP INDEX INDEX_NAME

  • 기본 키 삭제

  • 기본 키 추가: ... 기본 키 추가(INDEX_COL1,INDEX_COL2,...)

  • 고유 인덱스 추가: ... 고유 [ 인덱스_이름] 추가(index_col1, index_col2,...)

  • 테이블 이름 수정: RENAME newName

연습해 보겠습니다

먼저 새 필드 이메일을 추가하고 userpass 뒤에 입력합니다.

ALTER TABLE users ADD email VARCHAR(255) NOT NULL DEFAULT '' AFTER userpass;

userpass 수정, 길이를 64비트로 변경

ALTER TABLE users MODIFY userpass CHAR(64) NOT NULL DEFAULT '' COMMENT '用户登录密码';

userpass를 auth로 수정

ALTER TABLE users CHANGE userpass `auth` char(32) NOT NULL DEFAULT '';

이메일에 일반 색인 추가

ALTER TABLE users ADD INDEX eamil(email);

이메일 색인 삭제

ALTER TABLE users DROP INDEX eamil;

일반 색인 삭제와 마찬가지로 고유 색인 삭제

ALTER TABLE users DROP INDEX mobile;

고유 인덱스 추가

ALTER TABLE users ADD UNIQUE mobile(mobile);
或
ALTER TABLE users ADD UNIQUE (mobile);

기본 키를 삭제하려면 삭제하기 전에 aoto_increment를 삭제해야 합니다.

ALTER TABLE users MODIFY user_id INT(10) NOT NULL;
ALTER TABLE users DROP PRIMARY KEY;

기본 키 추가

ALTER TABLE users ADD PRIMARY KEY (user_id);

위에서는 테이블 작업의 일부 구문, 열 유형 및 인덱스 등에 대해 설명합니다. 관심이 있으시면 관련 자료를 읽어보세요.

위 내용은 MYSQL 테이블 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.