MYSQL约束及多表查询

主键约束

限制主键列 非空 唯一  
       一个表应该有一个主键 
       只能有一个主键
       PRIMARY KEY

添加主键约束方法:

1.创建数据库表时 直接添加主键约束 

2.创建表时,在constraint约束区域,声明指定字段为主键 CONSTRAINT 名称 PRIMARY KEY (字段列表)

3.alter修改表结构 ALTER TABLE persons ADD [CONSTRAINT 名称] PRIMARY KEY (字段列表)

删除主键: ALTER TABLE 表名 DROP PRIMARY KEY

如果设置了主键自动增长  必须 先去掉自动增长 才能删除主键

联合主键 : 将多个列看做是一个主键列    列中不能有null值.然后多列的数据不可以完全相同 单独一列相同是可以的.

非空约束 

限制当前列数据不能是null值 
         一个表可以有多个非空约束 
         not null

添加约束方法:

1.创建表时  直接在列后指定约束

2.通过修改表结构  添加或删除非空约束:ALTER TABLE 表名 MODIFY 列名 数据类型 [约束];

唯一约束

UNIQUE 约束唯一标识数据库表中的每条记录。
    UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
    PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
    请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

添加唯一约束方法:

1.创建表时,在字段描述处,声明唯一

2.创建表时 在constraint区域添加

3.创建表时 不指定 使用修改表结构的方式添加  ALTER TABLE 表名 ADD [CONSTRAINT 名称] UNIQUE (列名)

删除唯一约束:ALTER TABLE 表名 DROP INDEX 自定义名;

多表查询

交叉查询:select 列名,列名 from A,B;

内连接

1.隐式内连接:select 列名 from A,B where 条件;

2.显示内连接: select 列名 from A [inner] join B on 条件;

外连接

1.左外连接:查询A表有,但B表没有的内容

select 列名 from A left [outer] join B on 条件

2.右外连接:查询B表有,A表没有的内容

select 列名 from A right [outer] join B on 条件

全外连接:mysql不支持,但是可以使用union 达到全外的效果

union 查询左表有但是右表没有  右表有但是左表没有的内容

可以将两条语句的查询结果合并为一条 并去重   注意:列数必须一致

union all 合并查询结果 但是 不去重

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值