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

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]

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
主键primary key约束是一种用于唯一标识表中每一行的约束。它确保表中的每一行都具有唯一的标识符,并且不允许为空。主键约束可以由一个或多个列成,这些列的值必须是唯一的。 外键(foreign key约束用于建立表之间的关系。它定义了一个列或一列,这些列的值必须与另一个表中的主键或唯一键的值相匹配。外键约束可以确保数据的完整性,防止无效的引用和维护表之间的关联。 唯一性(unique)约束用于确保表中的某一列或一列的值是唯一的。唯一性约束可以防止重复的值出现在列中,但允许空值。 检查(check)约束用于限制列中的值必须满足指定的条件。检查约束可以是简单的比较运算符,也可以是复杂的表达式。它可以用于限制列中的值的范围、数据类型或其他条件。 以下是一个示例,演示了如何在Oracle数据库中创建主键约束外键约束、唯一性约束和检查约束: 1. 创建主键约束: ```sql CREATE TABLE employees ( employee_id INT PRIMARY KEY, employee_name VARCHAR(50) ); ``` 2. 创建外键约束: ```sql CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT, order_date DATE, FOREIGN KEY (customer_id) REFERENCES customers(customer_id) ); ``` 3. 创建唯一性约束: ```sql CREATE TABLE products ( product_id INT PRIMARY KEY, product_name VARCHAR(50), product_code VARCHAR(10) UNIQUE ); ``` 4. 创建检查约束: ```sql CREATE TABLE students ( student_id INT PRIMARY KEY, student_name VARCHAR(50), age INT CHECK (age >= 18) ); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pofenx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值