狂神说MySQL系列连载课程学习笔记
三.mysql数据管理
3.1外键(了解即可)
数据库层面 物理外键 不推荐使用
应该在应用层实现 否则维护麻烦
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。
在实际操作中,将一个表的值放入第二个表来表示关联,所使用的值是第一个表的主键值(在必要时可包括复合主键值)。此时,第二个表中保存这些值的属性称为外键(foreign key)。
外键作用
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据,约束。使两张表形成关联,外键只能引用外表中的列的值或使用空值。
3.2 DML语言(要记住)
管理数据库数据方法:
- 通过SQLyog等管理工具管理数据库数据
- 通过DML语句管理数据库数据
- DML语言 :数据操作语言
- 用于操作数据库对象中所包含的数据
- 包括 :
- INSERT (添加数据语句)
- UPDATE (更新数据语句)
- DELETE (删除数据语句)
3.3添加
INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1'),('值2'),('值3') --多行插入数据
insert into `student1` (`name`)values('李雷'),('张三')
INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3') --多列插入数据
INSERT INTO `student1` (`name`,`address`)VALUES('李雷','山西')
insert into `student1` (`name`)values('李雷')
insert into `student1` values('李雷')
--如果不写表的字段 会自动从第一个一一匹配
INSERT INTO `student1` (`name`,`address`)VALUES('李一','山西'),('李二','山西'),('李三','山西')
3.4修改
UPDATE`student1` SET `name`='王五' WHERE id = 1
-- id为1的name设置为王五
UPDATE`student1` SET `name`='王五'
-- 不指定条件会改掉所有的name
UPDATE`student1` SET `name`='王六' ,`sex` ='女' WHERE id = 1
条件:where条件子句
-
<
-
<> 就是!=
-
between 2 and 4 2到4之间的 闭区间
eg:WHERE id between 2 and 4
- and 用来增加多个条件
- or
3.5删除
DELETE命令
DELETE FROM `student1`
-- 删除全部(避免这样)
DELETE FROM `student1` WHERE id = 1
-- 删除表中指定数据
TRUNCATE命令 truncate
TRUNCATE `student1`
-- 删除表的全部数据
区别
-
相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快
-
不同 :
-
使用TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器
计数器会归零 DELETE再加数据会从以前的计数开始
-
使用TRUNCATE TABLE不会对事务有影响
了解:
同样使用DELETE清空不同引擎的数据库表数据.重启数据库服务后 -- InnoDB : 自增列从初始值重新开始 (因为是存储在内存中,断电即失) -- MyISAM : 自增列依然从上一个自增数据基础上开始 (存在文件中,不会丢失)
-