数据库
首页 > 数据库> > 2021最详细的MySQL数据库入门学习路线(附学习资料)

2021最详细的MySQL数据库入门学习路线(附学习资料)

作者:互联网

SQL 教程

SQL 是用于访问和处理数据库的标准的计算机语言。

在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据,这类数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。

SQL 简介

SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。

SQL 是什么?

SQL 能做什么?

SQL 是一种标准 - 但是…

虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。

然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。

注释:除了 SQL 标准之外,大部分 SQL 数据库程序都拥有它们自己的专有扩展!

在您的网站中使用 SQL

要创建一个显示数据库中数据的网站,您需要:

SQL 语法

数据库表

一个数据库通常包含一个或多个表。每个表有一个名字标识(例如:“Websites”),表包含带有数据的记录(行)。

在本教程中,我们在 MySQL 的 RUNOOB 数据库中创建了 Websites 表,用于存储网站记录。

我们可以通过以下命令查看 “Websites” 表的数据:

mysql> use RUNOOB;
Database changed

mysql> set names utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM Websites;
+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+
5 rows in set (0.01 sec)

解析

SQL 语句

您需要在数据库上执行的大部分工作都由 SQL 语句完成。

下面的 SQL 语句从 “Websites” 表中选取所有记录:

实例

SELECT * FROM Websites;

请记住…

SQL 对大小写不敏感:SELECT 与 select 是相同的。

SQL 语句后面的分号?

某些数据库系统要求在每条 SQL 语句的末端使用分号。

分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。

在本教程中,我们将在每条 SQL 语句的末端使用分号。

一些最重要的 SQL 命令

SQL SELECT 语句

SELECT 语句用于从数据库中选取数据。

结果被存储在一个结果表中,称为结果集。

SQL SELECT 语法

SELECT column_name,column_name
FROM table_name;

SELECT * FROM table_name;

演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

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

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

SELECT Column 实例

下面的 SQL 语句从 “Websites” 表中选取 “name” 和 “country” 列:

SELECT name,country FROM Websites;

输出结果为:

SELECT * 实例

下面的 SQL 语句从 “Websites” 表中选取所有列:

实例

SELECT * FROM Websites;

输出结果为:

结果集中的导航

大多数数据库软件系统都允许使用编程函数在结果集中进行导航,比如:Move-To-First-Record、Get-Record-Content、Move-To-Next-Record 等等。

SQL SELECT DISTINCT 语句

SQL SELECT DISTINCT 语法

SELECT DISTINCT column_name,column_name
FROM table_name;

在本教程中,我们将使用 RUNOOB 样本数据库。

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

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

SELECT DISTINCT 实例

下面的 SQL 语句仅从 “Websites” 表的 “country” 列中选取唯一不同的值,也就是去掉 “country” 列重复值:

实例

SELECT DISTINCT country FROM Websites;

输出结果:

SQL WHERE 子句

SQL WHERE 语法

演示数据库

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

WHERE 子句实例

下面的 SQL 语句从 “Websites” 表中选取国家为 “CN” 的所有网站:

实例

SELECT * FROM Websites WHERE country='CN';

执行输出结果:

文本字段 vs. 数值字段

实例

SELECT * FROM Websites WHERE id=1;

执行输出结果:

WHERE 子句中的运算符

下面的运算符可以在 WHERE 子句中使用:

SQL AND & OR 运算符

演示数据库

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

AND 运算符实例

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

实例

SELECT * FROM Websites
WHERE country='CN'
AND alexa > 50;

执行输出结果:

OR 运算符实例

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

实例

SELECT * FROM Websites
WHERE country='USA'
OR country='CN';

执行输出结果:

结合 AND & OR

实例

SELECT * FROM Websites
WHERE alexa > 15
AND (country='CN' OR country='USA');

执行输出结果:

SQL ORDER BY 关键字

SQL ORDER BY 语法

SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;

演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。
下面是选自 “Websites” 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

ORDER BY 实例

下面的 SQL 语句从 “Websites” 表中选取所有网站,并按照 “alexa” 列排序:

实例

SELECT * FROM Websites
ORDER BY alexa;

执行输出结果:

ORDER BY DESC 实例

下面的 SQL 语句从 “Websites” 表中选取所有网站,并按照 “alexa” 列降序排序:

实例

SELECT * FROM Websites
ORDER BY alexa DESC;

执行输出结果:

ORDER BY 多列

下面的 SQL 语句从 “Websites” 表中选取所有网站,并按照 “country” 和 “alexa” 列排序:

实例

SELECT * FROM Websites
ORDER BY country,alexa;

执行输出结果:

SQL INSERT INTO 语句

SQL INSERT INTO 语法

INSERT INTO table_name
VALUES (value1,value2,value3,...);

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

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

演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。
下面是选自 “Websites” 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

INSERT INTO 实例

实例

INSERT INTO Websites (name, url, alexa, country)
VALUES ('百度','https://www.baidu.com/','4','CN');

执行以上 SQL,再读取 “Websites” 表,数据如下所示:

您是否注意到,我们没有向 id 字段插入任何数字?
id 列是自动更新的,表中的每条记录都有一个唯一的数字。

在指定的列插入数据

实例

INSERT INTO Websites (name, url, country)
VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND');

执行以上 SQL,再读取 “Websites” 表,数据如下所示:

SQL UPDATE 语句

SQL UPDATE 语法

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

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

演示数据库

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

SQL UPDATE 实例

实例

UPDATE Websites 
SET alexa='5000', country='USA' 
WHERE name='菜鸟教程';

执行以上 SQL,再读取 “Websites” 表,数据如下所示:

Update 警告!

在更新记录时要格外小心!在上面的实例中,如果我们省略了 WHERE 子句,如下所示:

UPDATE Websites
SET alexa='5000', country='USA'

SQL DELETE 语句

SQL DELETE 语法

DELETE FROM table_name
WHERE some_column=some_value;

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

演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。
下面是选自 “Websites” 表的数据

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝       | https://www.taobao.com/   | 13    | CN      |
| 3  | 菜鸟教程 | http://www.runoob.com/    | 4689  | CN      |
| 4  | 微博       | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

SQL DELETE 实例

实例

DELETE FROM Websites
WHERE name='Facebook' AND country='USA';

执行以上 SQL,再读取 “Websites” 表,数据如下所示:

删除所有数据

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

DELETE FROM table_name;

或

DELETE * FROM table_name;

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

总结

篇幅有限!篇幅有限!关于缓存架构技术:MySQL学习路线,就聊到这儿啦…啦…啦…

——祝前程似锦,offer不断,好好学习,天天向上!

标签:www,name,MySQL,Websites,学习,2021,SQL,com,CN
来源: https://blog.csdn.net/weixin_55932383/article/details/116174336