Tải bản đầy đủ (.pdf) (118 trang)

Tìm hiểu MYSQL và PHP, hiện thực ứng dụng quản lý xuất nhập tân dược cho công ty xuất nhập khẩu Y tế thành phố Hồ Chí Minh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1019.6 KB, 118 trang )

Mục lục

Chương 1 DẪN NHẬP trang1

Chương 2 TÌM HIỂU CÁC CÔNG NGHỆ trang 4
2.1. Sử dụng các hệ quản trò cơ sở dữ liệu trang 4
2.2. Trình kết nối cơ sở dữ liệu trang 6
2.3. Sự hỗ trợ của Server đối với các ngôn ngữ kòch bản trang 7
2.4. Các ngôn ngữ kòch bản trên Server trang 8
2.5. Công nghệ MySQL và PHP trang 10

Chương 3 TÌM HIỂU VỀ MYSQL VÀ PHP trang 12
3.1. Tìm hiểu về MySQL trang 12
3.1.1. Giới thiệu về MySQL và cách cài đặt trang 12
3.1.2. Quản trò cơ sở dữ liệu trong MySQL trang 15
3.1.3. Lấy thông tin về cơ sở dữ liệu, bảng, cột, index trang 18
3.1.4. Các lệnh thao tác trên cơ sở dữ liệu trang 23
3.1.5. Các lệnh thao tác trên dữ liệu trang 28
3.1.6. Các tiện ích khác trang 36
3.2. Tìm hiểu về PHP trang 38
3.2.1. Giới thiệu về PHP trang 38
3.2.2. Sử dụng PHP trang 41
3.2.3. Các đặc điểm khác trong PHP trang 54
3.2.4. Các loại hàm trong PHP trang 60

Chương 4 HIỆN THỰC ỨNG DỤNG QUẢN LÝ XUẤT NHẬP TÂN
DƯC CHO CÔNG TY XUẤT NHẬP KHẨU Y TẾ TP HỒ CHÍ
MINH trang 63
4.1. Tổng quan về hệ thống trang 63
4.1.1. Mục đích trang 63
4.1.2. Cách quản lý thuốc tại công ty trang 64


4.2. Thiết kế cơ sở dữ liệu trang 66
4.2.1. Thiết kế cơ sở dữ liệu mức quan niệm trang 66
4.2.2. Thiết kế dữ liệu mức logic trang 73
4.2.3. Thiết kế dữ liệu mức vật lý trang 83


4.3. Thiết kế xử lý trang 86
4.4. Sơ đồ Web Site trang 92
4.5. Các giao diện trang 96

Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI trang 105
5.1. Kết luận trang 105
5.2. Hướng phát triển đề tài trang 106

Tài liệu tham khảo
Phụ Lục
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 1
Chương 1

DẪN NHẬP

Trong bối cảnh ngành công nghệ thông tin phát triển nhanh chóng như
hiện nay, việc tạo một trang Web động không còn là vấn đề khó khăn như
trước đây nữa. Các công nghệ thiết kế Web ngày càng được nâng cấp chất
lượng và hoàn thiện hơn để tạo mọi hỗ trợ tối đa cho các nhà lập trình và thiết
kế Web. Hiện nay, trên thò trường có rất nhiều công nghệ dùng để thiết kế
những trang Web động, hai trong số các công nghệ đó được các nhà lập trình
chú ý nhiều nhất như là ASP của Microsoft, JSP của hãng Sun. Hai công nghệ

này hiện đang được phổ biến rất rộng rãi ở Việt Nam, bạn có thể dễ dàng đăng
ký học và nghiên cứu ASP và JSP bất cứ khi nào bạn muốn. Nhưng xu thế thiết
kế những trang Web động hiện nay trên thế giới lại nghiên về một công nghệ
khác, không phải ASP hay JSP mà chính là công nghệ MySQL và PHP.
Có rất nhiều ưu điểm của MySQL và PHP đáng để chúng ta lưu tâm đến
và sử dụng chúng, nhưng vấn đề khó khăn của các nhà lập trình Web tương lai
tại Việt Nam là cách thức tiếp cận với hai công nghệ này. Nếu nắm bắt kòp
công nghệ nêu trên, nghóa là chúng ta đã theo kòp tốc độ phát triển công nghệ
của thế giới và cùng hoà vào dòng chảy của các công nghệ tiên tiến nhất hiện
nay. Cũng giống như ASP và JSP, công nghệ MySQL và PHP sẽ được giảng
dạy rộng rãi trong các khoá học thiết kế Web động, sách viết về chúng sẽ được
dòch chuyển sang tiếng việt và bày bán trong nhà sách, … nhưng đó là trong
tương lai. Còn như hiện nay, công nghệ mới này vẫn còn đang xa lạ và mới mẻ
đối với giới sinh viên, những cử nhân, kỹ sư công nghệ thông tin tương lai.
Chính vì thế chúng tôi chọn đề tài ‚Tìm Hiểu Công Nghệ MySQL và PHP ‚ để
làm Luận văn tốt nghiệp, mặt khác cũng là để nâng cao sự hiểu biết của mình,
mở ra một tầm nhìn mới về lónh vực tạo trang Web, hoà nhập vào sự tiến bộ
của thế giới.
MySQL là một hệ quản trò cơ sở dữ liệu quan hệ, PHP là ngôn ngữ kòch
bản trên máy chủ dùng để thiết kế trang Web. Để tạo dữ liệu động cho một
trang Web, chúng ta cần phải kết hợp giữa một hệ quản trò cơ sở dữ liệu với
một ngôn ngữ tạo Web. Sự kết hợp tuyệt vời giữa MySQL và PHP khiến cho
chúng ngày càng được sử dụng rộng rãi hơn. Nghóa là công nghệ này đã tạo
được sự hỗ trợ tối đa cho các nhà lập trình Web. Cũng có nghóa là PHP hỗ trợ
tối đa các hàm để thao tác với dữ liệu của MySQL, kết nối cơ sở dữ liệu dễ
dàng, tương tác dữ liệu nhanh chóng và đơn giản.
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 2
Luận văn này đề cập đến phần lý thuyết về cách thức hoạt động cũng

như cách thức tạo một cơ sở dữ liệu bằng hệ quản trò cơ sở dữ liệu MySQL,
cách thức tương tác và kết nối giữa MySQL và PHP để thiết lập một trang web
động bằng ngôn ngữ PHP. Đề tài được trình bày gọn trong 5 chương sau:
Chương 1: Dẫn nhập.
Chương 2: Khảo sát các công nghệ.
Chương 3: Tìm hiểu về MySQL và PHP.
Chương 4: Hiện thực ứng dụng quản lý xuất nhập Tân Dược cho công ty
xuất nhập khẩu y tế TP Hồ Chí Minh - Yteco.
Chương 5: Kết luận và hướng phát triển đề tài.
Nội dụng chính của chương 2 sẽ là những đánh giá và so sánh giữa các
hệ quản trò cơ sở dữ liệu như Access, SQL Server, Oracle với MySQL, đánh giá
và so sánh giữa các công nghệ thiết kế Web động phổ biến hiện nay như ASP,
JSP, Coldfusion với PHP, so sánh giữa các các web server như PWS, IIS, Jrun
và Apache, và sau cùng là nêu những ưu điểm của hệ quản trò cơ sở dữ liệu
MySQL, ưu điểm của PHP, cùng với cách thức hoạt động giữa MySQL ” PHP
thông qua một web server ví dụ như là Apache.
Phần lý thuyết về tìm hiểu công nghệ sẽ được trình bày gói gọn trong
chương 3. Ở đây chỉ nêu sơ lược một vài khái niệm chính về cách thức hoạt
động của MySQL như các câu lệnh thao tác trên cơ sở dữ liệu, các câu lệnh
thao tác trên dữ liệu, các phân quyền truy xuất, và một số tiện ích khác của
MySQL. Đoạn cuối của chương 3 này sẽ là các khái niệm cơ bản về công nghệ
PHP, cách thức cài đặt, và các loại hàm mà PHP hỗ trợ. Các cách thức để tạo
một kết nối đến cơ sở dữ liệu cũng sẽ được chỉ ra cùng với cách lấy mẫu tin và
cập nhật mẫu tin vào trong cơ sở dữ liệu cũng sẽ được trình bày ở dạng tóm
lược thông qua các đoạn code ví dụ rất đơn giản.
Vì mục đích chính của đề tài chỉ nhằm tìm hiểu công nghệ MySQL và
PHP nên việc tạo một ứng dụng chỉ nhằm mục đích là thể hiện sự nghiên cứu
và tìm hiểu công nghệ đã được nêu bên trên mà thôi. Phạm vi của ứng dụng là
xây dựng hệ thống quản lý xuất nhập trên mạng Internet thông qua trang Web
của công ty Xuất Nhập Khẩu Y Tế Tp Hồ Chí Minh. Trang Web gồm hai mảng

chính là phần dành cho khách truy cập và phần dành cho các nhân viên của
công ty truy cập để thực hiện các giao dòch của công ty, đó cũng chính là ý
nghóa chung của chương 4. Nội dung của chương 4 sẽ trình bày về hiện trạng
của ứng dụng, các bước phân tích thiết kế dữ liệu, phân tích thiết kế xử lý, sơ
đồ trang Web, hình ảnh của trang chủ cùng với một số trang cấp một.
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 3
Phần cuối cùng của đề tài được trình bày trong chương 5 sẽ nêu lên một
số kết luận, các đánh giá ưu khuyết điểm của đề tài, hướng phát triển của đề
tài, các tài liệu tham khảo.





























Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 4
Chương 2

TÌM HIỂU CÁC CÔNG NGHỆ

2.1. Sử dụng các hệ quản trò cơ sở dữ liệu

a. Hệ quản trò cơ sở dữ liệu Access
Access là một hệ quản trò cơ sở dữ liệu gọn nhỏ và linh động. Tuy nhiên,
khi đứng cạnh các hệ quản trò cơ sở dữ liệu mạnh như hiện nay, Access vẫn
còn là một hệ quản trò cơ sở dữ liệu được ưa chuộng nhất. Bởi sự dễ dàng khi
thực hiện các thao tác, dễ sử dụng, dễ cài đặt, dễ học và còn nhiều ưu điểm
khác nữa khiến cho ngôn ngữ này ngày càng mang tính phổ biến. Một ưu điểm
nữa của Access là bạn không phải mất công cài đặt nó lên máy tính, nó được
hỗ trợ mặc đònh trong bộ Office của MicroSoft. Nhưng khi chọn một hệ quản trò
cơ sở dữ liệu cho việc quản lý đặt nặng tính bảo mật thì Access lại không là
một ứng cử viên sáng giá bởi bản thân nó mang tính bảo mật không cao. Hoặc
khi chọn một hệ thống quản lý dữ liệu phân bố, bản thân Access lại không đáp
ứng được cho các yêu cầu này.

Khi lượng dữ liệu trở nên quá lớn, mọi thao tác trên dữ liệu đều có tốc
độ chậm hẳn đi, điều này khiến cho chúng ta gặp nhiều khó khăn hơn trong
công việc.
Thay vào những khuyết điểm trên, Access lại có khả năng tương thích
cao với các hàm gởi truy vấn dữ liệu của ODBC và ngay cả JDBC nữa. Chỉ cần
cung cấp một đường dẫn đến tập tin cơ sở dữ liệu cho trình điều khiển là bạn
đã có thể kết nối Access với một ngôn ngữ kòch bản tạo Web động như ASP,
JSP hay thậm chí với cả PHP và PERL nữa.
Tóm lại, chỉ nên chọn Access để quản lý dữ liệu cho các trang Web có
số lượng mẫu tin ít, dữ liệu không cần ràng buột chi tiết, và đặc biệt là dành
cho các trang sử dụng dữ liệu không đặt nặng vấn đề bảo mật và không có sự
phân bố dữ liệu trên mạng.

b. Hệ quản trò cơ sở dữ liệu SQL SERVER
Tương tự như Access, SQL Server là một hệ quản trò cơ sở dữ liệu sử
dụng ngôn ngữ truy vấn có cấu trúc chuẩn SQL, một hệ quản trò cơ sở dữ liệu
quan hệ rất mạnh.
Việc hỗ trợ tính phân bố dữ liệu và tính bảo mật dữ liệu cao làm cho
SQL Server ngày càng tiến xa hơn nữa và trở thành một trong những chọn lựa
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 5
hàng đầu khi cần một hệ thống quản lý dữ liệu an toàn. Nhưng SQL Server lại
không hề đơn giản chút nào trong việc cài đặt nó vào máy của bạn, nó không
tích hợp được với bất kỳ hệ điều hành nào khác ngoại trừ các hệ điều hành
Windows của Microsoft.
Ngoài ra, nếu khối lượng dữ liệu quá lớn từ khoảng 50 GB trở lên thì
SQL Server lại trở nên chậm chạp và không còn thích hợp nữa cho dù chúng ta
thực hiện một truy vấn dữ liệu không điều kiện.


c. Hệ quản trò cơ sở dữ liệu ORACLE
Một lựa chọn khác để quản lý, chia sẻ và truy vấn dữ liệu là sử dụng hệ
quản trò cơ sở dữ liệu Oracle. Phiên bản Oracle mới nhất hiện nay là Oracle 9i,
được hỗ trợ tối đa các hàm tiện ích giúp chúng ta có thể tạo các truy vấn chính
xác và mang tính bảo mật cao. Không như SQL Server, Oracle 8i có thể thao
tác trên một lượng dữ liệu rất lớn với khoảng thời gian chấp nhận được (nhiều
hơn 50 GB dữ liệu) và cho bạn một kết quả như mong muốn. Ngoài ra, bạn có
thể cài Oracle vào các hệ điều hành khác ngoài Windows như Unix và Linux
một cách dễ dàng vì chúng được thiết kế để tương thích với mọi hệ điều hành.
Mặc dù được mệnh danh là hệ quản trò cơ sở dữ liệu mạnh nhất hiện
nay, nhưng người sử dụng lại gặp phải khá nhiều vấn đề khó khăn khi tiếp cận
với Oracle. Vấn đề khó khăn đầu tiên là chi phí để trả cho một bản quyền đầy
đủ. Nếu không, chúng ta sẽ khó lòng mà có được những điều mình mong muốn.
Vì các lý do trên, Oracle chỉ thích hợp để quản lý những cơ sở dữ liệu lớn, có
nhu cầu về sự phân bố dữ liệu trên mạng và cần có độ an toàn cao cho dữ liệu.
Nếu bạn cần chọn một hệ quản trò cơ sở dữ liệu linh động, gọn nhẹ, chi phí
thấp và dễ sử dụng để quản lý dữ liệu, bạn không nên chọn Oracle, có một giải
pháp mới dành cho bạn, đó là hệ quản trò cơ sở dữ liệu quan hệ MySQL.

d. Các ưu điểm nổi bật của MySQL
Đối thủ chính của MySQL là Microsoft SQL Server và Ocracle, nhưng
bản thân MySQL lại có nhiều điểm mạnh khiến nó đáng được quan tâm như:
 Tính thực thi cao: MySQL thực thi nhanh và rất đáng tin cậy để
chúng ta sử dụng. Sự kết nối tốc độ và bảo mật làm MySQL phù
hợp cho việc truy cập cơ sở dữ liệu trên Internet.
 Chi phí thấp: MySQL miễn phí với bản quyền mã nguồn mở hoặc
chi phí thấp với bản quyền thương mại mà ứng dụng chúng ta cần.
 Sử dụng: Hầu hết mọi cơ sở dữ liệu hiện nay đều dùng ngôn ngữ
truy vấn có cấu trúc chuẩn SQL. Nếu bạn đã từng sử dụng một hệ
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu


Trang 6
quản trò cơ sở dữ liệu quan hệ RDBMS thì bạn sẽ không gặp rắc
rối gì khi sử dụng MySQLvà chúng cũng rất dễ cài đặt cấu hình.
 Tính linh động: MySQL tương thích với nhiều hệ điều hành khác
nhau như UNIX cũng như Microsoft Windows.
 Mã nguồn: Bạn có thể lấy mã nguồn của MySQL một cách dễ
dàng và sửa đổi chúng theo ý thích của bạn.

2.2. Trình kết nối cơ sở dữ liệu

a. ODBC
ODBC ” Open DataBase Connectivity - là một chương trình giao tiếp lập
trình chuẩn cho người phát triển ứng dụng và nhà cung cấp cơ sở dữ liệu của
Microsoft. Để truy xuất đến các cơ sở dữ liệu thông qua ODBC, ta phải cài đặt
Driver đến cơ sở dữ liệu đó. ODBC có nhiều Driver hỗ trợ cho các cơ sở dữ
liệu khác nhau, để chuyển các mẩu tin thành những dữ liệu nguồn (Data
Source). Hệ điều hành căn cứ vào các thông tin khai báo để xác đònh cấp của
ODBC Driver giao tiếp với Data Source. Việc nạp ODBC là ‚trong suốt‛ đối
với chương trình ứng dụng. Trong môi trường mạng, ODBC đảm nhận luôn cả
việc xử lý những vấn đề truy xuất dữ liệu trên mạng như việc truy cập đồng
thời, giải quyết các xung đột, …
Vì ODBC cung cấp sự truy xuất bất kỳ dạng cơ sở dữ liệu thông dụng có
sẵn nên tạo một sự uyển chuyển trong ứng dụng, từ đó giúp chúng ta đưa cơ sở
dữ liệu lên trang Web một cách dễ dàng. Nếu bạn có thể dùng ODBC với Web
Server, tức là bạn có thể lấy dữ liệu từ cơ sở dữ liệu và đưa lên trang Web bất
kể dữ liệu đó được lưu trữ trên môi trường nào.

b. JDBC
JDBC - Java Database Connectivity - tương tự như ODBC, là một giao

thức để kết nối đến cơ sở dữ liệu, gởi các hàm truy vấn SQL và nhận dữ liệu
trả về. Công nghệ JDBC còn là giao thức độc lập của Java API, nó cung cấp
tập hợp các lớp và giao diện cho phép phát triển các ứng dụng Java cũng như
các ứng dụng Web liên quan đến truy xuất cơ sở dữ liệu. Có bốn loại trình điều
khiển JDBC được hãng Sun cung cấp như :
 Cầu nối ODBC ” JDBC: Cầu nối này thực hiện việc truy cập đến
cơ sở dữ liệu thông qua trình điều khiển ODBC của Windows.
Loại trình điều khiển này thường dùng khi không có sẵn JDBC
kết nối trực tiếp vào cơ sở dữ liệu quan hệ.
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 7
 Trình điều khiển thuần tuý Java ” Native API: Trình điều khiển
này hoạt động bằng cách biến đổi lệnh JDBC thành cuộc gọi trực
tiếp đến cơ sở dữ liệu. Điều này làm cho trình điều khiển trở nên
tiện lợi và nhanh hơn các trình điều khiển khác. Tuy nhiên không
phải cơ sở dữ liệu nào cũng cung cấp cho bạn cách giao tiếp thông
qua JDBC ” API trực tiếp.
 Trình điều khiển JDBC ” NET: Trình điều khiển này là giải pháp
cho mô hình dữ liệu đa tầng. Máy chủ server sẽ dòch các nghi thức
độc lập của JDBC thành nghi thức cụ thể của hệ quản trò cơ sở dữ
liệu.
 Trình điều khiển Native Protocol: Đây là loại trình điều khiển
thuần tuý Java, nó sẽ giao tiếp trực tiếp với cơ sở dữ liệu của nhà
cung cấp.
Có bốn bước cần thực hiện khi sử dụng trình điều khiển để kết nối đến
cơ sở dữ liệu như: Tạo một thiết lập kết nối với cơ sở dữ liệu, gởi câu lệnh
SQL, xử lý kết quả và đóng kết nối.

2.3. Sự hỗ trợ của Server đối với các ngôn ngữ kòch bản


Bước đầu tiên bạn cần thực hiện khi bắt đầu thiết kế hay lập trình Web
là bạn phải cài một Web Server cùng với một ngôn ngữ kòch bản chạy trên
server mà bạn muốn sử dụng. Bạn cần cài đặt một trong bốn loại Web Server
thông dụng nhất hiện nay, sẽ được giới thiệu bên dưới đây, tuỳ theo cấu hình
máy của bạn.

a. Personal Web Server - PWS
Đây là loại Web server thường dùng trên hệ điều hành Win9x, NT
Workstation hay Win 2000 Workstation. Cấu hình này thường được dùng cho
các nhà lập trình Web trong thời gian thiết kế. Web server này sẽ nhận các yêu
cầu, tìm trang cần thiết, chạy kòch bản, liên kết với dữ liệu và trả về các trang
đáp ứng.
Ưu điểm của PWS là nó cung cấp một môi trường phát triển tiện lợi, chi
phí thấp và không cần phần cứng mạnh. Tuy nhiên, nhược điểm của nó là có
độ tin cậy không cao và không thể mở rộng trang Web ra nhiều Server.



Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 8

b. Internet Information Server – IIS
Web server này dùng để cấu hình server trên nền hệ điều hành NT
Server và Win 2000 Server, cấu hình này được dùng để triển khai các hệ thống
trên qui mô lớn nên nó đòi hỏi nhiều tài nguyên của máy cũng như cấu hình
máy phải mạnh.
Ưu điểm của cấu hình NT Server/IIS là mang lại độ tin cậy cao và cho
phép mở rộng trang Web ra nhiều server, nhưng nhược điểm của nó là cần chi

phí cao hơn so với cấu hình Win9x/PWS.

c. JRUN
Đây là trình chủ Web có khả năng hiểu Java do hãng Allaire cung cấp
nhằm phục vụ những phiên bản của hãng Sun Microsystem dựa trên nền Java,
nó có khả năng thích ứng tốt với nhiều hệ điều hành như Win9x, Windows
2000, Windows NT, Linux và Unix.
Ngoài những tính năng của một trình chủ Web, JRUN còn có khả năng
liên kết với các trình chủ khác như IIS và Apache. Các yêu cầu về phần cứng
cũng như phần mềm khi tạo trình chủ Web JRUN khiến cho JRUN trở nên phức
tạp khi cài đặt và quản lý, đây cũng là một nhược điểm của JRUN.

d. APACHE
Trình chủ Web Apache là trình chủ phổ biến nhất hiện nay trên thế giới,
nó hiện đang quản lý hơn 50% số trang Web hiện có trên thế giới, nhiều hơn cả
số trang mà PWS, IIS và JRUN hiện đang quản lý. Vì thế, Apache có nhiều ưu
điểm đáng để chúng ta quan tâm và lưu ý đến nó. Cũng giống như JRUN,
Apache có khả năng thích ứng tốt với nhiều hệ điều hành, nhưng một điểm
khác với JRUN là nó không yêu cầu về cấu hình của máy khi cài đặt và các
thao tác cài đặt lại vô cùng dễ dàng.

2.4. Các ngôn ngữ kòch bản trên Server

Hiện nay, nếu bạn muốn tạo một trang Web động, không còn cách nào
khác là bạn phải sử dụng một ngôn ngữ kòch bản chạy trên Server để liên kết
với một trình điều khiển kết nối cơ sở dữ liệu. Các ngôn ngữ kòch bản chạy trên
server thông dụng nhất hiện nay gồm bốn loại sau:


Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu


Trang 9
a. Active Sserver Pages - ASP
ASP là một ngôn ngữ kòch bản chạy trên server, được hỗ trợ mặc đònh
trong trình duyệt IE 4.0. ASP thực sự là phần mở rộng cho Web server của bạn.
Nó cung cấp một tập hợp các thành phần và các đối tượng đặc trưng để quản lý
sự tương tác giữa Web server và trình duyệt.
Một khuyết điểm của ASP khiến cho nhiều người không thích sử dụng
ASP chính là khả năng bảo vệ mã nguồn của ASP (có nhiều người cho đây là
ưu điểm của nó) và sự tăng tải trên server. Nhưng bù lại, ASP có khả năng
thích ứng rộng, khả năng kết hợp với các phần mềm khác cao và tính dễ gỡ rối.

b. Java Server Pages – JSP
JSP là một kỹ thuật mới kết hợp ngôn ngữ đánh dấu HTML (hoặc XML)
với Java để tạo các trang Web động. Cũng như Java, JSP là ngôn ngữ lập trình
hướng đối tượng thuần tuý và tối ưu. Một trong những ưu điểm chính của JSP là
tính khả chuyển của mã nguồn giữa các server với nhau, và tính mã nguồn mở.

c. ColdFusion
ColdFusion cho phép server truy xuất cơ sở dữ liệu khi tạo Web. Trang
Web tạo bởi ColdFusion ( tập tin .cfm) có thể đọc được bởi mọi trình duyệt, tuy
nhiên nó sử dụng các thẻ của riêng nó. Điểm khác nhau cơ bản giữa
ColdFusion và các ngôn ngữ khác đó là nó sử dụng các thẻ riêng của nó thay vì
sử dụng các đối tượng và các ngôn ngữ kòch bản phía Client.

d. Personal Home Page – PHP
Tương tự như ASP và ColdFusion, PHP là ngôn ngữ dùng để tạo các
trang Web động từ server và gởi chúng tới trình duyệt. Tuy nhiên, PHP tương
thích với nhiều hệ điều hành hơn, và cũng tương thích với nhiều Web server
hơn các ngôn ngữ khác. Các điểm mạnh của PHP bao gồm:


 Tính thực thi cao: PHP rất hiệu quả, sử dụng server rẻ, bạn có thể
đáp ứng hàng triệu lượt truy cập mỗi ngày vào trang Web của bạn.

 Mạch ghép nối đến nhiều hệ thống cơ sở dữ liệu khác nhau: PHP kết
nối đến nhiều hệ thống cơ sở dữ liệu. Ngoài MySQL ra bạn còn có
thể kết nối được với các hệ quản trò cơ sở dữ liệu khác như:
PostgreSQL, mSQl, Ocracle, dbm, filePro, Hyperwave, Infomix,
InterBase, và Sybase. Dùng ODBC (Open Database Connectivity
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 10
Standard) bạn có thể kết nối đến bất kỳ cơ sở dữ liệu nào có hỗ trợ
ODBC driver bao gồm các sản phẩm của Microsoft và nhiều hãng
khác.

 Xây dựng thư viện cho nhiều tác vụ Web thông dụng: Do PHP được
thiết kế cho việc sử dụng Web nên nó có nhiều chức năng được xây
dựng để thực thi nhiều tác vụ quan hệ Web hữu dụng. Bạn có thể
thao tác trên hình ảnh GIF, kết nối với những dòch vụ mạng khác, gởi
mail, làm việc với cookie và tạo tài liệu PDF.

 Chi phí thấp: PHP thì miễn phí. Bạn có thể tải miễn phí phiên bản
mới nhất tại Web site: .

 Dễ học và dễ sử dụng: Cú pháp của PHP dựa trên các ngôn ngữ lập
trình khác, chủ yếu là C và Perl. Nếu bạn đã biết C hay Perl hay một
ngôn ngữ giống C như C++ hay Java thì bạn sẽ sử dụng PHP được
ngay.


 Linh hoạt: PHP thích hợp cho nhiều hệ điều hành khác nhau. Bạn có
thể viết mã trên hệ điều hành Unix, Linux và FreeBSD, phiên bản
Unix thương mại, Solaris và IRIX hay trên những phiên bản của
Microsoft Windows giống nhau.

 Mã nguồn: Bạn đã truy cập mã nguồn PHP. Không giống như trong
thương mại hay những sản phẩm mã nguồn đóng, bạn có thể tự do
sửa đổi hay thêm gì đó vào PHP và cũng không cần lo lắng về việc
nhà sản xuất ngừng hỗ trợ.

2.5. Công nghệ MySQL và PHP
Đây cũng chính là sự kết hợp tuyệt vời giữa hai công nghệ đang được ưa
chuộng nhất hiện nay trên thế giới. Một bộ đôi có nhiều điểm chung giống
nhau như độc lập với hệ điều hành, mã nguồn mở, tiết kiệm chi phí, …
Sự hỗ trợ tối đa các loại hàm trong PHP đối với MySQL làm cho mọi
thao tác trên dữ liệu trở nên nhanh chóng, phù hợp với xu thế thiết kế Web
hiện nay là ưu tiên cho tốc độ lấy dữ liệu. Sơ đồ làm việc giữa PHP và MySQL
thông qua trình duyệt Web được minh hoạ như hình dưới đây:
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 11

Sơ đồ làm việc giữa PHP và MySQL với trình duyệt Web

Có 6 bước làm việc bao gồm
Bước 1 : Khi một đòa chỉ Web được gọi thì trình duyệt Web sẽ gởi yêu
cầu cho Apache.
Bước 2 : Apache nhận yêu cầu đó và chuyển cho PHP xử lý.
Bước 3 : Ngôn ngữ kòch bản PHP gồm các câu lệnh PHP , chẳng hạn như
lệnh gọi kết nối cơ sở dữ liệu và truy xuất dữ liệu …

Bước 4 : Dữ liệu được lấy lên từ cơ sở dữ liệu và và kòch bản PHP sẽ
làm một số việc đònh dạng dữ liệu.
Bước 5 : Sau đó gởi trở về cho Apache.
Bước 6 : Apache gởi đến trình duyệt các yêu cầu đã được đáp ứng. Lúc
này chúng ta sẽ thấy một số thông tin được lấy từ cơ sở dữ liệu.














Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 12
Chương 3

TÌM HIỂU VỀ MYSQL VÀ PHP

3.1. Tìm hiểu về MySQL

3.1.1. Giới thiệu về MySQL
MySQL là một hệ quản trò cơ sở dữ liệu quan hệ mạnh mẽ và tốc độ.

MySQL cho phép bạn lưu trữ, tìm kiếm, sắp xếp và lấy dữ liệu rất hiệu quả và
nhanh chóng. Cơ sở dữ liệu chủ MySQL điều khiển việc truy cập dữ liệu, cho
phép nhiều người dùng cùng truy cập đồng thời mà an toàn và nhanh chóng. Do
đó MySQL trở thành một hệ quản trò cơ sở dữ liệu chủ đa người dùng và đa
luồng. Nó sử dụng ngôn ngữ truy vấn có cấu trúc SQL, là ngôn ngữ truy vấn cơ
sở dữ liệu chuẩn trên thế giới hiện nay. MySQL trở nên phổ biến từ những năm
1996 nhưng lòch sử phát triển của nó đã bắt nguồn từ những năm 1979.
MySQL là phần mềm có mã nguồn mở, bạn có thể download phần mềm miễn
phí trên Internet từ đòa chỉ : và bạn hoàn toàn có thể học mã
nguồn, thay đổi mã nguồn để sử dụng theo mục đích riêng của bạn. Nếu vẫn
chưa đáp ứng đủ, hay khi bạn cần nhúng MySQL vào một ứng dụng thương mại
nào đó thì bạn có thể mua một phiên bản thương mại từ công ty.

a. Cách cài đặt MySQL
 Cài đặt MySQL trên Windows 9x : Thư mục chính chứa MySQL
sau khi cài mặc đònh sẽ là c:\mysql. Sau khi chạy tập tin
setup.exe, chúng ta bắt đầu khởi động MySQL trên Windows
bằng cách vào Start -> Run và gõ lệnh:
c:\mysql\bin\mysql-opt
Hoặc chúng ta shut down MySQL bằng cách thực thi dòng lệnh
sau :
c:\mysql\bin\mysqladmin -u root shutdown
 Cài đặt MySQL trên Windows NT/Windows 2000 : Tùy thuộc vào việc
chúng ta chạy MySQL trên Windows NT hay trên Windows 2000 có
một số các vấn đề khác nhau không đáng kể. Khi cài đặt trên Windows
NT hay trên Windows 2000 thì tên server là mysqld-nt và nó không
được cài đặt bình thường giống như các service khác. Chúng ta có thể
cài đặt trên server như sau:
C:\mysql\bin\mysqld-nt -install
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu


Trang 13
Sau đó chúng ta khởi động MySQL bằng cách gõ dòng lệnh sau :
NET START mysql
Để thoát khỏi hệ thống, ta dùng câu lệnh sau:
NET STOP mysql
Sau khi cài đặt xong ta có thể vào Service Control Manager (tìm trong
Control Panel) để kiểm tra xem MySQL ở trạng thái started chưa.
Để kiểm tra xem MySQL có làm việc hay không ta chạy một số lệnh
sau:
C:\mysql\bin\mysqlshow
C:\mysql\bin\mysqlshow –u root mysql
C:\mysql\bin\mysqladmin version status proc
C:\mysql\bin\mysqladmin –u root shutdown
MySQL sẽ tạo cơ sở dữ liệu gồm mysql và test. Cơ sở dữ liệu mysql
được sử dụng để lưu trữ sự phân quyền và truy cập trên server.

b. Đăng nhập vào hệ thống MySQL
Để log vào MySQL, trước tiên bạn cần khởi động MySQL server bằng
cách vào Start -> Run gõ dòng lệnh như sau:
NET START mysql
Biểu tượng đèn tín hiệu ‚giao thông‛ của MySQL server ở góc phải màn
hình sẽ bật lên màu xanh để báo hiệu cho bạn biết MySQL server đã sẵng
sàng. Nếu không có dấu hiệu này, bạn hãy xem lại cách cài đặt của mình đã
đúng chỉ dẫn hay chưa.
Sau đó bạn vào Start -> Run và nhập tiếp dòng lệnh sau để Log vào
MySQL server :
C:\mysql\bin\mysql –h hostname –u username –p password
Với vò trí hostname, bạn cần nhập vào tên host đang chạy MySQL mà
bạn muốn kết nối đến.

Với vò trí username, bạn cần nhập vào tên tài khoản người sử dụng mà
người quản trò hệ thống thiết lập riêng cho ban. Nếu bạn đang sử dụng máy
riêng của mình, bạn có thể để trống phần này, MySQL server sẽ lấy giá trò
mặc đònh là tên tại khoản đã đăng ký với hệ điều hành.
Trong phần password, bạn cần nhập vào đúng mật khẩu được chỉ đònh đi
kèm với username. Vì lý do bảo mật, một lời khuyên dành cho bạn là không
nên nhập mật khẩu vào đây, vì mật khẩu của bạn sẽ hiện nguyên từng ký tự
một khi bạn gõ vao. Chính vì thế bạn nên bỏ trống phần này, MySQL server sẽ
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 14
tự động hỏi bạn mật khẩu với dòng hỏi và bạn hãy nhập mật khẩu vào. Nếu
thành công, bạn sẽ có một lời chào như sau:
Wellcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version : 3.23.47-nt
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> _
Nếu không có một đáp trả nào tương tự, bạn hãy xem lại cách cài đặt
MySQL của bạn hay xem lại bạn đã nhập đúng mật khẩu hay chưa.
Dấu nhắc dòng lệnh sẽ khác nhau tuỳ thuộc vào hệ điều hành và môi
trường bạn sử dụng MySQL.
Chú ý : Bạn bắt buột phải dùng dấu chấm phẩy ( ; ) để kết thúc dòng lệnh
trong MySQL.

c. Đònh danh trong MySQL
Qui tắc đònh danh rất đơn giản, gồm một số qui tắc như sau:
 Không dùng ký tự có mã ASCII(0) và mã ASCII(255) để đònh danh
cho các loại đối tượng(như tên bảng, tên cột, tên database, tên
alias,…)
 Nếu trong đònh danh có khoảng trắng thì đònh danh phải được đặt

trong cặp dấu nháy đơn ( ‘ ’ ), trường hợp này chỉ dùng cho các phiên
bản MySQL 3.23.6 trở lên.
 Các phiên bản MySQL 3.23.6 trở xuống không được dùng khoảng
trắng khi đònh danh các đối tượng kể cả khi đònh danh được đặt trong
cặp dấu nháy đơn ( ‘ ‘ ).
 Các trường hợp khác để đònh danh cho mọi đối tượng trong MySQL
phải tuân theo nguyên tắc sau:
Đối tượng cần
đònh danh
Chiều dài
tối đa
Trường hợp tương tự
Ký tự được dùng
Cơ sở dữ liệu
64
Cách đònh danh cho một
thư mục trong hệ điều
hành
Mọi ký tự cho phép
ngoại trừ ký tự ‚/‛
Bảng
64
Cách đònh danh cho một
tập tin trong hệ điều
hành
Mọi ký tự cho phép
ngoại trừ ký tự ‚/‛
và dấu ‚.‛
Cột
64

Không có
Mọi ký tự
Bí danh
255
Không có
Mọi ký tự

Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 15
3.1.2. Quản trò cơ sở dữ liệu trong MySQL

a. Vấn đề phân quyền và người dùng
Mỗi hệ thống MySQL có thể có nhiều người sử sụng đồng thời. Vì lý do
bảo mật nên người quản trò hệ thống cần phải bảo vệ tài khoản và mật khẩu
truy cập vào root. Khi có một người dùng khác cần sử dụng hệ thống, người
quản trò cần cấp cho người dùng này một tài khoản và mật khẩu riêng để log
vào hệ thống. Ngoài ra cần phải cấp cho người này một số quyền tối thiểu để
thực hiện một vài thao tác. Các quyền này dùng để xác đònh những điều gì
người dùng này có thể làm được và những gì không thể làm được.
Hệ thống phân quyền của MySQL gồm các cấp độ như sau:
 Toàn quyền sử dụng
 Các quyền trên cơ sở dữ liệu
 Quyền trên các bảng (table)
 Quyền trên các cột
Các cấp độ phân quyền được chia thành hai nhóm quyền như : nhóm các quyền
cho người dùng và nhóm các quyền dùng để quản trò. Phần chi tiết về các cấp
độ phân quyền như sau:
 Phân quyền nhóm người dùng: Bạn chỉ nên cấp cho người dùng các
quyền trên cơ sở dữ liệu, trên các bảng (table) hoặc trên các cột

(column) như sau:

Phạm vi áp dụng
Cấp quyền
Mô tả
Cơ sở dữ liệu
CREATE
Tạo một cơ sở dữ liệu mới
DROP
Xoá cơ sở dữ liệu
Bảng (table)
SELECT
Cho phép lấy các mẫu tin trong bảng
INSERT
Thêm một dòng mới vào các bảng
UPDATE
Câp nhật mới các giá trò của bảng
DELETE
Xoá một bảng
INDEX
Cho phép tạo và xoá các chỉ mục đặc biệt
trong bảng
ALTER
Chỉnh sửa cấu trúc của bảng như đổi tên bảng
CREATE
Tạo một bảng mới
DROP
Xoá một bảng
Cột (column)
SELECT

Cho phép lấy các mẫu tin trong cột
INSERT
Thêm một dòng mới vào cột
UPDATE
Cập nhật mới các giá trò trong cột
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 16
 Phân quyền nhóm quản trò hệ thống : Bạn có thể cấp các quyền này cho
một người dùng đặc biệt nào đó để người này có thể quản lý hệ thống.
Cấp quyền
Mô tả
RELOAD
Cho phép được Reload
SHUTDOWN
Cho phép một nhà quản trò có thể tắt hệ thống MySQL server
PROCESS
Cho phép một nhà quản trò có thể xem các tiến trình xử lý trên
server và ngăn chặn chúng.
FILE
Cho phép lấy dữ liệu từ các tập tin và đọc vào các bảng.
 Các quyền đặc biệt khác: người quản trò hệ thống có thể cấp các quyền
tổng quát này cho một người dùng mới để tiết kiệm thời gian phân
quyền chi tiết như:
Cấp quyền
Mô tả
ALL hay
ALL PRIVILEGES
Cho phép một người dùng có toàn quyền trên mọi cơ sở
dữ liệu, mọi bảng, mọi cột, kể cả nhóm quyền dùng để

quản trò hệ thống.
USAGE
Khi một người dùng được cấp quyền này, người đó chỉ
có thể đăng nhập (log) vào hệ thống mà không thể làm
bất cứ điều gì khác, các quyền khác có thể được cấp sau
(nếu có thể).

b. Câu lệnh dùng để cấp quyền
Bạn có thể dùng câu lệnh này để tạo một tài khoản và mật khẩu cho một
người dùng mới và phân cho người này các quyền chi tiết để sử dụng trong hệ
thống. Dạng tổng quát của câu lệnh này như sau:
GRANT priveleges [columns]
ON item
TO user_name [ IDENTIFIED BY ‘password’]
[ WITH GRANT OPTION ]
Mô tả:
 priveleges : danh sách các quyền cần cấp (các quyền đã được mô tả ở
trên)
 [columns] : phạm vi các quyền được sử dụng trên một cột cụ thể hay
trên danh sách các cột (phần này có thể không cần cung cấp) .
 item : cung cấp tên cơ sở dữ liệu hoặc tên bảng mà các quyền mới cấp
này áp dụng lên. Bạn có thể sử dụng các ký hiệu đặc biệt thay cho một
danh sách cần cung cấp như sau:
* Đại diện cho mọi cơ sở dữ liệu nằm trong hệ thống.
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 17
*.* Đại diện cho mọi cơ sở dữ liệu và mọi bảng nằm trong hệ thống.
dbname.* Cung cấp danh sách tất cả các bảng nằm trong cơ sở dữ
liệu có tên dbname.

dbname.tablename Chỉ đònh một bảng có tên dbname nằm trong cơ sở
dữ liệu có tên dbname.
 user_name : Chỉ đònh tên một người dùng được cấp các quyền mới này.
Nếu MySQL không tìm thấy tên user_name này trong danh sách các
user của hệ thống MySQL thì hệ thống sẽ tự động tạo ra một user mới
với tên user_name và cập nhật vào hệ thống.
 [ IDENTIFIED BY ‘password’] : Chỉ đònh mật khẩu đi kèm với tên
user_name trên (phần này có thể không cần cung cấp).
 [ WITH GRANT OPTION] : Nếu câu lệnh cấp quyền có phần này,
nghóa là người có tên user_name ở trên có thể cấp lại các quyền này cho
một người khác .
Ghi chú: Danh sách tên người dùng và các quyền đã cấp cho người dùng
sẽ được lưu trữ trong bốn bảng của cơ sỡ dữ liệu tên mysql. Bốn bảng này có
tên là mysql.user, mysql.db, mysql.tables_priv, mysql.columns_priv. Bốn bảng
này có quan hệ mật thiết với bốn cấp độ phân quyền như đã đề cập ở trên.
Chính vì thế, bạn có thế chỉnh sửa câu lệnh GRANT bằng cách chỉnh sửa trực
tiếp trên các bảng này.

c. Câu lệnh dùng để rút quyền
Để rút lại các quyền đã cấp cho một người dùng, bạn có thể dùng câu
lệnh REVOKE dưới dạng tổng quát như sau:
REVOKE priveleges [columns]
ON item
FROM user_name
Mô tả:
 priveleges : danh sách các quyền cần rút lại (các quyền đã được cấp
trước đó )
 [columns] : phạm vi các cột hay trên danh sách các cột cần rút quyền (đã
được cấp trước đó - phần này có thể không cần cung cấp) .
 item : cung cấp tên cơ sở dữ liệu hoặc tên bảng nằm trong phạm vi đã

cấp quyền trước đó mà ta cần rút quyền. Chúng ta có thể sử dụng các ký
hiệu đặc biệt (như phần câu lệnh GRANT đã mô tả) để thay cho một
danh sách các cột cần cung cấp.
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 18
 user_name : Chỉ đònh tên người dùng cấn rút quyền. Nếu MySQL không
tìm thấy tên user_name này trong danh sách các user của hệ thống
MySQL thì hệ thống sẽ thông báo lỗi không tìm thấy user_name.
Ngoài ra, nếu bạn cần rút lại quyền ‚cho phép người dùng cấp lại quyền
của mình cho một người dùng khác‛, thì bạn có thể dùng câu lệnh như sau:
REVOKE GRANT OPTION
ON item
FROM user_name

3.1.3. Lấy thông tin về cơ sở dữ liệu, bảng, cột, index

a. Câu lệnh USE
Sau khi đăng nhập vào MySQL, để thao tác trên một cơ sở dữ liệu nào
đó, bạn sử dụng câu lệnh sau:
mysql> use dbname;
Với dbname là tên cơ sở dữ liệu mà bạn cần dùng đến. Nếu cơ sở dữ liệu
này đã có, một dòng thông báo đáp trả của MySQL sẽ hiện như sau:
Database changed
Mysql> _
Một thông báo lỗi sẽ xuất hiện như bên dưới nếu MySQL không tìm
thấy cơ sở dữ liệu tên dbname trong hệ thống cơ sở dữ liệu của MySQL hay
nếu bạn không chọn một cơ sở dữ liệu trước khi bắt đầu mọi công việc, bạn
cũng sẽ bò thông báo lỗi.


b. Câu lệnh KILL
Mỗi kết nối vào MySQL đều được thực hiện bằng một tuyến kết nối
riêng biệt. Bạn có thể xem các tuyến đang thực hiện (đang chạy ) bằng câu
lệnh SHOW PROCESSLIST và ngăn chặn chúng lại bằng câu lệnh câu lệnh
KILL này. Nếu bạn được cấp quyền Process, bạn có thể thấy mọi tuyến và
ngăn chặn chúng, nếu không có quyền đó, bạn chỉ có thể thấy được tuyến của
mình và ngăn chặn nó. Cú pháp như sau :
KILL thread_id

c. Câu lệnh SHOW
Câu lệnh này được dùng để mô tả nội dung bên trong của một đối tượng
như cơ sở dữ liệu, các bảng, các cột ( tức là xem thông tin về cơ sở dữ liệu, các
bảng hay các cột ) với cú pháp như sau :
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 19
SHOW DATABASES [LIKE wild]
or SHOW [OPEN] TABLES [FROM db_name] [LIKE wild]
or SHOW COLUMNS FROM tbl_name [FROM db_name] [LIKE wild]
or SHOW INDEX FROM tbl_name [FROM db_name]
or SHOW TABLE STATUS [FROM db_name] [LIKE wild]
or SHOW STATUS [LIKE wild]
or SHOW VARIABLES [LIKE wild]
or SHOW LOGS
or SHOW [FULL] PROCESSLIST
or SHOW GRANTS FOR user
or SHOW CREATE TABLE table_name

 Show database: Xem danh sách các cơ sở dữ liệu có trong hệ thống cơ
sở dữ liệu của MySQL. Kết quả sau khi dùng câu lệnh này như sau:

 Show tables: Xem danh sách tất cả các bảng có trong cơ sở dữ liệu hiện
hành.
o Nếu trong cơ sở dữ liệu hiện hành không có bảng nào, bạn sẽ có
thông báo như sau:
mysql> show tables;
Empty set ( 0.00 sec )
o Bạn có thể dùng lệnh SHOW để xem danh sách các bảng có trong
một cơ sở dữ liệu khác được chỉ đònh cụ thể, không phải cơ sỡ dữ
liệu hiện hành. Dạng tổng quát cuả trường hợp này như sau:
SHOW TABLES FROM database_name
 Show columns: Ngoài ra bạn cũng có thể dùng lệnh này để xem cấu
trúc chi tiết của các cột trong một bảng cụ thể thuộc một cơ sở dữ liệu
được chỉ đònh.
SHOW COLUMNS FROM table_name FROM database_name
Hoặc SHOW COLUMNS FROM database_name. Table_name
 Show index: Dùng để xem chi tiết tất cả các khoá trong một bảng cụ thể
được chỉ ra trong cơ sở dữ liệu hiện hành. Dạng tổng quát của cách dùng
này như sau:
SHOW INDEX FROM table_name
o Dùng để xem chi tiết tất cả các khoá trong một bảng cụ thể nằm
trong cơ sở dữ liệu chỉ đònh.
SHOW INDEX FROM table_name FROM database_name

Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 20
o Bạn có thể dùng từ KEYS để thay cho INDEX trong hai cách
dùng trên, như:
SHOW KEYS FROM table_name
SHOW KEYS FROM table_name FROM database_name

 Show status: Câu lệnh này cho ta thông tin về một vài đặc điểm của hệ
thống, như số lượng các tuyến đang chạy, … . Mệnh đề LIKE theo sau
dùng để gắn tên của các đặc điểm của hệ thống cho ta dễ dàng theo dõi,
ví dụ như , LIKE ‘Threads%’ có nghóa kết quả sẽ là ‘Threads_catched’,
‘Threads_connected’, ‘Threads_running’, … . Dạng tổng quát của lệnh
này như sau:
SHOW STATUS [ LIKE status_item ]
 Show variables: Cung cấp cho ta danh sách tên và giá trò của các biến
trong hệ thống các biến của MySQL. Mệnh đề LIKE theo sau dùng để
gắn các tên các biến để ta dễ theo dõi như câu lệnh SHOW STATUS ở
trên.
SHOW VARIABLES [ LIKE variable_name ]
 Show processlist: Lệnh này dùng để hiển thò tất cả các tiến trình xử lý
đang thực hiện, như các câu truy vấn . Hầu hết mọi người dùng đều thấy
các tiến trình xử lý của mình, nhưng nếu được cấp quyền PROCESS (như
đả mô tả ở phần phân quyền ), một người dùng có thể thấy được mọi
tiến trình xử lý cuả mọi người khác, kể cả tên người dùng, mật khẩu, các
truy vấn đang thực thi, … bằng cách sử dụng phần mở rộng FULL, dạng
tổng quát như sau:
SHOW [ FULL ] PROCESSLIST
 Show table status: Cung cấp các thông tin về mỗi bảng trong cơ sở dữ
liệu hiện hành hoặc một cơ sở dữ liệu khác được chỉ ra trong phần mở
rộng database_name, các thông tin đi kèm là loại bảng và ở mỗi bảng có
các thông tin về lần cập nhật trước.
SHOW TABLE STATUS [ FROM database_name ]
 Show grants: Câu lệnh này chỉ được sử dụng từ phiên bản 3.23.4 trở lên,
nếu phiên bản MySQL của bạn cũ hơn thì bạn không thể dùng lệnh này
được. Mục đích của câu lệnh này là cung cấp cho ta danh sách các
quyền mà một người dùng có được trên cơ sở dữ liệu hiện hành, và
đương nhiên, người sử dụng lệnh phải có cấp quyền cao hơn người dùng

cần xem. Dạng tổng quát như sau:
SHOW GRANTS FOR user_name

Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 21
d. Câu lệnh DESCRIBE
Câu lệnh này được sử dụng để xem chi tiết cấu trúc của một bảng trong
cơ sở dữ liệu hiện hành. Dạng tổng quát như sau:
DESCRIBE | DESC tbl_name {col_name | wild}
 Giả sử cơ sở dữ liệu hiện hành là mysql, bạn muốn xem chi tiết cấu trúc
của bảng func, kết quả trả về sẽ giống như sau:
mysql> describe func;
Field
Type
Null
Key
Default
Extra
name
ret
dl
type
Char(54) binary
Tinyint(1)
Char(128)
Enum(‘function’,’aggregate’)

PRI


0

function

4 rows in set ( 0.06 sec )
 Nếu MySQL không tìm thấy tên bảng table_name trong cơ sở dữ liệu
hiện hành, một thông báo lỗi sẽ xuất hiện:
mysql> describe tablename;
ERROR 1146 : Table ‘mysql.tablename’ doesn’t exist

e. Câu lệnh BEGIN / COMMIT / ROLLBACK
Mặc đònh, MySQL chạy trong chế độ autocommit. Nghóa là khi bạn thực
thi một câu lệnh cập nhật dữ liệu, MySQL sẽ thực hiện việc cập nhật dữ liệu
của bạn lên đóa ngay lập tức.
Để thiết lập lại chế độ autocommit, bạn sử dụng câu lệnh sau:
SET AUTOCOMMIT=0
Sau khi hoàn tất mọi công việc, bạn phải sử dụng lệnh COMMIT để lưu
mọi sự thay đổi trong cơ sở dữ liệu vào đóa, nếu không muốn lưu bạn có thể
dùng lệnh ROLLBACK. Ví dụ như :
mysql> USE thuoc_db;
mysql> SET AUTOCOMMIT=0;
mysql> SELECT @A:=SUM(soluong) FROM pn WHERE
msthuoc=1;
mysql> UPDATE thuoc SET soluong=@A WHERE msthuoc=1;
mysql> COMMIT; //hay ROLLBACK
Bạn cũng có thể dùng câu lệnh BEGIN hoặc BEGIN WORK để đặt huỷ
bỏ chế độ autocommit thay vì dùng lệnh SET AUTOCOMMIT = 0. Ví dụ:
mysql> BEGIN; //hay BEGIN WORK
mysql> SELECT @A:=SUM(soluong) FROM pn WHERE
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu


Trang 22
msthuoc=1;
mysql> UPDATE thuoc SET soluong=@A WHERE msthuoc=1;
mysql> COMMIT; //hay ROLLBACK

f. Câu lệnh LOCK TABLES / UNLOCK TABLES
Lệnh LOCK TABLES dùng để khóa tất cả các bảng dữ liệu của tuyến
kết nối hiện tại. Lệnh UNLOCK TABLES dùng để ‘mở khoá’ cho các bảng đã
bò khóa trước đó bởi tuyến kết nối hiện tại, hoặc khi tuyến kết nối hiện tại bò
huỷ thì các bảng đã bò khóa trước đó cũng sẽ được ‘mở khoá’. Cú pháp của câu
lệnh này như sau:
LOCK TABLES tbl_name [AS alias]
{READ | [READ LOCAL] | [LOW_PRIORITY] WRITE}
[, tbl_name {READ | [LOW_PRIORITY] WRITE} ]
UNLOCK TABLES
Mục đích chính của câu lệnh là để giúp người sử dụng tránh được những
rắc rối trong việc lấy dữ liệu và cập nhật dữ liệu khi bảng dữ liệu cũng có thể
bò thao tác (lấy và cập nhật dữ liệu ) bởi một người dùng khác ở một tuyến làm
việc khác.
g. Câu lệnh CREATE INDEX
Câu lệnh tạo chỉ mục này sẽ cho phép bạn tạo một cột chỉ mục trong
một bảng đã có sẵn. Bạn cũng có thể tạo chỉ mục cho nhiều cột bằng cách cung
cấp một danh sách tên các cột cần tạo chỉ mục cho câu lệnh tạo chỉ mục. Cú
pháp như sau:
CREATE [UNIQUE|FULLTEXT] INDEX index_name
ON tbl_name (col_name[(length)], )

h. Câu lệnh DROP INDEX
Câu lệnh xoá chỉ mục này sẽ cho phép bạn xoá một cột chỉ mục trong

một bảng đã có sẵn. Cú pháp như sau:
DROP INDEX index_name ON tbl_name

i. Câu lệnh CREATE FUNCTION / DROP FUNCTION
Bạn có thể tự tạo riêng cho mình các hàm để sử dụng bằng câu lệnh tạo
hàm giống như hàm nối chuỗi hay hàm tính tổng để tiện cho các công việc. Cú
pháp hàm :
CREATE [AGGREGATE] FUNCTION function_name
RETURNS {STRING|REAL|INTEGER}
Luận văn tốt nghiệp GVHD: Th.S Bùi Trọng Hiếu

Trang 23
SONAME shared_library_name
Để xoá một hàm đã đònh nghóa trước đó, ta dùng câu lệnh sau :
DROP FUNCTION function_name
Lưu ý rằng mọi giá trò trả về từ hàm sẽ không bò thay đổi khi hàm bò xoá
đi bằng câu lệnh DROP FUNCTION.

3.1.4. Các lệnh thao tác trên cơ sở dữ liệu

a. Tạo cơ sở dữ liệu
Để tạo một cơ sở dữ liệu, bạn phải cung cấp cho hệ thống tên của cơ sở
dữ liệu (tham khảo thêm mục 5 ở trên: Đònh danh trong MySQL ) sau đó sử
dụng câu lệnh tạo cơ sở dữ liệu với cú pháp đơn giản như sau:
CREATE DATABASE [IF NOT EXISTS] dbname
Nếu trong hệ thống không tồn tại một cơ sở dữ liệu nào trùng tên
với cơ sở dữ liệu bạn vừa tạo, một thông báo lỗi sẽ xuất hiện.
Nếu trong hệ thống đã tồn tại một cơ sở dữ liệu trùng tên với cơ sở dữ
liệu bạn vừa tạo, một dòng thông báo lỗi sẽ xuất hiện.


b. Xoá cơ sở dữ liệu
Chúng ta có thể xóa toàn bộ cơ sở dữ liệu chỉ bằng một lệnh rất đơn
giản, chính vì vậy bạn hãy cẩn thận với câu lệnh này vì sau khi thực hiện, tất
cả các mẫu tin, tất cả các bảng, và cơ sở dữ liệu sẽ bò xóa. Cú pháp rất đơn
giản: DROP DATABASE [IF EXISTS] dbname
Nếu thật sự có một cơ sở dữ liệu tên ‘db_name’ tồn tại trong hệ thống cơ
sở dữ liệu của MySQL, bạn sẽ có thông báo như sau:
Query OK, 0 rows affected ( 0.01 sec )
mysql> _
Nếu không có cơ sở dữ liệu nào tên ‘db_name’ tồn tại trong hệ thống cơ
sở dữ liệu của MySQL, bạn sẽ có thông báo lỗi:
ERROR 1008 : Cant’s drop database ‘dbname’. Database doesn’t exists

c. Tạo bảng
Để tạo một bảng (table) trong MySQL bạn cần phải biết các loại dữ liệu
mà hệ thống hỗ trợ (xem phần 6 : Đònh nghóa các kiểu dữ liệu) và cách đặt tên
cho các cột (xem phần 5 : Đònh danh trong MySQL ). Bạn cũng cần phải chú ý
đến cơ sở dữ liệu hiện hành, nghóa là bạn chỉ tạo được bảng khi bạn đang ở

×