DML英文全称是
Data Manipulation Lanquage
(数据操作语言),用来对数据库中表的数据记录进行增删改操作。
1.给指定字段添加数据
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值1,值2,...);
2.给全部字段添加数据
INSERT INTO 表名 VALUES(值1,值2,...);
3.批量添加数据
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);
INSERT INTO 表名 VALUES (值1,值2,...),(值1,值2,...),(值1,值2,...);
注意:
①插入数据时,指定的字段顺序需要与值的顺序是一一对应的
②字符串和日期型数据应该包含在引号中
③插入的数据大小,应该在字段的规定范围内
.
UPDATE 表名 SET 字段名1=值1,字段名2=值2,....[WHERE 条件];
注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据
。
DELETE FROM 表名[WHERE 条件];
注意:
如果没有条件,则会删除整张表的所有数据
。不能删除某一个字段
的值(可以使用UPDATE)。DQL英文全称是
Data Query Language
(数据查询语言),数据查询语言,用来查询数据库中表的记录。
1.查询多个字段:
SELECT 字段1,字段2,字段3 ... FROM 表名;
SELECT * FROM 表名;
2.设置别名:
SELECT 字段1 [AS 别名1],字段2 [AS 别名2]...FROM 表名;
关键字:AS
3.去除重复记录:
SELECT DISTINCT 字段列表 FROM 表名;
关键字:DISTINCT
SELECT 字段列表 FROM 表名 WHERE 条件列表;
select *
from employee
where age < 22;
select *
from employee
where idcard is not null;
select *
from employee
where age <> 88;
select *
from employee
where age between 15 and 25;
select *
from employee
where gender = '女'
and age < 25;
select *
from employee
where age in (21, 45, 88);
select *
from employee
where name like '__';
select *
from employee
where idcard like '%X';
将一列数据作为一个整体,进行
纵向计算
。
SELECT 聚合函数(字段列表) FROM 表名;
select count(*)
from employee;
select avg(age)
from employee;
select max(age)
from employee;
select min(age)
from employee;
select sum(employee.age)
from employee
where work_address = '北京';
SELECT 字段列表 FROM表名[WHERE 条件] GROUP BY 分组字段名[HAVING 分组后过滤条件];
①执行时机不同:
where是分组之前
进行过滤,不满足where条件,不参与分组;而having是分组之后
对结果进行过滤。
②判断条件不同:where不能对聚合函数进行判断
,而having可以。
注意:
where >聚合函数>having
分组之后,查询的字段一般为聚合函数和分组字段
,查询其他字段无任何意义select employee.gender, count(*)
from employee
group by gender;
select employee.gender, avg(age)
from employee
group by gender;
select employee.work_address, count(*)
from employee
where age < 45
group by work_address
having count(*) <= 3;
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1,字段2 排序方式2;
注意:如果是
多字段排序
,当第一个字段值相同时,才会根据第二个字段进行排序。
select *
from employee
order by age asc;
select *
from employee
order by entrydate desc;
select *
from employee
order by age asc, entrydate desc;
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
注意:
从0开始
, 起始索引 = ( 查询页码 − 1 ) ∗ 每页显示记录数 起始索引=(查询页码-1)*每页显示记录数 起始索引=(查询页码−1)∗每页显示记录数MySQL中是LIMIT
。查询的是第一页数据,起始索引可以省略
,直接简写为limit 10。select * from employee limit 0,10;
select * from employee limit 10,10;