第二十二次博客打卡

发布于:2025-05-24 ⋅ 阅读:(17) ⋅ 点赞:(0)

今天学习的内容是SQL常见表的查询语句。在这里插入图片描述


1. 基本查询

查询所有列

SELECT * FROM 表名;

查询指定列

SELECT1,2,3 FROM 表名;

去重查询(DISTINCT)

SELECT DISTINCT 列名 FROM 表名;

限制返回行数(LIMIT / TOP / FETCH)

-- MySQL/PostgreSQL/SQLite
SELECT * FROM 表名 LIMIT 10;

-- SQL Server
SELECT TOP 10 * FROM 表名;

-- Oracle (12c+)
SELECT * FROM 表名 FETCH FIRST 10 ROWS ONLY;

2. 条件筛选(WHERE)

基本条件

SELECT * FROM 表名 WHERE 列名 = '值';

比较运算符(=, <>, >, <, >=, <=)

SELECT * FROM 表名 WHERE 列名 > 100;

逻辑运算符(AND, OR, NOT)

SELECT * FROM 表名 WHERE 条件1 AND 条件2;

模糊匹配(LIKE)

-- 以 "张" 开头
SELECT * FROM 表名 WHERE 列名 LIKE '张%';

-- 包含 "abc"
SELECT * FROM 表名 WHERE 列名 LIKE '%abc%';

-- 第二个字符是 "a"
SELECT * FROM 表名 WHERE 列名 LIKE '_a%';

范围查询(IN, BETWEEN)

-- 在某个集合内
SELECT * FROM 表名 WHERE 列名 IN ('值1', '值2', '值3');

-- 在某个范围内
SELECT * FROM 表名 WHERE 列名 BETWEEN 10 AND 20;

空值判断(IS NULL / IS NOT NULL)

SELECT * FROM 表名 WHERE 列名 IS NULL;

3. 排序(ORDER BY)

-- 升序(默认)
SELECT * FROM 表名 ORDER BY 列名 ASC;

-- 降序
SELECT * FROM 表名 ORDER BY 列名 DESC;

-- 多列排序
SELECT * FROM 表名 ORDER BY1 ASC,2 DESC;

4. 子查询

WHERE 子查询

SELECT * FROM 表A 
WHERE 列名 IN (SELECT 列名 FROM 表B WHERE 条件);

FROM 子查询

SELECT * 
FROM (SELECT1,2 FROM 表名 WHERE 条件) AS 子查询表;

EXISTS 子查询

SELECT * FROM 表A 
WHERE EXISTS (SELECT 1 FROM 表B WHERE 表B.= 表A.);

掌握这些查询语句可以适应大多数数据库的查询。


网站公告

今日签到

点亮在社区的每一天
去签到