MySQL – Bài 2: Bước đầu với RDBMS MySQL

mysql bai 2 buoc dau voi rdbms mysql

Giới thiệu về MySQL

MySQL là hệ quản trị cơ sở dữ liệu quan hệ SQL mã nguồn mở thông dụng nhất hiện nay. Đặc điểm chính của nó là có tốc độ kết xuất dữ liệu nhanh và dễ sử dụng. Do đó, nó thường được chọn để phát triển các ứng dụng web, từ yêu cầu của các nghiệp vụ nhỏ đến yêu cầu của các nghiệp vụ lớn.

MySQL được phát triển, được phát hành và được hỗ trợ bởi MySQL AB. Đó là một công ty phát triển phần mềm mã nguồn mở lớn ở Thụy Điển, với hơn 400 nhân viên và có trụ sở ở 25 quốc gia trên thế giới.

Trong loạt bài viết sau đây chúng tôi hướng dẫn các bạn sử dụng MySQL trong môi trường Ubuntu và/hoặc môi trường PHP. Vì thế bạn nên trang bị cho mình một số hiểu biết nhất định về Ubuntu, PHP và HTML.

Đặc điểm của MySQL:

  • MySQL được phát hành theo giấy phép mã nguồn mở, vì thế mà không phải trả bất kỳ chi phí nào khi sử dụng nó.
  • MySQL có đầy đủ các chức năng, từ cơ bản đến cao cấp, của các hệ quản trị cơ sở dữ liệu thương mại khác hiện nay. Nó có thể thao tác trên các tập dữ liệu lớn với một tốc độ khá cao.
  • MySQL hỗ trợ sử dụng SQL trong tương tác cơ sở dữ liệu và kết xuất dữ liệu từ nhiều table khác nhau.
  • MySQL hoạt động được trên nhiều hệ điều hành và làm việc được với nhiều ngôn ngữ khác nhau như: PHP, Ruby, Perl, C/C++, Java,… Đặc biệt, nó rất “thân thiện” với PHP (một ngôn ngữ hỗ trợ mạnh cho việc phát triển ứng dụng web)
  • MySQL hỗ trợ các cơ sở dữ liệu lớn, có thể có hơn 500 triệu record trong một table. Kích thước tập tin của một table có thể hơn 4GB.
  • MySQL có tính tùy chỉnh. Giấy phép mã nguồn mở GPL cho phép người lập trình thay đổi cấu trúc bên trong của MySQL để phù hợp với môi trường phát triển riêng của họ.

Lưu ý khi sử dụng câu lệnh của MySQL:

  • Câu lệnh MySQL kết thúc bởi dấu chấm phảy (;):
    • root@ubuntu:/# mysql -u root -p password;
  • Lệnh MySQL không phân biệt chữ hoa – chữ thường:
    • root@ubuntu:/# Mysql -u Root -p Password;
    • mysql> Show databases;
    • mysql> use qlns;
    • mysql> SELECT * from lylich;
  • Có thể thực hiện nhiều lệnh cùng một lúc (viết trên cùng dòng sau dấu nhắc):
    • mysql> use qlns; SELECT * from lylich;
  • Có thể viết một lệnh MySQL trên nhiền dòng màn hình liên tiếp, bằng cách đặt dấu chấm phẩy (;) ở dòng cuối cùng.
    • Ví dụ: mysql> INSERT INTO user
      • -> (host, user, password,
      • -> select_priv, insert_priv, update_priv)
      • -> VALUES (‘localhost’, ‘tuhocanm’,
      • -> PASSWORD(‘tuhocanm123’), ‘Y’, ‘Y’, ‘Y’);
    • Câu lệnh truy vấn SQL này được sử dụng để thêm một user mới vào table user trong cơ sở dữ liệu đang mở.
    • Ta cũng có thể dùng tùy chọn \c để hủy lệnh.
    • Ví dụ: mysql> INSERT INTO user
      • -> (host, user, password,
      • -> select_priv, insert_priv, update_priv)
      • -> \c
      • mysql>

Cài đặt MySQL

MySQL và tất cả bản phát hành liên quan đều có thể download tại MySQL Downloads. Bao gồm:

  • MySQL – Server cơ sở dữ liệu MySQL: Thực hiện chức năng: Quản lý các cơ sở dữ liệu và các table, điều khiển sự truy cập đến cơ sở dữ liệu của người sử dụng, xử lý các truy vấn SQL,…
  • MySQL client – Các chương trình client MySQL: Được sử dụng để kết nối và tương tác với server cơ sở dữ liệu MySQL.
  • MySQL devel – Các tập tin header và thư viện: Hỗ trợ MySQL trong trường hợp biên dịch các chương trình khác.
  • MySQL shared – Các thư viện chia sẻ cho client MySQL.
  • MySQL bench – Công cụ test hiệu năng của server cơ sở dữ liệu MySQL.

Cài đặt MySQL trên Ubuntu

  • Xem hướng dẫn chi tiết tại: http://tuhocanninhmang.com/lamp-wamp/php-pert-python/huong-dan-cai-dat-he-chuong-trinh-l-a-m-p-tren-ubuntu-step-by-step.htm (Bước 2)

Sử dụng cách tương tự như trên để cài các bản phát hành khác của MySQL:

  • root@ubuntu:/#apt-get install mysql-client -y
  • root@ubuntu:/#apt-get install mysql-devel -y
  • root@ubuntu:/#apt-get install mysql-shared -y
  • root@ubuntu:/#apt-get install mysql-bench -y

Các database, các table được MySQL tạo ra trong quá trình cài đặt được tìm thấy ở thư mục: /var/lib/mysql. Các thư viên liên quan được tìm thấy ở thư mục
/usr/bin và thư mục /usr/sbin.

Cài đặt MySQL trên Windows

Thực hiện tương tự cách cài đặt các chương trình khác trên Windows, chỉ cần bạn down về đúng phiên bản MySQL cho Windows là được.

        Theo mặc định, MySQL được cài đặt vào thư mục C:\mysql.

Ngay sau khi cài đặt, ta nên kiểm tra xem việc cài đặt đã thành công hay chưa, bằng cách, cho thực hiện tập tin mysqld.exe (cú pháp: mysqld.exe –-console) hoặc tập tin mysqld-nt.exe trong thư mục C:\mysql\bin. Đọc các thông báo xuất hiện trên màn hình để biết được MySQL đã được cài đặt thành công hay chưa.

Tập tin mysqld.exe hoặc mysqld-nt.exe được sử dụng cho việc khởi động server cơ sở dữ liệu MySQL (chỉ cần kích đúp chuột vào chúng).

Ta có thể sử dụng thư viện mysqladmin để kiểm tra version của MySQL. Thư viện này chứa ở /usr/bin (ubuntu) hoặc C:\mysql\bin (windows):

                    root@ubuntu:/usr/bin#mysqladmin --version

Kết quả nhận được có dạng như sau:

                    mysqladmin Ver 8.42 Distrib 5.5.32, for debian-linux-gnu on i386

Thông điệp này cũng chứng tỏ server MySQL đã được cài đặt thành công.

Để server MySQL tự động khởi động trong quá trình khởi động máy, ta chỉ cần thêm dòng lệnh: /etc/init.d/mysqld start vào tập tin /etc/rc.local. Trong trường hợp này, thư viện mysqld phải tồn tại trong thư mục /etc/init.d/.

Một số thao tác quản trị server MySQL

Start và shutdown server MySQL

Trước khi bắt đầu làm việc với server cơ sở dữ liệu MySQL ta nên kiểm tra xem nó đã start chưa. Có nhiều cách:

  • Có thể dùng lệnh ps để xem danh sách các tiến trình đang chạy trên hệ thống:
    • root@ubuntu:/#ps –ef | grep mysqld
  • Hoặc dùng lệnh:
    • root@ubuntu:/#/usr/bin/service mysql status

Nếu MySQL đã start (mặc định sau khi cài đặt) thì ta thấy trong danh sách các tiến trình có sự xuất hiện của tiến trình mysql.

Nếu server MySQL chưa start thì ta có thể dùng các lệnh sau để start nó:

root@ubuntu:/#cd /usr/bin

root@ubuntu:/usr/bin#service mysql start

Để stop MySQL ta có thể dùng lệnh:

root@ubuntu:/usr/bin#service mysql stop

Ta có thể sử dụng thư viện mysqladmin để shutdown hoàn toàn MySQL:

root@ubuntu:/usr/bin#mysqladmin –u root –p shutdown

Enter password:

Enter password: <nhập password của account root>

Kết nối đến server MySQL (trên môi trường Ubuntu)

Sử dụng thư viện mysql để kết nối đến server MySQL từ dấu nhắc:

                    root@ubuntu:/#mysql –u root – p                                               

       Enter password:<nhập password của account root>         

        Với root là account có quyền cao nhất với cơ sở dữ liệu MySQL, nó được tạo ra (user name + password) trong quá trình cài đặt MySQL server.

        Nếu kết nối thành công thì dấu nhắc của hệ điều hành sẽ được thay bằng dấu nhắc của MySQL (mysql>). Tại đây bạn có thể thực hiện bất kỳ câu lệnh SQL nào.

        Để hủy kết nối đến server MySQL, quay lại hệ điều hành, ta thực hiện lệnh exit hoặc quit.

                    mysql>quit;              

       root@ubuntu:/#

Tạo một user account mới trong MySQL

Thực hiện theo cách: Sử dụng lệnh truy vấn INSERT để thêm một record mới vào table user (tất cả user account của MySQL chứa ở đây) trong cơ sở dữ liệu mysql.

  • Bước 1: Kết nối đến server cơ sở dữ liệu MySQL (lệnh mysql) và mở cơ sở dữ liệu mysql (lệnh use):
  • Bước 2: Thêm một record mới vào table user (lệnh INSERT INTO).
  • Bước 3: Yêu cầu server MySQL nạp lại các table liên quan đến quyền (FLUSH PRIVILEGES
  • Bước 4: Kiểm tra kết quả (lệnh SELECT).

Lệnh Insert into ở trên thêm vào table user một user account mới: Tên: guest, pass: guest123, với các quyền Select, Insert và Update (được quyền thực hiện các câu truy vấn SQL: Select, Insert và Update) trên cơ sở dữ liệu mysql (tương ứng với các giá trị ‘Y’ trong phần VALUES của câu lệnh).

Kết quả câu lệnh Select cũng cho thấy password đã được MySQL mã hóa, sử dụng hàm password(), trước khi lưu vào cơ sở dữ liệu.

Ta có thể sử dụng các tham số Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, File_priv, Grant_priv, Index_priv,… để thiết lập các uyền tương ứng cho account được tạo.

Làm quen với các lệnh cơ sở dữ liệu MySQL

Lệnh show databases

Lệnh được sử dụng để liệt kê ra tất cả các cơ sở dữ liệu mà có thể được truy cập, đã được tạo trước đó, bởi RDBMS MySQL.

Ví dụ:

mysql>show databases;

Lệnh sẽ liệt kê ra màn hình tất cả các cơ sở dữ liệu đã tạo trong RDBMS MySQL.

Lệnh use <database>

Lệnh được sử dụng để chọn (hay mở (open)) cơ sở dữ liệu, có tên là < database name >, mà user hoặc user’s program muốn thao tác trên nó.

Ví dụ:

mysql>use qlns;

Lệnh chỉ định mở (open) cơ sở dữ liệu qlns, để có thể truy xuất nó.

Lệnh show tables

Lệnh được sử dụng để liệt kê ra tất cả các table trong cơ sở dữ liệu hiện tại, đó là cơ sở dữ liệu đang được mở với lệnh use.

Ví dụ:

mysql>use qlns;

mysql>show tables;

Lệnh sẽ liệt kê ra màn hình tất cả các table có trong cơ sở dữ liệu đang được mở: qlns. Đo đó, trước khi thực hiện lệnh show tablesta phải thực hiện lệnh use.

Lệnh show columns from <table name>

Lệnh được sử dụng để xem cấu trúc của một table, có tên là <table name>, gồm các thông tin về: Tên column, kiểu dữ liệu của column, khóa của table,…

Ví dụ:

mysql>use qlns;

mysql>show columns from lylich;

Lệnh cho biết cấu trúc của table lylich, một table của cơ sở dữ liệu đang được mở: qlns.

Hình trên cho thấy cấu trúc của table có tên là Servers, nó gồm 9 trường (field): Server_Name (có kiển Character, dài tối đa 64 kí tự, không chấp nhận giá trị Null), Host, Db, Username, Pass,… Trong đó trường Server_name là khóa chính của table này.

Lệnh show index from <table name>

Lệnh được sử dụng để xem chi tiết của tất cả các index trong table, có tên là <table name>, bao gồm cả khóa chính.

Ví dụ:

mysql>use hshs;

mysql>use qlns;

mysql>show index from lylich;

Lệnh sẽ hiển thị thông tin về chỉ mục (Index) của table lylich trong cơ sở dữ liệu qlns. Nên nhớ rằng use vừa có tác dụng mở cơ sở dữ liệu được chỉ ra, vừa có tác dụng đóng lại (close) cơ sở dữ liệu đã đang được mở trước đó.

0 0 Bình chọn
Đánh giá bài viết
Đăng ký
Nhận thông báo cho
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận