Mysql基础使用

1.条件查询

select 字段1,字段2,... from 表名 `where 字段 条件 值`;

条件运算符

  • =
  • >
  • <
  • >=
  • <=
  • !=
  • and
  • or
  • in
  • not in
  • between…and

2.模糊查询

模糊查询其实也是条件查询

语法: select 字段1,字段2,… from 表名 where 字段 like '_值%';

  • _ 匹配任意一个字符
  • % 匹配任意多个字符

3.排序查询

语法: select 字段1,字段2,… from 表名 order by 字段 [desc|asc];

  • desc 降序
  • asc 升序,默认是升序

5.聚合函数

注意:
聚合函数执行完,返回的结果只有一行记录
与聚合函数一同出现的列必须出现在group by后
函数:
count(字段) : 对该列不为null的行计数
sum(字段): 对该列不为null的数据求和
avg(字段): 对该列不为null的数据求和再求平均值
min(字段): 对该列不为null的数据求最小值
max(字段): 对该列不为null的数据求最大值
语法:
放在select后from前,对查询的结果列进行运算
放在having后使用

6.去重函数


-- 查询年龄不重复的共有多少人		
select count(distinct age) from stu;

distinct

7.分组查询

语法: select 字段1,字段2,… from 表名 [where 字段 条件 值] group by 字段 having 字段 条件值;

  • group by 字段,根据指定字段分组(所有未使用聚合函数的字段)
  • having 字段 值, 分组后再过滤

​ having和where都是过滤

  • where是分组前过滤,having是分组后过滤
  • where后不能使用聚合函数,having可以聚合函数

8.限制查询

就是将查询完的数据,可以限制展现条数

语法: limit n – 限制输出指定n条,从第一条开始

​ limit x,y – 限制输出,从x下标处输出y条,第一条的下标是0


常用于分页操作

-- 第pageNo页
select * from stu limit (pageNo-1)*pageSize,pageSize

4.多表查询的策略

  • 一对一 老公 --> 老婆 , 人 —> 身份证/户口本
  • 一对多 皇帝 --> 妻妾 , 人 —> 房/车
  • 多对多 订单 --> 商品
1.多表联查

1.合并结果集:是将多表查询的结果纵向合并

​ 语法:

select field1,field2 from t1
union   -- 合并结果集
select field1,field2 from t2

2.内链接语法:

select 字段列表 from1 inner join2 on1.字段 =2.字段


-- 内连接特点:只会查询满足关联条件的数据

-- 内连接标准写法
select * from stu inner join class on stu.cid = class.cid;
-- 内连接可以简写成(推荐)
select * from stu s,class c where s.cid = c.cid;

3.外连接语法: 外连接又分为左外连接,右外连接

select 字段列表 from1 left|right outer join2 on1.字段 =2.字段

-- 查询学生信息以及对应的班级信息
-- 左外
select * from stu s left outer join class c on s.cid = c.cid

-- 右外
select * from stu s right outer join class c on s.cid = c.cid
-- outer可以省略
select * from stu s left join class c on s.cid = c.cid

内外连接有什么区别?

  • 内连接只查询符合关联添加的数据

  • 外连接会保留不符合条件的数据

    左外是以左表为主,左表中有不符合条件的数据也会保留
    – 右外相反…

2.子查询 --查询的结果是一张虚拟表

子查询(subquery)也叫嵌套查询

  • 将sql语句当表,写在from后面
  • 将sql语句当条件,写在where后面
-- 求1008学生编号、姓名、组长编号和组长姓名
SELECT
	t1.sid,
	t1.sname,
	t1.groupLeaderId,
	t2.sname 
FROM
	stu t1,(
	SELECT
		* 
	FROM
		stu 
	WHERE
		sid = ( SELECT groupLeaderId FROM stu WHERE sid = 1008 ) 
	) t2 
WHERE
	t1.sid = 1008
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值