数据库 SQL 高级用法(一)

2022-07-01 14:53:57 浏览数 (1)

今天是日更的 42/365 天

大家好,我是阿常,今天我和大家分享——数据库SQL高级用法的第一个章节。

  • SQL SELECT LIMIT 用法
  • SQL LIKE 用法
  • SQL 通配符用法

一、SQL SELECT LIMIT 用法

SELECT LIMIT 子句用于规定要返回的记录的数目。

SELECT LIMIT 子句对于拥有数千条记录的大型表来说,比较适用。

请注意,并非所有的数据库系统都支持 SELECT LIMIT 语句:

SQL Server 支持 TOP 语句来选取指定的条目数据;

而Oracle 则使用 ROWNUM 语句来选取。

一)MySQL 用法

代码语言:javascript复制
SELECT 列名1,列名2 
FROM 表名
LIMIT 数字;

实例

代码语言:javascript复制
SELECT * 
FROM student
LIMIT 5;

二)SQL Server 用法

代码语言:javascript复制
SELECT TOP 数字/百分比 列名1,列名2
FROM 表名;

实例

代码语言:javascript复制
SELECT TOP 5 *
FROM student;

SELECT TOP 20 PERCENT *
FROM student;

三)Oracle 用法

代码语言:javascript复制
SELECT 列名1,列名2
FROM 表名
WHERE ROWNUM <= 数字;

实例

代码语言:javascript复制
SELECT *
FROM student
WHERE ROWNUM <= 5;

二、SQL LIKE 用法

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式

通过使用 NOT 关键字,您可以选取不匹配模式的记录。

SQL LIKE 用法

代码语言:javascript复制
SELECT 列名1,列名2 
FROM 表名
WHERE 列名 LIKE 指定模式;

SELECT 列名1,列名2 
FROM 表名
WHERE 列名 NOT LIKE 指定模式;

实例

代码语言:javascript复制
SELECT * FROM student
WHERE name LIKE '%花';

SELECT * FROM student
WHERE name LIKE '小%';

SELECT * FROM student
WHERE name LIKE '%小%';

SELECT * FROM student
WHERE name NOT LIKE '%小%';

请注意,“ % ” 符号用于在模式的前后定义通配符。

使用 '%花' 选取的是以 “ 花 ” 结尾的学生记录; 使用 '小%' 选取的是以 “ 小 ” 开头的学生记录;

使用 '%小%' 选取的是包含 “ 小 ” 的所有学生记录,加 NOT 关键字匹配的是不包含“ 小 ” 的所有学生记录。

三、SQL 通配符用法

在 SQL 中,通配符与 SQL LIKE 操作符一起使用。

SQL 通配符用于搜索表中的数据。

在 SQL 中,可使用以下通配符:

通配符

描述

%

替代 0 个或多个字符

_

替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist]或[!charlist]

不在字符列中的任何单一字符

一)SQL % 用法

在上面的 SQL LIKE 用法中已提及,这里不再赘述。

二)SQL _ 用法

下面的 SQL 语句使用 '_花' 选取 name 以任意一个字符开始,然后是 " 花 " 结尾的学生记录;

使用 'F_r_ox' 选取 name 以 " F "开始,然后是一个任意字符,然后是 " r " ,然后是任意一个字符,然后是 " ox" 的网站记录。

代码语言:javascript复制
SELECT *
FROM student
WHERE name LIKE '_花';

SELECT *
FROM Websites
WHERE name LIKE 'F_r_ox';

三)SQL [charlist] 用法

MySQL 中使用 REGEXPNOT REGEXP(或 RLIKE 和 NOT RLIKE)来操作正则表达式。

1、下面的 SQL 语句选取 name 以 " A " 、" B " 或" C " 开始的所有网站。

代码语言:javascript复制
SELECT *
FROM Websites
WHERE name REGEXP '^[ABC]';

2、下面的 SQL 语句选取 name 以 A 到 J 字母开头的所有网站。

代码语言:javascript复制
SELECT *
FROM Websites
WHERE name REGEXP '^[A-J]';

3、下面的 SQL 语句选取 name 不以 A 到 J 字母开头的所有网站。

代码语言:javascript复制
SELECT *
FROM Websites
WHERE name REGEXP '^[^A-J]';

至此,数据库SQL高级用法的第一章节就讲完啦,接下来让我们继续期待第二章节的内容吧。

0 人点赞