03 mysql数据查询_03-mySQL select、CONCAT、order BY 数据查询语句

03-mySQL  select、CONCAT、order BY 数据查询语句

/*一、 插入

INSERT INTO SUBJECT (`name`, classhour, majorid)

VALUES

VALUES

('工商管理', 40, '16')*/

-- 查询student表中的数据

-- SELECT *FROM student

-- 根据查询条件查询数据   WHERE

-- SELECT *FROM student

-- WHERE  majorid='计算机'

-- select * FROM subject  where majorid=8

-- 查询课时数在40~55之间的科目数  BETWEEN...AND...

-- select *FROM `subject` WHERE classhour BETWEEN 40 and 55

-- 查询majorid是8或16的数据  in() / OR

-- SELECT * FROM  `subject` WHERE majorid in (8,16)

-- SELECT *FROM `subject`    WHERE majorid=8 or majorid=16

-- 查询majorid 不是16 的数据  not IN  !=

-- SELECT *FROM `subject` WHERE majorid !=16

-- SELECT *FROM `subject` WHERE majorid not IN(16)

-- 查找name=Annie的学生  SELECT 列 from 表 where 条件

-- SELECT * FROM student WHERE NAME='Annie'

-- 查询考试不及格的成绩  >  <

-- SELECT *FROM result WHERE  score<60

-- 查询科目编号majorid是16 并且 课时数classhour55以下的科目数据    AND

-- SELECT *FROM `subject` WHERE majorid=16 AND  classhour<55

-- 列别名   查询时使用,不修改原始表

-- 1.使用 as  给查询出的列取别名  select 'id' AS '编号', NAME AS '学科名' FROM `subject`

-- select  NAME AS '学科名' FROM `subject`;

-- 2.给常量取别名 SELECT 1 as '数字'

-- SELECT  1 AS  '数字' FROM    `subject`

-- 3.为组合生成的列 取别名    CONCAT(str1,str2,...) 函数进行字符串拼接

-- SELECT CONCAT(NAME,'&',classhour ,'*',majorid) AS  '组合' FROM `subject`

--     --SQL 中单引号和双引号都可以表示字符串

--      -‘+’符号只能做算数运算,不能当连字符用

-- 4.在取别名的时候  AS 关键字可以省略不写

--   SELECT id '编号', name '名称' FROM  major

-- 条件语句

-- 1.判断咧为空 IS NULL  和 不为空  IS NOT NULL

-- SELECT *FROM result  WHERE score IS NULL

-- SELECT *FROM result  WHERE score IS  NOT NULL

-- 2.限制查询出的行数   LIMIT 开始位置,返回行数    LIMIT 放在语句末尾

-- 查询五行

-- SELECT * FROM result LIMIT 5

-- 查询第一行到第五行的数据

-- SELECT * FROM result LIMIT  1,5

-- 查询第五行开始 往后追加五行

-- SELECT * FROM result LIMIT 5,5

-- -----------------------------------

-- 查询 majorid=8 和10 的科目名称 IN 的用法

-- SELECT *FROM  subject  WHERE  majorid in (8,10)

-- 查询不是 8和 10的数据   NOT IN

-- SELECT *FROM  subject  WHERE  majorid   not in (8,10)

-- 去除重复记录  DISTINCT

-- SELECT DISTINCT NAME FROM `subject`

/*

模糊查询

查询出所有姓张的学生信息

SELECT *FROM student where  name like '张%'

查询出姓名中带有 马 字的学生信息

SELECT *from  student where name  like '%马%'

查询出只有名字里有马的学生信息

select *from student  where  name like '_马%'

通配符定义:

_  匹配一个 任意字符

%  匹配任意多个任意字符

*/

-- 排序

-- order BY 根据某列排序 升序 ASC

-- SELECT * from  result order by  score

-- 降序  DESC

-- SELECT * from  result order by  score  DESC

-- 多列排序

-- select *from `subject` Order by majorid ASC , classhour  DESC

/*综合应用

1.已知student 的emali  中有空值

2.在使用email 正序排序的时候如何将空值放在查询结果末尾

3.运用知识点

case when 语句

多列 排序

表别名

列别名

SELECT

CASE

WHEN emali IS NULL THEN

'1'

ELSE

'0'

END AS tem ,

stu.*

FROM

student stu

ORDER BY

tem,

stu .email

*/

-- 文本处理函数

-- `LEFT`(str,len) 返回从左边起左边指定长度的字符

-- SELECT name ,LEFT(name ,2)FROM student

-- `RIGHT`(str,len) 返回从右边起左边指定长度的字符

-- SELECT NAME,RIGHT(name ,3) FROM student

-- LOWER(str)将字符串转换为小写

-- SELECT NAME , LOWER(name ) from student

-- UPPER(str) 将字符串转换为大写

-- SELECT name ,UPPER(name ) from student

-- LENGTH(str)返回字符串的长度

-- SELECT name ,LENGTH(name ) from student

-- LTRIM(str) 去掉字符串左边空格

-- SELECT name ,ltrim(NAME) FROM student;

-- RTRIM(str) 去掉字符串右边的空格

-- SELECT name , RTRIM(name )FROM  student;

-- TRIM(str) 去掉字符串左右两边的空格

-- SELECT name ,TRIM( name ) from student

-- 日期时间函数

-- 聚合函数

-- MIN(expr)求最小值;

-- MAX(expr)求最大值;

-- COUNT(expr)统计个数;

-- SUM(expr) 求和

-- AVG([DISTINCT] expr)求平均值

-- 1.统计student 表中人数  结果=9

-- SELECT COUNT(*) FROM student

-- 注:COUNT(expr) 函数的参数可以为 *、列名‘或一个数字

--    若为列则不会统计该列 NULL(为空)的数据

/*- 求 majorid 为8 的课时数

- 1.求最大课时是多少  结果1=65

SELECT MAX(classhour)FROM `subject` WHERE majorid=8;

-- 2.求最少课时 结果2 45

SELECT MIN(classhour) from `subject` WHERE majorid=8;

-- 3.平均课时  结果3 56.8333

SELECT AVG( classhour) from `subject` WHERE majorid=8

注: 常见问题

聚合函数用来统计多条数据的值,因此使用聚合函数的

查询语句,select子句中的其他列是没有意义的

• 例如: score 与 studentno 没有直接关系

• select avg(score),studentno from result where

subjectid=1

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: MySQL中的wm_concat函数是不存在的。你可能是想使用concat_ws函数来实现字符串连接并指定分隔符的功能。concat_ws函数可以将多个字符串连接成一个字符串,并且可以指定分隔符。例如,使用以下语句可以将info表中locus为'AB086827'和'AF040764'的记录的id字段连接成一个字符串,并以逗号作为分隔符: SELECT locus, GROUP_CONCAT(id) FROM info WHERE locus IN ('AB086827', 'AF040764') GROUP BY locus; 如果你还想将journal字段也连接到字符串中,并以点作为分隔符,可以使用以下语句: SELECT locus, GROUP_CONCAT(concat_ws(', ', id, journal) ORDER BY id DESC SEPARATOR '. ') FROM info WHERE locus IN ('AB086827', 'AF040764') GROUP BY locus; 这样就可以得到一个以逗号分隔的id和journal字段的字符串,并以点作为每个记录之间的分隔符。 #### 引用[.reference_title] - *1* [MySQLconcat函数](https://blog.csdn.net/W_Think/article/details/106148542)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [oracle中的wm_concat 对应 MySQL 的 GROUP_CONCAT](https://blog.csdn.net/weixin_42575505/article/details/113631759)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值