数据库
DML
一、增加数据
1.1 增加一条数据
1.1.1 全列插入
insert into 表名 values(每一列的值按照顺序插入)
INSERT INTO employees VALUES('张三',13111111111,123,18);
1.1.2 缺省插入
insert into 表名(字段1,字段2,...)
INSERT INTO employees (sname,phone,age,salary) VALUES ('张三',13111111111,20,55);
注意点:
1、字段的书写顺序由自己定,可以不按照数据库表设计的顺序
2、插入的值与字段的顺序一一对应
1.1.3 set的使用
/*
insert into 表名 set 字段1=值,字段2=值,...;
*/
INSERT INTO employees SET sname = '王二',salary=100,age=28,phone=16546186;
1.1.4 value/values和set之间的对比
第一种方式支持多行插入,set不支持多行插入
第一种方式支持子查询,set不支持子查询
1.2 增加多条数据
1.2.1 全列插入多条数据
全列插入多条数据插入
insert into 表名 values (字段1,字段2...),(值1,值2...);
注意点:
多条数据之间以','隔开
1.2.2 缺省插入多条数据
缺省插入的多条插入
insert into 表名(字段1,字段2,...)values(值1,值2...),(值1,值2...);
INSERT INTO employees (sname,phone,age,salary)VALUES('张一',13211444411,53,19),('张二',13211334411,135,12);
注意点:
在mysql中value和values的区别:
1、当插入一条数据的时候,我们使用的是values速度较快
2、当插入多条数据的时候,使用value速度较快
1.3 插入数据的注意点
1.3.1 空值的处理
INSERT INTO employees SET sname = '王x',age=28,phone=16546186;
INSERT INTO employees SET sname = '王x',salary=NULL,age=28,phone=16546186;
注意点:
1、对于空值,可以将字段直接不写入
2、写入字段,但是值用NULL进行填充
1.3.2 利用子查询的结果
-- 利用子查询
INSERT INTO brand(NAME)(SELECT 'gucci');
1.3.3 主键自增
1、可以不写,因为设置了自增
2、如果要写,可以用0填充
二、修改数据
# 更新数据,将名字改成卫龙
UPDATE brand SET NAME='卫龙' WHERE id=3;
# 将`employees`表中年龄大于18的且姓王的人的薪资改成5858
-- 找出数据库中姓王的
SELECT * FROM employees WHERE sname LIKE '王%'AND age>18;
UPDATE employees SET salary='5858' WHERE sname LIKE '王%'AND age>18;
SELECT * FROM employees;
# 找出名字中带王的人,将salary修改成null
SELECT *FROM employees WHERE sname LIKE '%王%';
UPDATE employees SET salary=NULL WHERE sname LIKE '%王%';
/*
更新数据
update 数据库表名 set 字段名1=值1,字段名2=值2,...where 条件判断...
如果有条件筛选,就将符合条件筛选的数据进行修改
如果没有条件筛选,所有的数据进行修改
*/
三、删除数据
# 将重复数据的内容删除
DELETE FROM brand WHERE id = 7;
-- 删除之后,主键不会上升一位
-- 但是一般情况下,不会直接进行删除操作,会进行逻辑删除
3.1 删除符合条件的数据
/*
删除一些符合条件的数据
delete from 表名 where 条件判断
*/
3.2 清空表数据
-- 将stud这张表的数据进行清空
TRUNCATE stud;
SELECT * FROM stud;
/*
清空表的数据
truncate 表名
*/
/*
删除表
drop table 表名
*/
注意点:
1、只是清空表数据,不会影响表结构