一、概述

        数据的操作永远离不开增删改查四个字,也就是DML数据操作语言:涉及增删改,DQL语言:数据查询语言 关键字select

DML数据操作语言

DML 数据操作语言

用于操作数据库对象中所包含的数据

包括:INSERT(添加数据语句)

UPDATE(更新/修改数据语句)

DELETE(删除数据语句)

二、DML语言的增删改

1.  INSERT  添加数据

格式:insert into 表名(字段1、字段2、字段3. . . ) values('值1','值2','值3',. . . );

或 insert into 表名 values(); 根据表的格式全部插入,值需一一对应

建表:create table Stu(subjectName varchar(20) , Casshour int(11),ClassId int(11),;

插入数据:insert into Stu(subjectame,Classhour,ClassId)  values ('高等数学',100,1);
                  insert into Stu(subjectame,Classhour,ClassId)  values ('物理',130,2);

或选择其中几个值插入

--插入课程名,序号
   insert into Stu(subjectName,ClassId) values ('大学英语',3);

查看表内容:select * from Stu;

总结:

1.字段或值之间用英文逗号隔开

2.“字段1, 字段2…”该部分可省略,但添加的值务必与表结构数据列顺序相对应,且数量一致

3.可同时插入多条数据,values 后用英文逗号隔开

2. UPDATE  修改数据

格式:

update 表名 set 字段名 = 值 [where condition];

注:condition 为筛选条件,如不指定则修改该表的所有列数据!

--修改 '高等数学' 为 '体育'
update Stu set subjectName='体育'  where ClassId=1;
--让课时小于120的学科课时+10
update Stu set Classhour=Classhour+10 where Classhour <120;

注:修改课程序号为1的课程名高等数学为体育 也可 修改课时为100的课程名高等数学为体育

where后的筛选条件可有很多选择,如每个人的身份证、号码、邮箱等,最好选择具有标识性的,避免重复,在这张表里为课程id

批量修改:between and 一列内修改多个值,示例:

--让课时在100~150之间的学科课时+10
update Stu set Classhour=Classhour+10 where Classhour between 100 and 130;

3.删除数据:delete、truncate

①  DELETE   删除之后几分钟之内可以恢复

语法: delete from 表名[where condition];      

condition为筛选条件,如不指定删除该表的所有列数据

--删除序号为3的大学英语
delete from Stu where ClassId=3;

②.truncate命令 基本无法恢复

语法:truncate table 表名

作用:用于完全清空表数据,但表结构、索引、约数等不变

相同点:都能删除数据、不删除表结构,但TRUNCATE 速度更快

不同:使用 truncate table 重新设置AUTO_INCREMENT计数器,使用 truncate table 不会对事务有影响

延伸:drop 也是删除,那他跟 delete、truncate有什么区别?

delete,drop,truncate 都有删除表的作用,区别在于:

 1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。

 2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,打个比方,delete 是发微信说分手,后悔还可以撤回,truncate 和 drop 是直接扇耳光说滚,不能反悔。

 3、执行的速度上,drop>truncate>delete,打个比方,drop 是神舟火箭,truncate 是和谐号动车,delete 是自行车。

4.修改表 :ALTER TABLE

修改表名:alter table 旧表名  rename as 新表名;

--修改Stu为Student
alter table Stu rename as Student;

添加字段:alter table 表名 add 字段名 列类型(属性);

--添加一条字段名 类型为 subNo
alter table Student add subNo int(4);

修改字段

        不修改字段名:alter table 表名 modify 字段名 列类型(属性);

--修改subNo 列类型int 属性为11
alter table Student modify subNo int(11);

        修改字段名:alter table 表名 change 旧字段名 新字段名 列类型(属性);

--修改subNo为subjectNo
alter table Student change subNo subjectNo int(11);

删除字段:alter table 表名 drop 字段名

--删除 subjectNo
alter table Student drop subjectNo;