建表时约束/外键约束

drop table  if exists emp;   -- 建表emp

create table emp (

  id int primary key auto_increament;                -- 主键且自增.数字且唯一

  ename varchar(50) not null unique;    -- 非空,唯一   

  joindate date not null;          -- 非空

  salary double(7,2) not null;         -- 非空

  bonus double(7,2) default 0       -- 默认0

);

insert into emp(id, ename,joindate, salary,bonus) values(1,'张三','1999-11-11',8800);  --没给bonus,默认0

insert into emp(id, ename,joindate, salary,bonus) values(1,'张三','1999-11-11',8800,null); --给的null,就不是0了

 

自动增长

insert into emp (ename,joindate, salary,bonus) values('张三','1999-11-11',8800);       --前面和后面都没写id

insert into emp(id, ename,joindate, salary,bonus) values(null,'张三','1999-11-11',8800);   --前面给了id,后面写的null

 

--------------------------添加外键-------------------------------------

-- 部门表

create table dept(

  id int primary key auto_increment,

  dep_name varchar(20),

  addr varchar(20)

);

 

-- 员工表

create table emp(

  id int primary ket auto_increase.

  name varchar(20),

  age int ,

  dept_id int,

  -- 添加外键dept_id,关联dept表的id主键

  constraint fk_emp_dept foreign key(dept_id) references dept(id);

);

 

应该先建部门表(主表),然后建员工表(从表)。需要有地方关联

删一个部门,得先开除所属所有员工

 

---------------删除外键--------------------------

alter table emp drop foreign key fk_emp_dept;    --外键是在emp表创建的

---------------建完表后,添加外键--------------------------

alter table emp add constraint fk_emp_dept foergn key (dep_id) references dept(id);

 

posted @   大灰狼21  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示