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 student

SELECT
   NAME,
   gender,
   (CASE WHEN height >=2 THEN 'A'
         WHEN height >=1.8 THEN'B'
         ELSE  'c' END
   )AS height
FROM student

-- ifnull(被检测值,默认值)
SELECT
  NAME,
  gender,
  IFNULL(height,'暂无录入身高信息') AS height
FROM  student

-- if(条件,'结果1','结果2')
SELECT
   NAME,
   gender,
   IF(height>=1.9,'高个子','正常')AS height
   FROM 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 DESC

SELECT * FROM student ORDER BY height ASC

SELECT * 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

相关推荐

  1. MysqlDML

    2023-12-11 15:58:03       10 阅读
  2. MySQLDQL及执行顺序

    2023-12-11 15:58:03       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-11 15:58:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-11 15:58:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-11 15:58:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-11 15:58:03       20 阅读

热门阅读

  1. vue项目列表跳转详情返回列表页保留搜索条件

    2023-12-11 15:58:03       41 阅读
  2. 了解linux计划任务

    2023-12-11 15:58:03       41 阅读
  3. c++基础 循环遍历 新手学习

    2023-12-11 15:58:03       36 阅读
  4. 一篇文章读懂Jenkins的发展历程

    2023-12-11 15:58:03       39 阅读
  5. 使用Boost.Outcome模块进行容器相关的测试程序编程

    2023-12-11 15:58:03       31 阅读
  6. React基础知识入门

    2023-12-11 15:58:03       48 阅读
  7. PTA:哈夫曼编码

    2023-12-11 15:58:03       45 阅读
  8. mysql8.x创建insert/update/delete触发器

    2023-12-11 15:58:03       41 阅读
  9. 算法通关村第十七关 | 黄金挑战 | 跳跃游戏

    2023-12-11 15:58:03       44 阅读