简介:
DQL(Data Query Language)是数据库查询语言
常见的DQL语句有:
SELECT:用于从数据库中查询数据。
例:SELECT column1, column2 FROM mytable WHERE condition;
FROM:指定要查询的数据表。
例:SELECT column1, column2 FROM mytable;
WHERE:指定查询过滤条件。
例:SELECT column1, column2 FROM mytable WHERE condition;
GROUP BY:按照指定的列对查询结果进行分组。
例:SELECT column1, COUNT(column2) FROM mytable GROUP BY column1;
HAVING:指定对分组后的结果进行过滤的条件。
例:SELECT column1, COUNT(column2) FROM mytable GROUP BY column1 HAVING COUNT(column2) > 10;
ORDER BY:指定查询结果的排序顺序。ASC升序排列,DESC降序排列
例:SELECT column1, column2 FROM mytable ORDER BY column1 ASC;
JOIN:用于将多个表按照某些条件连接在一起进行查询。
例:SELECT t1.column1, t2.column2 FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id;
数据准备
创建数据表:
-- 创建数据表,并将字段id作为主键,且自增
create table if not exists gaohui(
`id` int auto_increment primary key,
`username` VARCHAR(20) not null unique,
`password` char(32) not null,
sex char(32) default '男'
)engine = innodb default charset=utf8;
-- 增加单行数据
insert into gaohui(`username`,`password`,sex) values('张三','123456','男');
insert into gaohui(`username`,`password`,sex) values('李四','1234','女');
- 查询表中所有字段:
select *from gaohui;
- 查询表中某一个字段:
select username,sex from gaohui;
条件查询:
条件查询分为以下几类:
语法格式:
SELECT 列名1, 列名2, ...FROM 表名WHERE 条件;
– 条件查询(男且大于20的人)
select username,sex,age from gaohui where sex='男' and age >20;
– 范围查询(20到30之间的人)
select username,age from gaohui where age between 20 and 30
select username,age from gaohui where age>20 and age<30;
select username,age from gaohui where age in (23,25);
模糊查询
模糊查询(Like查询)是一种在数据库中使用模式匹配进行条件筛选的查询方式,可以根据指定的模式匹配规则搜索满足条件的数据。
Like查询使用通配符来匹配模式,其中常用的通配符是百分号(%)和下划线(_)
select * from gaohui where username like '张%';
排序查询
语法格式:
SELECT column1, column2, ...FROM tableORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
-
SELECT:指定要查询的列名或表达式。
-
FROM:指定要查询的表名。
-
ORDER BY:排序子句,用于指定排序规则。
-
column1,column2…:要排序的列名或表达式。
-
[ASC|DESC]:可选参数,用于指定排序的方式,ASC表示升序(默认),DESC表示降序。
select * from gaohui order by age desc;
select * from gaohui order by age asc;
聚合查询
语法格式:
SELECT function(column1), function(column2), …FROM tableWHERE condition GROUP BY column1, column2,
-
SELECT:指定要返回的聚合结果。
-
function:聚合函数,用于计算数据的统计值。
-
FROM:指定要查询的表名。
-
WHERE:可选项,添加查询条件对数据进行筛选。
-
GROUP BY:指定按照哪些字段进行分组。
select count(id) from gaohui where age>25;
select sum(age) from gaohui;
select avg(age) from gaohui;
select max(age) from gaohui;
分组查询
分组查询是一种用于对数据库中的数据进行分组和聚合的查询操作。通过分组查询,可以按照指定的字段进行分组,并对每个组进行聚合计算
select username,sex from gaohui where sex='男' group by username,sex;