数据操作语言DML(Data Manipulation Language),用户通过它可以实现对数据库的基本操作。例如,对表中数据的查询、插入、删除和修改。 在DML中,应用程序可以对数据库作插,删,改,排,检等五种操作
数据库意义,存储,管理。
创建一个表
create table if not exists test(
-- id 列名 int 数据类型 primary key 主键 not null 不为空 auto_increment 自增 comment "" 别名
id int primary key not null auto_increment comment '主键',
-- default '' 默认的
name varchar(10) not null default '匿名' comment '姓名'
)Engine=innodb default charset=utf8;
-- 一般写插入语句,我们一定要数据和字段一一对应 一个子段对应一个值
-- 插入数据
insert into 表名 (【字段1,自段2,字段三】) value ('值1'),('值2'),('值3');
insert into test(name) value("张三");
-- 或者
-- 已知列 id name
insert into test value ('12','name');
-- 由于主键自增,那么我们不插入id
insert into test value( ,'name');
-- 一次插入多个数据
insert into test(name) value ('张三'),('李四');
注意:
- 字段使用英文逗号隔开
- 不写具体的列进行插入,那么我们插入的时候就需要整个数据库列的值全部插入
- 字段可以省略,但是后面的值必须要一一对应,不能少
- 可以同时插入多条数据,value后边的值,需要使用 英文逗号隔开。(),()
一般是更新数据库中的数据,而不是更新表的子段。。。。
-- 修改学员的名字
update test set name = '张三' where id = 1 ;
-- 在不指定具体的条件的情况下更改会更改表中所有name的数据
update test set name = '李四'; -- 更新整个表中列为name的所有数据是name都等于'李四'; 切记不要傻乎乎的使用。。。后果就是删库跑路
-- 修改多个属性,逗号隔开
update test set name = '张三' , tel = '123321', email = '2569758@qq.com' where id = 1;
-- 语法
update 表名 set 【列名1 = 值1,列2 = 值2 。。。。】 where 【条件】;
操作符 | 含义 | 范围 | 结果 |
---|---|---|---|
= | 等于 | 5=6 | false |
<> 或 != | 不等于 | 5<> 6 | true |
‘’>“” | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
<= | 小于等于 | – | |
‘’>= ” | 大于等于 | – | |
between… and … | 介于…之间 | [2,5] | |
and | 和 | 5>1 and 1>2 | false |
or | 或 | 5>1 or 1>2 | true |
update 表名 set 【列名1 = 值1,列2 = 值2 。。。。】 where 【条件】;
注意:
1. 更新某个类需要指定列名,顺带加上条件,没有加条件则会更新所有的列
2. 不同列名之间需要加,隔开。
删除表中的数据,和drop不一样,drop是删除整个表,delete是删除表中的数据
-- 删除数据 尽量避免不添加条件删除
delete from 表名 ; -- 这样会删除整个数据库
-- 删除指定数据,也就是根据条件删除
delete from 表名 where 列名1 = 值1 and 列名2 = 值2 ...;
清空某一张表。。。
-- 清空student表 truncate
TRUNCATE 表名;
1. 相同点:都能删除表数据,且不会删除表结构
2. 不同:
1. truncate 重新设置自增列 记数器会归零
2. truncate不会影响事务
delete删除问题,重启数据库,现象
InnoDB 自增会重1开始(存在内存中的,断电就失去);
MyISAM 继续从上一个自增量开始(存在文件中,不会丢失)