黑马 javaweb Day07 MySQL --DQL(查询)语句

数据准备

sql 复制代码
-- 员工管理(带约束)
create table tb_emp (
    id int unsigned primary key auto_increment comment 'ID',
    username varchar(20) not null unique comment '用户名',
    password varchar(32) default '123456' comment '密码',
    name varchar(10) not null comment '姓名',
    gender tinyint unsigned not null comment '性别, 说明: 1 男, 2 女',
    image varchar(300) comment '图像',
    job tinyint unsigned comment '职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管',
    entrydate date comment '入职时间',
    create_time datetime not null comment '创建时间',
    update_time datetime not null comment '修改时间'
) comment '员工表';

-- 准备测试数据
INSERT INTO tb_emp (id, username, password, name, gender, image, job, entrydate, create_time, update_time) VALUES
    (1, 'jinyong', '123456', '金庸', 1, '1.jpg', 4, '2000-01-01', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
    (2, 'zhangwuji', '123456', '张无忌', 1, '2.jpg', 2, '2015-01-01', '2022-10-27 16:35:33', '2022-10-27 16:35:37'),
    (3, 'yangxiao', '123456', '杨逍', 1, '3.jpg', 2, '2008-05-01', '2022-10-27 16:35:33', '2022-10-27 16:35:39'),
    (4, 'weiyixiao', '123456', '韦一笑', 1, '4.jpg', 2, '2007-01-01', '2022-10-27 16:35:33', '2022-10-27 16:35:41'),
    (5, 'changyuchun', '123456', '常遇春', 1, '5.jpg', 2, '2012-12-05', '2022-10-27 16:35:33', '2022-10-27 16:35:43'),
    (6, 'xiaozhao', '123456', '小昭', 2, '6.jpg', 3, '2013-09-05', '2022-10-27 16:35:33', '2022-10-27 16:35:45'),
    (7, 'jixiaofu', '123456', '纪晓芙', 2, '7.jpg', 1, '2005-08-01', '2022-10-27 16:35:33', '2022-10-27 16:35:47'),
    (8, 'zhouzhiruo', '123456', '周芷若', 2, '8.jpg', 1, '2014-11-09', '2022-10-27 16:35:33', '2022-10-27 16:35:49'),
    (9, 'dingminjun', '123456', '丁敏君', 2, '9.jpg', 1, '2011-03-11', '2022-10-27 16:35:33', '2022-10-27 16:35:51'),
    (10, 'zhaomin', '123456', '赵敏', 2, '10.jpg', 1, '2013-09-05', '2022-10-27 16:35:33', '2022-10-27 16:35:53'),
    (11, 'luzhangke', '123456', '鹿杖客', 1, '11.jpg', 2, '2007-02-01', '2022-10-27 16:35:33', '2022-10-27 16:35:55'),
    (12, 'hebiweng', '123456', '鹤笔翁', 1, '12.jpg', 2, '2008-08-18', '2022-10-27 16:35:33', '2022-10-27 16:35:57'),
    (13, 'fangdongbai', '123456', '方东白', 1, '13.jpg', 1, '2012-11-01', '2022-10-27 16:35:33', '2022-10-27 16:35:59'),
    (14, 'zhangsanfeng', '123456', '张三丰', 1, '14.jpg', 2, '2002-08-01', '2022-10-27 16:35:33', '2022-10-27 16:36:01'),
    (15, 'yulianzhou', '123456', '俞莲舟', 1, '15.jpg', 2, '2011-05-01', '2022-10-27 16:35:33', '2022-10-27 16:36:03'),
    (16, 'songyuanqiao', '123456', '宋远桥', 1, '16.jpg', 2, '2010-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:05'),
    (17, 'chenyouliang', '12345678', '陈友谅', 1, '17.jpg', null, '2015-03-21', '2022-10-27 16:35:33', '2022-10-27 16:36:07'),
    (18, 'zhang1', '123456', '张一', 1, '2.jpg', 2, '2015-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:09'),
    (19, 'zhang2', '123456', '张二', 1, '2.jpg', 2, '2012-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:11'),
    (20, 'zhang3', '123456', '张三', 1, '2.jpg', 2, '2018-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:13'),
    (21, 'zhang4', '123456', '张四', 1, '2.jpg', 2, '2015-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:15'),
    (22, 'zhang5', '123456', '张五', 1, '2.jpg', 2, '2016-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:17'),
    (23, 'zhang6', '123456', '张六', 1, '2.jpg', 2, '2012-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:19'),
    (24, 'zhang7', '123456', '张七', 1, '2.jpg', 2, '2006-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:21'),
    (25, 'zhang8', '123456', '张八', 1, '2.jpg', 2, '2002-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:23'),
    (26, 'zhang9', '123456', '张九', 1, '2.jpg', 2, '2011-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:25'),
    (27, 'zhang10', '123456', '张十', 1, '2.jpg', 2, '2004-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:27'),
    (28, 'zhang11', '123456', '张十一', 1, '2.jpg', 2, '2007-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:29'),
    (29, 'zhang12', '123456', '张十二', 1, '2.jpg', 2, '2020-01-01', '2022-10-27 16:35:33', '2022-10-27 16:36:31');

1.基本查询:

sql 复制代码
-- 基本查询
-- 1.指定查询字段 name entrydate
select name,entrydate from tb_emp;
-- 2.返回所有字段
select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp
-- select * from tb_emp;
-- 3.查询起别名
select name as 姓名,entrydate as 入职日期 from tb_emp;
-- 4.查询关联了几种职位
select distinct  job from tb_emp;

2.条件查询:

sql 复制代码
-- DQL  条件查询
-- 1.查询姓名为 张三的员工
select * from tb_emp where name = '张三';

-- 2.查id小于5
select * from tb_emp where id < 5;

-- 3.查询没职位的
select * from tb_emp where job is null;

-- 4.有职位
select * from tb_emp where job is not null;

-- 5.查密码不等于123456的
select * from tb_emp where password != '123456';

-- 6.查入职日期在 2000-1-1到2010-1-1之间的
select * from tb_emp where entrydate >=  '2000-1-1' and entrydate <= '2010-1-1';

-- 7.查入职日期在 2000-1-1到2010-1-1之间的 且性别为女
select * from tb_emp where entrydate >=  '2000-1-1' and entrydate <= '2010-1-1' and gender = 2;

-- 8.查询职位是(2)讲师 (3)学工主管 (4)教研主管的信息
select * from tb_emp where job in (2,3,4);

-- 9.查询姓名为2个字的信息
select * from tb_emp where name like '__';

-- 10.查询姓为张的信息
select * from tb_emp where name like '张%';

3.聚合函数:

sql 复制代码
-- DQL分组操作
-- 聚合函数
-- 1.统计企业员工总数量 -- count
-- count(字段)
select count(id) from tb_emp;
select count(id) from tb_emp;
-- count(常量)
select count('a') from tb_emp;
-- count (*)
select count(*) from tb_emp;
-- 2.统计最早入职的员工
select min(entrydate) from tb_emp;
-- 3.统计最晚入职的员工
select max(entrydate) from tb_emp;
-- 4.统计ID平均值
select avg(id) from tb_emp;
-- 5.统计ID和
select sum(id) from tb_emp;

4.分组查询:

复制代码
-- DQL分组查询
-- 1.根据性别分组,统计男性女性员工数量
select gender,count(*) from tb_emp group by gender;
-- 2.查询入职时间在2015-1-1之前的员工,并根据职位分组,获取员工数量大于2的职位
select job,count(*) from tb_emp where entrydate <= '2015-01-01' group by job having count(*) > 2;

5.排序查询

复制代码
-- DQL排序查询
-- 1.入职时间升序排序
select * from tb_emp order by entrydate asc;
-- 2.根据入职时间,对员工进行降序排序
select * from tb_emp order by entrydate desc;
-- 3.根据入职时间,对员工进行升序排序,时间相同按更新时间排序
select * from tb_emp order by entrydate , update_time desc;

6.分页查询

复制代码
-- 分页查询
-- 1.从起始索引0开始查询员工数据,每页展示五条记录
select * from tb_emp limit 0,5;
-- 2.查询第一页员工数据,每页展示五条记录
select * from tb_emp limit 0,5;
-- 3.查询第二页员工数据,每页展示五条记录
select * from tb_emp limit 5,5;
-- 4.查询第三页员工数据,每页展示五条记录
select * from tb_emp limit 10,5;
相关推荐
倔强的石头_13 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
阿巴斯甜19 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker19 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq952720 小时前
Andorid Google 登录接入文档
android
黄林晴21 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab1 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿2 天前
Android MediaPlayer 笔记
android
Jony_2 天前
Android 启动优化方案
android
阿巴斯甜2 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇2 天前
AOSP15 Input专题InputReader源码分析
android