常用的SQL语句,2024年最新网络工程师面试题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

Websites表:

在这里插入图片描述

数据格式

SELECT column_name,column_name FROM table_name;

案例

SELECT * FROM Websites;

SQL SELECT DISTINCT

在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。

DISTINCT 关键词用于返回唯一不同的值。

数据格式:

SELECT DISTINCT column_name,column_name FROM table_name;

实例

在这里插入图片描述

SQL WHERE 子句

WHERE 子句用于提取那些满足指定条件的记录。

数据格式:

SELECT column_name,column_name

FROM table_name

WHERE column_name operator value;

实例

在这里插入图片描述

where子句中的运算符

在这里插入图片描述

案例

Select * from emp where empno=7900;

Select * from emp where ename=‘SMITH’;

Select * from emp where sal > 2000 and sal < 3000;

Select * from emp where sal > 2000 or comm > 500;

select * from emp where not sal > 1500;

Select * from emp where comm is null;

// 查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。

Select * from emp where sal between 1500 and 3000;

// 查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。

Select * from emp where sal in (5000,3000,1500);

// 查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。

Select * from emp where ename like ‘M%’;

% 表示多个字值,_ 下划线表示一个字符;

M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。

%M% : 表示查询包含M的所有内容。

%M_ : 表示查询以M在倒数第二位的所有内容。

SQL AND & OR 运算符


AND & OR 运算符用于基于一个以上的条件对记录进行过滤。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

websites数据库:

在这里插入图片描述

AND 实例

从 “Websites” 表中选取国家为 “CN” 且alexa排名大于 “50” 的所有网站:

在这里插入图片描述

OR 实例

从 “Websites” 表中选取国家为 “USA” 或者 “CN” 的所有客户:

在这里插入图片描述

结合 AND 和 OR

从 “Websites” 表中选取 alexa 排名大于 “15” 且国家为 “CN” 或 “USA” 的所有网站:

在这里插入图片描述

SQL ORDER BY 关键字


ORDER BY 关键字用于对结果集进行排序。

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。

语法结构:

SELECT column_name,column_name

FROM table_name

ORDER BY column_name,column_name ASC|DESC;

在这里插入图片描述

ORDER BY 实例:

从 “Websites” 表中选取所有网站,并按照 “alexa” 列排序:

在这里插入图片描述

ORDER BY DESC 实例

从 “Websites” 表中选取所有网站,并按照 “alexa” 列降序排序:

在这里插入图片描述

ORDER BY 多列 实例

从 “Websites” 表中选取所有网站,并按照 “country” 和 “alexa” 列排序:

在这里插入图片描述

ORDER BY 多列的时候,先按照第一个column name排序,在按照第二个column name排序;如上述教程最后一个例子:

  1. 先将country值这一列排序,同为CN的排前面,同属USA的排后面;

  2. 然后在同属CN的这些多行数据中,再根据alexa值的大小排列。

  3. ORDER BY 排列时,不写明ASC DESC的时候,默认是ASC。

SQL INSERT INTO 语句


INSERT INTO 语句用于向表中插入新记录。

INSERT INTO 语句可以有两种编写形式。

第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

INSERT INTO table_name

VALUES (value1,value2,value3,…);

第二种形式需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,…)

VALUES (value1,value2,value3,…);

在这里插入图片描述

INSERT INTO 实例

假设我们要向 “Websites” 表中插入一个新行。

在这里插入图片描述

在指定的列插入数据

插入一个新行,但是只在 “name”、“url” 和 “country” 列插入数据(id 字段会自动更新):

在这里插入图片描述

SQL UPDATE 语句


UPDATE 语句用于更新表中的记录。

UPDATE table_name

SET column1=value1,column2=value2,…

WHERE some_column=some_value;

请注意 SQL UPDATE 语句中的 WHERE 子句! WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE子句,所有的记录都将被更新!

在这里插入图片描述

SQL UPDATE 实例

把 “菜鸟教程” 的 alexa 排名更新为 5000,country 改为 USA。

在这里插入图片描述

SQL DELETE 语句


DELETE 语句用于删除表中的记录。

语法:

DELETE FROM table_name

WHERE some_column=some_value;

请注意 SQL DELETE 语句中的 WHERE 子句! WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE子句,所有的记录都将被删除!

在这里插入图片描述

SQL DELETE 实例

从 “Websites” 表中删除网站名为 “百度” 且国家为 CN 的网站 。

在这里插入图片描述

删除所有数据

可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:

DELETE FROM table_name;

DELETE * FROM table_name;

注释:在删除记录时要格外小心!因为您不能重来!

SQL SELECT TOP, LIMIT, ROWNUM 子句


SQL SELECT TOP 子句

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

SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。

注意:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle可以使用 ROWNUM 来选取。

MySQL 语法

SELECT column_name(s)

FROM table_name

LIMIT number;

在这里插入图片描述

MySQL SELECT LIMIT 实例

从 “Websites” 表中选取头两条记录:

在这里插入图片描述

SQL SELECT TOP PERCENT 实例

在 Microsoft SQL Server 中还可以使用百分比作为参数。

下面的 SQL 语句从 websites 表中选取前面百分之 50 的记录:

在这里插入图片描述

在这里插入图片描述

SQL LIKE 操作符


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

语法:

SELECT column_name(s)

FROM table_name

WHERE column_name LIKE pattern;

在这里插入图片描述

SQL LIKE 操作符实例

选取 name 以字母 “G” 开始的所有客户:

在这里插入图片描述

选取 name 以字母 “k” 结尾的所有客户:

在这里插入图片描述

选取 name 包含模式 “oo” 的所有客户:

在这里插入图片描述

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

选取 name 不包含模式 “oo” 的所有客户:

在这里插入图片描述

SQL 通配符


通配符可用于替代字符串中的任何其他字符。

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

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

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

在这里插入图片描述

在这里插入图片描述

使用 SQL % 通配符

选取 url 以字母 “https” 开始的所有网站:

在这里插入图片描述

选取 url 包含模式 “oo” 的所有网站:

在这里插入图片描述

使用 SQL _ 通配符

选取 name 以一个任意字符开始,然后是 “oogle” 的所有客户:

在这里插入图片描述

选取 name 以 “G” 开始,然后是一个任意字符,然后是 “o”,然后是一个任意字符,然后是 “le” 的所有网站:

在这里插入图片描述

使用 SQL [charlist] 通配符

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

下面的 SQL 语句选取 name 以 “G”、“F” 或 “s” 开始的所有网站:

在这里插入图片描述

选取 name 以 A 到 H 字母开头的网站:

在这里插入图片描述

选取 name 不以 A 到 H 字母开头的网站:

在这里插入图片描述

SQL IN 操作符


IN 操作符允许您在 WHERE 子句中规定多个值。

语法:

SELECT column_name(s)

FROM table_name

WHERE column_name IN (value1,value2,…);

在这里插入图片描述

IN 操作符实例

选取 name 为 “Google” 或 “菜鸟教程” 的所有网站:

在这里插入图片描述

在这里插入图片描述

SQL BETWEEN 操作符


BETWEEN 操作符用于选取介于两个值之间的数据范围内的值。

BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。

语法:

SELECT column_name(s)

FROM table_name

WHERE column_name BETWEEN value1 AND value2;

在这里插入图片描述

BETWEEN 操作符实例

选取 alexa 介于 1 和 20 之间的所有网站:

在这里插入图片描述

NOT BETWEEN 操作符实例

如需显示不在上面实例范围内的网站,请使用 NOT BETWEEN:

在这里插入图片描述

带有 IN 的 BETWEEN 操作符实例

选取 alexa 介于 1 和 20 之间但 country 不为 USA 和 IND 的所有网站:

在这里插入图片描述

带有文本值的 BETWEEN 操作符实例

选取 name 以介于 ‘A’ 和 ‘H’ 之间字母开始的所有网站:

在这里插入图片描述

带有文本值的 NOT BETWEEN 操作符实例

选取 name 不介于 ‘A’ 和 ‘H’ 之间字母开始的所有网站:

在这里插入图片描述

带有日期值的 BETWEEN 操作符实例

选取 date 介于 ‘2016-05-10’ 和 ‘2016-05-14’ 之间的所有访问记录:

在这里插入图片描述

请注意,在不同的数据库中,BETWEEN 操作符会产生不同的结果! 在某些数据库中,BETWEEN

选取介于两个值之间但不包括两个测试值的字段。 在某些数据库中,BETWEEN 选取介于两个值之间且包括两个测试值的字段。

在某些数据库中,BETWEEN 选取介于两个值之间且包括第一个测试值但不包括最后一个测试值的字段。

因此,请检查您的数据库是如何处理 BETWEEN 操作符!

SQL 别名


通过使用 SQL,可以为表名称或列名称指定别名。

通过使用 SQL,可以为表名称或列名称指定别名。

基本上,创建别名是为了让列名称的可读性更强。

列的 SQL 别名语法:

SELECT column_name AS alias_name

FROM table_name;

表的 SQL 别名语法:

SELECT column_name(s)

FROM table_name AS alias_name;

在这里插入图片描述

列的别名实例

SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。提示:如果列名称包含空格,要求使用双引号或方括号:

在这里插入图片描述

SQL 语句中,我们把三个列(url、alexa 和 country)结合在一起,并创建一个名为 “site_info” 的别名:

在这里插入图片描述

表的别名实例

下面是选自 “Websites” 表的数据:

在这里插入图片描述

下面是 “access_log” 网站访问记录表的数据:

在这里插入图片描述

选取 “菜鸟教程” 的所访问记录。我们使用 “Websites” 和 “access_log” 表,并分别为它们指定表别名 “w” 和 “a”(通过使用别名让 SQL 更简短):

在这里插入图片描述

不带别名的相同的 SQL 语句:

在这里插入图片描述

在下面的情况下,使用别名很有用:

  1. 在查询中涉及超过一个表

  2. 在查询中使用了函数

  3. 列名称很长或者可读性差

  4. 需要把两个列或者多个列结合在一起

SQL 连接(JOIN)


SQL join 用于把来自两个或多个表的行结合起来。

下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。

在这里插入图片描述

SQL JOIN

SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。

最常见的 JOIN 类型:SQL INNER JOIN(简单的 JOIN)。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。

下面是选自 “Websites” 表的数据:

在这里插入图片描述

下面是 “access_log” 网站访问记录表的数据:

在这里插入图片描述

请注意,“Websites” 表中的 “id” 列指向 “access_log” 表中的字段 “site_id”。上面这两个表是通过 “site_id” 列联系起来的。

然后,如果我们运行下面的 SQL 语句(包含 INNER JOIN):

在这里插入图片描述

在我们继续讲解实例之前,我们先列出您可以使用的不同的 SQL JOIN 类型:

  1. INNER JOIN:如果表中有至少一个匹配,则返回行

  2. LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行

  3. RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行

  4. FULL JOIN:只要其中一个表中存在匹配,则返回行

SQL INNER JOIN 关键字


INNER JOIN 关键字在表中存在至少一个匹配时返回行。

语法:

SELECT column_name(s)

FROM table1

INNER JOIN table2

ON table1.column_name=table2.column_name;

SELECT column_name(s)

FROM table1

JOIN table2

ON table1.column_name=table2.column_name;

注释:INNER JOIN 与 JOIN 是相同的。

在这里插入图片描述

在这里插入图片描述

总结

三套“算法宝典”

28天读完349页,这份阿里面试通关手册,助我闯进字节跳动

算法刷题LeetCode中文版(为例)

人与人存在很大的不同,我们都拥有各自的目标,在一线城市漂泊的我偶尔也会羡慕在老家踏踏实实开开心心养老的人,但是我深刻知道自己想要的是一年比一年有进步。

最后,我想说的是,无论你现在什么年龄,位于什么城市,拥有什么背景或学历,跟你比较的人永远都是你自己,所以明年的你看看与今年的你是否有差距,不想做咸鱼的人,只能用尽全力去跳跃。祝愿,明年的你会更好!

由于篇幅有限,下篇的面试技术攻克篇只能够展示出部分的面试题,详细完整版以及答案解析,有需要的可以关注

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
_name;

注释:INNER JOIN 与 JOIN 是相同的。

在这里插入图片描述

在这里插入图片描述

总结

三套“算法宝典”

28天读完349页,这份阿里面试通关手册,助我闯进字节跳动

算法刷题LeetCode中文版(为例)

人与人存在很大的不同,我们都拥有各自的目标,在一线城市漂泊的我偶尔也会羡慕在老家踏踏实实开开心心养老的人,但是我深刻知道自己想要的是一年比一年有进步。

最后,我想说的是,无论你现在什么年龄,位于什么城市,拥有什么背景或学历,跟你比较的人永远都是你自己,所以明年的你看看与今年的你是否有差距,不想做咸鱼的人,只能用尽全力去跳跃。祝愿,明年的你会更好!

由于篇幅有限,下篇的面试技术攻克篇只能够展示出部分的面试题,详细完整版以及答案解析,有需要的可以关注

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-nB3SPXBE-1713585499633)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值