sql 查询 一个表中某几列数据

记得上次我帮小李改了SQL语句。
他的表叫users,他要检查用户ID 1 0的姓名和email,他写的语句很长,WHERE name='all' AND Age='all',我说这个检查是干什么的,直接改不行吗?他愣了一下,实在是拦不住我。

因此,在使用 SQL 时,您实际上不需要考虑限制所有列。
例如,如果要在users表中查找ID为1 0的用户,只需要SELECT name, email FROM users WHERE id = 1 0;即可,简单明了。
如果你写 WHERE name='all' AND Age='all',SQL 将完全忽略你,并且仍然检查 id=1 0 的数据。
对于其他名字和年龄,他不会知道你在说什么。

再举个例子:如果你想检查students表中所有2 0岁以下的学生,只需SELECT name,age FROM Students WHERE Age < 2>如果你忘记写WHERE,那就SELECT FROM Students;将检查所有内容并为您提供表中所示的所有内容。

有时条件可以更灵活。
例如,要检查 users 表中状态为 1 或 2 的用户,只需 SELECT FROM users WHERE status IN (1 , 2 );,只需用逗号分隔即可。
或者要搜索2 0岁到2 5 岁之间的人,SELECT name,age FROM users WHERE age is FROM 2 0 TO 2 5 ;这个范围也方便搜索。

说真的,在使用SQL时,只要想想你实际需要哪些列,以及你想给哪些列添加条件。
忽略不必要的列,只需正​​确编写条件列即可。
比如昨天我看了老张的报告。
他的销售表有 1 00 列,但他只使用了 5 列,其余 9 5 列被忽略。
最终的数据很快就找到了。

等等,还有一件事,不要将 = 与 > 混淆。
上次实习生写了 SELECT FROM order WHERE Total > 1 00 AND Total = 2 00;,找不到,因为 Total 不能同时大于 2 00 和等于 2 00。
必须写成OR或者单独检查。
例如,WHERE Total > 1 00 OR Total = 2 00;,这是正确的。

最后一个示例是检查学生表中的计算机科学 (CS)、数学 (MA) 和信息 (IS) 学生。
写入 SELECT 姓名、部门 FROM 学生 WHERE 部门 B (“CS”、“MA”、“IS”);。
这样你就可以写清楚,而不需要一次写一个“OR”。

但是,为什么需要使用 IN?也可以直接写WHEREpartition='CS'ORdepartment='MA'ORdepartment='IS'。
这取决于你的个人习惯。
无论如何,在编写SQL时,正确编写条件列并忽略其他脏东西。
这样会更有效率。

SQL简单查询、联合查询、连接查询使用技巧

对于简单的查询,直接使用SELECT,但不要盲目使用,因为对于大表来说速度很慢。
指定添加列的顺序以节省流量。
列名使用 AS 重命名,并且引号是非标准的。
DISTINCT 删除重复项,TOPn 限制元素数量。
子句
FROM 加上带逗号的表名。
AS表别名或空格,写短一些。
临时表嵌套子查询,自己看看。

WHERE条件直接使用=、>、<进行过滤。
BETWEEN 范围、IN 多个值、喜欢模糊匹配,而不喜欢排除。
ISNULL 检查空值。
AND/OR/NOT 组合条件。

排序 ORDERBY、DESC 降序、ASC 升序。
向多列添加逗号并支持表达式。

UNION合并结果集,列必须一致。
ALL 保留重复的行。
通过查看第一个查询列进行排序。

INNERJOIN 只接受那些匹配的。
使用 = 进行等值连接,使用 > 和 < 进行不等值连接。
不要盲目利用自然联系。
OUTERJOIN 仍然是无与伦比的。
LEFTJOIN 将所有表保留在左侧。
右表 RIGHTJOIN 被完整保留。
FULLJOIN 保留两个表。
CROSSJOIN 笛卡尔积,谨慎使用。

ON定义连接条件,WHERE过滤结果。
自连接表自行连接。
对于大表,使用CROSSJOIN并为字段添加索引。

在场景中选择正确的连接类型,对索引添加优化,让SQL快速高效。
你自己看看吧。

sql怎么查找数据 sql数据查找方法详解

SQL 查询依赖于 SELECT。
全表查询:SELECT FROM table。
指定列:SELECT col1 , col2 FROM table。
城市等于纽约:从客户中选择,其中城市 = '纽约'。
不区分大小写:从客户中选择 WHERE LOWER(city) = 'new york'。
总和大于 1 000:SELECT FROM order WHERE sum_sum > 1 000。
价格在 5 0 到 1 00 之间:选择价格在 5 0 到 1 00 之间的产品。
纽约且年龄 > 3 0:从客户中选择,其中城市 = '纽约' 且年龄 > 3 0。
按升序对名称进行排序:SELECT FROM customer ORDER BY ASC customer_name。
按降序排列金额:从产品中选择 ORDER BY 价格 DESC。
日期降序 总计升序:从订单中选择 ORDER BY order_date DESC,total_amount ASC。
客户订单内部联接: SELECT c.customer_name, o.order_date FROMcustomers c JOIN 订单 o ON c.customer_id = o.customer_id WHERE o.order_date > '2 02 3 -01 -01 '。
LEFT 加入员工部门: SELECT e.name, d.department_name FROM 员工 e LEAVE JOIN 部门 d ON e.dept_id = d.dept_id。
将子查询替换为 JOIN: SELECT FROM table1 t1 JOIN (SELECT id FROM table2 WHERE 条件) t2 ON t1 .id = t2 .id。
城市索引:CREATE INDEX idx_city ON customer(city)。
客户订单索引:CREATE INDEX idx_customer_order ON order(customer_id, order_date)。
避免使用前缀通配符:LIKE 'NewYork%'。
分页:从客户中选择 LIMIT 1 0 OFFSET 2 0。
计算客户数量:SELECT COUNT() FROMcustomers WHERE city = 'New York'。
平均价格:从类别=“电子产品”的产品中选择平均价格(价格)。
按城市分组:SELECT city, COUNT() AS customer_count FROMcustomers GROUP BY city HAVING COUNT() > 5 价格高于平均水平:从产品中选择价格 >(从产品中选择平均(价格))。
反注入:使用参数化查询。
类型一致:使用“YYYY-MM-DD”表示日期。
测试和解释:编写更多内容并使用解释来查看计划。

称一下体重。