Menu-ngang

☰ MENU

22/04/2024

Cơ sở dữ liệu MySQL

 1. Giới thiệu MySQL

Đầu tiên, hãy phát âm đúng. Nhiều người đọc nó là “my sequel” hoặc khác, nhưng phát âm chính thức là là: MY-ES-KYOO-EL’ [maɪˌɛsˌkjuːˈɛl]. Công ty Thuy Điển MySQL AB phát triển MySQL vào năm 1994. Công ty công nghệ Mỹ Sun Microsystem sau đó giữ quyền sở hữu MySQL sau khi mua lại MySQL vào năm 2008. Năm 2010, gã khổng lồ Oracle mua Sun Microsystems và MySQL thuộc quyền sở hữu của Oracle từ đó.

Quay lại với khái niệm chính, MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server. RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữ liệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng.

MySQL là một trong số các phần mềm RDBMS. RDBMS và MySQL thường được cho là một vì độ phổ biến quá lớn của MySQL. Các ứng dụng web lớn nhất như Facebook, Twitter, YouTube, Google, và Yahoo! đều dùng MySQL cho mục đích lưu trữ dữ liệu. Kể cả khi ban đầu nó chỉ được dùng rất hạn chế nhưng giờ nó đã tương thích với nhiều hạ tầng máy tính quan trọng như Linux, macOS, Microsoft Windows, và Ubuntu.

Database

Database là tập hợp dữ liệu theo cùng một cấu trúc. Hãy thử nghĩ về việc chụp hình tự sướng: bạn nhấn nút chụp ảnh về chính bản thân bạn. Hình ảnh là dữ liệu, thư viện lưu ảnh là cơ sở dữ liệu. Cơ sở dữ liệu, hay database, là nơi chứa và sắp đặt dữ liệu. Dữ liệu được đặt trong một bộ dữ liệu chung, dataset, được tổ chức sắp xếp giống như một bảng tính vậy. Mỗi “bảng” này có liên hệ với nhau theo cách nào đó. Vì vậy từ Relational (liên hệ) trong RDBMS có ý nghĩa như vậy. Nếu phần mềm không hỗ trợ mô hình dữ liệu quan hệ với nhau như vậy thì gọi là DBMS.

Open source

Open source dịch là mã nguồn mở, có nghĩa là ai cũng có thể dùng và chỉnh sửa nó. Bất kỳ ai cũng có thể cài đặt phần mềmn ày. Bạn cũng có thể học cách tùy chỉnh phần mềm theo nhu cầu của bạn. Tuy nhiên, giấy phép GPL (GNU Public License) quyết định bạn có thể làm gì tùy vào điều kiện nhất định. Phiên bản thương mại cũng được xuất bản nếu bạn cần thêm chủ quyền linh hoạt và hỗ trợ cao cấp.

Mô hình Client-server

Máy tính cài đặt và chạy phần mềm RDBMS được gọi là client (máy khách). Mỗi khi chúng cần truy cập dữ liệu, chúng kết nối tới máy chủ (server) RDBMS. Cách thức này chính là mô hình “client-server”.

MySQL Server

MySQL Server là máy tính hay một hệ các máy tính cài đặt phần mềm MySQL dành cho server để giúp bạn lưu trữ dữ liệu trên đó, để máy khách có thể truy cập vào quản lý. Dữ liệu này được đặt trong các bảng, và các bảng có mối liên hệ với nhau. MySQL server nhanh, an toàn, đáng tin cậy. Phần mềm MySQL cũng miễn phí và được phát triển, phân phối và hỗ trợ bởi Oracle Corporation.

MySQL Client

MySQL client không hẵn phải cài phần mềm MySQL của Oracle mà là nói chung của mọi phần mềm có thể thực hiện truy vấn lên một MySQL server và nhận kết quả trả về. MySQL client điển hình là đoạn mã PHP script trên một máy tính hay trên cùng server dùng để kết nối tới cơ sở dữ liệu MySQL database. Phpmyadmin cũng là một MySQL client có giao diện người dùng. Một số công cụ miễn phí dùng làm MySQL là:

MySQL Workbench (Mac, Windows, Linux), Miễn phí, mã nguồn mở

Sequel Pro (Mac), miễn phí, mã nguồn mở

HeidiSQL (Windows; chạy trên Mac hoặc Linux bằng WINE emulator), miễn phí

phpMyAdmin (web app), miễn phí, mã nguồn mở

SQL

MySQL và SQL không giống nhau. Hãy nhớ, MySQL là một trong các phần mềm RDBMS, hoạt động theo mô hình client-server. Nhưng, làm thế nào clietn và server liên lạc với nhau trong môi trường của RDBMS? Chúng sử dụng ngôn ngữ truy vấn có cấu trúc chung – Structured Query Language (SQL). Nếu bắt gặp một thương hiệu nào đó có SQL kèm theo, như PostgreSQL, Microsoft SQL server, chúng thường là những thương hiệu sử dụng syntax của SQL. RDBMS software lại được viết bằng ngôn ngữ lập trình, nhưng luôn sử dụng SQL làm ngôn ngữ chính để tương tác với database. 

2. Tạo csdl MySQL

B1. Khởi động Xampp --> Mở MySQL (nháy vào nút Admin)

B2. Tạo csdl có tên: mycsdl

Nháy nút New ở cửa số tay trái -->điền thông tin như hình bên dưới -->nháy nút Create


B3. Tạo bảng sanpham: điền thông tin như bên dưới -->nháy Go


-->Tạo các cột cho bảng: -->nháy Save



B4. Nhập dữ liệu: Nháy chọn bảng sanpham -->nháy nút Insert (ở menu ngang cửa sổ bên phải)

Cách khác: Tạo CSDL bằng code PHP:

Code File TaoCSDLBanHang.php: File này sẽ tạo ra cơ sở dữ liệu trong MySQL với tên
csdl là csdlbanhang và bảng sanpham
(Chú ý: Có thể copy code bên dưới dán vô file TaoCSDLBanHang.php)
<?php
// BƢỚC 1: TẠO DATABASE
// Tạo kết nối
$conn = mysqli_connect('localhost', 'root', '', 'mysql') or
    die("Không kết nối đƣợc với csdl");
mysqli_set_charset($conn, 'UTF8');
// Lệnh tạo database
$sql = "CREATE DATABASE csdlbanhang CHARACTER SET 'utf8' COLLATE
'utf8_unicode_ci'";
// Thực thi câu truy vấn
if (mysqli_query($conn, $sql))
{
    echo 'Tạo database thành công!';
// BƢƠC 2: TẠO TABLE
// Chọn database
mysqli_select_db($conn, 'csdlbanhang');
// Câu lệnh SQL
$sql = "CREATE TABLE sanpham(
    idsp INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    tensp VARCHAR(255) NOT NULL,
    chitietsp TEXT,
    dongia INT(11) NOT NULL,
    urlhinhanh VARCHAR(255) NOT NULL
)";
// Thực thi câu truy vấn
if (mysqli_query($conn, $sql)) {
    echo "Tạo table thành công";
} else {
    echo "Tạo table thất bại: " . mysqli_error($conn);
}
} else {
    echo "Tạo database thất bại: " . mysqli_error($conn);
}
//Them moi 1 dong san pham
$sql = "INSERT sanpham(tensp, chitietsp, dongia, urlhinhanh)
    VALUES('Sản phẩm 1', 'Sản phẩm 1 ...','10000000','Chua_co_hinh.jpg')";
if (mysqli_query($conn, $sql)) {
        echo "Thêm mới 1 dòng dữ liệu mẫu thành công.";
}
    // Tạo xong thì ngắt kết nối
mysqli_close($conn);
?>


3. Thực hiện truy vấn CSDL

Cách 1:

Để thực hiện các câu truy vấn SQL trong phpMyAdmin các bạn vào tab “SQL” từ menu điều hướng sẽ có 1 cửa sổ thực hiện lệnh SQL hiện ra để nhập SQL vào:


Cách 2: Dùng các lệnh thao tác cột và hàng trong bảng:

- Kết nối CSDL:
$conn = mysqli_connect('localhost', 'root', '', 'mysql') or
    die("Không kết nối đƣợc với csdl");

- Hiển thị các column trong table:
$sql = "DESC mytable";
hoặc
$sql = "SHOW COLUMNS FROM mytable";

- Select dữ liệu (hiển thị dữ liệu):
$sql = "SELECT * FROM mytable WHERE mycolumn='mydata' ORDER BY mycolumn2";

- Insert dữ liệu vào table (thêm mới dữ liệu):
$sql = "INSERT INTO mytable VALUES('column1data','column2data','column3data','column4data','column5data','column6data','column7data','column8data','column9data')";

- Cập nhật dữ liệu trong table (cập nhật dữ liệu):
$sql = "UPDATE mytable SET column1='mydata' WHERE column2='mydata'";

- Xóa dữ liệu trong table:
$sql = "DELETE FROM mytable WHERE mycolumn='mydata'";

- Thực thi câu lệnh:
mysqli_query($conn, $sql)

4. Sao lưu cơ sở dữ liệu ( Export )

Để sao lưu cơ sở dữ liệu, chúng ta sẽ truy cập vào CSDL cần sao lưu. Sau đó vào tab “Export” tính năng này của phpMyAdmin sẽ trích xuất toàn bộ CSDL. Có 2 kiểu để export là Quick và Custom:

Quick sẽ export theo mặc định được cài đặt trong phpMyAdmin mà chúng ta không cần phải set thêm gì cả chứ không phải là export tốc độ nhanh Custom sẽ hiển thị ra tất cả các option cho chúng ta lựa chọn và thiết lập để export theo ý của chúng ta.

Chúng ta có thể chọn 1 trong các định dạng ( Format ) để export và có 2 kiểu để export :

  • SQL: định dạng này sẽ xuất ra toàn bộ các câu lệnh SQL để có thể phục hồi
  • CSV: xuất kết qủa ra dạng table trong excel thường được sử dụng để trích xuất kết qủa table 
  • PDF, PHP array …

6: Phục hồi CSDL ( Import)

Để phục hồi CSDL, chúng ta sẽ tạo ra 1 CSDL liệu mới để có thể import được toàn bộ CSDL vào. Sau khi tạo xong, chúng ta truy cập vào CSDL đó và qua tab “Import” . Để import vào thì bạn cần Export ở bước trên là định dạng SQL. Sau đó chúng ta click vào Browse để chọn file trên máy tính của mình cần import vào: