这里介绍几种DML操作
INSERT INTO——插入记录
插入一条记录
插入一条记录
INSERT INTO table [(column [, column . ])] VALUES(value [,value . ]);
例子:
insert into student values(
1,"承太郎"
)default charset utf8;
插入多条记录
插入多条记录
INSERT INTO table [(column [, column . ])]
VALUES(value [, value . ]),(value [, value . ]);
例子:
insert into student values
(1,"承太郎"),
(2,"迪奥"),
(3,"吉良吉影");
如果你注意到上面的那些column那么也就可能想到可以为某个字段单独添加记录
为部分字段添加数据:
insert into student(id,address) values (12,"翻斗大街");
id address这些字段不用加"",没添加的字段会给值NULL
或者 insert into student set id=12,address="翻斗大街";
为部分字段添加数据
如果你注意到上面介绍的插入方法中的那些column那么也就可能想到可以为某个字段单独添加记录
为部分字段添加数据:
insert into student(id,address) values (12,"翻斗大街");
id address这些字段不用加"",没添加的字段会给值NULL
或者 insert into student set id=12,address="翻斗大街";
REPLACE
replace语句的功能与insert语句的功能基本相同
REPLACE与INSERT的区别:
使⽤replace语句向表插⼊
新记录时,如果新记录的 主键值或者唯⼀性约束 的字段值与已有记录相同,则已有记录先被
删除,然后再插⼊新记录
replace三种语法格式
语法格式1:
replace into 表名 [(字段列表)] values (值列表)
语法格式2:
replace [into] 目标表名[(字段列表1) select (字段列表2) from 源表
where 条件表达式
语法格式3:
replace [into] 表名 set 字段1=值1, 字段2=值2
DELETE、TRUNCATE
DELETE FROM table_name [where 条件];
TRUNCATE TABLE table_name
DROP、TRUNCATE、DELETE的区别:
delete:删除数据,保留表结构,可以回滚,如果数据量⼤,很慢
truncate: 删除所有数据,保留表结构,不可以回滚,⼀次全部删除所有数据,速度相对快
drop: 删除数据和表结构,删除速度最快
TRUNCATE(清空数据表) 与 DELETE 的区别
truncate table student;
1.实现方式不同 truncate 本质上先执行drop 再通过结构文件.frm 重新创建数据表,delete则是逐条删除保存的记录
2.效率上来说多的时候truncate更快少的时候delete更快
3.对auto_increment影响不同,truncate自动增长从初始值开始,delete则不影响自动增长
4.返回值不同,auto_increment返回值无意义,delete返回删除的条数
5.truncate属于DDL delete属于DML
UPDATE
修改可以⼀次修改多⾏数据,修改的数据可⽤where⼦句限定,where⼦句⾥是⼀个条件表达式,只有符合该条件的⾏才会被修改。
没有where⼦句意味着where字句的表达式值为true,也可以同时修改
UPDATE table
SET column = value [, column = value]
[WHERE condition];
修改数据例子:
update student
set name="杰哥" where id =1;
SELECT
这个比较麻烦但是又很常用所以我们简单介绍一下,之后再做详细的介绍
简单的SELECT语句:
SELECT {*, column [alias], . } FROM table;
说明:
–SELECT列名列表。*表示所有列。
–FROM 提供数据源(表名/视图名)
–默认选择所有行
举例
查询数据:
select * from student; #列出该数据表中的所有数据
查询部分字段:
select id,address from student; #列出student数据表中的id和address字段
稍微复杂一点的
去除重复记录
SELECT DISTINCT(distinct) name from student;
排序与限量 order asc(升序)/desc(降序) limit 表示限制条数
select * name from student order by id asc升/desc降 limit 10;
或者 select * name,address order by id asc,xueha desc limit 10;
排序后更新或删除数据
update student set name="jojo"
order by id asc
limit 2;
delete from student [where]
order by id asc limit 2;