MySQL基础-DQL(四)

DQL是数据查询语言,主要用来查询数据库中表的记录。DQL的语法如下:

sql 复制代码
SELECT 字段列表
FROM 表名列表
WHERE 条件列表
GROUP BY 分组字段列表
HAVING 分组后条件列表
ORDER BY 排序字段列表
LIMIT 分页参数

首先准备好表和记录作为练习

sql 复制代码
create table emp(
	id int comment '编号',
    working varchar(10) comment '工号',
    name varchar(10) comment '姓名',
    gender char comment '性别',
    age tinyint unsigned comment '年龄',
    idcard char(18) comment '身份证号',
    workaddress varchar(50) comment '工作地址',
    entrydate date comment '入职时间'
) comment '员工表';

insert into emp values
(1, '1', '金庸', '男', 66, '123456789012345670', '北京', '2000-01-01'),
(2, '2', '张无忌', '男', 20, '123456789012345671', '上海', '2005-12-05'),
(3, '3', '杨逍', '男', 33, '123456789012345672', '南京', '2001-03-01'),
(4, '4', '韦一笑', '男', 48, '123456789012345673', '宁波', '2002-04-01'),
(5, '5', '常遇春', '男', 43, '123456789012345674', '北京', '2003-02-01'),
(6, '6', '小昭', '女', 19, '123456789012345675', '南京', '2002-01-02'),
(7, '7', '灭绝', '女', 60, '123456789012345676', '苏州', '2003-07-01'),
(8, '8', '周芷若', '女', 19, '123456789012345677', '广州', '2006-07-01'),
(9, '9', '丁敏君', '女', 23, '123456789012345678', '深圳', '2002-07-06'),
(10, '10', '赵敏', '女', 36, '123456789012345679', '上海', '2008-05-01'),
(11, '11', '鹿杖客', '男', 56, '123456789012345680', '北京', '2009-03-12'),
(12, '12', '鹤笔翁', '男', 67, '123456789012345681', '深圳', '2002-02-12'),
(13, '13', '方东白', '男', 45, '123456789012345682', '苏州', '2006-04-14'),
(14, '14', '张三丰', '男', 38, '123456789012345683', '南京', '2005-04-21'),
(15, '15', '俞莲舟', '男', 34, '123456789012345684', '宁波', '2004-09-01'),
(16, '16', '陈友谅', '男', 24, '123456789012345685', null, '2007-10-01');

1. 基本查询

基本查询的语句就是SELECT FROM

1.1 查询多个字段

sql 复制代码
# 查询返回所有字段
SELECT * FROM 表名;

# 返回多个指定的字段
SELECT 字段1,字段2,... FROM 表名;

首先我们查询指定的字段:name,workno和age

我们也可以查询返回所有的字段

1.2 设置别名

对于查询返回的字段,我们可以给字段设置别名,关键词是AS

sql 复制代码
SELECT 字段1 [AS 别名1], 字段2 [AS 别名2],... FROM 表名;

这里我们需要查询所有员工的工作地址,由于workaddress的名字不够直观,我们可以利用别名将其展示

1.3 去除重复记录

sql 复制代码
SELECT DISTINCT 字段列表 FROM 表名;

这里我们希望查询到的工作地址不要重复

2. 条件查询

条件查询的语法如下:

sql 复制代码
SELECT 字段列表 FROM 表名 WHERE 条件列表;

WHERE之后的条件可以是一个也可以是多个,后面的条件可以是比较运算符也可以是逻辑运算符。比较运算符有以下几种:

逻辑运算符有:

这里我们首先希望能够查询返回所有年龄大于48的员工

我们也可以使用!=来查询所有年龄不等于66的员工

我们接着查询年龄在30和45之间的员工,使用BETWEEN AND:

接下来我们希望返回没有工作地址的员工,使用IS NULL进行查询:

反过来,我们也可以对所有有工作地址的员工进行查询,使用关键词NOT

如果有多个条件,可以根据逻辑关系选择AND或者OR使用。这里我们可以查询性别为女并且年龄大于30的员工

如果多个条件只需要满足其中一个即可,我们可以使用IN

接下来我们希望关注姓名为两个字的员工,这里就需要使用LIKE进行模糊匹配。由于要匹配两个字符,这里使用两个_来表示

现在我们希望查询到身份证号最后一位是9的员工,这里使用的是%作为占位符,%9表示前面可以有任意多个字符,但最后一位必须是9

相关推荐
赵渝强老师2 小时前
【赵渝强老师】国产金仓数据库的物理存储结构
数据库·postgresql·国产数据库
曹牧2 小时前
Oracle闪回区配置与故障处理操作指南
数据库·oracle
无名-CODING2 小时前
Spring事务管理完全指南:从零到精通(上)
java·数据库·spring
fengxin_rou2 小时前
【黑马点评实战篇|第一篇:基于Redis实现登录】
java·开发语言·数据库·redis·缓存
我待_JAVA_如初恋2 小时前
Redis常用的数据类型之String
数据库·redis·缓存
@ chen2 小时前
MySQL 中的锁机制
数据库·mysql
Elastic 中国社区官方博客2 小时前
Elasticsearch:使用 Elastic Workflows 构建自动化
大数据·数据库·人工智能·elasticsearch·搜索引擎·自动化·全文检索
OnYoung2 小时前
编写一个Python脚本自动下载壁纸
jvm·数据库·python
Apple_羊先森2 小时前
ORACLE数据库巡检SQL脚本--15、表空间的运行状态
数据库·sql·oracle