数据库学习--DQL(数据库查询语言)
查询语句
select * from 表 where 条件 [inner/left/right join 表1 on 条件] group by 列名 having 组 order by 列名 limit 开始偏移量,偏移长度(开始偏移量从0开始)
别名
select 字段 as 别名 from 表
where后的条件
select * from 表 where 条件 ; -》基础语法
MySQL运算符
操作符 | 说明 |
---|---|
= | 等于 |
<>或者 != | 不等于 |
< | 小于/(数字或者日期的比较) |
> | 大于/(大于) |
>= | 大于等于 |
<= | 小于等于 |
MySQL逻辑运算符
操作符 | 描述 |
---|---|
and | 且 |
or | 或者 |
not | 非 |
MySQL关键字说明
between:条件查询
[not] between 条件1 and 条件2 =》 包含等于between cast('2013-01-01' as date) and cast('2018-05-06' as date)
cast() :类型转换函数
like:模糊查询
经常和通配符一起使用
%:任意字符长度
-:一个字符长度
\:转义字符
基础用法
select * from 表 where 字段 like '%like%'
in : 适合分类
select * from 表 where 字段 in (‘开始位置’,‘结束位置’)
find_in_set():第一个参数,要查找的字符串,第二个参数字段名
group by分组,也可以使用聚合函数
在筛选的基础上进行分类
select * from 表 where 条件 group by 字段1,字段2【分组条件】实例
select fid,sum(nums) as nums from 表 group by fid;
(as 后可以跟中文名)
having:对分组后的数据进行过滤,使用聚合函数
select fid,sum(nums) as nums from 表 group by fid having nums > 100;
聚合函数
avg():计算平均值
count():计数
instr():返回子字符串中第一次出现的位置
sum():一组值的和
min():最小值
max():最大值
order by :排序
按照表数据默认位置进行排序,默认升序
可以指定多列排序,后排序在前排序的基础上【前排序有相同的值】进行排序
如果是汉字,则根据转换后的十六进制码的顺序排序,转换函数(hex(转换内容))
select 列名 from 表 order by 列1 [asc/desc],列2[asc/desc]
按照表达式排序
select id,pre*num as tos from 表 order by tos
自定义排序
select * from 表 order by field(gname,'字段值1','字段值2',。。。)
limit:取多少行
情况一
select * from 表 limit '开始偏移量,偏移长度'
情况二(前几个)
select * from 表 limit 数量
取前几条
SQL语句的执行顺序
from - join - on - where - group by - avg/sum… - having - select - distinct - order by
查询时间
不带时分秒
select current_date
带时分秒
select sysdate()/NOW()
date_format(logs.time,'%Y-%m-%d') as time(别名)
关联查询
表与表之间有关系,通过关系去查
select * from 表1 [inner/left/right/cross] join on 表2 on 条件
inner:交集
left:以左边的为主
right:以右边的为主
cross:交叉链接(笛卡儿积)
联合查询
把多个select语句查询的结果合并起来
列名为第一个查询语句的列名
默认去除重复项,all则不会去掉
也可以limit,order by等
select 列 from 表 union [all] select 列2 from 表
子查询
标量子查询
返回单一值的标量,最简单形式
select * from 表 where 字段=(select 字段 from 表 where 条件 order by ziduan desc limi 1)
列子查询
返回的结果集是N行1列
select * from 表 where 字段 in (select 字段 from 表 where 条件)
any/some
select * from 表 where 字段 < any(2,3)
小于最大值(不小于/大于其中的任意数据值)
all
select * from 表 where 字段 < all(2,3)
不大于/小于其中的全部数据,最值
行子查询
返回的结果是1行N列
select * from 表 where (列名1,列名2, .... ) in /=/...(条件)
表子查询
返回的结果集是N行N列
select * from logs where phone in (select phone from stu where classid i (select id from classes where fid in (...)))
数据库学习--DQL(数据库查询语言)相关推荐
- oracle临时表经常被锁_数据库学习——Oracle 数据库了解与使用
一. 数据库相关概念 1 什么是数据库 所谓的数据库其实就是数据的集合.用户可以对集合中的数据进行新增.查询.更新.删除等操作.数据库是以一定方式储存在一起.能与多个用户共享.具有尽可能小的冗余度.与 ...
- h2数据库学习------h2数据库介绍
介绍 H2是一款内存数据库,适合我们在开发阶段.学习阶段调试代码使用,并不适用于生产阶段,可以满足我们学习与调试代码的需求. H2 数据库是一个用 Java 开发的嵌入式(内存级别)数据库,它本身只是 ...
- 数据库学习-DQL(基础)
1.DQL-介绍 2.DQL-语法 3.DQL-基本查询 4.DQL-条件查询 4.DQL-聚合函数 5.DQL-分组查询 6.DQL-排序查询 7.DQL-分页查询 8.DQL-执行 ...
- 【数据库学习】——数据库可视化--Navicat下载安装连接教程
目录 进入网站 下载可视化软件 安装 双击桌面图标,选择试用 连接数据库 查看数据库中的表,如下所示 常用数据库有: MySQL.sqlite等 进入网站 Navicat | 产品https://ww ...
- DB2数据库学习之数据库备份还原
一.数据库离线(脱机)备份 1.cd /db2_backup 切换到存放备份文件的目录,如果没有要新建 2.db2 list applications for db dbName(数据库名) 确保没人 ...
- linux系统中mysql表中能添加中文_数据库学习之数据库增删改查(另外解决Mysql在linux下不能插入中文的问题)(二)...
数据库增删改查 增加 首先我们创建一个数据库user,然后创建一张表employee create table employee( id int primary key auto_increment, ...
- h2数据库学习----h2数据库基本使用
依赖 <dependency><groupId>org.glassfish.hk2</groupId><artifactId>hk2</artif ...
- 【数据库学习笔记】——操作sqlite(增删改查)以及cursor的方法介绍
目录 1.sqlite数据库介绍 1)常见的数据库操作 2)数据操作常见步骤 2.向数据表中增加数据(insert into) 1)向数据表中添加一条记录 2)向数据表中一次性添加多条记录 3.修 ...
- 数据库DQL数据查询语言
文章目录 DQL数据查询语言 1.基础查询:SELECT子句和FROM子句 1.1 语法: 2. WHERE子句 2.1 使用AND"与"和OR"或"来连接多个 ...
最新文章
- 高并发场景下数据库的常见问题及解决方案
- Linux7-常用文件管理命令及系统变量基础
- php bc函数库,PHP高精确度运算BC函数库实例详解
- 图解classloader加载class的流程及自定义ClassLoader
- C++ VS C# 结构体和对象的细微区别
- java上机面试题 039_深入 Java 虚拟机之面试总结篇
- Java集合(二):List列表
- 通过UserAgent判断智能设备(Android,IOS)
- accept 阻塞_TCP网络编程中connect()、listen()和accept()三者之间的关系
- java protobuf extend_如何使用protobuf extend和编写protobuf插件
- springboot2 war页面放在那_Spring Boot2版的权限管理系统
- 2021.4.18高一模拟赛
- What?!“天才黑客”竟是谣言,带你揭露阿里云守护神的秘密
- 仿百思不得其姐项目开发(粗略笔记,后期规范排版和更新)
- 数字人事系统 java_市国税局“数字人事”信息系统正式上线
- 85寸左右电视怎么选 2023年85寸高性价比电视推荐榜单
- hasnext() java_关于Java:为什么HasNeXT()false,但hasNextLine() 是真的?
- 中科院,量子计算机,中科院传来喜讯,中国量子技术领先世界,美:中国学者都不睡觉吗...
- 15.2数据库(2):MySQL基本增删改查
- CV之Face Change:基于人工智能实现国内众多一线美女明星换脸(基于Face++输出4*106个特征点定位+融合代码、deepfake技术)