집 >데이터 베이스 >MySQL 튜토리얼 >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_INCREMENTAUTO_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 중국어 웹사이트의 기타 관련 기사를 참조하세요!