约束 主键约束(primary key) 外键约束(foreign key) 主

上网导航 2023-10-19 132 0条评论
摘要: 主键约束相当于是唯一的约束,非空约束的组合,主键约束列不允许重复。#非空的约束只能作用于表对象的列上,null适用于所有数据类型。#用于保证一个或者两个表之间的参照完整性...

文章目录

mysql学习笔记 约束

#是一种限制,是通过对表的行或列的数据作出限制

#来确保表的数据的完整性和唯一性

#用于非空约束

#用于确保当前列的数据不可为空值null

#非空的约束只能作用于表对象的列上,null适用于所有数据类型

#唯一性约束(unique)

#是指定的表的列或者列的组合不能重复,确保数据的唯一性

#唯一性约束中允许出现null,且可以出现多个null=null FALSE

#同一个表中可以有多个唯一约束,多个列组和的约束

#唯一约束的名称如果不确定,则和列名相同

#唯一约束可以在表中创建,也可以多个表创建组合的唯一约束

主键约束(primary key)

#主键约束相当于是唯一的约束,非空约束的组合,主键约束列不允许重复

#也不允许出现空值,每张表中只能有一个主键,建立主键约束可以在

#列级别,也可以在表级别创建,当穿件主键约束的时候,系统默认

#在所在的列和列的组合上创建唯一索引

外键约束(foreign key)

#是用于加强两张表(主表和从表)的一列或者多列之间的数控链接

#用于保证一个或者两个表之间的参照完整性,外键是构建于一个表的

#两个字段或是两个表的两个字段之间的参照关系

#创建外键的顺序是先定义表的主键,然后定义表的外键

#只有主表才能被从表用来作为外键使用,被约束的从表中的列可以

#不是主键,主表限制了从表的更新和插入操作

#默认值约束

#如果用户在插入数据的时候,没有给该列制定数据,这系统将会

#把默认值赋值给该列,如果没有默认值,则赋值null

#检查约束(自学)

#例子

主键 primary KEY

#添加单列主键

#语法(定义字段的同时指定主键):

#create table 表名(字段名 数据类型 primary key)
create table table_xy_01(id int PRIMARY key,name varchar(20));

#语法

#create table 表名(字段名 数据类型, ...,
#constract 主键名 PRIMARY key (主键列))
create table table_xy_02(
id int ,
name varchar(20),
constraint pk1 PRIMARY key(id)
)

添加多列主键(联合组·主键)

#语法:

#create table 表名(字段1 类型, 字段2 类型 ...,
#primary key(字段1,自断2..))
CREATE table table_xy_03(
id int ,
name VARCHAR(20),
age int ,
PRIMARY key(id,name)
)

删除主键

#语法

#alert table 表名 drop PRIMARY
alter table table_xy_02 drop  PRIMARY key
ALTER table table_xy_03 drop PRIMARY key 
#表创建完成后在添加主键
#语法 :alert table 表名  add PRIMARY key (字段列表)
ALTER table table_xy_02 add PRIMARY key(id)
ALTER table table_xy_03 add PRIMARY key(id,name)

自增约束,一般添加给主键

#语法

 CREATE TABLE 表名(字段名 类型 auto_increment)
create table table_xy_04(
id int PRIMARY key auto_increment,
name varchar(20)
);

指定起始值

#语法

#create table 表名(字段 类型 auto_increment)
#auto_increment =起始值
create table table_xy_06(
	id int primary key auto_increment,
   name varchar(20)
   )auto_increment=50

非空约束 not null

#语法(创建的时候添加非空约束)

#create  table 表名(字段 类型 not null,...)
create table table_xy_07(
id int PRIMARY key auto_increment,
name VARCHAR(20) not null)
#语法  (创建表完成后添加)
#ALTER table 表名 modify 字段名 类型 not null;
CREATE table table_xy_08(
id int PRIMARY key auto_increment,
name varchar(20)
)
alter table table_xy_08 modify name VARCHAR(20) not null;

删除非空约束

#语法

ALTER table table_xy_08 modify name VARCHAR(20)

唯一约束

#语法(创建表的时候指定)
#CREATE table 表名 (字段名 类型 unique)
CREATE table table_xy_09(
id int primary key auto_increment,
name varchar(20) unique not NULL)
#语法(创建表的完成时候指定)
#CREATE table 表名 add constraint 约束名称 unique(字段)
CREATE TABLE table_xy_10(
id int PRIMARY key auto_increment,
name varchar(20)
)
alter table table_xy_10 
add constraint my_unique unique(name)

删除唯一键约束

#语法 alter table 表名 drop index 约束名
alter table table_xy_10 drop index my_unique

#alter table 表名 modify 列名 类型 default 默认值

CREATE table table_xy_12(

id int primary key auto_increment,

name varchar(20)

alter table table_xy_12

modify name varchar(20) default ‘李四’

删除默认约束

#语法

#alter table 表名 modify 列名

#varchar(20) default NULL

alter table table_xy_12

modify name varchar(20) default NULL

外键约束 foreign key

#语法(创建表的同时指定)

···

#create table 表名(字段名 类型,字段2 类型,…)

#constraint 外键名 foreigin key(字段名)

#references 主表名(主键)

#)

CREATE table table_xy_13(

id int PRIMARY key auto_increment,

name varchar(20)

#从表

CREATE table table_xy_14(

id int primary key atuo_increment,

score int,

oid int

constraint fk_14_13_oid foreign key(oid)

references table_xy_13(id)

#语法

#alter table 表名 add foreigin key(字段名)

#references 主表(字段) [on delete restricit]

#[on update cascade]

文章版权及转载声明:

作者:上网导航本文地址:https://www.90xe.com/post/6217.html发布于 2023-10-19
文章转载或复制请以超链接形式并注明出处技术导航

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏