约束 主键约束(primary key) 外键约束(foreign key) 主键 primary KEY 添加多列主键(联合组·主键) 删除主键 自增约束,一般添加给主键 指定起始值 非空约束 no

文章目录

  • mysql学习笔记
  • 约束
  • 主键约束(primary key)
  • 外键约束(foreign key)
  • 主键 primary KEY
  • 添加多列主键(联合组·主键)
  • 删除主键
  • 自增约束,一般添加给主键
  • 指定起始值
  • 非空约束 not null
  • 删除非空约束
  • 唯一约束
  • 删除唯一键约束
  • 删除默认约束
  • 外键约束 foreign key

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]

你可能感兴趣的:(mysql,学习,数据库,mysql)