Walaupun kemunculan pangkalan data NoSQL moden seperti MongoDB, Firebase dan Redis dalam beberapa tahun kebelakangan ini, pangkalan data SQL kekal sangat popular di kalangan pembangun.
SQL (Bahasa Pertanyaan Berstruktur) ialah bahasa yang digunakan untuk berinteraksi dengan data dalam pelbagai pangkalan data, termasuk pangkalan data popular seperti MySQL, PostgreSQL, Oracle dan MS SQL Server.
Dalam artikel ini, anda akan mempelajari semua yang anda perlu ketahui untuk bermula dengan MySQL, pangkalan data sumber terbuka yang memperkasakan sistem pengurusan kandungan seperti WordPress, platform e-dagang seperti Shopify dan platform media sosial seperti Twitter.
Anda akan mempelajari cara MySQL berfungsi, pangkalan data hubungan dan beberapa konsep utamanya, cara memasang dan berinteraksi dengan pangkalan data MySQL menggunakan baris arahan, dan sintaks SQL moden untuk mencipta, membaca, mengemas kini dan memadam data dalam MySQL.
Kebanyakan pembangun yang bekerja dengan pangkalan data hubungan sebenarnya tidak menulis SQL mentah. Lebih biasa, mereka menggunakan perpustakaan yang melakukan pemetaan hubungan objek, atau ORM.
Perpustakaan ini pada asasnya menjadikan jadual pangkalan data anda kelihatan seperti objek pada bahagian pelayan tapak anda, jadi anda boleh memanipulasi data dengan mudah menggunakan mana-mana bahasa pengaturcaraan berorientasikan objek pilihan anda.
Contoh ORM termasuk Sequelize (JavaScript), Eloquent (Laravel), SQLAlchemy (Python) dan Active Record (Ruby on Rails).
ORM menghapuskan keperluan untuk menulis kod SQL mentah. Sebaliknya, anda boleh menggunakan pengetahuan anda tentang pengaturcaraan berorientasikan objek untuk mencipta, membaca, mengemas kini dan memadam data pada pangkalan data SQL. ORM menjadikan penggunaan pangkalan data hubungan lebih mudah dan lebih intuitif.
Pada asasnya, sistem pengurusan pangkalan data hubungan terdiri daripada dua komponen utama: pangkalan data dan bahasa pertanyaan.
Pangkalan data itu sendiri hanyalah koleksi jadual. Dalam setiap jadual, data sebenar anda disusun ke dalam lajur dan baris, sama seperti hamparan. Jadual dalam pangkalan data hubungan boleh dipautkan atau berkaitan berdasarkan data biasa untuk setiap jadual.
Bahasa pertanyaan digunakan untuk memanipulasi dan membaca data dalam pangkalan data. Bagi kebanyakan pangkalan data hubungan, bahasa pertanyaan yang digunakan untuk memanipulasi data ialah variasi SQL.
Jika anda ingin mempelajari cara menggunakan MySQL, kita mesti terlebih dahulu memahami beberapa konsep asas untuk menerangkan konsep pangkalan data SQL berikut secara visual, saya akan menggunakan alat visualisasi pangkalan data yang dipanggil DrawSQL. Pertama, kita akan belajar tentang skema dan jenis data.
Skema dan jenis dataSebagai contoh, pertimbangkan skema jadual
Pengguna berikut:
Dalam rajah jadual di atas, anda akan melihat bahawa setiap baris ialah kamus di mana kekunci mewakili lajur dalam pangkalan data dan nilai mewakili jenis data yang boleh disimpan di dalamnya.Terdapat pelbagai jenis data dalam MySQL, dan jenis data pangkalan data SQL yang berbeza juga berbeza.
Anda juga akan melihat bahawa kekunci
id
yang menerima nilai integer juga didahului oleh kekunci. Ini menunjukkan bahawa id
ditakrifkan menggunakan kekangan kunci utamaid
键前面也有一个键。这表明 id
是使用主键约束定义的。
因此每一列的id
的值不能为空,且必须唯一。因此,两个或多个用户永远不能共享相同的主键,并且每一行都可以通过其主键来标识。
这些规则共同构成了users 表的架构。
让我们更深入地了解 MySQL 数据库中的约束。
我们之前看到了主键约束,它确保指定键的值对于表中的每一列都是唯一的。
在 MySQL 中,约束是允许或限制表中存储哪些值的规则。它们有助于限制将插入表中的数据类型,确保表内数据的准确性和完整性。
MySQL 中常用以下约束:
NOT NULL
:确保列不能有 NULL 值UNIQUE
:确保列中的所有值都彼此不同主键
:NOT NULL 和UNIQUE 的组合——唯一标识表中的每一行外键
:用于将两个表链接在一起CREATE INDEX
:用于快速创建数据库并从数据库检索数据CHECK
:确保列中的值满足指定条件DEFAULT
. id
dalam setiap lajur tidak boleh kosong dan mestilah unik. Oleh itu, dua atau lebih pengguna tidak boleh berkongsi kunci utama yang sama dan setiap baris boleh dikenal pasti melalui kunci utamanya. pengguna.
Mari kita lihat dengan lebih mendalam tentang kekangan dalam pangkalan data MySQL. 🎜 🎜Kekangan🎜 🎜Kami melihat lebih awal kekangan kunci utama, yang memastikan bahawa nilai kunci yang ditentukan adalah unik untuk setiap lajur dalam jadual. 🎜 🎜Dalam MySQL, kekangan ialah peraturan yang membenarkan atau menyekat nilai mana yang disimpan dalam jadual. Mereka membantu mengehadkan jenis data yang akan dimasukkan ke dalam jadual, memastikan ketepatan dan kesempurnaan data dalam jadual. 🎜 🎜Kekangan berikut biasanya digunakan dalam MySQL: 🎜NOT NULL
: Pastikan lajur tidak boleh mempunyai nilai NULL🎜
Kunci utama
: Gabungan NOT NULL dan UNIQUE - secara unik mengenal pasti setiap baris dalam jadual🎜
Kunci asing
: digunakan untuk memautkan dua jadual bersama🎜
CREATE INDEX
: digunakan untuk mencipta pangkalan data dengan cepat dan mendapatkan semula data daripada pangkalan data🎜
SEMAK
: Pastikan nilai dalam lajur memenuhi syarat yang ditetapkan🎜
DEFAULT
: Menetapkan nilai lalai untuk lajur jika tiada nilai ditentukan🎜
🎜
🎜Penormalan pangkalan data🎜
🎜Untuk menambah lebih banyak konteks, mari kita anggap bahawa jadual 🎜Pengguna🎜 digunakan untuk menyimpan pengguna berdaftar dalam tapak web beli-belah dalam talian. 🎜Biasanya, pangkalan data laman web membeli-belah dalam talian mesti mempunyai jadual produk dan keranjang belanja. produk akan mengandungi semua produk yang tersedia untuk pengguna dan troli beli-belah akan mengandungi item khusus yang pengguna tertentu ingin beli bersama-sama kuantiti setiap item. p>
Semua jadual yang dibuat setakat ini adalah seperti berikut:
Semua jadual ini adalah entiti unik. Ini bermakna, sebagai contoh, jadual carts tidak perlu menyimpan sebarang maklumat tentang pengguna.
Secara teknikal, tiada apa yang menghalang kami daripada menggabungkan data troli beli-belah ke dalam jadual pengguna. Lagipun, kedua-dua set maklumat adalah berkaitan (pengguna mempunyai troli beli-belah). Walau bagaimanapun, pendekatan ini akhirnya membawa kepada meja sesak yang sangat sukar untuk diurus.
Sebaliknya, kami mengambil pendekatan yang lebih mampan dan mencipta troli beli-belah yang berasingan untuk menyimpan semua data berkaitan troli beli-belah. Kami kemudian membuat rujukan kepada jadual lain dengan meletakkan kunci asing user_id
dan product_id
dalam jadual 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
carts
Dengan cara ini troli beli-belah boleh mengakses sebarang maklumat tentang pengguna yang memiliki troli dan produk yang terdapat dalam troli, walaupun tiada maklumat sedemikian sebenarnya disimpan di dalamnya.
Atas ialah kandungan terperinci Mulakan perjalanan MySQL anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!