SQL语句分类
名称 | 解释 | 命令 |
---|---|---|
DDL(数据定义语言) | 定义管理数据的对象,对应库和表 | CREATE、DROP、ALTER |
DML(数据操作语言) | 操作数据库中数据 | INSERT、UPDATE、DELETE |
DQL(数据查询语言) | 查询数据库中数据 | SELECT |
DCL(数据控制语言) | 数据权限、提交、回滚控制 | GRANT、COMMIT、ROLLBACK |
本文主要涉及对数据库数据的操作,即DML数据操作语言介绍。
添加数据(INSERT)
insert into 表名[(字段1,字段2,...)] values(值1,值2,...)
修改数据(UPDATE)
update 表名 set 字段1=更新值[,字段2=更新值,...] [where condition]
更新值可以为变量、具体指、表达式或者嵌套select结果
condition为筛选条件
删除数据(DELETE)
delete from 表名 [where condition]
truncate 表名
delete、truncate特性了解
- 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快
- truncate不会对事务有影响
- 使用delete删除所有表数据,保存自增列值,而truncate不会,自增列值从起始值开始
- InnoDB表使用delete删除所有数据后重启,自增列从初始值开始(自增列的值保存在内存中)。MyISAM则会保存自增列的值(自增列的值会保存在文件中)
外键
概念
- 外键表示了两个关系(表)之间的相关联系
- 以另一个关系(表)的外键作主关键字(主键)的表被称为主表,具有此外键的表被称为主表的从表
作用
- 使两张表形成关联
- 外键只能引用主表中的列的值或使用空值
外键操作
方式一:创建子表时设置外键
create table 表名 (
key FK_外键名 (外键名),
constraint FK_外键名 foreign key (外键名) refrences 主表名 (主键名)
) ENGINE=INNODB DEFAULT CHARSET=utf8
方式二:建完子表后,添加子表外键
alter table 子表名
add constraint FK_外键名 foreign key 外键名 references 主表名 (主键名)
注意:
删除具有主外键关系的表时 , 要先删子表 , 后删主表。否则会报错。