SQL常用查询总结

1.全查:
select表示查询
* 表示查询全部字段
from 表示来自哪一张表

2.查询某一个字段的值(不是全查)
select 字段 from 表名

3.查询多个字段的值
select 字段1,字段2,… from 表名
注意:要查询的字段与字段之间用英文逗号(,)隔开。

4.条件查询
select * from 表名 where 条件
Where 表示条件(条件关键字),在where之后跟过滤的条件
注意:逻辑运算符:< = > <= >= !=(<>)
注意:条件语句中条件的值需要加单引号(’’),用单引号包裹。

5.多条件查询,(与)
select * from 表名 where 条件1and条件2 and…
and 关键字表示 和(并且),需要两边条件两边同时满足

6.多条件查询,(或)
select * from 表名 where 条件1 or 条件2 or…
or 关键字表示 或,需要两边条件满足一边即可。

7.区间查询
select * from 表名 where 字段 between 左区间值 and 右区间值
between … and … 关键字表示什么区间内,范围在and前后表示

8.以集合方式查询
select * from 表名 where 字段 in(左区间值,右区间值)
in 关键字表示多个or,在“in”后边的括号呢多个值用逗号隔开

9.排序
select * from 表名 order by 字段
order by 关键字表示排序,默认为正序(asc),倒序(desc)

10.模糊查询
select * from 表名 where 字段 like ‘%字段含有的部分值%’
like 关键字表示模糊,后边跟’%字段含有的部分值%’,前边要根据哪一个字段查询
‘字段含有的部分值%’:表示模糊值在前不确定值在后
‘%字段含有的部分值’:表示模糊值在后不确定值在前

11.分页查询
select * from 表名 limit 开始记录的位置,显示几条数据
注意:分页的数据为数字

12.别名的命名
select 字段 as 别名 from 表名
as关键字表示命名别名,关键字之前是要命名的字段或者表,之后是命名的别名
注意:as可以省略。

13.求最大值
select max(字段) from 表名
max 表示最大,后边跟括号,括号中填写字段。

14.求最小值
select min(字段) from 表名
min 表示最小,后边跟括号,括号中填写字段。

15.求平均值
select avg(字段) from 表名
avg 表示平均,后边跟括号,括号中填写字段。

16.求和
select sum(字段) from 表名
sum 表示求和,后边跟括号,括号中填写字段。

17.求个数
select count(字段) from 表名
count 表示求个数,后边跟括号,括号中填写字段。
18.子条件查询
select * from 表名 where 字段=(查询内容)
例如:select * from 学生 where 成绩=(select max(成绩)from 学生)
译:查询学生表中成绩最好的学生的有关信息

19.分组函数
select 字段1【必须填写分组根据字段】,函数(字段)【填写能显示能以组为单位显示的字段】from 表名 group by 字段【分组依据字段】
group by 关键字表示分组,按照某一个字段分组,相同的值组成一组。
注意:分组函数一般与函数以前使用

20.分组加条件查询
select 字段1,函数(字段2)as 别名 from 表名 group by 字段1 having 条件【这里一般跟查询的字段】
gaving 关键之表示条件,为分组函数的专用条件关键字

21.多表联合查询
select * from 表名1,表名2
注意:多表查询时,表与表之间用逗号(,)间隔
了解:多表查询时,如果不对结果进行过滤,则得到的是两边数据的乘积,此种形式称为迪卡尔乘积

22.多表联合查询加条件过滤
select * from 表1,表2 where 表1.字段=表2.字段
注意 条件的字段必须有关联

23.左联接查询:
select * from 表名1 left join 表名2 on 表名1.字段=表名2.字段
left join 关键字表示左联接查询
用法:tablel left join table2 on 条件
注意:on条件关键字必须加入
效果:以左表为准。右表数据匹配,有匹配数据则获取,如果左表有数据右表没有,
则以null填充,如果右表有的数据左表没有,则过滤。

24.右联接查询:
select * from 表名1 right join 表名2 on 表名1.字段=表名2.字段
left join 关键字表示右联接查询
用法:tablel right join table2 on 条件
注意:on条件关键字必须加入
效果:以右表为准。左表数据匹配,有匹配数据则获取,如果右表有数据左表没有,
则以null填充,如果右表有的数据右表没有,则过滤。

25.内连接查询
select * from 表名1 inner join 表名2 on 表名1.字段=表名2.字段
inner join 关键字表示内连接
用法:table1 inner join table2 on 条件
效果:量表数据同时匹配,如果任意一边没有匹配,则过滤。

26.空值得查询方式
select * from 表名 where 字段=’’ 查询该字段内容为空的记录
select * from 表名 where 字段=‘null’ 查询该字段内容为null的记录
select * from 表名 where 字段 is null 查询该字段内容"默认"为空的记录

27.插入记录
insert into 表名(字段1,字段2…)values(‘值1’,‘值2’,…)
insert 表示插入
into 表示插入到哪一张表(可以省略,推荐使用)
values 表示值(值必须用单引号【’’】包起来)
注意:在新增时,字段指定到哪一个位置,其值也必须在哪一个位置。

28.更新(修改)记录
update 表 set 字段='值’where 主键=‘值’
update 表示修改
set 表示赋值(设置)
注意:一定要加条件,指明要修改的是那一条数据。一定要做好备份,预防出错后无法修改

29.删除记录
delete from 表 where where 字段=‘值’
delete 表示删除
注意:注意:一定要加条件,指明要删除的是那一条数据。一定要做好备份,预防出错后无法挽回

30.建立视图
select 字段1,字段2,、、、from 表名
视图的用法跟表的用法一模一样。
视图和原表是用的同一个内存空间,只是在不同的位置显示

– in的用法
– select … from 表名 where 条件字段 in (数据集)
– select * from member where id in (20,21,23);
– 其他实现方式
– select * from member where id = 20 or id=21 or id=23;
– 模糊查询like的用法
– select <字段1,字段2,…> from < 表名 > where < 条件字段 > like ‘%XX’
– 需求:从member当中查询姓小的用户名
– select * from member where regname like ‘小%’;
– select * from member where regname like ‘%小%’;
– 需求:从member表中查询电话号码第四位为1 所有信息
– select * from member where MobilePhone like ‘___1%’;
– 分组的使用
– select 查询字段,聚合函数 from 查询涉及到的表 group by 分组字段 having 过滤条件; 
– 请按项目分组,统计投资表中各个项目的投资次数。
– select id,count() from invest GROUP BY LoanId;
– select LoanId, count(*) from invest GROUP BY LoanId;
– 按照项目进行分组,查询投资总额
– select LoanId, sum(invest.Amount) from invest GROUP BY LoanId;
– 需求:按照项目进行分组,查询项目id,项目标题,投资总额 ,条件 投资金额大于10000
– SELECT
– loanid,
– loan.title,
– invest.amount,
– sum(invest.amount)
– FROM
– invest,
– loan
– WHERE
– invest.LoanId = loan.id
– GROUP BY
– loanid
– HAVING
– sum(invest.amount)> 10000;

– SELECT
– loanid,
– loan.title,
– invest.amount,
– sum(invest.amount)
– FROM
– invest,
– loan
– WHERE
– invest.LoanId = loan.id
– AND
– sum(invest.amount)> 10000

– GROUP BY
– loanid;

– select … from 表名 where 条件字段 between 数值A(小值) and 数值B(大值); 
– -- 需求:查询member表可用余额大于等于10000,小于等于30000;
– select * from member where LeaveAmount>10000 and LeaveAmount<30000;
– select * from member where leaveamount BETWEEN 10000 and 30000;

– 去重
– select distinct 字段名1 from 表名
– select distinct memberid from invest;

– 分页用法
– select … from 表名 limit m,n;
– 需求:查询member,可用余额降序排列,取当中前面10条数据
– select * from member order by ORDER BY leaveamount desc (select * from member limit 0,10) ;

– limit m,n

– 每页X条数据,取第Y页,


– 第一页为:limit 0,10 表示取索引从0开始取10条记录。(y-1)*x 10
– 第二页为:limit 10,10 表示取索引从10开始取10条记录。10,10
– 第三页为:limit 20,10 表示取索引从20开始取10条记录。20,10

– select SYSDATE();
– 在当前时间基础上加上一天
– select DATE_ADD(SYSDATE(),INTERVAL 1 DAY);

– select concat(‘hello’,‘lemon’);
– SUBSTR(字段A, 截取开始的位置position,截取字符个数)
– select substr(‘hellolemon’,2,3);
– select length(‘hellolemon’);

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在面试中,常常会被问到SQL查询的次数。这个问题其实是在询问面试者对SQL查询的优化能力和经验。通常,面试官希望面试者能够意识到查询次数的影响,并采取相应的措施进行优化。 在回答这个问题时,可以提及以下几点: 1. 避免不必要的列查询:在编写SQL查询语句时,应该只查询需要的列,而不是使用SELECT *。这样可以减少不必要的数据传输和处理,提高查询效率。 2. 优化查询语句:使用合适的查询语句和条件,避免使用子查询、关联查询等复杂的操作,可以减少查询次数。了解常用查询类型,如SIMPLE和PRIMARY,可以根据实际情况选择最合适的查询方式。 3. 使用EXPLAIN进行优化:在编写SQL语句之前,可以先使用EXPLAIN命令查看查询执行计划,了解查询涉及的表、索引以及可能的性能问题,从而进行相应的优化。 总结来说,在面试中,面试者应该强调避免不必要的查询操作,使用合适的查询语句,了解并使用优化工具(如EXPLAIN)来提升SQL查询的效率,并展示自己的查询优化经验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQL面试常问问题(SQL 优化 ) —— 赶快收藏](https://blog.csdn.net/weixin_43889788/article/details/128415585)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值