909422229__Mysql查询语句基本用法总结

基本的增删改查省略:下面是楼主总结的一些简单用法,综合一下可以查询一些有难度的sql语句,有疑问可在下方留言或者私聊楼主。

楼主QQ:909422229 欢迎加Q,谢谢支持。

-- 分组查询

SELECT 字段(可以跟多个) from 表名 group by 字段 DESC
例如:
-- 分组 
SELECT id,name,sex
from student
group BY id DESC;
---------------------------------------------------------------------
-- 回溯统计
SELECT 字段(可以跟多个) from 表名 group by 字段 with RoLLUP
例如:
-- 回溯统计
SELECT id,name
from student
GROUP BY id WITH ROLLUP;
---------------------------------------------------------------------
-- 分组筛选
select 字段(可以跟多个)
form 表名
group by  字段 desc,(可以跟多个)
HAVING 字段 = 条件;
-- 分组筛选
例子:
SELECT id,name,sex
from student
group BY id desc,name desc
HAVING sex = '男';
---------------------------------------------------------------------
-- 连接查询
sele *
from 表名,(可以跟多个)
where 字段=条件;
例子:
select *
from xs,xs_kc
where xs.sid=xs_kc.sid;
---------------------------------------------------------------------
-- 交叉连接
select * from 表名 cross join 表名
on xs.sid=xs_kc.sid;




select x.sid,name,score
from xs as x cross join xs_kc sc
where x.credits>45; -- 一旦给表起了别名,则凡是需要用到表名的地方都需要使用别名,而不能再用原名了。
---------------------------------------------------------------------
-- 给表起别名
Select 字段 as 别名 
from 表名
---------------------------------------------------------------------
-- 联合查询
联合查询只是查询条件有所改变,必须                       nnn]\[0000000000000返回一个字段的话可以通过普通查询代替
字段当作查询条件,(前提需要数据两个表内有相同数据)
举例:
SELECT Sname
FROM studentid
WHERE id =(SELECT id from student where id = 101);
//拆开之后的
SELECT id from student where id = 101;
SELECT Sname
from studentid
where id = 101;
---------------------------------------------------------------------
-- 内连接
SELECT (字段名或者是*)
from 表名 join 表名
on 字段名=字段名;
举例:
select kc.cid,cname,term,sid,score
from kc join xs_kc
on kc.cid=xs_kc.cid;
---------------------------------------------------------------------
-- 等价连接
select student.id,studentid.id -- 字段可以设置多条显示
from student,studentid
where student.id=studentid.id 条件可以设置多条
---------------------------------------------------------------------
-- 自然连接
SELECT *
from xs NATURAL join xs_kc;
---------------------------------------------------------------------
-- 外连接outer join   left join    right join
-- 根据数据连接到一起,根据某个同样字段想匹配
select * 
from xs left join xs_kc
on xs.sid=xs_kc.sid;


select *
from xs_kc right join kc
where kc.credit>4
on xs_kc.cid=kc.cid;


select *
from xs_kc NATURAL right join kc;
---------------------------------------------------------------------
-- 排序字段为多个。先按第一个排序字段进行排序,然后将排序结果再按第二个排序字段进行排序。
select * 
from xs
order by specialty,gender desc;  -- desc 
---------------------------------------------------------------------
-- 去掉重复行使用distinct关键字,如不加distinct关键则默认为all
select DISTINCT specialty
from xs;
---------------------------------------------------------------------
-- 创建视图
CREATE VIEW 视图名称
AS
SELECT * from 联系表名(可多表联系);
视图内不可随意更改联系的表。
可以更改可见视图内的字段的数据。
---------------------------------------------------------------------
--子查询
-- 子查询必须放在()中。
-- 执行过程:(1)执行子查询,cid101
-- (2)执行外部查询把101带入到外部查询的where子句中
select sid
from xs_kc -- 子查询是差两个表,且两表之间有一定关系。
WHERE cid=(
select cid
from kc
where cname='计算机基础'
);
Exists子查询
-- 存在  exists(子查询)—当子查结果集返回null,则返回值0 ,当子查询结果集不为null,返回1

Exists是跟在where之后的
where exists(子查询)

-- 相关子查询不仅仅可以使用exists
Where  cid=(子查询)
-- 行子查询:子查询返回的结果是一行多列。
构造一个行元素

(字段名1,字段名2,…)=(子查询)

---------------------------------------------------------------------
索引:为了提高查询的效率,系统根据某种算法,将已有数据的中的某些字段单独建立一个文件(索引文件),
这些文件能够实现快速的匹配数据,并且能够快速的找到数据在表中的对应行。
分类:普通索引/唯一性索引/主键索引/全文索引
举例:
-- 创建索引
create index 索引值
on  表名(子段)
-- 查看某个表的索引
show INDEX FROM student;  
-- 查看某个表的主键
show keys from tblname;
-- 删除某个表的索引
drop index 索引名 on 表名


添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

75888丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值