尽管近年来出现了 MongoDB、Firebase 和 Redis 等现代 NoSQL 数据库,但 SQL 数据库在开发人员中仍然非常受欢迎。
SQL(结构化查询语言)是一种用于与各种数据库中的数据交互的语言,包括 MySQL、PostgreSQL、Oracle 和 MS SQL Server 等流行数据库。
在本文中,您将了解开始使用 MySQL 所需的一切知识,MySQL 是一个开源数据库,为 WordPress 等内容管理系统、Shopify 等电子商务平台以及 Twitter 等社交媒体平台提供支持。
您将了解 MySQL 的工作原理、关系数据库及其一些关键概念、如何使用命令行安装 MySQL 数据库并与之交互,以及用于创建、读取、更新和删除数据的现代 SQL 语法在 MySQL 中。
大多数使用关系数据库的开发人员实际上并不编写原始 SQL。更常见的是,他们使用执行对象关系映射或 ORM 的库。
这些库基本上使您的数据库表看起来像站点服务器端的对象,因此您可以使用您选择的任何面向对象的编程语言来轻松操作数据。
ORM 的示例包括 Sequelize (JavaScript)、Eloquent (Laravel)、SQLAlchemy (Python) 和 Active Record (Ruby on Rails)。
ORM 无需编写原始 SQL 代码。相反,您可以利用面向对象编程的知识来创建、读取、更新和删除 SQL 数据库上的数据。 ORM 使关系数据库的使用更加简单、直观。
本质上,关系数据库管理系统由两个主要组件组成:数据库和查询语言。
数据库本身只是表的集合。在每个表中,您的实际数据都按列和行组织,与电子表格相同。关系数据库中的表可以根据每个表通用的数据进行链接或关联。
查询语言用于操作和读取数据库中的数据。对于大多数关系数据库,用于操作数据的查询语言是 SQL 的变体。
如果你想学习如何使用MySQL,我们必须先了解一些基本概念,以便以可视化的方式解释以下SQL数据库概念,我将使用一个名为的数据库可视化工具DrawSQL。首先,我们将了解架构和数据类型。
您可以将架构视为定义表的整体结构及其与其他表的关系的蓝图。
例如,考虑以下用户表的架构:
在上面的表格图中,您会注意到每一行都是一个字典,其中键代表数据库中的列,值代表可以存储在其中的数据类型。
MySQL中有多种数据类型,不同的SQL数据库数据类型也不同。
您还会注意到接受整数值的 id
键前面也有一个键。这表明 id
是使用主键约束定义的。
因此每一列的id
的值不能为空,且必须唯一。因此,两个或多个用户永远不能共享相同的主键,并且每一行都可以通过其主键来标识。
这些规则共同构成了users 表的架构。
让我们更深入地了解 MySQL 数据库中的约束。
我们之前看到了主键约束,它确保指定键的值对于表中的每一列都是唯一的。
在 MySQL 中,约束是允许或限制表中存储哪些值的规则。它们有助于限制将插入表中的数据类型,确保表内数据的准确性和完整性。
MySQL 中常用以下约束:
NOT NULL
:确保列不能有 NULL 值UNIQUE
:确保列中的所有值都彼此不同主键
:NOT NULL 和UNIQUE 的组合——唯一标识表中的每一行外键
:用于将两个表链接在一起CREATE INDEX
:用于快速创建数据库并从数据库检索数据CHECK
:确保列中的值满足指定条件DEFAULT
:如果未指定值,则为列设置默认值为了添加更多上下文,我们假设用户表用于存储在线购物网站中的注册用户。
通常,在线购物网站的数据库中必须有一个产品表和一个购物车表。 产品将包含用户可用的所有产品,购物车将包含特定用户打算购买的特定商品以及每件商品的数量。 p>
到目前为止创建的所有表格如下:
所有这些表都是唯一的实体。例如,这意味着 carts 表不需要存储有关用户的任何信息。
从技术上讲,没有什么可以阻止我们将购物车数据合并到用户表中。毕竟,两组信息都是相互关联的(用户拥有购物车)。然而,这种方法最终会导致表拥挤,从而非常难以管理。
相反,我们采取了更可持续的方法,创建一个单独的购物车表来存储所有与购物车相关的数据。然后,我们通过将外键 user_id
和 product_id
放置在 carts 表中来创建对其他表的引用。
这样,购物车就可以访问有关拥有购物车的用户以及购物车中存在的产品的任何信息,尽管其中没有实际存储任何此类信息。
现在我们已经对 MySQL 和 MySQL 服务器有了更高层次的了解,让我们通过在我们的系统上安装 MySQL 来进行实践。
要在系统上安装 MySQL,请转至 MySQL 社区下载页面并下载 MySQL 安装程序。
下载完成后,运行安装程序并完成安装向导以安装 MySQL。
选择安装类型时,请确保包含 MySQL 服务器产品。我建议使用开发人员默认选项。
成功安装后,您应该可以从命令行访问 MySQL 服务器命令。
但是,要从命令行使用 MySQL,您首先需要验证自己的身份。运行以下命令,并在占位符中填写您的用户名:
mysql -u <your username> -p
系统将提示您输入管理员密码,如果这两个详细信息均正确,您将被授予从命令行访问 MySQL 的权限。
请记住,MySQL 的默认用户名是root,默认密码为空。
要在 MySQL 中创建数据库,我们使用 CREATE DATABASE
语句,后跟数据库名称:
CREATE DATABASE shopping_site;
语句是告诉系统做某事的代码。 SQL 语句始终以分号结尾。大写的单词是保留的 SQL 关键字,SQL 将解释它们来执行某些操作。
运行上述命令将在 MySQL 中创建一个名为 shopping_site 的空数据库。
要查看 MySQL 实例中存在的所有数据库,请运行 SHOW DATABASE
。
要在新数据库中创建表,请使用 CREATE TABLE
语句,后跟表名称和包含我们要在此表中包含的列列表的括号:
CREATE TABLE users( id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(255), last_name VARCHAR(255), email VARCHAR(255) UNIQUE NOT NULL, password VARCHAR(255), created_at TIMESTAMP, updated_at TIMESTAMP );
对于用户中的每一列,我们指定了该列的数据类型。我们还向 id 和 email 列添加了一系列约束。
运行该命令将在数据库中创建一个名为users的空但结构化的表。
要在表中创建新记录,请使用 INSERT INTO
语句,后跟要插入值的表:
INSERT INTO users(first_name, last_name, email, password) VALUES( 'Kingsley', 'Ubah', 'ubahthebuilder@gmail.com', '12345678' );
在第一个括号中,我们指定了要插入值的列。然后,在第二个括号中,我们按照正确的顺序指定要插入的值。
运行该命令会将这些值插入到users表中的指定列中。
要从数据库查询数据,请使用 SELECT
语句。
例如,如果我们想从 users 表中选择所有内容,我们可以使用以下语句:
SELECT * FROM users;
星号 (*
) 代表我们数据库中的所有内容。该语句将返回整个表以及每一列。
如果我们只需要列的子集,例如 id 和 email,我们可以指定列来代替星号:
SELECT id, email FROM users;
在选择数据方面,我们的能力是无限的。
要从 MySQL 中完全删除表,请使用 DROP
语句,后跟表名称:
DROP TABLE users;
现在,使用此命令时需要小心!它将永久删除users表中的所有数据。另外,不要将其与 DROP DATABASE
语句混淆,该语句会删除整个数据库。
MySQL 是一个开源关系数据库管理系统,即使在今天,它仍然为网络的重要部分提供支持。结构化查询语言或 SQL 用于在 MySQL 数据库中操作和存储数据。
在这篇文章中,我们回顾了 SQL 的一些关键概念,包括 ORM、模式、约束和数据库规范化。我们还回顾了 MySQL 的安装和设置过程。
最后,我们介绍了一些负责在 MySQL 中操作数据的 SQL 语句。
以上是踏上您的 MySQL 之旅的详细内容。更多信息请关注PHP中文网其他相关文章!