Nói về hệ quản trị cơ sở dữ liệu MySQL, nó là một phần to lớn khác, các bạn chắc chắn không thể nào học hết trong phạm vi 1 bài viết hay dăm ba bài viết được. Nhưng mình cũng cố gắng tổng hợp tất cả các kiến về MySQL trong bài này, tóm lược các ý chính, để các bạn có thể nắm sơ qua để chúng ta có thể thực hành trong các bài viết sau này để bỡ ngỡ.

Đây là 1 bài viết khá dài giới thiệu chi tiết về hệ quản trị cở sở dữ liệu MySQL, chính vì thế mình yêu cầu các bạn chuẩn bị tư tưởng như sau:

  1. Nếu bạn không đủ kiên nhẫn để đọc hết thì mình khuyên các bạn bookmark bài này lại, để dành tham khảo và áp dụng khi có việc cần đến liên quan đến MySQL
  2. Không nhất thiết phải cố gắng ghi nhớ hết trong bài viết này, mà hãy nắm tổng quát để biết nó là gì, chúng ta có thể quay lại tham khảo nó sau
  3. Có thắc mắc hay góp ý gì, các bạn để lại lời nhắn ở cuối bài viết nhé

MySQL là gì ?

Khái niệm này đã được định nghĩa rất rõ từ Wikipedia. Mình xin trích dẫn như sau :

  1. MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,…
  2. MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
  3. MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,…

Tại sao lại sử dụng MySQL?

Nếu bạn đang tìm kiếm một hệ thống quản lý cơ sở dữ liệu miễn phí hay là không đắt tiền, một vài thứ có sẵn để bạn chọn như: MySQL, mSQL, Postgres. Khi bạn so sánh MySQL với các hệ thống cơ sở dữ liệu khác, hãy nghĩ về những gì quan trọng nhất đối với bạn. Sự thực thi, sự hỗ trợ, các đặc tính, các điều kiện và các giới hạn của bản quyền, giá cả của tất cả các nhân tố để có thể thực hiện. Với những lí do đó, MySQL có nhiều đặc điểm cuốn hút:

  1. Tốc độ: MySQL rất nhanh. Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có.
  2. Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn .
  3. Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức.
  4. Hỗ trợ ngôn ngữ truy vấn: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại. Bạn cũng có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database Connectivity -một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft).
  5. Năng lực: Nhiều client có thể truy cập đến server trong cùng một thời gian. Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời. Bạn có thể truy cập MySQL tương tác với sử dụng một vài giao diện để bạn có thể đưa vào các truy vấn và xem các kết quả: các dòng yêu cầu của khách hàng, các trình duyệt Web…
  6. Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẽ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào. Nhưng MySQL kiểm soát quyền truy cập cho nên người mà không nên nhìn thấy dữ liệu của bạn thì không thể nhìn được.
  7. Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS/2. MySQL chạy được các với mọi phần cứng từ các máy PC ở nhà cho đến các máy server.
  8. Sự phân phối rộng: MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web của bạn. Nếu bạn không hiểu làm thế nào mà nó làm việc hay tò mò về thuật toán, bạn có thể lấy mã nguồn và tìm tòi nó. Nếu bạn không thích một vài cái, bạn có thể thay đổi nó.
  9. Sự hỗ trợ: Bạn có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ. Cộng đồng MySQL rất có trách nhiệm. Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút. Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi trong vài giờ và cách khắc phục đó sẽ ngay lập tức có sẵn trên Internet.

Tạo cơ sở dữ liệu và người dùng

Cơ sở dữ liệu MySQL có thể hỗ trợ cho nhiều cơ sở dữ liệu khác.Thông thường bạn sẽ có một cơ sở dữ liệu cho mỗi ứng dụng.
Tạo cơ sở dữ liệu: Đây là phần dễ nhất. Tại dấu nhắc của dòng lệnh MySQL, đánh :

dbname: chính là tên của cơ sở dữ liệu bạn muốn tạo.
Khi bạn thấy một phản hồi giống như sau: Query OK,1 row affected (0.06 sec). Điều này chứng tỏ bạn đã thành công trong việc tạo cơ sở dữ liệu, nếu không có phản hồi thì bạn xem lại đã đánh ; ở cuối dòng chưa. Dấu ; bảo MySQL rằng bạn đã hoàn thành và yêu cầu nó hãy thực hiện chính xác câu lệnh.
Các người dùng và các quyền: Một hệ thống MySQL có nhiều người dùng, vì lí do bảo mật cho nên với mỗi người dùng của hệ thống cần phải có một account và password. Điều này không có nghĩa là bạn phải bắt buộc phải tạo ra password cho người dùng, nhưng điều nên làm là cung cấp các password cho tất cả những người dùng mà bạn đã tạo ra.
Các quyền hệ thống của MySQL: Một trong những đặc tính tốt nhất của MySQL là nó hỗ trợ tất cả các quyền phức tạp của hệ thống. Khi bạn tạo ra một người dùng trong MySQL, bạn trao quyền cho người đó để định rõ những gì người đó có thể và không thể đối với hệ thống.
Tạo người dùng: sử dụng lệnh GRANT
Các lệnh GRANT và REVOKE được dùng để trao và lấy quyền đến người dùng MySQL với bốn cấp bậc phân quyền như sau:Global, Database, Table, Column
Lệnh GRANT: để tạo người dùng và giao quyền cho họ.Cấu trúc như sau:

Tạo bảng cơ sở dữ liệu: sử dụng lệnh CREATE TABLE, cú pháp thông thường là:

Ví dụ, tạo một bảng customers như sau:

Xem dữ liệu với lệnh SHOW và DESCRIBE: Sau khi đăng nhập vào màn hình MySQL, bạn có thể xem các bảng trong cơ sở dữ liệu bằng cách đánh vào như sau:

Thì MySQL sẽ hiển thị tất cả các bảng trong cơ sở dữ liệu.
Bạn cũng có thể sử dụng show để xem danh sách các cơ sở dữ liệu bằng cách đánh vào như sau:

Để xem thêm các chi tiết về một bảng cụ thể bạn sử dụng lệnh DESCRIBE:

Làm việc với cơ sở dữ liệu MySQL:

SQL (Structured Query Language): Đây là ngôn ngữ chuẩn nhất cho việc truy cập hệ thống quản lý cơ sở dữ liệu quan hệ. SQL dùng để chứa và truy xuất dữ liệu từ một cơ sở dữ liệu. Nó thường được dùng trong các hệ thống cơ sỡ dữ liệu như MySQL, Oracle, Sybase, PostgreSQL và Microsoft SQL Server…
Chèn dữ liệu vào trong cơ sở dữ liệu: Trước khi bạn có thể làm nhiều việc với cơ sở dữ liệu, bạn cần chứa một ít dữ liệu ở trong nó. Để thực hiện được điều này bạn có thể sử dụng câu lệnh SQL INSERT. Cú pháp như sau:

Ví dụ, chèn một bản ghi vào trong bảng Customers, bạn thực hiện như sau:

Truy xuất dữ liệu từ cơ sở dữ liệu: Sử dụng câu lệnh SELECT để truy xuất dữ liệu từ một cơ sở dữ liệu bằng cách chọn các hàng thoả mãn điều kiện cụ thể nào đó từ một bảng. Có rất nhiều tuỳ chọn và cách khác nhau để sử dụng lệnh SELECT.
Câu lệnh căn bản của SELECT là:

Truy xuất dữ liệu với điều kiện cụ thể: Để có thể truy cập một tập hợp con của các hàng trong một bảng, chúng ta cần phải xác định một vài điều kiện có chọn lựa. Bạn có thể làm được điều này với mệnh đề WHERE.

Ví dụ:

Điều này đồng nghĩa với việc lựa chọn tất cả các cột từ bảng orders, nhưng chỉ có những dòng mà có customerid=3 thì mới thoả mãn.

Truy xuất dữ liệu từ nhiều bảng: Thông thường để trả lời một câu hỏi từ cơ sở dữ liệu, bạn có thể cần phải dùng dữ liệu từ nhiều hơn một bảng. Để kết hợp các thông tin này lại với nhau trong SQL, bạn phải thực hiện một phép toán gọi là kết hợp(join). Có nghĩa là nó sẽ kết hợp hai hay nhiều bảng lại với nhau theo các mối quan hệ giữa các dữ liệu.
Ví dụ nối hai bảng đơn giản sau:

Kết nối nhiều hơn hai bảng: Phức tạp hơn kết nối hai bảng lại với nhau.Theo luật thông thường, bạn cần nối các bảng từng cặp với nhau với các điều kiện nối.Ví dụ như sau:

Sử dụng tên khác cho bảng (tên hiệu-alias): Thông thường chúng ta truy cập đến tên của các bảng bằng các tên hiệu của chúng. Bạn có thể tạo ra các tên hiệu này khi bắt đầu câu truy vấn và sau đó sử dụng thông qua chúng.

Ví dụ:

Như khi bạn khai báo các bảng chúng ta sẽ dùng, chúng ta thêm một mệnh đề AS để khai báo các tên hiệu cho bảng. Chúng ta cũng có thể dùng các tên hiệu cho các cột. Việc này thật sự cần thiết khi chúng ta muốn kết nối một bảng với chính bản thân nó. Điều này nghe có vẻ hơi khó nghe, nhưng nó thật sự là hữu ích, chẳng hạn nếu chúng ta muốn tìm các hàng trong cùng một bảng mà có cùng giá trị, nếu chúng ta muốn tìm các khách hàng sống trong cùng một thành phố, chúng ta có thể đặt các tên khác nhau cho cùng một bảng Customers.

Ví dụ:

Những gì mà chúng ta làm là giả vờ như bảng Customers là hai bảng khác nhau c1 và c2, sau đó thực hiện việc kết nối trên cột City.

Truy xuất dữ liệu theo thứ thự yêu cầu: Khi bạn muốn hiển thị các hàng được truy xuất bằng một truy vấn theo một thứ thự yêu cầu, bạn có thể sử dụng mệnh đề ORDER BY của câu lệnh SELECT. Mệnh đề này sẽ sắp xếp các hàng của một hay nhiều cột được liệt kê trong mệnh đề SELECT.

Ví dụ:

Giá trị yêu cầu mặc định là tăng dần và bạn có thể chỉ rõ nó nếu bạn thích dùng từ khoá ASC.Ví dụ:

Còn nếu muốn sắp xếp giảm dần thì dùng từ khoá DESC.
Nhóm và kết hợp dữ liệu: Các hàm kết nối có thể được áp dụng đến một bảng cũng như đến toàn bộ hay đến các nhóm dữ liệu trong một bảng là:

Nếu bạn chỉ ra một cột thì nó trả về số các giá trị của cột đó.Nếu thêm vào từ khoá DISTINCT phía trước tên cột,thì trả về các giá trị riêng biệt của cột đó.Còn nếu chỉ định là COUNT,nó sẽ đếm tất cả các giá trị trong hàng bất kể giá trị rỗng.
MIN(column)
Các giá trị nhỏ nhất trong cột chỉ định.
MAX(column)
Các giá trị lớn nhất trong cột chỉ định.
STD(column)
Độ chênh lệch chuẩn của các giá trị trong cột chỉ định.
STDDEV(column)
Tương tự như STD(column).
SUM(column)
Tổng các giá trị trong cột chỉ định.

Chọn hàng nào sẽ được quay trả về: Một mệnh đề của câu lệnh SELECT mà có thể được sử dụng một cách đặc biệt trong các ứng dụng Web đó là mệnh đề LIMIT. Nó được dùng để chỉ định các dòng nào từ nhập vào nên được trả lại. Nó gồm có hai tham số: số hàng để bắt đầu và số lượng các hàng sẽ được trả lại.

Ví dụ minh hoạ:

Câu truy vấn này có thể được hiểu như sau: chọn tên từ bảng customers và sau đó trả lại 3 hàng bắt đầu từ hàng thứ hai của nhập vào.

Cập nhật các bản ghi trong cơ sở dữ liệu: Sử dụng câu lệnh UPDATE. Cấu trúc thông dụng của nó như sau:

Ví dụ, chúng ta muốn tăng giá tất cả các quyển sách lên 10%, chúng ta sẽ sử dụng câu lệnh UPDATE như sau:

Thay đổi các bảng sau khi tạo: Chúng ta có thể thay đổi cấu trúc của các bảng trong cơ sở dữ liệu bằng cách sử dụng câu lệnh ALTER TABLE. Cấu trúc căn bản của nó như sau:

Ví dụ: trong bảng Customers, chúng ta cho phép tên dài 30 kí tự, sau khi chúng ta bắt đầu tạo một số dữ liệu, chúng ta có thể phát hiện rằng một số tên là quá dài và đang bị cắt, chúng ta có thể sửa điều này bằng cách thay đổi loại dữ liệu của cột để nó có thể dài đến 45 kí tự.

Huỷ bỏ các records khỏi cơ sở dữ liệu: Sử dụng câu lệnh DELETE, cấu trúc như sau:

Chú ý:nếu bạn viết DELETE FROM table; thì tất cả các hàng trong bảng sẽ bị huỷ bỏ.
Huỷ các bảng: Bạn có thể huỷ toàn bộ một bảng bằng cách sử dụng câu lệnh DROP TABLE. Cấu trúc này rất đơn giản, nó như sau:

Huỷ toàn bộ cơ sở dữ liệu: Bạn có thể thực hiện điều này bằng cách sử dụng câu lệnh DROP DATABASE, cấu trúc như sau:

Tạo và huỷ Index: Index là những phương tiện quan trọng để tăng tốc độ truy cập các nội dung của các bảng, thông thường là dùng cho các câu truy vấn mà liên quan đến kết nối nhiều bảng với nhau. MySQL cho phép bạn tạo ra index một cách khá linh hoạt. Bạn có thể index các cột riêng rẽ hay kết nối các cột lại với nhau. Bạn cũng có thể có nhiều hơn một index trong một bảng nếu bạn muốn có thể tra cứu giá trị một cách nhanh chóng từ các cột khác nhau của một bảng.
Tạo Index: Bạn có thể tạo index cho một bảng mới khi bạn dùng CREATE TABLE, hoặc có thể thêm index cho các bảng đang tồn tại với CREATE INDEX hay ALTER TABLE. Bạn phải chỉ định rằng index có thể hay không thể chứa giá trị lặp lại. Nếu nó không thể, index nên được tạo như là một khoá chính (PRIMARY KEY) hay là một index duy nhất (UNIQUE INDEX). Để thêm một index cho một bảng đang tồn tại, bạn có thể sử dụng ALTER TABLE hay CREATE INDEX. Trong đó lệnh ALTER TABLE linh hoạt hơn bởi bạn có thể sử dụng nó để tạo ra một index thông thường, một index duy nhất, hay một khoá chính. Cú pháp như sau:

CREATE INDEX có thể thêm một index thông thường hay một index duy nhất cho một bảng:

Để tạo một index cho một bảng mới khi bạn sử dụng câu lệnh CREAT TABLE, bạn có thể sử dụng cú pháp tương tự như đã làm với ALTER TABLE, nhưng bạn phải chỉ định các mệnh đề tạo index trong phần câu lệnh CREAT TABLE. Cụ thể như sau:

Hủy bỏ Index: Bạn có thể huỷ bỏ index bằng cách sử dụng một trong hai câu lệnh DROP INDEX hay ALTER TABLE. Cú pháp như sau:

Chú ý: Index có thể bị tác động nếu bạn huỷ các cột trong một bảng.

Vì bài viết đã khá dài rồi, nên mình tạm dừng ở đây, để đầu óc các bạn được nghỉ ngơi một chút. Sau đó chúng ta sẽ coi tiếp phần 2 tại đây nhé !

Nguon : kungfuphp.com
Gửi bình luận bằng Facebook

Bài viết liên quan: