>  기사  >  데이터 베이스  >  mysql 테이블 정의 구문에 대한 자세한 소개

mysql 테이블 정의 구문에 대한 자세한 소개

王林
王林앞으로
2020-01-30 20:32:292535검색

mysql 테이블 정의 구문에 대한 자세한 소개

먼저, 데이터 테이블은 데이터베이스가 성공적으로 생성된 후에만 생성될 수 있다는 것을 모두 알고 있습니다. 데이터 테이블은 필드의 모음이며 테이블의 데이터는 행과 열 형식으로 저장됩니다. .

Create table

MySQL은 CREATE TABLE을 사용하여 테이블을 생성합니다. 옵션은 여러 가지가 있는데 주로 테이블 생성 정의(create Definition), 테이블 옵션 정의(table options), 파티션 옵션(partition options)으로 구성된다.

테이블 생성 정의

는 테이블 열 이름, 열 정의 집합에 대한 가능한 null 값 문, 무결성 제약 조건 또는 테이블 인덱스 항목으로 구성됩니다. 테이블 인덱스 항목은 주로 인덱스, 기본 키, 테이블의 외래 키 등.

(권장 온라인 학습 비디오 자습서 : mysql 비디오 자습서) Grammar Structure

CREATE[TEMPORARY]TABLE tbl_name
(
    字段名|数据类型[列级完整性约束条件][默认值]
    [,字段名2 数据类型[列级完整性约束条件][默认值]]
    [,....]
    [,表级完整性约束条件]
)[ENGINE=引擎类型]

examply : 새로운 고객 정보를 생성합니다. , 선택하지 않으면 영구 테이블이 사용됩니다.

영구 테이블은 항상 존재합니다. 여러 사용자 또는 애플리케이션이 동시에 데이터를 임시로 저장해야 하는 경우 임시 테이블을 생성한 사용자에게만 표시할 수 있습니다. 데이터베이스 연결이 끊어지면 테이블이 자동으로 지워집니다.


데이터 유형

데이터 유형은 시스템에서 허용되는 데이터 유형을 의미합니다. 각 열에는 해당 열의 데이터를 제한하거나 허용하는 적절한 데이터 유형이 있어야 합니다. 테이블을 생성할 때 각 열에 대해 올바른 데이터 유형과 데이터 길이(CHAR(50))를 지정해야 합니다

MySQL 기본 데이터 유형:

숫자 유형: 정수, 부동 소수점 double, Boolean boolDate 및 time 유형: 날짜 유형, timestamp timestamp, 시간 유형 time

문자열 유형: 고정 길이 문자 유형 char, 가변 길이 문자 유형 varchrar

공간 데이터 유형: 단일 도형 유형 GEOMETRY 등

키워드 AUTO_INCREMENT

AUTO_INCREMENT: 테이블에서 데이터 유형이 정수인 열은 자동 증가 속성(++i)을 설정합니다. 현재 인덱스 또는 1부터 시작하여 테이블에는 AUTO_INCREMENT가 하나만 있을 수 있습니다.

테이블 열을 AUTO_INCREMENT로 지정하면 해당 값을 덮어쓸 수 있습니다. 테이블 데이터 삽입 문에서 해당 열에 값(고유해야 함)을 지정할 수 있으며 해당 값은 시스템에서 자동으로 생성된 값을 대체합니다. 후속 추가 금액은 삽입된 값을 기준으로 합니다

기본값 지정

DEFAULT: 값이 지정되지 않은 경우 MySQL의 기본값(DEFAULT 0)을 지정하는 데 사용됩니다.

기본값이 지정되지 않은 경우 값이 자동으로 할당되며, 열이 NULL 값을 가질 수 있는 경우 기본값은 NULL입니다. NOT NULL이 정의된 경우 기본값은 열 유형에 따라 다릅니다.

AUTO_INCREMENT를 선언하지 않은 열은 숫자 유형입니다. , 기본값은 0

AUTO_INCREMENT 열의 기본값은 다음 값입니다. TIMESTAMP 이외의 날짜 및 시간 유형의 경우 해당 유형에 대해 적절한 '0' 값이 기본값입니다.

테이블의 첫 번째 TIMESTAMP 열의 경우, 기본값은 현재 날짜 및 시간입니다.

NULL 값

NULL: NULL을 허용하는 열의 경우 행을 삽입할 때 열의 값을 제공할 필요가 없습니다. NULL 값을 허용하지 않으면 열에 데이터가 있어야 합니다.

NULL 및 ''는 NOT NULL 열이 아닙니다. 중간 허용'' NULL은 허용되지 않습니다.

기본 키

PRIMARY KEY: 기본 키를 지정합니다. 키는 고유해야 하며 NULL일 수 없습니다. 단일 열인 경우 값이 고유해야 합니다. 결합된 열인 경우 결합된 값이 고유해야 합니다.

Update table

ALTER TABLE을 사용하여 데이터베이스를 수정합니다. ADD[COLUMN]: 새 테이블 열을 추가합니다. 쉼표로 구분하여 더 많은 열을 추가할 수 있습니다

예:

mysql> USE mysql_test
Database changed
mysql> CRATE TABLE customers
    ->(
    -> cust_id INT NOT NULL AUTO_INCREMENT,
    -> cust_name CHAR(50) NOT NULL,
    -> cust_sex CHAR(1) NOT NULL DEFAULT 0,
    -> cust_address CHAR(50) NULL
    -> cust_contact CHAR(50) NULL
    -> PRIMARY KEY(CUST_ID)
    ->)
Query OK, 0 rows affected(0.11 sec)

AFTER: cut_sexl에 새 열 추가 열 뒤에FIRST: 새 열을 첫 번째 열에 추가합니다. table

위 키워드를 사용하는 경우 테이블 끝에 새 열을 추가하세요

마찬가지로 ADDPRIMARY KEY, ADDFOREIGN KEY, ADD INDEX를 사용하여 해당 기본 키, 외래 키, 인덱스

CHANGE[를 추가할 수 있습니다. COLUMN]: 테이블에 있는 열의 이름이나 데이터 유형을 수정합니다. 여러 열을 수정하고 쉼표로 구분할 수 있습니다

mysql> ALTER TABLE mysqle_test.customers
    -> ADD COLUMN cust_city char(10) NOT NULL DEFAULT'ShenZhen' AFTER cust_sex;
Query OK,0 rows affected(0.61 sec)
Records:0 Duplicates:0 Warning:0

데이터 유형이 변경되면 해당 열의 원래 값이 손실될 수 있습니다. 데이터 유형인 경우 뷰에 의해 변경된 데이터 유형이 원래 데이터 유형과 호환되지 않으면 SQL 명령이 실행되지 않고 오류가 발생합니다.

추가 호환성을 위해 이 열의 데이터가 잘릴 수 있습니다. 예를 들어 열의 데이터 유형이 varchart(10)이고 char(1)로 변경되면 열의 데이터 'ShenZhen'이 표시됩니다. 'S'가 될 거야

ALTER [COLUMN]: 修改或删除指定列的默认值

mysql> ALTER TABLE mysqle_test.customers
    -> ALTER COLUMN cust_city SET  DEFAULT 'ShangHai'
Query OK,0 rows affected(0.36 sec)
Records:0 Duplicates:0 Warning:0

MODIFY [COLUMN]: 修改指定列的数据类型,通过 'FIRST' 或 'AFTER' 修改列的位置

mysql> ALTER TABLE mysqle_test.customers
    -> MODIFY COLUMN cust_name char(30)  FIRST
Query OK,0 rows affected(0.20 sec)
Records:0 Duplicates:0 Warning:0

DROP [COLUMN]: 删除列,该列所有数据一并删除

mysql> ALTER TABLE mysqle_test.customers
    -> DROP COLUMN cust_city
Query OK,0 rows affected(0.42 sec)
Records:0 Duplicates:0 Warning:0

同样 可使用 DROP PRIMARY KEY 、DROP FOREIGN KEY、DROP INDEX 删除对应的主键、外键、索引

RENAME[TO]:表重命名

mysql> ALTER TABLE mysqle_test.customers
    -> RENAME TOQuery OK,0 rows affected(0.42 sec)

重命名表

除了 ALTER TABLE 中的 RENAME TO 修改表名,还可通过 RENAME TABLE 来修改单张和多张表(以逗号分隔)

mysql> RENAME TABLE mysql_test.back.customers TO mysqle_test.customers

删除表

DROP[TEMPORARY]TABLE[IF EXISTS]删除一个已存在的表,可以删除多张表,前提操作人必须有权限,但是操作人在该张表上的权限不会被删除

查看表

SHOW [FULL] TABLES [{FROM|IN}db_name] [LIKE'pattern'|WHERE expr]: 显示指定数据库中所有表名

Example:

mysql> USE mysql_testDatabase changedmysql> SHOW TABLES:
 Tables_in_mysql_test
 customers 1 row in set <0.01 sec>

SHOW [FULL] COLUMNS {FROM|IN}tb_name[{FROM|IN}db_name] 或 {DESCRIBE|DESC} tbl_name[col_name|wild]: 显示指定数据库表结构。

MySQL 支持使用 DESCRIBE 代替 SHOW COLUMNS FROM 来查看表结构

Example:

mysql> DESC mysql_test.custormes
Field         Type       Null key  Default Extra
cust_id       int<11>    NO   PRI  NULL    auto_increment
cust_name     char<50>   NO        Null
cust_sex      int<1>     NO        0

3 row in set <1.56 sec>

相关文章教程推荐:mysql教程

위 내용은 mysql 테이블 정의 구문에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제