第三章 MySQL的数据管理
3.1、外键
物理外键、了解即可
方式一:创建表的时候增加约束 麻烦
删除有外键关系的表,先删除引用别人的表,再删除被引用的表
方式二:创建的时候没有,修改操作添加外键约束
alter table 表
add constraint 约束名 foreign key(作为外键的列) references 那个表(那个字段)
也用的很少
以上操作都是物理外键,数据库级别的外键,避免数据库过多造成困恼
最佳实践
- 数据库就是单纯的表,只存数据,行(数据),列(字段)
- 想使用多张表的数据,想使用外键,(程序级别实现)
3.2、DML语言(全部记住)增删改
数据库意义:存储数据,数据管理
DML语言,数据操作语言
- insert
- update
- delete
3.3、添加
INSERT INTO 表名([字段名1,字段名2,字段名3,...])
VALUES('值1','值2','值3',...)
由于主键自增,往往省略主键
insert into `grade`(`gradename`) values('大四')
一般写插入语句,数据与字段一定要一一对应
插入多行
insert into `grade`(`gradename`) values
('xxx1'),
('xxx2'`);
字段是可以省略的,但是后面的值一定要一一对应,不能少 (不要省略,会被挨骂的)
注意英文逗号
INSERT INTO `student`(`name`,`pwd`,`sex`,`birthday`,`address`,`email`) VALUES
('张三','aaaa','男','2000-01-01','重庆','123@123.com');
3.4、修改
update
-- 修改学员的名字
UPDATE `student` SET `name`='李四' WHERE id = 1;
如果不指定条件,改变所有的表
update 表名 set column_name = value where 条件
修改多个属性,用逗号隔开
UPDATE `student` SET `name`='陈', `email`='chen@163.com' WHERE id = 1;
条件:
where字句 运算符
操作符 | 含义 | 范围 | 结果 |
---|---|---|---|
= | 等于 | 等于执行sql | |
<>或!= | 不等于 | 不等于执行sql | |
> >= < <= | 大于大于等于小于小于等于 | ||
between … and … | 在某个范围内 | [2,5] | |
and | 我和你&& | ||
or | 我或你|| |
通过多个条件
3.5、删除
delete
delete from `student`; -- 全删了
delete from `student` where id = 1;
truncate 完全清空数据库
truncate `student`;
delete 与 truncate区别
- 相同:都能删除数据,都不会删除表的结构
- truncate 重新设置 自增列 计数器归零
- truncate 不会影响事务
delete删除问题 重启数据库后 net start
-
InnoDB 自增列从1开始 (存在内存中,断电即失)
-
MyISAM 继续从上一个自增列开始, 存在文件中的,不会丢失
会被挨骂的 ( doge.jpg