数据库复习(1): SQL数据查询

太久没发博客, 博客都荒了(不过本来也没人看, 也谈不上荒😂). 趁复习整理一下数据库与SQL的学习笔记.
笔记基本整理自 <SQL必知必会> 和 教材<数据库系统概论>. 不保证正确性…

简单的检索

检索数据可能是SQL里最常用的语句了, 使用形如

SELECT column1
FROM Table1;

即可检索数据. 此处columu为列名时是检索某列, 为*是检索所有列.

Table则是被检索的表,可以有多个,用,分隔.
此外, 有一些办法可以给查询加上简单的条件:

限制行数

SQL Server:

SELECT TOP 3 column1 FROM Table1;

MySQL, SQLite:

SELECT column1 FROM Table1
-- 行号从0计起
-- 意为从2开始往后3行
LIMIT 2,3;

检索不同值(去重)

SELECT DISTINCT column1
FROM Table1;

column可以有多个,DISTINCT作用于列出的所有column

排序

SELECT column1, column2
FROM Table
--ORDER BY子句必须是SELECT语句的最后一个子句
ORDER BY column1;

ORDER BY可依照多列排序, 按顺序区分优先级. 降序需在待排列后加DESC关键字

SELECT column1, column2, column3
FROM Table
ORDER BY column1 DESC, column2;

用WHERE子句做条件查询

当需要使用条件查询时, 我们可以使用WHERE子句:

SELECT * FROM Table1
WHRER 条件;

可使用的条件

下表是WHERE子句中可以使用的条件:

操作符 说明
> / < 大于/小于
>= !< / <= !> 大于等于/小于等于
= / != <> 等于/不等于
IS NULL 为NULL值
BETWEEN 值1 AND 值2 在值1值2之间

条件可以有多个,使用ANDOR进行组合
AND优先级更高,为消除歧义,尽量将条件用括号包裹

IN操作符

SELECT column1 FROM Table1
-- 查找和value1, 2相等的值
WHERE column1 IN ('value1','value2');

等价于WHRER column = 'value1' OR column = 'value2'

NOT操作符

用于否定跟在其后的条件

...
WHERE NOT column1 = 'value';

LIKE操作符

...
WHERE column1 LIKE '搜索模式';

搜索模式是字面值或通配符或两者组合构成的搜索条件

通配符 说明
% 匹配0-n个字符
_ 匹配1个字符
[](SQLServer) 匹配方括号内任意字符,如[AC],[^AC](除A,C任意)

发表评论

电子邮件地址不会被公开。 必填项已用*标注