首页 > 数据库 >数据库(四)DQL

数据库(四)DQL

时间:2022-10-23 11:36:26浏览次数:62  
标签:no -- 数据库 查询 emp DQL employees SELECT

DQL查询语言

单表查询

语法:

select * from 表名;

  • 字段查询

select 列名 from 表名;

  • 起别名

  • 去掉重复信息

select distinct 列名 from 表名;

注意:distinct要放在想要去重的列名前,如果distinct后面有多个列名,那都会生效,所以不想要去重的列需要放在distinct前

  • 运算查询

语法

select (列名 运算表达式) from 表名;

  • 条件查询语法:

SELECT 列名 FROM 表名 WHERE 条件表达式

比较运算符

示例:

use employees;
-- 查询出生日期晚于1965-01-01的员工编号,姓名,生日
SELECT
    emp_no,
    first_name,
    last_name,
    hire_date
FROM
    employees
WHERE
    hire_date > '1965-01-01';

使用between模糊查询

示例:

-- 查询年薪在70000-70003之间的员工编号及薪资
SELECT
    emp_no,
    salary
FROM
    salaries
WHERE
    salary BETWEEN 70000
    AND 70003;
  • 注意: 小数在前,大数在后

使用in模糊查询

示例:

-- 查询入职日期为1995-01-01 和1995-03-02的员工信息
SELECT
    *
FROM
    employees
WHERE
    hire_date IN ( '1995-01-01', '1995-03-02' );

判断是否为空

语法:WHERE <列名> IS [NOT] NULL

-- 查询年龄为空的数据
SELECT * FROM user WHERE age is null;

逻辑运算符

-- 查询名字为Lillian并且姓氏为Haddadi的员工信息
SELECT
    *
FROM
    employees
WHERE
    first_name = 'Lillian'
    AND last_name = 'Haddadi';


-- 查询名字为Lillian 或者姓氏为Terkki的员工信息
SELECT
    *
FROM
    employees
WHERE
    first_name = 'Lillian'
    or last_name = 'Terkki';


-- 查询名字为Lillian 并且性别不是女的员工信息
SELECT
    *
FROM
    employees
WHERE
    first_name = 'Lillian'
    and not gender='F';

通配符

-- 查询名字中包含fai的员工信息
SELECT * from employees where first_name like '%fai%';

-- 查询名字中fa开头的,名字长度为3位的员工信息
SELECT * from employees where first_name like 'fa_';

排序

排序语法:

  • 排序的运行速度一般较慢

单列排序

-- 使用salary字段,对salaries表数据进行升序排序
SELECT * from salaries ORDER BY salary;

-- 使用salary字段,对salaries表数据进行降序排序
SELECT * from salaries ORDER BY salary desc;

-- 查询员工的编号和入职日期,按照员工入职日期从晚到早排序
SELECT
    emp_no,
    hire_date
FROM
    employees
ORDER BY
    hire_date DESC;

组合排序

-- 在入职时间排序的基础上,再使用 emp_no 进行降序排序
SELECT
    emp_no,
    hire_date
FROM
    employees
ORDER BY
    hire_date DESC, emp_no DESC;

分组查询

一般会与聚合函数一起使用

-- 查询每个员工的薪资和
select emp_no,sum(salary) from salaries GROUP BY emp_no;

-- 查询员工编号小于10010的,薪资和小于400000的员工薪资和
select emp_no,sum(salary) from salaries where emp_no<10010 GROUP BY emp_no having sum(salary)<400000;

子句区别

  • where子句:从数据源种去掉不符合其搜索条件的数据,是对不符合搜索条件的数据进行剔除,是在分组前的

  • group by子句:搜集数据行到各个组中,统计函数为各个组计算统计值

  • having子句:去掉不符合组搜索条件的各行数据行

limit关键字限制查询结果行数

  • 注意:只能在mysql中使用该关键字
-- 展示前十条员工信息
select * from employees limit 10;
select * from employees limit 10 OFFSET 0;

-- 显示年薪从高到低排序,第15位到第20位员工的编号和年薪
select emp_no ,salary from salaries ORDER BY salary Desc limit 14,6;

总结

-- 基础查询语法
select distinct <列名>
from <表名>
where <查询条件表达式>
group by <分组的列名>
having <分组后的查询条件表达式>
order by <排序的列名> [ASC/DESC]
limit [开始的行数],<查询记录的条数>
sql语法执行顺序


数据库学习笔记目录导航

标签:no,--,数据库,查询,emp,DQL,employees,SELECT
From: https://www.cnblogs.com/joker108/p/16818193.html

相关文章

  • 数据库(五)聚合函数
    聚合函数概念用来做纵向运算的,可以针对某列的值进行运算,返回一个单一的值,可以计算平均工资等常见聚合函数:COUNT():统计指定列不为NULL的记录行数MAX():计算指定列......
  • 数据库(六)约束
    sql约束概念对表中的数据进行进一步的限制保证数据的正确性、有效性、完整性违反约束的不正确数据无法插入到表中常见约束主键:PRIMARYKEY非空:NOTNULL......
  • 数据库(三)DML
    DML操作语言插入语法格式:示例:--选择数据库为当前数据库USEhogwarts_stu;--创建表CREATETABLEuser(idint,namevarchar(20),ageint,sexchar(1......
  • 数据库(一)
    数据库基本概念是一个以某种有组织的方式存储的数据集合是存储和管理数据的仓库本质是一个文件系统DBMS(数据库管理系统)数据库分类关系型数据库(RDB)有关系......
  • JDBCTemplate-执行DML语句和执行DQL语句
    JDBCTemplate-执行DML语句需求:定义成员变量 //1、获取JDBCTemplate对象privateJdbcTemplatetemplate=newJdbcTemplate(JDBCUtils.getDataSource());......
  • Django-静态文件配置,链接数据库,request对象方法
    目录-静态文件配置--含义--配置方法--动态解析---含义---实现---示例-pycharm链接MySQL-Django链接MySQL--代码配置--代码声明-request对象常用方法--示例......
  • SpringBoot 创建项目连接mysql数据库
    Spring 创建项目1.创建一个springboot项目2.点击File---- New---- project项目名称可以随便填写...3. Springboot版本尽量不要最新版,怕你们驾驭不了......
  • MySQL - 数据库配置参数、性能优化教程
     将 MySQL 部署到普通的 X86 服务器上,在不经过任何优化情况下,MySQL 理论值正常可以处理 2000 左右 QPS。不过当访问量达到 1500 左右并发连接时,数据库处理性能......
  • 一款开源的数据库在线预览、导出工具
    database-export是一款多线程生成数据库结构文档的开源springboot工程,能支持最新的数据库版本,可以导出docx格式和xlsx的文档,也能直接在网页上预览项目使用技术JDK1.8VUE2.0E......
  • 二、postgresql 14为数据库配置ssl支持,创建sslinfo扩展
    1、配置SSL创建自签名证书opensslreq-new-x509-days365-nodes-text-outserver.crt-keyoutserver.key-subj"/CN=cdh01"chmodog-rwxserver.key创建一个证书签......