目录
一、DQL-介绍
- DQL英文全称是(Data Query Language),即数据查询语言。用来查询数据库中表的记录
- 查询关键字:select(查询频率高于增删改)
二、DQL-语法
分组
三、DQL-基本查询
1.查询多个字段
注:查询返回多个字段用通配符“*”
2.设置别名
注:别名可有可无,AS也可以省略
3.去除重复记录
4.练习
(1)准备一张表,内容如下:
insert into emp (id, workno, name, sex, age, idcard, workaddress, entrydate)
value (1,'1','柳岩','女',20,'1234567890','北京','2000-01-01'),
(2,'2','张无忌','男',18,'1234567891','天津','2005-09-01'),
(3,'3','韦一笑','男',38,'1234567890','北京','2022-07-01'),
(4,'4','赵敏','女',18,'1234567890','四川','2000-11-01'),
(5,'5','小昭','女',16,'1234567890','黑龙江','2010-01-01'),
(6,'6','杨逍','男',28,'1234567890','河北','2010-01-01'),
(7,'7','范瑶','男',40,'1234567890','河南','2023-01-01'),
(8,'8','范凉凉','女',38,'1234567890','北京','2012-01-01'),
(9,'9','陈友谅','男',45,'1234567890','天津','2004-01-01'),
(10,'10','张士诚','女',53,'1234567890','北京','2006-01-01'),
(11,'11','常遇春','男',55,'1234567890','上海','2013-01-01'),
(12,'12','张三丰','女',32,'1234567890','北京','2017-01-01'),
(13,'13','灭绝','男',88,'1234567890','江苏','2018-01-01'),
(14,'14','胡青年','女',65,'1234567890','西安','2005-01-01'),
(15,'15','周芷若','女',70,'1234567890','西安','2003-01-01'),
(16,'16','代斯齐','男',18,null,'北京','2012-06-01');
(2)代码展示
# -------------------------基本查询---------------------------------
# 1.查询指定字段 name,workno,age 返回
select name,workno,age from emp;
# 2.查询所有字段 返回
# (方法一:把所有字段的名字都写一遍,用逗号隔开;)
select id,id, workno, name, sex, age, idcard, workaddress, entrydate from emp;
# (方法二:用通配符星号代替;)
select * from emp; # 尽量不用,不直观,还会影响效率
# 3.查询所有员工的工作量,起别名
select workaddress as '工作地址' from emp;
# as可以省略
select workaddress '工作地址' from emp;
# 4.查询公司员工的上班地址(不要重复)
# 关键字distinct可以去除重复的
select distinct workaddress as '工作地址' from emp;
(3)运行结果
(代码中的1.对应第一张照片,以此类推)
1.
2.
3.
改别名后,workaddress变为工作地址
4.
在前面加上distinct可以去除重复的
四、DQL-条件查询
1.语法
注:WHERE后面的条件可以是一个,也可以是多个
2.条件
注:<1>不等号的两种写法<>和!=
<2>BETWEEN后跟最大值,AND后跟最小值
3.代码演示
模糊匹配用法见第10和第11条
# --------------------------条件查询------------------------
# 1.查询年龄等于88的员工
select * from emp where age = 88;
# 2.查询年龄小于20的员工信息
select * from emp where age < 20;
# 3.插叙年龄小于等于20的员工信息
select * from emp where age <= 20;
# 4.查询没有身份证号的员工信息
select * from emp where idcard is null;
# (如果查询idcard为空的员工信息,用is null,相反用is not null)
# 5.查询有身份证号的员工信息
select * from emp where idcard is not null;
# 6.查询年龄不等于88的员工信息
select * from emp where age != 88;
# 7.查询年龄在15岁(包括)到20岁(包括)之间的员工信息
select * from emp where age >= 15 && age <= 20;
select * from emp where age >= 15 and age <= 20;
# 8.查询性别为女且年龄小于25的员工信息
select * from emp where age <= 25 && sex = '女';
select * from emp where age >= 15 and age <= 20;
# 9.查询年龄等于18或者20或者40的员工信息
select * from emp where age = 18 || age = 20 || age = 40 ;
select * from emp where age = 18 or age = 20 or age = 40 ;
select * from emp where age in (18,20,40);
# 10.查询姓名为两个字的员工信息
# 用模糊匹配,一个下划线代表一个字符,百分号匹配任意个字符
select * from emp where name like '__';
# 11.查询身份证号最后以为是0的员工
select * from emp where idcard like '%0';