//각 열의 의미는 다음과 같습니다. 필드 이름 | 공백 | 키 값 | 추가 설정 | , 제약 조건은 비어 있을 수 있으므로(NULL) 여기에 할당할 때 값이 비어 있을 수 있습니다. null은 대소문자를 구분하지 않습니다
mysql> insert into t9 values (null,null,null);
로그인 후 복사
mysql> select * from db1.t9;
로그인 후 복사
//t9 테이블의 제약 조건에서 세 번째 기본값은 필드가 NULL입니다. 이는 세 번째 필드가 지정되지 않은 경우 값을 지정하면 테이블이 기본값으로 채워집니다. 즉, 아래 그림과 같이 기본적으로 NULL이 채워집니다
제약조건 설정
null //비워두기 허용(기본 설정)
null이 아님 //Null은 허용되지 않음
key ~
mysql> insert into db1.t9(name,sex) values("lucy","girl");
mysql> select * from db1.t9;
로그인 후 복사
// db2.t1 유형을 만듭니다. 이름 필드는 고정 길이 문자이며, 기본값은 0자입니다. 표시 효과는 아래 그림과 같습니다. 제약 조건은 음수(부호 없는)는 허용되지 않으며 기본값은 19로 설정됩니다. 여기서 기본값 설정은tinyint 유형의 범위를 초과해서는 안 됩니다. 즉, 기본값 설정은 255를 초과할 수 없습니다. sex 필드의 유형은 열거형이고 enum은 비워 둘 수 없으며 기본값은 m
mysql>
mysql> create database db2;
mysql> create table db2.t1(
-> name char(10) not null default "",
-> age tinyint unsigned default 19,
-> sex enum("m","w") not null default "m"
-> );
로그인 후 복사
//이름 필드에만 값을 할당하고 나머지 필드에는 기본적으로 값이 할당됩니다.
mysql> insert into db2.t1(name) values("bob");
로그인 후 복사
mysql> select * from db2.t1;
로그인 후 복사
mysql> insert into db2.t1 values("lucy","21","w"); //给字段赋值,就不会以默认值赋值了
mysql> select * from db2.t1;
mysql> alter table db2.t1 modify age tinyint unsigned default 19 after class; //除了对字段age的位置进行了修改,其余不修改的地方如:类型(宽度)、约束条件进行原样抄写
mysql> desc db2.t1;
将字段name的类型变为varchar(15)
mysql> alter table db2.t1 modify name varchar(15) not null default "";
mysql> desc db2.t1;
로그인 후 복사
修改字段名
基本用法
—— 也可以用来修改字段类型
mysql> alter table 库名.表名 change 源字段名 新字段名 类型(宽度) 约束条件;
注:也可以用来修改类型和约束条件,只需要写上新的类型和新的约束条件即可
mysql> desc db2.t1;
将字段名email修改为mail
mysql> alter table db2.t1 change email mail varchar(50);
mysql> desc db2.t1;
将字段名mail修改为email,并修改约束条件
mysql> alter table db2.t1 change mail email varchar(50) not null default "njw@163.com"; //出现错误,因为源数据中,mail字段中的值为NULL,如果将约束条件修改为not null,那么就与源数据发生冲突,所以修改失败
ERROR 1138 (22004): Invalid use of NULL value
mysql> alter table db2.t1 change mail email varchar(50) default "njw@163.com";
mysql> desc db2.t1;
로그인 후 복사
删除字段
基本用法
mysql> alter table 库名.表名 drop 字段名;
mysql> alter table db2.t1 drop email; //删除库db2中表t1的字段email
mysql> desc db2.t1; //没有字段email,已被删除
로그인 후 복사
mysql> select * from db2.t1; //字段email及其数据已被删除
修改表名
基本用法
mysql> alter table 库名.表名 rename 新表名;
库名.新表名;
mysql> use db2;
mysql> show tables;
mysql> alter table db2.t1 rename stuinfo; //将表名修改为stuinfo