mysql中的DQL查询

表格为:

DQL 基础查询

语法:select   查询列表 from 表名:(查询的结果是一个虚拟表格)

-- 查询指定的列
SELECT NAME,birthday,phone FROM student
-- 查询所有的列 * 所有的列, 查询结果是虚拟的表格,不能操作,是只读的
SELECT * FROM student

查询结果的处理:

-- 查询结果进行算数运算
SELECT NAME,height+1 FROM student
-- 去除重复数据 查询结果中所有的列都相同
-- DISTINCT关键字去除重复数据
SELECT DISTINCT NAME,gender FROM student

函数:

类似于 java 中的方法,将一组逻辑语句事先在数据库中定义好 , 可以直接调
单行函数
-- 单行函数:
-- 分组函数
-- length(列名) 以字节为单位
SELECT NAME,LENGTH(NAME),gender FROM student
-- char_lenghth(列明) 以字符为单位
SELECT NAME,CHAR_LENGTH(NAME),gender FROM student
-- concat()拼接  ;as 重新取名
SELECT CONCAT(NAME,":",CHAR_LENGTH(NAME)) AS NAME,gender FROM student
-- upper英文转大写 ,lower英文转小写
SELECT UPPER(NAME),LOWER(NAME),FROM student 
-- stubstring(字符串,开始位置,截取长度)开始位置从一开始 
SELECT SUBSTRING(NAME,1,2) FROM student
-- instr(字符串,指定的字符) 返回指定位置首次出现的位置 找不到返回0
SELECT INSTR(NAME,'哈') FROM student
-- trim()默认去除字符串前面的空格,trim(指定子串 from 字符串)可以指定去除前后的子串   
SELECT TRIM(NAME),NAME FROM student
-- 左填充 右填充 到指定长度
SELECT LPAD(NAME,5,'a'),RPAD(NAME,5,'b') FROM student
-- replace(列,'old','new')
SELECT REPLACE(NAME,'哈','咕') FROM student

逻辑处理:

SELECT NAME,gender,(CASE WHEN height>=2 THEN'高个子' ELSE '正常升高 'END)FROM studentSELECTNAME,gender,(CASE WHEN height >=2 THEN 'A'WHEN height >=1.8 THEN'B'ELSE  'c' END)AS height
FROM student-- ifnull(被检测值,默认值)
SELECTNAME,gender,IFNULL(height,'暂无录入身高信息') AS height
FROM  student-- if(条件,'结果1','结果2')
SELECTNAME,gender,IF(height>=1.9,'高个子','正常')AS heightFROM student

数字函数

-- 数学函数
-- round(数值):四舍五入
-- round(数值):四舍五入
-- ceil(数值):向上取整,返回>=该参数的最小整数
-- floor(数值):向下取整,返回<=该参数的最大整数
-- truncate(数值,保留小数的位数):截断,小数点后截断到几位
-- mod(被除数,除数):取余,被除数为正,则为正;被除数为负,则为负
-- rand():获取随机数,返回0-1之间的小数
SELECT NAME,ROUND(height),CEIL(1.1),FLOOR(1.9) FROM student
SELECT NAME,gender,TRUNCATE(height,1),height,RAND() FROM student

日期函数

-- now() 年月日 时分秒 系统当前时间
-- curdate() 年月日
-- curtime() 时分秒
SELECT NOW(),CURDATE(),CURTIME() FROM student
-- year(日期) 将日期格式化为年
SELECT YEAR(birthday),MONTH(birthday) FROM student
-- STR_TO_DATE('2003-3-','%Y-%m-%d') 将字符串日期 格式化为 日期类型
SELECT STR_TO_DATE('2003-3-','%Y-%m-%d') FROM student
-- DATE_FORMAT(birthday,'%Y-%m')将日期格式化为指定字符串
SELECT DATE_FORMAT(birthday,'%Y-%m') FROM student
-- DATEDIFF(CURDATE(),birthday) 计算两个日期之间的相差的天数
SELECT DATEDIFF(CURDATE(),birthday) FROM student

分组函数 聚合函数 统计函数:

--  sum avg处理数值类型 max,min,count 都可以处理
SELECT SUM(height) FROM student  -- 求和
SELECT AVG(height) FROM student  -- 平均值
SELECT MAX(height) FROM student  -- 最大值
SELECT MIN(height) FROM student  -- 最小值
SELECT COUNT(*) FROM student     -- 统计个数-- 条件查询
-- select * from 表名 where 条件-- and 并且
SELECT * FROM student WHERE  gender ='男' AND height>1.80  -- or 一个或多个条件满足即可
SELECT * FROM student WHERE gender != '男'
SELECT * FROM student WHERE gender <> '男'-- lick 模糊匹配
SELECT* FROM student WHERE NAME licke'咕%'-- between and
SELECT * FROM student WHERE height BETWEEN 1.89 AND 2.00
-- in     not in  
SELECT * FROM student WHERE height IN (1.88,1.98)
SELECT * FROM student WHERE height NOT IN(1.88)  SELECT *FROM student WHERE height NOT NULL
SELECT * FROM student WHERE height NULL -- union 将多个查询结果合并,合并时,列数必须一直,去除重复数据-- union all 合并不会去除重复数据-- 排序 order by 列 asc(升序) desc(降序)
SELECT * FROM student ORDER  BY number DESCSELECT * FROM student ORDER BY height ASCSELECT * FROM student ORDER  BY number DESC  , height DESC-- 数量限制 limit 从0开始,显示n个信息
SELECT * FROM student LIMIT 0,1
-- 统计男生女生个有多少人
SELECT COUNT (*),gender FROM student GROUP BY gender HAVING COUNT(*)>2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/264469.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3:表格单元格内容由:图标+具体内容 构成

一、背景 在Vue3项目中&#xff0c;想让单元格的内容是由 &#xff1a;图标具体内容组成的&#xff0c;类似以下效果&#xff1a; 二、图标 Element-Plus 可以在Element-Plus里面找是否有符合需求的图标iconfont 如果Element-Plus里面没有符合需求的&#xff0c;也可以在这…

Java类对象的操作

1.Student.java package Message; public class Student {private String stuName; // 姓名private int money; // 存款余额private String studentID; // 学号private int age; // 年龄private String address; // 地址private String phoneNumber; // 电话号码private String…

使用alpine镜像部署go应用时踩的坑

使用alpine镜像部署go应用时踩的坑 关于交叉编译 实际上我在ubuntu的交叉编译出来的exe并不能在alpine上运行&#xff0c;这边采取拉镜像编译复制出来的做法&#xff0c;部署再用干净的alpine 拉取golang:alpine踩坑 在Dockerhub上可以找到&#xff1a; 然而拉取的alpine中…

虚拟机VMware安装centos以及配置网络

目录 1、CentOS7的下载2、CentOS7的配置3、CentOS7的安装4、CentOS7的网络配置 4.1、自动获取IP4.2、固定获取IP 5、XShell连接CentO 准备工作&#xff1a;提前下载和安装好VMware。VMware的安装可以参考这一篇文章&#xff1a;VMware15的下载及安装教程。 1、CentOS7的下载 …

【设计模式--创建型--建造者模式】

建造者模式 建造者模式概述结构结果优缺点使用场景 将上述案例改为链式调用结果 建造者模式 概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 分离了部件的构建&#xff08;由Builder来负责&#xff09;和装配&#xff08;由Direct…

基于JavaWeb+SSM+Vue马拉松报名系统微信小程序的设计和实现

基于JavaWebSSMVue马拉松报名系统微信小程序的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2 2.…

C语言-每日刷题练习

[蓝桥杯 2013 省 B] 翻硬币 题目背景 小明正在玩一个“翻硬币”的游戏。 题目描述 桌上放着排成一排的若干硬币。我们用 * 表示正面&#xff0c;用 o 表示反面&#xff08;是小写字母&#xff0c;不是零&#xff09;&#xff0c;比如可能情形是 **oo***oooo&#xff0c;如果…

记录一次云原生线上服务数据迁移全过程

文章目录 背景迁移方案调研迁移过程服务监控脚本定时任务暂停本地副本服务启动&#xff0c;在线服务下线MySQL 数据迁移Mongo 数据迁移切换新数据库 ip 本地服务启动数据库连接验证服务打包部署服务重启前端恢复正常监控脚本定时任务启动旧服务器器容器关闭 迁移总结 背景 校园…

头歌-Python 基础

第1关&#xff1a;建模与仿真 1、 建模过程&#xff0c;通常也称为数学优化建模(Mathematical Optimization Modeling)&#xff0c;不同之处在于它可以确定特定场景的特定的、最优化或最佳的结果。这被称为诊断一个结果&#xff0c;因此命名为▁▁▁。 填空1答案&#xff1a;决…

通过生成模拟释放无限数据以实现机器人自动化学习

该工作推出RoboGen&#xff0c;这是一种生成机器人代理&#xff0c;可以通过生成模拟自动大规模学习各种机器人技能。 RoboGen 利用基础模型和生成模型的最新进展。该工作不直接使用或调整这些模型来产生策略或低级动作&#xff0c;而是提倡一种生成方案&#xff0c;该方案使用…

Vue3中的defineModel

目录 一、vue3的defineModel介绍 二、defineModel使用 &#xff08;1&#xff09;在vite.config.js中开启 &#xff08;2&#xff09;子组件 &#xff08;3&#xff09;父组件 一、vue3的defineModel介绍 为什么要使用到defineModel呢&#xff1f;这里有这样一种场景&…

指针(笔记1)

一、内存和地址 内存及其管理方法: 1.计算机主存储器由一个一个存储单元组成&#xff0c;微型计算机以字节作为存储单元 2.内存区的每一个字节有一个唯一的编号&#xff0c;这就是“地址”&#xff0c;它相当于教学楼中的教室号 3.内存地址&#xff0c;是一个无符号整数(un…