广州金融网站设计,亳州网站制作,网站搜索框设计,南京企业网站做优化练习大纲#xff1a;
立扣上的sql语句题
学习中的易错点和有趣的题目
总结了下常用的关键词和技巧
SELECT: 用于选择要检索的列。FROM: 用于指定要查询的表。WHERE: 用于过滤行#xff0c;只返回满足条件的行。GROUP BY: 用于将结果集按一列或多列分组。HAVING: 与GROUP …练习大纲
立扣上的sql语句题
学习中的易错点和有趣的题目
总结了下常用的关键词和技巧
SELECT: 用于选择要检索的列。FROM: 用于指定要查询的表。WHERE: 用于过滤行只返回满足条件的行。GROUP BY: 用于将结果集按一列或多列分组。HAVING: 与GROUP BY一起使用用于过滤分组后的结果集。ORDER BY: 用于对结果集进行排序。LIMIT: 用于限制结果集的行数。JOIN: 用于在多个表之间建立连接。LEFT JOIN (OUTER JOIN): 返回左表中所有的行以及右表中匹配的行。如果右表中没有匹配的行将返回NULL。INNER JOIN: 返回两个表中匹配的行。ON: 用于指定JOIN条件。AND, OR: 用于组合多个条件。DISTINCT: 用于返回唯一不同的值。LIKE: 用于在WHERE子句中进行模糊搜索。IN: 用于指定条件范围类似于多个OR条件的缩写。BETWEEN: 用于指定范围。AS: 用于为列或表指定别名。ASC (升序) / DESC (降序): 用于指定排序顺序。NOT NULL: 用于过滤出不包含NULL值的行。SET: 用于更新表中的数据。COUNT(): 用于计算结果集中行的数量。SUM() / AVG() / MIN() / MAX(): 用于计算列的总和、平均值、最小值和最大值。GROUP_CONCAT(): 用于将组内行的值连接为一个字符串。if(判断条件 ,为真结果,为假结果),为真选前为假选后。CASE WHEN …then…WHEN …then…:用于在查询中执行条件判断。UNION / UNION ALL: 用于合并两个或多个SELECT语句的结果集。UNION删除重复的行而UNION ALL包含重复的行。INTERVAL 1 DAY :用于指定时间间隔其目的是提供一种通用的方式来表示一段时间。使用 INTERVAL 语法的好处是它可以支持多种时间单位如天、小时、分钟等。求数据出现次数最多的技巧order by count(*) desc limit 1; 统计次数并从大到小排序只选第一条就是最大值了求数据值相加起来的合的技巧正常就是一个sum但当有其他前提比如小明在周2一共上了几次厕所这种就需要group by name,day做条件懂了吧ifnull用法ifnull(判断值指定值)当判断的值为null时转换为指定值否则还是原值
. - 力扣LeetCode
修复表中的名字
表 Users
-------------------------
| Column Name | Type |
-------------------------
| user_id | int |
| name | varchar |
-------------------------
user_id 是该表的主键(具有唯一值的列)。
该表包含用户的 ID 和名字。名字仅由小写和大写字符组成。编写解决方案修复名字使得只有第一个字符是大写的其余都是小写的。
返回按 user_id 排序的结果表。
思路:需要把name字段内容分开分析分为首字母和剩余部分首字母用upper方法大写其余字母用lower方法小写用concat方法拼接而upper中需要用leftname1表示name的第一个字母用rightnamelengthname-1表示name除第一个字母外的其余字母完整拼接如下
concat(upper(left(name,1)),lower(right(name,length(name)-1)))as name完整语句如下
select user_id,
concat(upper(left(name,1)),lower(right(name,length(name)-1)))as name
from Users
order by user_id;难点知道concatupperleftright关键字的用法
从中也能发现sql学习是建立在熟练使用关键字的基础上的
有意思的题目
变更性别
Salary 表
-----------------------
| Column Name | Type |
-----------------------
| id | int |
| name | varchar |
| sex | ENUM |
| salary | int |
-----------------------
id 是这个表的主键具有唯一值的列。
sex 这一列的值是 ENUM 类型只能从 (m, f) 中取。
本表包含公司雇员的信息。请你编写一个解决方案来交换所有的 f 和 m 即将所有 f 变为 m 反之亦然仅使用 单个 update 语句 且不产生中间临时表。
熟练一眼就能看出答案但如果不知道if这个关键字就会很麻烦
update Salaryset sexif(sexf,m,f);607. 销售员 - 力扣LeetCode
这个挺好玩
可以直接多个join…on-把表都连接起来再用not in查询不在范围内的即
select name from SalesPerson where name not in
(select SalesPerson.name as name from SalesPerson
join Orders on Orders.sales_idSalesPerson.sales_id
join Company on Company.com_idOrders.com_id
where Company.nameRED)
也可以用多个whereselect一步步查询即
select name from SalesPerson where sales_id not in
(select sales_id from orders where com_id in
(select com_id from company where nameRED));这些只是写了30多道题总结的只后会更新关键字直到刷完100题~!