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.如果想使用多张表的数据,想使用外键(程序去实现)