当前位置: 首页 > news >正文

mysql笔记四(sql查询一)

查询sql相关:介绍关键词和使用细节
一 关键词
select :语句用于从数据库中选取数据。
from:数据来源,后面根表名。

SELECT * FROM table_name;
SELECT column1, column2, ...FROM table_name;
SELECT column1 as column1_1, column2, ...FROM table_name;

distinct: 关键词用于返回唯一不同的值。

SELECT DISTINCT column1, column2, ...
FROM table_name;

where:用于过滤记录;

SELECT column1, column2, ...
FROM table_name
WHERE column1 = '张三';

and : 运算符用于基于一个以上的条件对记录进行过滤,多个条件需要同时满足。

SELECT * FROM Websites
WHERE country='CN'
AND alexa > 50;

or: 运算符用于基于一个以上的条件对记录进行过滤,多个条件满足任一条就会返回。

SELECT * FROM Websites
WHERE country='USA'
OR country='CN';

order by: 关键字用于对结果集进行排序。

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;

in: 用于过滤在这个in内的数据,不在是not in;

SELECT column1, column2, ...
FROM table_name
WHERE column IN (value1, value2, ...);

exists: 检查子查询中是否存在任何结果,但不返回结果

SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);

like : 是 SQL 中用于在 WHERE 子句中进行模糊查询的关键字,它允许我们根据模式匹配来选择数据,通常与 % 和 _ 通配符一起使用;

SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern;

inner join:关键字在表中存在至少一个匹配时返回行

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

left join:
关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

right join:
关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

full outer join :
关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

group by:根据一个或多个列对结果集进行分组 ,通常和聚合函数一起使用

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

having:
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
HAVING 子句可以让我们筛选分组后的各组数据。

SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1
HAVING condition;

between and :选取介于两个值之间的数据范围内的值,这些值可以是数值、文本或者日期

SELECT column1, column2, ...
FROM table_name
WHERE column BETWEEN value1 AND value2;

union :操作符用于合并两个或多个 SELECT 语句的结果集。它可以从多个表中选择数据,并将结果集组合成一个结果集。使用 UNION 时,每个 SELECT 语句必须具有相同数量的列,且对应列的数据类型必须相似。union 会对结果去重,union all 不会去重。

SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

limit: 限定select返回的数据条数

LIMIT [offset,] row_count;
LIMIT row_count OFFSET offset;

常用函数:
COUNT() 函数返回匹配指定条件的行数
SUM() 函数返回数值列的总数
UCASE() 函数把字段的值转换为大写
LENGTH() 函数返回文本字段中值的长度
NOW() 函数返回当前系统的日期和时间
ROUND() 函数用于把数值字段舍入为指定的小数位数
FORMAT() 函数用于对字段的显示进行格式化
CAST(‘abc’ AS SIGNED)和CONVERT,字符串转int
SUBSTRING(a,1,10) 字符串截取
STRPOS(a,b) 字符串b在字符串a中的下标位置;
针对不同的数据结构还有很多函数;

条件表达式
if语句

IF(condition, true_statement, false_statement);
condition: 条件表达式,可以是任何返回布尔值的表达式。
true_statement: 如果条件为真,则执行的语句。
false_statement: 如果条件为假,则执行的语句。

when语句

CASE WHEN THEN ELSE END
expression: 表达式,用于进行比较的值。
WHEN value THEN result: 当expression等于value时,返回result。
ELSE result: 如果没有匹配的条件,则返回result。

ifnull

IFNULL(expression, value);
expression: 表达式,用于判断是否为NULLvalue: 如果expression为NULL,则返回的值。

算术运算符
算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算。

比较运算符:

<小于
<=小于等于
=等于
>大于
>=大于等于
<>不等于
!=不等于

位运算:
与运算(&)
或预算(|)
异或(^)
取反(~)
右移(>>)
左移(<<)

注:使用时注意运算符优先级。

一般在代码中能实现的业务逻辑,通过sql语法也能实现,只不过有些不常用的需要搜下用法,并且复杂的逻辑也不建议sql处理。初步认识上面的关键词后需要sql编写了,下篇记录重点关键词之间的区别和使用中的细节问题。

参考资料:https://www.runoob.com/sql/sql-tutorial.html


http://www.mrgr.cn/news/23616.html

相关文章:

  • Dbeaver的SQL编辑内文字大小更改
  • 全面质量管理知识竞赛题库
  • 前端:JavaScript 实现类
  • 经纬恒润高压电池管理系统,助力新能源汽车飞速发展
  • 【设计模式】Template Method伪代码
  • 摩尔投票算法--169. 多数元素
  • 解锁精准电商营销新纪元:深度剖析京东商品详情API数据驱动的营销策略
  • 请问什么样的文献管理软件比较好用,用了zotero发现不会用?
  • 陶建辉演讲干货分享,AI 时代下的数据预测和数据处理挑战
  • Linux CentOS更换阿里云源解决Could not retrieve mirrorlist http://mirrorlist.centos.org
  • 笔试强训day07
  • 电信AEP平台WEB在线开发经验总结
  • 基于单片机一种风速测量仪的设计
  • 判断语句(C语言)
  • 01:电子移动速度/电阻大小与功率大小
  • (一)NoSQL之 【Redis配置】
  • 比较:#define,const,typedef
  • 为什么HashTable慢? 它的并发度是什么? 那么ConcurrentHashMap并发度是什么?
  • AI在医学领域:HMARL首个多器官诊断AI框架
  • 智能交通(三)——Elsevier特刊推荐