网站图片搜索技术哪里可以做,仪征建设局招投标网站,server2008做DNS与网站,彭州做网站目录
数据库约束
1.NULL约束
2.UNIQUE#xff1a;唯一约束
3.DEFAULT#xff1a;默认值约束
4.PRIMARY KEY#xff1a;主键约束
5.FOREIGN KEY#xff1a;外键约束 数据库约束
以下为本篇文章会介绍的约束 (1)NOT NULL - 指示某列不能存储 NULL 值。 (2)UNIQUE - …
目录
数据库约束
1.NULL约束
2.UNIQUE唯一约束
3.DEFAULT默认值约束
4.PRIMARY KEY主键约束
5.FOREIGN KEY外键约束 数据库约束
以下为本篇文章会介绍的约束 (1)NOT NULL - 指示某列不能存储 NULL 值。 (2)UNIQUE - 保证某列的每行必须有唯一的值。 (3)DEFAULT - 规定没有给列赋值时的默认值。 (4)PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列或两个列多个列的结合有唯一标 识有助于更容易更快速地找到表中的一个特定的记录。 (5)FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。 约束能够引入更多的检查操作但也会增加系统的开销 属于牺牲了执行效率换来了开发效率。 1.NULL约束
创建表时可以指定某列不为空 设置学生表结构1-1 -- 重新设置学生表结构
DROP TABLE IF EXISTS student;
CREATE TABLE student (id INT NOT NULL,sn INT,name VARCHAR(20),qq_mail VARCHAR(20)
); 比如我们先创建一个student表我们对里面的id列进行约束为不能为null 演示效果 若想正常插入id不能为空 2.UNIQUE唯一约束
设置学生表结构2-1
-- 重新设置学生表结构
DROP TABLE IF EXISTS student;
CREATE TABLE student (id INT NOT NULL,sn INT UNIQUE,name VARCHAR(20),qq_mail VARCHAR(20)
);
这里我们重新设置一下表结构对sn进行约束为唯一约束 演示效果 补充 加上unique约束之后当后续进行插入或修改操作时系统都会进行查询看看操作值是否存在。 3.DEFAULT默认值约束
指定插入数据时若列为空则为默认值
设置学生表结构3-1 指定插入数据时 name 列为空默认值 unkown -- 重新设置学生表结构
DROP TABLE IF EXISTS student;
CREATE TABLE student (
id INT NOT NULL,
sn INT UNIQUE,
name VARCHAR(20) DEFAULT unkown,
qq_mail VARCHAR(20)
);演示 4.PRIMARY KEY主键约束 可以理解为主键是 NOT NULL 和 UNIQUE 的结合 非空唯一 注意 每个表只能定义一个主键。 主键值必须唯一标识表中的每一行且不能为 NULL即表中不可能存在有相同主键值的两行数据。这是唯一性原则。 指定 id 列为主键 -- 重新设置学生表结构
DROP TABLE IF EXISTS student;
CREATE TABLE student (
id INT NOT NULL PRIMARY KEY,
sn INT UNIQUE,
name VARCHAR(20) DEFAULT unkown,
qq_mail VARCHAR(20)
); 对于整数类型的主键常配搭自增长 auto_increment 来使用。 插入数据对应字段不给值时 数据库会按照自增的方式分配 使用最大值1。 -- 主键是 NOT NULL 和 UNIQUE 的结合可以不用 NOT NULL id INT PRIMARY KEY auto_increment 1一般演示 2演示 插入数据对应字段不给值时 数据库会按照自增的方式分配 使用最大值1。 3此时你也可以手动加入符合条件的任意值。 4递增不重复利用之前的值 注意 1自增的数据必须是整形。 2上述自增只能在单个数据库中生效。如果数据库是由多个mysql服务器构成的集群自增主键就会失效。 5.FOREIGN KEY外键约束
外键用于关联其他表的主键或唯一键
语法如下 foreign key (字段名) references 主表(列) 本表的某列引用另一个表的对应列此时就要求本表中个这个列的数据与另一个表的类型对应。
接下来我们设计一个案例如下
创建班级表classesid为主键 DROP TABLE IF EXISTS classes;
CREATE TABLE classes (
id INT PRIMARY KEY auto_increment,
name VARCHAR(20),
desc1 VARCHAR(100)
);创建学生表student一个学生对应一个班级一个班级对应多个学生。使用id为主键classes_id为外键关联班级表id。
-- 重新设置学生表结构
DROP TABLE IF EXISTS student;
CREATE TABLE student (
id INT PRIMARY KEY auto_increment,
sn INT UNIQUE,
name VARCHAR(20) DEFAULT unkown,
qq_mail VARCHAR(20),
classes_id int,
FOREIGN KEY (classes_id) REFERENCES classes(id)
); 必须为主表定义主键。 MySQL 外键约束FOREIGN KEY是表的一个特殊字段经常与主键约束一起使用。对于两个具有关联关系的表而言相关联字段中主键所在的表就是主表父表外键所在的表就是从表子表。
简单理解
班级表约束了学生表。我们把班级表这种约束别人的表称为父表把学生表这种被约束的表称为子表。
演示
(1)父表对字表的约束。外键可以为空值若不为空值则每一个外键的值必须等于主表中主键的某个值。 如果输入不存在的classes_id. (2)外键为空值: 补充字表对父表也有约束
如果尝试修改或删除父表的记录也会先查看一下子表看看这个结果是否在子表中被引用如果被引用则无法删改。 以上为我个人的小分享如有问题欢迎讨论
都看到这了不如关注一下给个免费的赞