创建表成功后,添加外键约束 CREATE TABLE IF NOT EXISTS `grade`( `gradeid` INT(10) NOT NULL COMMENT '年级id', PRIMARY KEY(`gradeid`) )ENGINE=INNODB DEFAULT CHARSET=utf8 CREATE TABLE IF NOT EXISTS `student1`( `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', `gradeid` VARCHAR(30) NOT NULL COMMENT'年级号码', PRIMARY KEY(`id`) )ENGINE=INNODB DEFAULT CHARSET=utf8 -- 创建表的时候没有外键关系 ALTER TABLE `student1` ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`gradeid`) REFERENCES `grade`(`gradeid`); -- ALTER TABLE 表名 ADD CONSTRAINT 约束名 FOREIGN KEY(作为外键的列) REFERENCES 那个表(那个字段);
以上的操作都是物理外键了解即可
最佳实践
数据库就是单纯的表,只用来存数据,只有行(数据)和列(字段)
我们想使用多张表的数据,想使用外键(程序去实现)
数据库意义:数据存储,数据管理
insert
update
delete
-- 插入语句(添加) -- insert into 表名([字段1,字段2])values('值1'),('值2'),......) -- 由于主键自增我们可以省略(如果不写表的字段,他就会一一匹配) INSERT INTO `student`(`pwd`)VALUES('520') -- 一般写插入语句,我们一定要数据和字段一一对应! -- 插入多个字段 INSERT INTO `student`(`name`,`pwd`)VALUES('张三','123456'),('李四','321')
语法:insert into 表名([字段1,字段2])values('值1'),('值2'),......)
注意事项:
字段和字段之间使用 英文逗号 隔开
字段是可以省略的,但是后面的值必须要一一对应
例:INSERT INTO `student` VALUES('5','张三','123456','男','2000-01-01','西安')
可以同时插入多条数据,values后面的值,需要使用逗号隔开即可