1、約束
DROP TABLE IF EXISTS emp;
CREATE TABLE emp ( id INT PRIMARY KEY auto_increment , ename VARCHAR ( 50 ) NOT NULL UNIQUE , joindate DATE NOT NULL , salary DOUBLE ( 7 , 2 ) NULL , bonus DOUBLE ( 7 , 2 ) DEFAULT 0
) ; INSERT INTO emp( id, ename, joindate, salary, bonus) values ( 1 , '張三' , '1999-11-11' , 8800 , 5000 ) ; show databases ; show tables ; select * from emp;
INSERT INTO emp( id, ename, joindate, salary, bonus) values ( null , '張三' , '1999-11-11' , 8800 , 5000 ) ; INSERT INTO emp( id, ename, joindate, salary, bonus) values ( 1 , '張三' , '1999-11-11' , 8800 , 5000 ) ; INSERT INTO emp( id, ename, joindate, salary, bonus) values ( 2 , '李四' , '1999-11-11' , 8800 , 5000 ) ;
INSERT INTO emp( id, ename, joindate, salary, bonus) values ( 3 , null , '1999-11-11' , 8800 , 5000 ) ;
select * from emp;
INSERT INTO emp( id, ename, joindate, salary, bonus) values ( 3 , '李四' , '1999-11-11' , 8800 , 5000 ) ;
INSERT INTO emp( id, ename, joindate, salary) values ( 3 , '王五' , '1999-11-11' , 8800 ) ;
INSERT INTO emp( ename, joindate, salary) values ( '張三' , '1999-11-11' , 8800 ) ;
INSERT INTO emp( ename, joindate, salary) values ( '李四' , '1999-11-11' , 8800 ) ;
INSERT INTO emp( ename, joindate, salary) values ( '王五' , '1999-11-11' , 8800 ) ;
INSERT INTO emp( ename, joindate, salary) values ( '趙六' , '1999-11-11' , 8800 ) ;
2、外鍵約束
DROP TABLE IF EXISTS dept;
DROP TABLE IF EXISTS emp;
CREATE TABLE dept ( id int primary key auto_increment , dep_name varchar ( 20 ) , addr varchar ( 20 )
) ;
CREATE TABLE emp ( id int primary key auto_increment , name varchar ( 20 ) , age int , dep_id int , CONSTRAINT fk_emp_dept FOREIGN KEY ( dep_id) REFERENCES dept( id)
) ;
insert into dept ( dep_name, addr) values
( '研發部' , '廣州' ) , ( '銷售部' , '深圳' ) ;
insert into emp ( name, age, dep_id) values
( '張三' , 20 , 1 ) ,
( '李四' , 20 , 1 ) ,
( '王五' , 20 , 1 ) ,
( '趙六' , 20 , 2 ) ,
( '孫七' , 22 , 2 ) ,
( '周八' , 18 , 2 ) ;
select * from emp;
select * from dept;
delete from dept WHERE id = 1 ;
delete from emp WHERE dep_id = 1 ;
delete from dept WHERE id = 1 ;
alter table emp drop foreign key fk_emp_dept; desc emp;
alter table emp add constraint fk_emp_dept foreign key ( dep_id) REFERENCES dept( id) ;
3、多對多的關系
DROP TABLE IF EXISTS tb_order;
DROP TABLE IF EXISTS tb_goods;
CREATE TABLE tb_order ( id int primary key auto_increment , payment double ( 10 , 2 ) , payment_type TINYINT , status TINYINT
) ;
CREATE TABLE tb_goods ( id int primary key auto_increment , title varchar ( 100 ) , price double ( 10 , 2 )
) ;
CREATE TABLE tb_order_goods ( id int primary key auto_increment , order_id int , goods_id int , count int
) ;
alter table tb_order_goods add constraint fk_order_id foreign key ( order_id) REFERENCES tb_order( id) ;
alter table tb_order_goods add constraint fk_goods_id foreign key ( goods_id) REFERENCES tb_goods( id) ;