【mysql】 mysql 子查询、联合查询、模糊查询、排序、聚合函数、分组----------语法

第二章 mysql

一、模糊查询

like

1. 字段 like ‘河北省%‘ %代表任何N个字符

2 字段 like ‘河北省____‘ _代表任意1个字符

二、IN

语法:SELECT 字段列1,字段2 ,…FROM 表名 WHERE 字段x IN ( 值1,值2,值3…)

三、排序

语法:select 字段1, 字段2, ... from 表名 where 条件 order by 字段 [asc|desc]

asc :升序

desc :降序

默认是升序asc

SELECT * FROM student ORDER BY age ASC, studentid ASC;

四、联合查询

内链接:只查询左右2张表中相同的记录 inner join

语法:select 列1, 列2, 列3, ...
from 表1
inner join 表2 on 表1.列x = 表2.列y

示例:select studentname, age, phone, classname
from student
inner join classinfo on student.classid = classinfo.classid

左外链接:查询左右2张表中相同的记录 + 左表未匹配的记录(右表字段为NULL) left outer join

语法:select 列1, 列2, 列3, ...
from 表1
left join 表2 on 表1.列x = 表2.列y

右外链接:查询左右2张表中相同的记录 + 右表未匹配的记录(左表字段为NULL) right outer join

语法:select 列1, 列2, 列3, ...
from 表1
right join 表2 on 表1.列x = 表2.列y

完全链接:对左右2张表中的记录做笛卡尔积 cross join

语法:select 列1, 列2, 列3, ...
from 表1
cross join 表2

五、LIMIT

语法:LIMIT [m,]n 或 LIMIT n OFFSET m
限制SELECT返回结果的行数
m 制定第一个返回记录行的偏移量
n 制定返回记录行的最大数目

数据分页:
pageIndex : 1 2 3 4 5 ...要显示的页码 3
pageSize : 每页的记录数 3

limit (pageSize * (pageIndex - 1)), (pageSize)

六、子查询

定义:在查询语句中,又嵌套了另外一个查询语句。

七、聚合函数

1.count() : 获取记录的行数

2.sum() : 对指定字段进行求和

3.avg() : 对指定字段进行求平均值

4.max() : 对指定字段求最大值

5.min() : 对指定字段求最小值

八、分组

group by 字段

注意:使用group by分组后,select后只能跟group by后的字段;或者跟聚合函数

SELECT age, COUNT(*)
FROM student
GROUP BY age

SELECT classid, COUNT(*), AVG(age), MAX(age), MIN(age)
FROM student
GROUP BY classid

SELECT classid, COUNT(*), AVG(age), MAX(age), MIN(age)
FROM student
GROUP BY classid
HAVING COUNT(*) > 1

SELECT classid, COUNT(*), AVG(age), MAX(age), MIN(age)
FROM student
GROUP BY classid
HAVING COUNT(*) > 1 AND age > 20

时间: 2024-10-03 23:04:04

【mysql】 mysql 子查询、联合查询、模糊查询、排序、聚合函数、分组----------语法的相关文章

18 12 06 sql 的 基本语句 查询 条件查询 逻辑运算符 模糊查询 范围查询 排序 聚合函数 分组 分页 连接查询 自关联 子查询

-- 数据的准备 -- 创建一个数据库 create database python_test charset=utf8; -- 使用一个数据库 use python_test; -- 显示使用的当前数据是哪个? select database(); -- 创建一个数据表 -- students表 create table students( id int unsigned primary key auto_increment not null, name varchar(20) default

T-SQL简单查询语句(模糊查询)

1 T-SQL简单查询语句 2 3 简单查询: 4 5 1.最简单查询(查所有数据) 6 select * from 表名: 注:* 代表所有列 7 select * from info 8 9 2.查询指定列 10 select code,name from info 11 12 3.修改结果集的列名 13 select code as '代号',name as '姓名' from info 14 15 4.条件查询 16 select * from info where code='p003

SQL server 模糊查询 排序 聚合函数 数学函数 字符串函数 时间日期函数 转换、函数转换

create database lianxi831  --创建数据库gouse lianxi831  --引用数据库gocreate table xs  --插入表格( code int not null,  --写入内容 name varchar(10), cid varchar(18), banji varchar(10), yufen decimal(18,2), shufen decimal(18,2), yingfen decimal(18,2),)goinsert into xs v

sql server 分组查询结合日期模糊查询

分组查询: https://www.cnblogs.com/netserver/p/4518995.html 日期格式化格式: http://blog.csdn.net/qq_16769857/article/details/52289627 日期和字符串之间的转换: https://www.cnblogs.com/windphoenix/archive/2013/04/26/3044784.html 日期的模糊查询: https://zhidao.baidu.com/question/5071

[Laravel框架学习二]:Laravel的CURD和查询构造器的CURD,以及聚合函数

1 public function index() 2 { 3 4 //return Member::getMember();//这是调用模型的方法 5 6 return view('lpc',[ 7 'age'=>18, 8 'name'=>'PengchongLee', 9 ]); 10 } 11 public function test()//一个方法得设置一个路由 12 { 13 //echo 1;//测试路由 14 15 //新增数据 16 //$data = DB::insert(

mysql搜索多表多字段模糊查询

select parttime_job_business_assessments.*, u.nick_name, u.mobile, pj.name as job_name, b.name as business_name from `parttime_job_business_assessments` left join `users` as `u` on `u`.`id` = `parttime_job_business_assessments`.`user_id` left join `p

mysql 分页创建存储过程并实现模糊查询

这个mysql 是在 navicat 里面写的. create procedure Aa_GetStudentByPage(in _pageIndex int,in _pageSize int,in _userName varchar(20),out _pageCount int)begindeclare _paidex int default 0;declare _count int default 0;set _paidex=(_pageIndex-1)*_pageSize; if(_use

python实现登录查询(可以模糊查询)

# -*- coding: utf-8 -*- while 1: name= raw_input("Please input your name:") if name == "zhangsan": password = raw_input("Please input your password:") while password != "zhangsan": password = raw_input("passwor

sqlserver 模糊查询,连表,聚合函数,分组

1 use StudentManageDB 2 go 3 select StudentName,StudentAddress from Students 4 where StudentAddress like '天津%' 5 6 select StudentName,StudentAddress from Students 7 where StudentName like '%小%' 8 9 select * from ScoreList 10 where CSharp between 80 a

MySQL模糊查询中通配符的转义

sql中经常用like进行模糊查询,而模糊查询就要用到百分号“%”,下划线“_”这些通配符,其中“%”匹配任意多个字符,“_”匹配单个字符. 如果我们想要模糊查询带有通配符的字符串,如“60%”,“user_name”,就需要对通配符进行转义.如下,斜杠后面的%就不再是通配符,斜杠之前的%仍然起通配符作用. select percent from score where percent like '%0/%' escape '/';