太久没发博客, 博客都荒了(不过本来也没人看, 也谈不上荒😂). 趁复习整理一下数据库与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之间 |
条件可以有多个,使用AND
和OR
进行组合
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任意) |