MySQL数据管理(一)(外键,DML语言)
1.外键(物理外键,数据库级别)
--方式一:在创建表的过程中建立外键关系
KEY `FK_name`(`name`), --定义外键
CONSTRAINT `FK_name` FOREIGN KEY(`name`) REFERENCE `anotherTableName`(`name`) --引用约束
--方式二:在创建完表后在进行建立外键关系
ALTER TABLE tableName
ADD CONSTRAINT `FK_name` FOREIGN KEY(`name`) REFERENCE `anotherTableName`(`name`)--定义同时约束
- 不推荐数据库级别的外键使用,最好让数据库只管理行和列,外键用其他程序实现
- 被引用表不能被之间删除!!!必须先删除主表!!!!
2.DML语言
2.1添加
INSERT 语句
-- INSERT 语句
INSERT INTO `student`(`name`,`pwd`,`sex`,`birthday`,`address`,`email`)
VALUES (‘LJJ‘,‘5465‘,‘男‘,‘2000-11-22‘,‘哈哈哈‘,‘2809881362@qq.com‘),
(‘JJL‘,‘5465‘,‘男‘,‘2000-11-22‘,‘哈哈哈‘,‘2809881362@qq.com‘)
语法:INSERT INTO 表名
(字段名1
,字段名2
,字段名3
) VALUES (‘字段值1‘,‘字段值2‘,‘字段值3‘),(‘字段值1‘,‘字段值2‘,‘字段值3‘).........
TIP:
- 字段名和字段值一一对应!
- 可以一次添加多条语句,用()和,分割!
- 字段名可以省略!但是最好不要使用!!!
2.2修改
UPDATE 语句
--UPDATE 语句
UPDATE `student` SET `name`=‘asdasd‘ WHERE id=2 --限定条件的UPDATE语句
UPDATE `student` SET `name`=‘asdasd‘ --不限定条件的语句!会改动所有的记录相应字段值
--语法: UPDATE
update `表名` set `字段名`=‘value1‘,`字段名2`=‘value2‘ [where 添加约束]
约束运算符
运算符 | 含义 |
---|---|
> | 大于 |
< | 小于 |
= | 等于 |
<> 或 != | 不等于 |
BETWEEN.....AND | 在范围内 |
AND && | 与 |
OR || | 或 |
NOT ! | 非 |
>= | 大于等于 |
<= | 小于等于 |
TIP
-
注意添加限定筛选条件,防止对所有记录进行修改!!!
-
一次可以修改多个字段,但是要用逗号隔开
-
value的值既可以用明确的值,也可以用变量!!!
-
UPDATE `student`SET `birthday`=CURRENT_TIME WHERE id=2 --修改字段值为当前系统时间
-
2.3删除
DELETE 语句
---- delete语句
DELETE FROM `student` WHERE id=2
DELETE FROM `student` -- 不加约束条件的DELETE语句,会删除所有的数据库记录!!!!
-- 语法 delete
DELETE FROM `表名` [WHERE 约束条件]
TRUNCATE 语句
--TRUNCATE 语句
TRUNCATE `student` --删除数据表
--语法:TRUNCATE
TRUNCATE `表名`
TRUNCATE 和DELETE 的删除区别
- TRUNCATE 的删除不影响事N务 ,DELETE会!!!
- TRUNCATE 的删除重置自增列N计数器,而DELETE不会重置!!!
- 【手动滑稽】truncate 更适合删库跑路