基本查询
DQL英文全称是Data Query Language(数据查询语言),用来查询数据库表中的记录。
查询关键字:SELECT
语法
DQL查询语句,语法结构如下:
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
数据库准备
-- 员工管理(带约束)
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 男, 0 女',
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, 'username1', 'password1', 'Name1', 1, '1.jpg', 4, '2000-01-01', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(2, 'username2', 'password2', 'Name2', 0, '2.jpg', 2, '2001-02-02', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(3, 'username3', 'password3', 'Name3', 1, '3.jpg', 3, '2002-03-03', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(4, 'username4', 'password4', 'Name4', 0, '4.jpg', 1, '2003-04-04', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(5, 'username5', 'password5', 'Name5', 1, '5.jpg', 2, '2004-05-05', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(6, 'username6', 'password6', 'Name6', 0, '6.jpg', 3, '2005-06-06', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(7, 'username7', 'password7', 'Name7', 1, '7.jpg', 4, '2006-07-07', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(8, 'username8', 'password8', 'Name8', 0, '8.jpg', 1, '2007-08-08', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(9, 'username9', 'password9', 'Name9', 1, '9.jpg', 2, '2008-09-09', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(10, 'username10', 'password10', 'Name10', 0, '10.jpg', 3, '2009-10-10', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(11, 'username11', 'password11', 'Name11', 1, '11.jpg', 4, '2010-11-11', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(12, 'username12', 'password12', 'Name12', 0, '12.jpg', 1, '2011-12-12', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(13, 'username13', 'password13', 'Name13', 1, '13.jpg', 2, '2012-01-13', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(14, 'username14', 'password14', 'Name14', 0, '14.jpg', 3, '2013-02-14', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(15, 'username15', 'password15', 'Name15', 1, '15.jpg', 4, '2014-03-15', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(16, 'username16', 'password16', 'Name16', 0, '16.jpg', 1, '2015-04-16', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(17, 'username17', 'password17', 'Name17', 1, '17.jpg', 2, '2016-05-17', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(18, 'username18', 'password18', 'Name18', 0, '18.jpg', 3, '2017-06-18', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(19, 'username19', 'password19', 'Name19', 1, '19.jpg', 4, '2018-07-19', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(20, 'username20', 'password20', 'Name20', 0, '20.jpg', 1, '2019-08-20', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(21, 'username21', 'password21', 'Name21', 1, '21.jpg', 2, '2020-09-21', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(22, 'username22', 'password22', 'Name22', 0, '22.jpg', 3, '2021-10-22', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(23, 'username23', 'password23', 'Name23', 1, '23.jpg', 4, '2022-11-23', '2022-10-27 16:35:33', '2022-10-27 16:35:35'),
(24, 'username24', 'password24', 'Name24', 0, '24.jpg', 1, '2023-12-24', '2022-10-27 16:35:33', '2022-10-27 16:35:35');
查询多个字段
查询指定字段 name,entrydate并返回
select name,entrydate from tb_emp;
查询所有字段
案例2:查询返回所有字段
select * from tb_emp;
👆不建议使用,可读性不好,性能低
select id, username, password, name, gender, image, job, entrydate, create_time, update_time from tb_emp;
设置别名
案例3:查询所有员工的 name,entrydate,并起别名(姓名、入职日期)
-- 方式1:
select name AS 姓名, entrydate AS 入职日期 from tb_emp;
-- 方式2: 别名中有特殊字符时,使用''或""包含
select name AS '姓 名', entrydate AS '入职日期' from tb_emp;
-- 方式3:
select name AS "姓名", entrydate AS "入职日期" from tb_emp;
去除重复记录
案例4:查询已有的员工关联了哪几种职位(不要重复)
select distinct job from tb_emp;