MySOL基础:数据库级别

表的修改

--
修改表名: ALTER TABLE 旧表名 RENAME AS 新表名 ALTER TABLE teacher RENAME AS teacher1 -- 增加表的字段:ALTER TABLE 表名 ADD 字段名 列属性 ALTER TABLE teacher1 ADD age INT(11) -- 修改表的字段(重命名,修改约束!) -- 问题:modify和change区别是什么 -- ALTER TABLE 表明名 M0DIFY 字段名 列属性[] ALTER TABLE teacher1 MODIFY age VARCHAR(11) -- 修改约束 -- ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[] ALTER TABLE teacher1 CHANGE age age1 INT(11) -- 字段重命名 -- 删除表的字段 ALTER TABLE teacher1 DROP age1

-- 删除表(如果表存在再删除)
DROP TABLE IF EXISTS teacher1

外键

 方式一:

CREATE TABLE `grade`(
    `gradeid` int(10) NOT NULL AUTO_INCREMENT COMMENT'年级id',
    `gradename` varchar(50) NOT NULL COMMENT '年级名称',
    PRIMARY KEY (`gradeid`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 外键
-- 定义外键key
-- 给这个外键添加约束 (执行引用) references 引用

CREATE TABLE `student` (
  `id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
  `name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
  `pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
  `sex` varchar(2) NOT NULL DEFAULT '' COMMENT '性别',
  `brithday` datetime DEFAULT NULL COMMENT '出生日期',
    ·gradeid· int(10) NOT NULL COMMENT'学生的年级',
  `address` varchar(100) DEFAULT NULL COMMENT '家庭住址',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- 删除有外键关系的表,必须先删除引用别人的表,再删除被引用的表

 

方式二

-- 方式二:创建表的时候没有外键关系
-- 公式:ALTER TABLE 表 add CONSTRAINT `约束名` FOREIGN KEY (作为外键的列) REFERENCES 被引用的表 (被引用的字段);

ALTER TABLE `student`
add CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`);

以上皆为物理外键数据库级别的,只适合去理解,不建议使用

 

**最佳实践、

  1.数据库就是单纯的表,只用来存数据,只有行(数据)和列(字段)

  2.如果想使用多张表的数据,想使用外键(程序去实现)

 

posted @ 2020-09-23 19:16  凸然猿  阅读(408)  评论(0编辑  收藏  举报