3、MySQL数据管理
第一种方式:不太建议,看起来复杂些
-- 学生表的 gradeid 字段,要去引用 年级表的 gradeid -- 定义外键key -- 给这个外键添加约束,(执行引用),REFERENCES 引用 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`); -- ALTER TABLE 表 ADD CONSTRAINT `` FOREIGN KEY (``) REFERENCES `字段`
以上的操作都是物理外键,数据库级别的外键,我们不建议使用,(避免数据库过多造成困扰,这里了解即可)
最佳实践
- 数据库为单纯的表
- 我们想使用多张的表数据,想使用外键(程序去实现)
3.2、DML语言
数据库语言: 数据存储、数据管理
3.3、添加 INSERT
-- 插入语句 INSERT INTO 表名([字段1,字段2,字段2]) values(''),(''),('') -- INSERT INTO 'grade'('gradename') VALUES ('大四') -- 一般写插入语句,一定要数据和要插入值的字段一一对应 -- 给某个字段添加多个字段 INSERT INTO `表明`(`属性列字段`, ...) VALUES ('匹配的值1','匹配的值2','匹配的值3') /* 如果不想写属性列的字段名,那么就吧每个属性列完全匹配,一一对应的写出后面的值*/
注意事项
- 字段和字段之间使用英文逗号隔开
- 字段是可以省略的,但是后面的值必须要一一对应,不能少
- 可以同时插入多条数据,VALUES 后面的值,需要使用,隔开即可VALUSE(),(),……
-- 插入多条数据<即元组>,多个行的数据 INSERT <span style="color:transparent">来1源gaodai#ma#com搞*代#码1网</span>INTO `s`(`SNO`,`SNAME`,`SEX`,`Sage`) VALUES ('180109','王五','男','76'),('180108','李四','男','88')
3.3修改
update 修改谁(条件)
-- 修改学员名字 UPDATE `student` SET `name`='长江七号' WHERE id = 1; -- 有条件 -- 不指定的情况下,会改动所有表!!!!! UPDATE `student` SET `name` = '长江七号' -- 语法 -- UPDATE 表名 SET colum_name = value,[colum_name = value,....] where [条件]
条件:where 运算符
操作符 | 含义 | 范围 | 结果 |
---|---|---|---|
= | 等于 | 5=6 | false |
<>或者 != | 不等于 | 5<>6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
>= | 大于等于 | 5>=6 | false |
<= | 小于等于 | 5<=6 | true |
between A and B | 在A和B之间 | between 1 and 10 | 在1~10之间,不包括10 |
AND | 连接条件&& | 条件1 和条件2都成立 | 都是true 才是true |
OR | 或者|| | 条件1 和条件2有一个成立即可 | 有一个true才是true |