Rumah  >  Artikel  >  pangkalan data  >  10 Soalan Temuduga MySQL Penting untuk Pentadbir Pangkalan Data

10 Soalan Temuduga MySQL Penting untuk Pentadbir Pangkalan Data

PHPz
PHPzke hadapan
2023-08-23 17:33:02971semak imbas

10 Soalan Temuduga MySQL Penting untuk Pentadbir Pangkalan Data

Sebagai pentadbir pangkalan data, anda perlu mahir dalam MySQL, salah satu sistem pengurusan pangkalan data sumber terbuka yang paling popular. Sama ada anda seorang pemula atau profesional berpengalaman, anda harus bersedia untuk menjawab beberapa soalan asas temuduga MySQL. Dalam artikel ini, kami akan membincangkan beberapa soalan yang paling biasa dan memberikan contoh untuk membantu anda bersedia untuk temu duga anda yang seterusnya.

Apakah MySQL?

MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka (RDBMS) yang menggunakan SQL (Bahasa Pertanyaan Berstruktur) untuk mengurus dan memanipulasi data. Ia pertama kali dikeluarkan pada tahun 1995 dan kini dimiliki oleh Oracle Corporation. MySQL digunakan secara meluas dalam aplikasi web, terutamanya yang dibina menggunakan PHP, dan terkenal dengan kelajuan, kebolehpercayaan dan kemudahan penggunaannya.

Apakah jenis data berbeza yang disokong oleh MySQL?

MySQL menyokong pelbagai jenis data, termasuk −

  • Jenis data berangka − INT, BIGINT, FLOAT, DOUBLE, PERPULUHAN.

  • Jenis data tarikh dan masa - TARIKH, MASA, MASA TARIKH, STAMP MASA.

  • Jenis data rentetan − CHAR, VARCHAR, TEKS, BLOB.

  • Jenis data lain - BOOLEAN, ENUM, SET.

Berikut adalah beberapa contoh−

  • INT − mewakili integer (cth. 5, 10, 100).

  • VARCHAR − mewakili rentetan panjang berubah-ubah (cth. 'hello', 'world').

  • TEKS − mewakili nilai teks yang besar (cth. catatan blog, artikel).

  • TARIKH − mewakili tarikh (cth. '2023-04-03').

  • TIMESTAMP − mewakili tarikh dan masa (cth. '2023-04-03 14:30:00').

Apakah Kunci Utama dalam MySQL?

Kunci utama ialah pengecam unik untuk satu baris dalam jadual MySQL Ia digunakan untuk memastikan setiap baris dalam jadual boleh dikenal pasti secara unik dan boleh diakses dengan cepat menjadi unik dan tidak boleh batal.

Ini adalah contoh −

CREATE TABLE users (
   id INT PRIMARY KEY,
   name VARCHAR(255) NOT NULL,
   email VARCHAR(255) NOT NULL UNIQUE
);

Dalam contoh ini, lajur 'id' ialah kunci utama jadual 'pengguna'. Ia memastikan bahawa setiap pengguna boleh dikenal pasti secara unik melalui ID mereka.

Apakah Kunci Asing dalam MySQL?

Kunci asing ialah lajur atau kumpulan lajur dalam jadual MySQL yang merujuk kepada kunci utama jadual lain. Ia digunakan untuk mewujudkan hubungan antara dua jadual dan memastikan ketekalan data di antara mereka. Kekangan utama asing boleh ditambah pada jadual untuk menguatkuasakan integriti rujukan.

Ini adalah contoh −

CREATE TABLE orders (
   id INT PRIMARY KEY,
   user_id INT,
   product_id INT,
   FOREIGN KEY (user_id) REFERENCES users(id),
   FOREIGN KEY (product_id) REFERENCES products(id)
);

Dalam contoh ini, lajur 'id_pengguna' dan 'id_produk' ialah kunci asing yang merujuk kepada lajur 'id' dalam jadual 'pengguna' dan 'produk', ini memastikan pesanan dikaitkan dengan pengguna dan produk yang sah.

Apakah pandangan dalam MySQL?

Dalam MySQL, paparan ialah jadual maya berdasarkan hasil pernyataan SELECT. Pandangan sering digunakan untuk memudahkan pertanyaan kompleks dan memberikan pandangan abstrak data asas.

Ini adalah contoh −

CREATE VIEW user_orders AS
SELECT u.name, o.product_name, o.order_date
FROM users u
JOIN orders o ON u.id = o.user_id;

Dalam contoh ini, kami telah mencipta paparan yang dipanggil 'pesanan_pengguna' yang mengembalikan nama pengguna, nama produk dan tarikh pesanan untuk semua pesanan. Pandangan ini adalah berdasarkan operasi JOIN antara jadual 'pengguna' dan 'pesanan'.

Apakah perbezaan antara INNER JOIN dan LEFT JOIN dalam MySQL?

INNER JOIN dan LEFT JOIN ialah kedua-dua jenis operasi JOIN yang digunakan untuk menggabungkan baris daripada dua atau lebih jadual. Perbezaan utama antara keduanya ialah INNER JOIN hanya mengembalikan baris yang mempunyai nilai yang sepadan dalam kedua-dua jadual, manakala LEFT JOIN mengembalikan semua baris dari jadual kiri (jadual pertama yang disenaraikan dalam pernyataan JOIN) serta dari jadual kanan daripada garisan yang sepadan.

Ini adalah contoh −

Andaikan kita mempunyai dua jadual, 'pengguna' dan 'pesanan'. Jadual 'pengguna' mengandungi maklumat tentang pengguna, manakala jadual 'pesanan' mengandungi maklumat tentang pesanan yang dibuat oleh pengguna ini.

Untuk mendapatkan senarai semua pengguna dan pesanan mereka yang sepadan, kami boleh menggunakan LEFT JOIN −

SELECT u.name, o.product_name, o.order_date
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;

Pertanyaan ini akan mengembalikan semua pengguna, tidak kira sama ada mereka mempunyai sebarang pesanan dan pesanan sepadan mereka, jika ada.

Untuk mendapatkan senarai pengguna yang telah membuat tempahan, kita boleh menggunakan INNER JOIN −

SELECT u.name, o.product_name, o.order_date
FROM users u
INNER JOIN orders o ON u.id = o.user_id;

Pertanyaan ini hanya akan mengembalikan pengguna yang telah membuat pesanan, dan pesanan mereka yang sepadan.

Apakah indeks dalam MySQL?

Pengindeksan ialah proses mencipta indeks pada satu atau lebih lajur jadual MySQL untuk meningkatkan prestasi pertanyaan. Indeks ialah struktur data yang membolehkan pangkalan data mencari baris dengan cepat berdasarkan nilai dalam lajur yang diindeks.

Ini Contoh

Andaikan kita mempunyai jadual yang dipanggil 'produk' yang mengandungi maklumat tentang produk, termasuk lajur yang dipanggil 'nama_produk'. Untuk meningkatkan prestasi mencari produk mengikut nama, kami boleh membuat indeks pada lajur 'nama_produk' −

CREATE INDEX idx_products_product_name ON products(product_name);

Ini akan mencipta indeks pada lajur 'product_name' pada jadual 'products', membenarkan pangkalan data mencari produk dengan cepat mengikut nama.

在MySQL中,CHAR和VARCHAR数据类型有什么区别?

CHAR和VARCHAR都是MySQL中用于存储字符数据的字符串数据类型。两者之间的主要区别在于,CHAR是固定长度的数据类型,而VARCHAR是可变长度的数据类型。

Here's an Example

如果我们将一个列定义为CHAR(10),无论该列中存储的数据的长度如何,它始终会占用10个字节的存储空间。这意味着,如果我们在该列中存储字符串'hello',它将会被填充空格以占用10个字节的存储空间。

如果我们将一列定义为VARCHAR(10),它将只占用必要的存储空间来存储数据。这意味着如果我们在该列中存储字符串'hello',它将只占用5个字节的存储空间。

一般来说,对于长度固定的列(例如邮政编码),使用CHAR是一个好的实践,而对于长度可变的列(例如产品名称),使用VARCHAR。

什么是MySQL中的子查询?

子查询是在MySQL中嵌套在另一个查询中的查询。子查询可以用于检索将在主查询中使用的数据,或者根据条件过滤数据。

Here's an Example

假设我们有两个表,'users'和'orders'。'users'表包含有关用户的信息,而'orders'表包含有关这些用户下的订单的信息。

要获取所有已下订单的用户列表,我们可以使用子查询 -

SELECT name FROM users WHERE id IN (SELECT user_id FROM orders);

这个查询首先执行子查询,该子查询从'orders'表中返回一个用户ID列表。然后,主查询使用IN运算符过滤'users'表,并返回下单的用户的姓名。

MySQL中的数据库事务是什么?

MySQL中的数据库事务是一系列作为单个工作单元执行的SQL语句。事务用于确保一组SQL语句以原子、一致、隔离和持久(ACID)的方式执行。

Here's an Example

假设我们有一个名为'accounts'的表,其中包含有关银行账户的信息,包括一个名为'balance'的列。要将资金从一个账户转移到另一个账户,我们需要在一个事务中更新两个账户的余额 -

BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

此交易将从ID为1的账户中扣除100美元,并将100美元添加到ID为2的账户中,确保该交易以ACID方式执行。

Atas ialah kandungan terperinci 10 Soalan Temuduga MySQL Penting untuk Pentadbir Pangkalan Data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam