DML语言(重要)
数据存储,数据管理
DML 语言:
- insert
- update
- delete
1、添加(insert)
INSERT命令
语法:
INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')
注意 :
- 字段或值之间用英文逗号隔开 .
- ’ 字段1,字段2…’ 该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量一致 .
- 可同时插入多条数据 , values 后用英文逗号隔开 .
-- 使用语句如何增加语句?
-- 语法 : INSERT INTO 表名[(字段1,字段2,字段3,...)] VALUES('值1','值2','值3')
INSERT INTO grade(gradename) VALUES ('大一');
-- 主键自增,那能否省略呢?
INSERT INTO grade VALUES ('大二');
-- 查询:INSERT INTO grade VALUE ('大二')错误代码:1136
Column count doesn`t match value count at row 1
-- 结论:'字段1,字段2...'该部分可省略 , 但添加的值务必与表结构,数据列,顺序相对应,且数量一致.
-- 一次插入多条数据
INSERT INTO grade(gradename) VALUES ('大三'),('大四');
2、修改数据表
update 表名 (条件) set 原来的值 =value where 新值=value
-- 修改学生名字
update `student` set name = `xiohong` where id = 1
-- 不指定条件的情况下,会改变所有表@
update `student` set `name` = 'wangwu'
-- 修改多个属性,逗号隔开
update `student` set `name` = 'zhangsan',`email`='12346@qq.com' where id = 5
-- where 筛选的条件,如果没有指定。则会修改所有的列
-- value,可以是一个具体的值也可以是一个变量
3、删除数据表
delete 命令
语法:==delete from 表名 where 条件=多少
-- 删除指定数据
delete from `student` where id = 1
truncate 命令
作用:完全清空一个数据表,表的结构和索引约束不会改变
-- 清空student表
truncate `student`
- 相同点:都能删除数据,都不会删除表结构
- 不同:
- truncate 重新设置自增列。计数器会归零
- truncate 不会影响事务
create table `test`(
`id` int(4) not null auto_increment,
`coll` varchar(20) not null,
primary key(`id`)
)engine =innodb default charset=utf8;
insert into `test`(`coll`) values('1'),('2'),('3')
delete from `test` -- 不会影响自增
truncate table `test` -- 自增列会清零,从心开始
delete 删除问题,重启数据库,现象
- innoDB 自增列会重1开始(存在内存中。断电失效)
- myism 继续从上一个自增量开始(存在文件中,不会丢失)