|
一、查询基础语法类型
1.SELECT:用于从数据库中选择数据。
- SELECT column1, column2, ...
- FROM table_name;
复制代码
2.WHERE:用于过滤结果集。
- SELECT column1, column2, ...
- FROM table_name
- WHERE condition;
复制代码
3.ORDER BY:用于对结果集进行排序。
- SELECT column1, column2, ...
- FROM table_name
- ORDER BY column1 ASC/DESC;
复制代码
4.JOIN:用于将两个或多个表中的数据组合在一起。
- SELECT column1, column2, ...
- FROM table1
- JOIN table2 ON table1.column_name = table2.column_name;
复制代码
5.DISTINCT:用于返回唯一的结果集。
- SELECT DISTINCT column1, column2, ...
- FROM table_name;
复制代码
7.GROUP BY:用于将结果集按照一列或多列进行分组。
- SELECT column1, COUNT(column2)
- FROM table_name
- GROUP BY column1;
复制代码
8.HAVING:用于过滤分组后的结果集。
- SELECT column1, COUNT(column2)
- FROM table_name
- GROUP BY column1
- HAVING COUNT(column2) > 10;
复制代码
二、DQL基本查询语法
1.查询多个字段
select 字段1,字段2,字段3 ...from 表名;
select *from 表名;
2.设置别名
select 字段1[as别名],字段2[as别名2]...from表名;
- select name as '名字' from emp;
复制代码
3.去除重复记录
select distinct 字段列表 from 表名
创建查询表案例
- CREATE TABLE emp(
- id INT COMMENT '编号',
- working VARCHAR(50) COMMENT '职位',
- name VARCHAR(50) COMMENT '姓名',
- age INT COMMENT '年龄',
- gender VARCHAR(2) COMMENT '性别' ,
- idcard char(18) comment '身份证号码',
- entrydate date comment '入职时间'
- ) COMMENT '员工信息表';
- INSERT INTO emp (id, working, name, age, gender, idcard, entrydate)
- VALUES
- (1, '职位1', '张三', 25, '男', '123456789012345678', '2023-01-01'),
- (2, '职位2', '李四', 30, '男', '234567890123456789', '2023-02-01'),
- (3, '职位3', '王五', 28, '女', '345678901234567890', '2023-03-01'),
- (4, '职位4', '赵六', 35, '男', '456789012345678901', '2023-04-01'),
- (5, '职位5', '钱七', 22, '女', '567890123456789012', '2023-05-01'),
- (6, '职位6', '孙八', 27, '男', '678901234567890123', '2023-06-01'),
- (7, '职位7', '周九', 33, '女', '789012345678901234', '2023-07-01'),
- (8, '职位8', '吴十', 29, '男', '890123456789012345', '2023-08-01'),
- (9, '职位9', '陈十一', 24, '女', '901234567890123456', '2023-09-01'),
- (10, '职位10', '肖十二', 31, '男', '012345678901234567', '2023-10-01');
- -- 查询语法
- select name,working,age from emp;
- select idcard,name from emp;
- select id, working, name, age, gender, idcard, entrydate from emp;
- select * from emp;
复制代码
三、dql条件查询
1.select 字段列表 from 表名 where 条件列表;
where后面可以跟得条件
栗子代码
针对的表
- -- 查询年龄等于25得员工
- select * from emp where age=25;
- -- 查询年轻小于35得员工
- select * from emp where age<30;
- -- 查询没有身份证号得信息
- select * from emp where idcard='';
- -- 查询年龄不等于25得员工
- select * from emp where age!=25;
- select * from emp where age<>25;
- -- 查询年龄20~30得员工
- select * from emp where age>=20 && age<=30;
- select * from emp where age>=20 and age<=30;
- select * from emp where age between 15 and 30;
- -- 查询性别为女且年龄小于30
- select * from emp where age<30 and gender='女';
- -- 查询年龄小于30 或者是女得
- select * from emp where age<30 or gender='女';
- -- 查询姓名两个字得员工 _下划线一个字母 %是人一个字符
- select * from emp where name like '___';
- select * from emp where name like '%';
- -- 查询身份最后一个位6得员工
- select * from emp where idcard like '9%'
复制代码
四、聚合函数
聚合函数是指一列数据作为一个整体进行计算
DQL (Data Query Language) 是 SQL 的一部分,用于从数据库中检索数据。在 DQL 中,聚合函数用于对查询结果进行统计和计算。以下是一些常见的 DQL 聚合函数:
COUNT:计算查询结果集中的行数。
SUM:计算查询结果集中指定列的总和。
AVG:计算查询结果集中指定列的平均值。
MAX:找出查询结果集中指定列的最大值。
MIN:找出查询结果集中指定列的最小值。
语法
select 聚合函数(字段列表) from 表名;
栗子
- -- 统计员工数量
- select count(idcard) from emp;
- select count(*) from emp;
- -- 统计企业员工平均年龄
- select avg(age) from emp;
- -- 统计员工最大年龄
- select max(age) from emp;
- -- 统计员工最小年龄
- select min(age) from emp;
- -- 统计经理得平均年龄
- select * from emp where working='经理';
- select sum(age) from emp where working='经理';
- select avg(age) from emp where working='经理';
复制代码
|
|