2.6修改和删除表
ALTER TABLE teacher RENAME AS teacher1;-- 修改表名 ALTER TABLE teacher1 ADD age INT(11);-- 增加表的字段 ALTER TABLE teacher1 MODIFY age VARCHAR(11);-- 修改表的字段(修改约束) ALTER TABLE teacher1 CHANGE age age1 INT(1);-- 修改表的字段(重命名)
ALTER TABLE teacher1 DROP age1;-- 删除表的字段 DROP TABLE IF EXISTS teacher1;-- 删除表 -- 所有的创建和删除尽量加上判断
3. MySQL数据管理
3.1 外键(了解)
-- 外键 -- 方法一:(写在创建新表中) KEY `FK_gradeid` (`gradeid`), CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`) -- 方法二:(写在创建表外) ALTER TABLE `student` ADD CONSTRAINT `FK_gradeid` FOREIGN KEY (`gradeid`) REFERENCES `grade` (`gradeid`) ;
1.删除有外键关系的表,不能删除被引用的表(主表),应先删除从表
2.避免使用外键,让数据库成为单纯的表,只有行和列
3.想使用多张表的数据,可以使用外部代码去实现
3.2 DML语言(全部记住)
1.插入
INSERT INTO `grade`(`gradename`) VALUES (`大四`),(`大二`); INSERT INTO `student` (`name`, `pwd`, `sex`) VALUES (`李四`, `aaaaa`, `男`), (`john`, `asasa`, `男`); -- 使用英文逗号隔开 -- 一般写插入语句,我们要使数据和字段一一对应!!
1,字段是可以省略的,但后面的值要一一对应
2.可以同时插入多条数据,VALUE后面的值需要使用逗号隔开
2.更新
UPDATE `student` SET `name`='狂神' WHERE id = 1; -- 更新学员姓名 UPDATE `student` SET `name`='狂神'; -- 将所有学员的名字修改为狂神 UPDATE `student` SET `name`='狂神', email = '123123@qq.com' WHERE id = 1; -- 修改多个属性,用逗号隔开 UPDATE `student` SET `name`='狂神' WHERE id <> 1; -- id不等于1的行都受到影响 !=也可以 UPDATE `student` SET `name`='狂神' WHERE 5=6; -- ‘=’操作符意思使等于,返回值false,不执行该语句 UPDATE `student` SET `name`='狂神' WHERE BETWEEN 3 AND 6; -- 在三到六行修改
AND 相当于&& OR 相当于||
可以通过多个条件定位数据,无上限!
value既可以是一个具体的值,也可以是一个变量
UPDATE `student` SET `birthday`= CURRENT_TIME WHERE `id` = 1;
3.删除
-- 避免这样写,会全部删除 DELETE FROM `student` WHERE `id` = 1; -- 清空student表,保留约束 TRUNCATE `student`;
选择TRUNCATE的理由:
1.重新设置自增列,计数器会归零
2.不会影响事务
DELETE
使用InnoDB 自增列会从1开始,(存在内存中,断电即失)
使用MyISAM 自增列从上一个增量开始(存在文件中)