SQL 速成手册(非常详细)零基础入门到精通,收藏这一篇就够了

最全SQL从入门到精通:小白一天搞定! SQL,即结构化查询语言(Structured Query Language),是专门用于访问和处理数据库的标准计算机语言,同时也是 ANSI(美国国家标准学会)认可的标准语言。SQL 具有强大的兼容性,能够与诸如 MS Access、DB2、Oracle、MS SQL Server、Sybase 等多种数据库程序协同运作。然而,由于数据库市场的多元化,出现了众多不同版本的 SQL 语言。 阅读详情
AI摘要

本文全面介绍了SQL语言的主要功能,涵盖基本查询、表操作、数据操作、函数与聚合、子查询与联接、高级操作及性能优化等内容,适用于数据库管理与操作的学习与实践。

SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化编程语言。

SQL 被广泛用于数据库系统中(如 MySQL、PostgreSQL、Oracle、SQL Server),用于执行查询、更新数据、管理数据库结构和控制数据库访问权限。

SQL 的主要功能

1、基本查询语句

  • SELECT - 用于从数据库中选择数据,返回结果集。

  • WHERE - 用于过滤记录,指定查询条件。

  • ORDER BY - 用于对结果集进行排序,可以按升序或降序排列。

  • DISTINCT - 用于返回唯一不同的值,去除重复记录。

  • LIMIT - 用于指定返回的记录数量,常用于分页。

2、表操作语句

  • CREATE TABLE - 用于创建新表,定义表的列和数据类型。

  • ALTER TABLE - 用于修改现有表的结构,例如添加、删除或修改列。

  • DROP TABLE - 用于删除表及其所有数据。

3、数据操作语句

  • INSERT INTO - 用于向表中插入新记录。

  • UPDATE - 用于修改表中的现有记录。

  • DELETE - 用于删除表中的记录。

4、函数与聚合操作

  • COUNT - 用于返回匹配条件的行数。

  • SUM - 用于返回列的总和。

  • AVG - 用于返回列的平均值。

  • MIN - 用于返回列的最小值。

  • MAX - 用于返回列的最大值。

5、子查询与联接

  • INNER JOIN - 用于返回两个表中都存在的匹配记录。

  • LEFT JOIN - 用于返回左表中的所有记录和右表中的匹配记录。

  • RIGHT JOIN - 用于返回右表中的所有记录和左表中的匹配记录。

  • FULL JOIN - 用于返回两个表中所有记录,不管是否匹配。

  • SUBQUERY - 用于在查询语句中嵌套另一个查询。

6、高级操作

  • UNION - 用于合并两个或多个 SELECT 语句的结果集。

  • CASE - 用于实现条件逻辑,返回不同的值。

  • INDEX - 用于创建索引以加速查询。

7、性能优化与安全性

  • EXPLAIN - 用于查看查询的执行计划,帮助优化查询。

  • TRANSACTION - 用于处理事务,确保数据的一致性和完整性。

  • GRANT - 用于授予用户特定的数据库权限。

  • REVOKE - 用于撤销用户的数据库权限。


一、基本查询语句

SELECT:用于从数据库中选择数据。

SELECT column1, column2 FROM table_name;

column1, column2 表示列名,table_name 表示表名。

WHERE:用于过滤记录。

SELECT column1, column2 FROM table_name WHERE condition;

ORDER BY:用于排序结果集。

SELECT column1, column2 FROM table_name` `ORDER BY column1 [ASC|DESC];
  • ASC(Ascending):表示升序排序,即从小到大排列(默认排序方式)。

  • DESC(Descending):表示降序排序,即从大到小排列。

DISTINCT:用于返回唯一不同的值。

SELECT DISTINCT column1 FROM table_name;

LIMIT:用于指定返回的记录数量。

SELECT column1 FROM table_name LIMIT number;

二、表操作语句

CREATE TABLE:用于创建新表。

CREATE TABLE table_name (`    `column1 datatype PRIMARY KEY,`    `column2 datatype,`    `column3 datatype``);
  • **column1, column2, column3:**表的列名。

  • **datatype:**这列的数据类型,比如INT表示整数,VARCHAR(255)表示最大长度为255的字符串等。

  • **PRIMARY KEY:**这是一个约束,用来指定哪列是主键。主键是表中用来唯一标识每行数据的列。在上面的例子中,column1 被指定为主键。

ALTER TABLE:用于修改现有表结构。

-- 向 table_name 表添加名为 column_name 的新列,数据类型为 datatype``ALTER TABLE table_name ADD column_name datatype;``   ``-- 从 table_name 表删除名为 column_name 的列``ALTER TABLE table_name DROP COLUMN column_name;``   ``   ``-- 修改 table_name 表中 column_name 列的数据类型为 datatype``ALTER TABLE table_name MODIFY COLUMN column_name datatype;

DROP TABLE:用于删除表。

DROP TABLE table_name;

三、数据操作语句

**INSERT INTO:**用于向表中插入数据。

INSERT INTO table_name (column1, column2) VALUES (value1, value2);

这个语句将向 table_name 表中插入一行数据,其中 column1 列的值设为 value1,column2 列的值设为 value2。

如果列名列表中包含表中的所有列,则不需要指定列名,可以直接使用INSERT INTO table_name VALUES (…); 的语法。

**UPDATE:**用于更新表中的数据。

UPDATE table_name` `SET column1 = value1, column2 = value2` `WHERE condition;

在 table_name 表中,找到满足 condition 条件的行,并将这些行的 column1 列更新为 value1,column2 列更新为 value2。

**DELETE:**用于删除表中的数据。

DELETE FROM table_name WHERE condition;

四、函数与聚合操作

**COUNT:**用于返回匹配条件的行数。

SELECT COUNT(column_name) FROM table_name;

**SUM:**用于返回列的总和。

SELECT SUM(column_name) FROM table_name;

**AVG:**用于返回列的平均值。

SELECT AVG(column_name) FROM table_name;

**MIN:**用于返回列的最小值。

SELECT MIN(column_name) FROM table_name;

**MAX:**用于返回列的最大值。

SELECT MAX(column_name) FROM table_name;

五、子查询与联接

**INNER JOIN:**用于返回两个表中都存在的记录。

SELECT column1, column2 FROM table1` `INNER JOIN table2` `ON table1.column_name = table2.column_name;

从 table1 和 table2 中选择满足连接条件的行,返回 column1 和 column2 这两列的数据。

内连接只有当两个表中都有匹配的行时,结果才会包含这些行。

**LEFT JOIN:**用于返回左表中的所有记录和右表中的匹配记录。

SELECT column1, column2 FROM table1` `LEFT JOIN table2` `ON table1.column_name = table2.column_name;

从 table1 选择所有行,并包括 table2 中与 table1 指定列值匹配的行,如果 table2 中没有匹配的行,那么结果集中 table2 的列将显示为 NULL。

**RIGHT JOIN:**用于返回右表中的所有记录和左表中的匹配记录。

SELECT column1, column2 FROM table1` `RIGHT JOIN table2` `ON table1.column_name = table2.column_name;

从 table2 选择所有行,并包括 table1 中与 table2 指定列值匹配的行,如果 table1 中没有匹配的行,那么结果集中 table1 的列将显示为 NULL。

右连接查询通常用于当 table2 是主要的数据源,而 table1 是补充数据源时。

**FULL JOIN:**用于返回两个表中所有记录,不管是否匹配。

SELECT column1, column2 FROM table1` `FULL JOIN table2` `ON table1.column_name = table2.column_name;

从 table1 和 table2 中选择所有行,包括两个表中所有匹配和不匹配的行,如果某个表中没有匹配的行,那么结果集中该表的列将显示为 NULL。

全外连接查询通常用于需要从两个表中获取所有数据,而不考虑它们之间是否存在匹配关系的情况。

**SUBQUERY:**用于在查询语句中嵌套另一个查询。

SELECT column1 FROM table_name` `WHERE column2 = (SELECT column2 FROM table_name2 WHERE condition);

从 table_name 表中选择那些其 column2 列的值等于子查询返回的值的行的 column1 列。

六、高级操作

**UNION:**用于合并两个或多个 SELECT 语句的结果集。

SELECT column1 FROM table_name1` `UNION SELECT column1 FROM table_name2;

将 table_name1 和 table_name2 两个表中 column1 列的值合并为一个结果集,并且结果集中不会有重复的行。

**CASE:**用于实现条件逻辑。

SELECT column1,`       `CASE`           `WHEN condition1 THEN result1`           `WHEN condition2 THEN result2`           `ELSE result`       `END``FROM table_name;

在查询 table_name 表时,根据列 column1 或其他列的值与 condition1 或 condition2 的匹配情况,返回相应的 result1 或 result2,如果都不匹配,则返回 result。

CASE 表达式允许你在 SQL 查询中根据多个条件进行数据转换或选择不同的值。

**INDEX:**用于创建索引以加速查询。

CREATE INDEX index_name ON table_name (column1, column2);

在 table_name 表上创建一个名为 index_name 的索引。

**七、性能优化与安全性
**

EXPLAIN:用于查看查询的执行计划。

EXPLAIN SELECT column1 FROM table_name WHERE condition;

TRANSACTION:用于处理事务。

START TRANSACTION;``UPDATE table_name SET column1 = value1 WHERE condition;``COMMIT;

**GRANT:**用于授予用户权限。

GRANT SELECT ON database_name.table_name TO 'user'@'host';

**REVOKE:**用于撤销用户权限。

REVOKE SELECT ON database_name.table_name FROM 'user'@'host';

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

SQL快速入门(基本用法) 基本语句用法 阅读详情

相关推荐

SQL语句-入门到精通

SQL,Structured Query Language,中文结构化查询语言,是一种对关系数据库 数据定义和操作语言。sql_mode是对SQL语法控制和效验的一套规则having用途having子句常用在group by子句过滤后,再进行判断筛选。having子句实践#1.统计中国每个省的城市个数,并把超过10个城市个数的输出#使用聚合函数,GROUP_CONCAT(NAME)#生产经验:having子句不走索引,效率低,尽量减少使用,除非结果集很少,如果结果集大,且非要用,可以从库做。

gqren003 2396

【网络安全零基础入门必知必会】SQL语言入门(非常详细)零基础入门到精通,收藏这一篇就够了(02)

格式通常是 `SELECT column_name(s) FROM table_name WHERE condition`,其中 `column_name(s)` 是要查询的列,`table_name` 是数据表名,`condition` 是筛选条件。: 即数据库定义语句,用来创建数据库中的表、索引、视图、存储过程、触发器等对象。1.2 数据类型:数字型(int,tinyint,decimal,float等)、日期和时间类型(Date,TIME等)、字符串类型(char,varchar等)。

Libra1313的博客 2862

SQL 快速参考手册

SQL 快速参考手册。

@HNUSTer的博客 1492

SQL语言入门(非常详细)零基础入门到精通,收藏这一篇就够了

SQL语言入门(非常详细)零基础入门到精通,收藏这一篇就够了

2302_76672693的博客 3万+

STM8开发环境搭建(STVD + COSMIC)

一、STM8开发IDE 1. STVD + COSMIC ST Visual Develop (STVD)只支持汇编开发,C语言开发需要再安装COSMIC,配套起来使用。 2. IAR IAR也可以用来开发STM8 下面介绍STVD + COSMIC的搭建方式 二、环境搭建 1. STVD下载、安装 直接从官网下载:https://www.st.com/en/development-tools/stvd-stm8.html 安装很简单,基本下一步往下点。 2. COSMIC下载、安装 对于stm8可以使用3

a183635870的博客 1万+

用PLECS搞定三相逆变器电流环:从传递函数推导到PI参数整定的保姆级教程

本文提供了一份详细的PLECS教程,指导如何从传递函数推导到PI参数整定,实现三相逆变器电流环的闭环控制。通过坐标变换、控制器设计和仿真验证等步骤,帮助工程师快速掌握电流环控制技术,提升电力电子系统的稳定性和可靠性。

weixin_27102543的博客 399

【2025版】最新SQL 速成手册,零基础入门到精通,收藏这篇就够了

从 table1 选择所有行,并包括 table2 中与 table1 指定列值匹配的行,如果 table2 中没有匹配的行,那么结果集中 table2 的列将显示为 NULL。从 table2 选择所有行,并包括 table1 中与 table2 指定列值匹配的行,如果 table1 中没有匹配的行,那么结果集中 table1 的列将显示为 NULL。从 table1 和 table2 中选择所有行,包括两个表中所有匹配和不匹配的行,如果某个表中没有匹配的行,那么结果集中该表的列将显示为 NULL。

Javachichi的博客 2432

关于 Python PyQt5 界面运行时提示无法初始化Qt平台的解决方案

关于 Python PyQt5 界面运行时提示无法初始化Qt平台的解决方案

smart_num_1的博客 6883

【2026版】最新SQL 速成手册,零基础入门到精通,收藏这篇就够了

SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作关系型数据库的标准化编程语言。SQL 被广泛用于数据库系统中(如 MySQL、PostgreSQL、Oracle、SQL Server),用于执行查询、更新数据、管理数据库结构和控制数据库访问权限。SELECT - 用于从数据库中选择数据,返回结果集。WHERE - 用于过滤记录,指定查询条件。ORDER BY - 用于对结果集进行排序,可以按升序或降序排列。

小司机的奥拓 511

[运营] ext4分区遇到“Structure needs cleaning”问题,怎么解决 - 结构需要清理

摘要:当ext4文件系统出现"Structure needs cleaning"错误时,表明存在元数据损坏。解决方法包括:1)检查系统日志确认错误;2)卸载受影响分区;3)使用fsck.ext4分步骤修复(先测试模式-n,再保守修复-p,严重损坏时用-y强制修复);4)检查修复结果;5)重新挂载。若数据丢失可尝试从lost+found恢复。建议定期备份、避免异常关机并定期检查文件系统,以防硬件故障导致类似问题。修复前务必备份重要数据。

Rudon滨海渔村的博客 1359

统信UOS/麒麟ARM桌面版,不联网也能用Docker部署MySQL 5.7(离线部署详解)

本文详细介绍了在统信UOS/银河麒麟ARM桌面版系统中,如何离线部署MySQL 5.7的完整流程。通过Docker技术实现环境隔离和依赖封装,解决了封闭网络环境下的部署难题,包括资源准备、系统配置、容器化部署及安全加固等关键步骤,为政企和科研场景提供实用解决方案。

weixin_30892037的博客 229

awvs使用教程(非常详细),零基础入门到精通,看这一篇就够了

awvs使用教程(非常详细),零基础入门到精通,看这一篇就够了

分享Python知识 1万+

正弦波、方波、三角波和锯齿波信号发生器——Multisim电路仿真

调节方波信号的占空比,也就是改变输出信号的高低电平时间比例,可以设置电容不同的充放电时间来达到目的,RP2可以使得电容具有不同的充放电时间,其中二极管起到限制电流流向的作用。假设U+>U,那么输出端就达到正向饱和,电容开始充电,当电容电压大于同相输入端电压时,此时电容开始放电,由此往复,从而产生方波信号。3,正反馈支路占优势,电路开始起振并不是稳定的,振荡会不断增大,最终将导致运放饱和,输出的波形是削波失真的正弦波。通常在电路中引入负反馈,例如使用负温度系数的热敏电阻,以自动稳定增益,防止输出波形失真。

XU157303764的博客 5319
上一篇: 企业网络安全运营之管理篇(非常详细)零基础入门到精通,收藏这一篇就够了
下一篇: 什么是HVV行动(网络攻防演习)?什么是红蓝对抗?(非常详细)零基础入门到精通,收藏这一篇就够了
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值