SQL查询语句(进阶篇)

LIKE 查找类似值

​LIKE​关键字用于逻辑表达式,返回一个布尔值

​WHERE​子句的格式:

WHERE
    column_name LIKE String 

其中,String​可以包含通配符:

  • ​%​:匹配任意字符(包括零个字符)
  • ​_​:匹配单个字符

示例(搜索Person​表中Name​字段中以Tangent​开头的行):

SELECT
    Name
FROM
    Person
WHERE
    Name LIKE 'Tangent%';

相似地,NOT LIKE​关键字可以达到相反的效果

IN 关键字

​IN​关键字用在逻辑表达式中,和=​与OR​的组合等价

WHERE
    Name='A' OR Name='B'
WHERE
    Name IN ('A','B')
--以上两种写法是等价的

BETWEEN 选取区间数据

​BETWEEN A AND B​会对数据(数值,字符串,日期)进行判定.

对字符串进行判定的时候,将根据ASCII码逐位判定.

示例:

WHERE
    Age BETWEEN 18 AND 25

这条WHERE语句将对年龄处于18和25之间的行返回true

​NOT BETWEEN​会产生相反的结果

注意:不同的数据库管理系统对于BETWEEN的开闭区间的处理是不一致的,务必熟悉所使用的数据库管理系统

AS 别名

  • 字段后的AS可以指定输出的列名称
  • 表名称后的AS可以指定输出的表名称
SELECT
    c.ID,c.Name
FROM
    Class c;

AS其实是可以省略的

JOIN 多表关联

注意:下面的表格中,左表代表主表,右表代表从表

INNER JOIN 返回两个表中满足连接条件的记录(取交集),只有两表中匹配的行才会被返回
LEFT JOIN 返回左表中的所有记录,即使右表中没有匹配的记录(以左表为主)
RIGHT JOIN 返回右表中的所有记录,即使左表中没有匹配的记录(以右表为主)
FULL OUTER JOIN 返回两个表的并集
CROSS JOIN 返回两个表的笛卡尔积,每条左表记录与每条右表记录进行组合。
SELF JOIN 将一个表与自身连接。
NATURAL JOIN 基于同名字段自动匹配连接的表。
SELECT
    column1,column2...
FROM
    table1
JOIN
    table2 ON Boolean;

JOIN子句会遍历两个表中所有行的组合,按照JOIN前的关键字返回ON关键字后面Boolean为true的行

UNION 合并结果集

UNION连接两个SELECT语句,返回两个结果集的合并

UNION返回的内容默认选取不同的值,若要保留重复的值,使用UNION ALL

注意:两个待合并的结果集必须有相同数量的列,列中也必须有相似的数据类型,请注意SELECT关键字后面返回的字段顺序

select 
    * 
FROM 
    persons
UNION
select 
    * 
FROM  
    persons_b;

NOT NULL 非空

NOT NULL关键字用在逻辑表达式中,来判断某一行的特定字段是否是空的

NOT NULL关键字用在建表语句中,来约束某一个字段不能是空的

CREATE TABLE table_name(
    column int NOT NULL
);
SELECT
    *
FROM
    Persons
WHERE
    Name IS NOT NULL

IS NULL 用在布尔表达式中,效果与IS NOT NULL相反

VIEW 视图

视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。

CREATE VIEW view_name AS
SELECT 
    column1, column2, ...
FROM 
    table_name
WHERE 
    Boolean;

视图是基于查询结果生成的虚拟表,而不是实际存储数据的表.视图可以填入后面语句的table_name内

删除视图可以使用DROP VIEW关键字

DROP VIEW
    view_name

虽然说是进阶篇,但还是一些很基础的东西,而且都是粗略介绍,下一篇会写一下SQL中的函数,重难点以后会单独写文章的(溜去写运转日志了)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇