主题
DQL - 基础查询
查询关键字
- select
基础语法结构
sql
select
字段列表
from
表名列表
where
条件列表
group by
分组字段列表
having
分组后条件列表
order by
排序字段列表
limit
分页参数;
- 条件查询 (
where
) - 聚合函数 (
count
、max
、min
、avg
、sum
) - 分组查询 (
group by
) - 排序查询 (
order by
) - 分页查询 (
limit
)
准备工作
- 创建员工信息表
sql
CREATE TABLE emp (
id INT COMMENT 'ID',
workno VARCHAR ( 10 ) COMMENT '工号',
NAME VARCHAR ( 10 ) COMMENT '姓名',
gender CHAR ( 1 ) COMMENT '性别',
age TINYINT UNSIGNED COMMENT '年龄',
idcard CHAR ( 18 ) COMMENT '身份证号',
workaddress VARCHAR ( 50 ) COMMENT '工作地址',
entrydate date COMMENT '入职时间'
) COMMENT '员工表';
- 插入一批数据
sql
INSERT INTO emp ( id, workno, name, gender, age, idcard, workaddress, entrydate )
VALUES
( 1, '1', '柳岩', '女', 20, '123456789012345678', '北京', '2000-01-01' ),
( 2, '2', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-01' ),
( 3, '3', '韦一笑', '男', 38, '123456789712345670', '上海', '2005-08-01' ),
( 4, '4', '赵敏', '女', 18, '123456757123845670', '北京', '2009-12-01' ),
( 5, '5', '小昭', '女', 16, '123456769012345678', '上海', '2007-07-01' ),
( 6, '6', '杨道', '男', 28, '12345678931234567X', '北京', '2006-01-01' ),
( 7, '7', '范瑶', '男', 40, '123456789212345670', '北京', '2005-05-01' ),
( 8, '8', '黛绮丝', '女', 38, '123456157123645670', '天津', '2015-05-01' ),
( 9, '9', '范凉凉', '女', 45, '123156789012345678', '北京', '2010-04-01' ),
( 10, '10', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-01' ),
( 11, '11', '张士诚', '男', 55, '123567897123465670', '江苏', '2015-05-01' ),
( 12, '12', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-01' ),
( 13, '13', '张三丰', '男', 88, '123656789012345678', '江苏', '2020-11-01' ),
( 14, '14', '灭绝', '女', 65, '123456719012345670', '西安', '2019-05-01' ),
( 15, '15', '胡青牛', '男', 70, '12345674971234567X', '西安', '2018-04-01' ),
( 16, '16', '周芷若', '女', 18, NULL, '北京', '2012-06-01' );
- 查询多个字段
- 语法
sql
/* 查询具体字段 */
select 字段1, 字段2, ... from 表名;
/* 查询所有字段 */
select * from 表名;
- 示例
sql
select * from emp;
select id,name,workno from emp;
- 设置别名
关键字
as
语法
sql
/* 用 as 关键字 */
select 字段1 as 别名1, 字段2 as 别名2, ... from 表名;
/* as 关键字可以省略 */
select 字段1 别名1, 字段2 别名2, ... from 表名;
- 示例
sql
-- 有 as
select id, name as userName, workno as userNo from emp;
-- 无 as
select id, name userName, workno userNo from emp;
- 查询结构去重
关键字
distinct
语法
sql
select distinct 字段列表 from 表名;
- 示例:查询所有员工工作地址,不重复
sql
-- distinct 关键字用于对workaddress去重
select distinct workaddress from emp;