NOT NULL 非空
UNIQUE 唯一约束 ,意味这个值是不可以重复的,也是不可以为空的。。。
2种写法:
PRIMARY KEY 主键约束(主关键字),自带非空、唯一、索引
DEFAULT 默认值 给这个一个缺省值,比如默认填入的人的性别为男
如果为给设定了默认约束的列赋值,该列会自动填充默认值
FOREIGN KEY 外关键字
主键的内容:
使用主键应注意以下几点:
- 每个表只能定义一个主键。
- 主键值必须唯一标识表中的每一行,且不能为 NULL,即表中不可能存在有相同主键值的两行数据。这是唯一性原则。
- 一个字段名只能在联合主键字段表中出现一次。
- 【联合主键】不能包含不必要的多余字段。当把联合主键的某一字段删除后,如果剩下的字段构成的主键仍然满足唯一性原则,那么这个联合主键是不正确的。这是最小化原则。
AUTO_INCREMENT约束这个东西需要就是配合主键去使用,每新增一条记录,字段值自动加 1.........
外键的注意事项:
外键维护的表与表之间的关系,他规定了当前列的数据必须来源于一张其他表的某一列中的主键:
外键会产生的效果
1、删除表时,如果不删除引用外键的表,被引用的表不能直接删除
2、外键的值必须来源于引用的表的主键字段
references 和 foreign key 两个关键字
为什么不能删除呢?
看一看我们的sql语句:
表1:authors
表2:books
从这里可以看出来,后面那张表即表2是有外键的,也就是引用了表1中的主键字段,作为表2的外键,所以如果直接删除表1是不允许的,所以会报错。
所以如果要删除表1authors,就要先把引用了表1的表2books删除,再删表1authors。。。。
如下:
修改表的操作有5个:
1.增加表的字段
Alter TABLE author ADD(hobby VARCHAR(20),adress VARCHAR(20));
2.修改表的字段的类型
Alter table author MODIFY (hobby VARCHAR(100),adress VARCHAR(100));/////////这个是错误的修改方式
正确的如下:
Alter table author MODIFY hobby VARCHAR(100);
Alter table author MODIFY adress VARCHAR(100);
3.字段类型和名称一起修改
ALTER TABLE author CHANGE adress adr VARCHAR(30);
4.删除字段
ALTER TABLE author DROP adr;
5.改表名
ALTER TABLE author RENAME authors;
标签:VARCHAR,删除,author,外键,约束,建表,adress,主键 From: https://www.cnblogs.com/FJCLJ/p/17331974.html