SlideShare a Scribd company logo
1 of 61
BỘ GIÁO DỤC VÀ ĐÀO TẠO 
TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT 
Đề tài: TÌM HIỂU VÀ TRIỂN KHAI MySQL 
SERVER TRÊN LINUX SERVER 
Giảng Viên: Phạm Đình Tân 
SV thực hiện: MSSV: 
Lê Công Tuấn Anh 1021050001 
Trần Văn Mạnh 1021050060 
Dương Tiến Dũng 1021050017 
Trần Tiến Đạt 1021050023 
Hà nội, tháng 04 năm 2014
2 
MỤC LỤC 
MỤC LỤC ......................................................................................................................... 2 
LỜI NÓI ĐẦU .................................................................................................................. 4 
Phần 1: Tổng quan về MySQL ...................................................................................... 5 
1.1. MySQL ............................................................................................................. 5 
1.1.1. Tính linh hoạt .............................................................................................. 5 
1.1.2. Tính thực thi cao ......................................................................................... 6 
1.1.3. Có thể sử dụng ngay ................................................................................... 6 
1.1.4. Hỗ trợ giao dịch mạnh ............................................................................... 6 
1.1.5. Nơi lưu trữ Web và Data đáng tin cậy ..................................................... 7 
1.1.6. Chế độ bảo mật dữ liệu mạnh ................................................................... 7 
1.1.7. Sự phát triển ứng dụng hỗn hợp ............................................................... 7 
1.1.8. Dễ dàng quản lý .......................................................................................... 8 
1.1.9. Mã nguồn mở .............................................................................................. 8 
1.1.10. Chi phí thấp ............................................................................................... 8 
1.2. PHP Làm việc cùng MySQL ........................................................................ 9 
1.2.1. Định nghĩa cơ bản....................................................................................... 9 
1.2.2. Cài đặt MySQL ........................................................................................... 9 
1.3. Cấu trúc của một cơ sở dữ liệu .................................................................... 21 
1.3.1. Định nghĩa cơ bản..................................................................................... 21 
1.3.2. Các kiểu dữ liệu cơ bản............................................................................ 22 
1.3.3. Kết nối vào MySQL Server ..................................................................... 26 
1.4. Các thao tác bằng dòng lệnh trên MySQL ................................................. 26 
1.4.1. Các thao tác trên Database ......................................................................... 26 
1.4.2. Các thao tác trên bảng ............................................................................... 35 
1.4.3. Các thao tác các trường............................................................................ 38
1.5. Liên kết mysql và PHP chúng ta cần nắm 6 hàm cơ bản: ............................. 43 
1.5.1. Lựa chọn cơ sở dữ liệu: .............................................................................. 43 
1.5.2. Thực thi câu lệnh truy vấn: ........................................................................ 43 
1.5.3. Đếm số dòng dữ liệu trong bảng: ............................................................. 44 
1.5.4. Lấy dữ liệu từ bảng đưa vào mảng: ......................................................... 44 
1.5.5. Đó ng kết nối cơ sở dữ liệu:....................................................................... 44 
1.5.6. Tạo cơ sở dữ liệu dựa trên từng đoạn code sau: ...................................... 44 
Phần 2: PHP MYADMIN và MySQL Client .............................................................. 48 
2.1. Thao tác trên Phpmyadmin:............................................................................... 48 
2.1.1. Tạo Database (CSDL – Cơ Sở Dữ Liệu) ............................................... 48 
2.1.2. Tạo Bảng (table).......................................................................................... 49 
2.1.3. Thêm dữ liệu vào Bảng (table) .................................................................. 51 
2.1.4. Sửa và Xóa dữ liệu trong Bảng (table) .................................................... 52 
2.1.5. Sửa cấu trúc Table (bảng): ......................................................................... 53 
2.1.6. Đổi tên Bảng (table).................................................................................... 53 
2.1.7. Xóa Bảng (table) ......................................................................................... 54 
2.2. Sử dụng MySQL Client để kết nối với MySQL server ............................ 54 
2.2.1. Tạo kết nối với MySQL server ............................................................... 55 
2.2.2. Thao tác tạo database ............................................................................... 56 
2.2.3. Tạo bảng .................................................................................................... 57 
2.2.4. Sửa cấu trúc bảng...................................................................................... 58 
2.2.5. Xóa bảng .................................................................................................... 59 
2.2.6. Đổi tên bảng .............................................................................................. 59 
2.2.7. Xóa database ............................................................................................. 60 
KẾT LUẬN ..................................................................................................................... 61 
3
4 
LỜI NÓI ĐẦU 
Trong giới hạn đề tài của BTL lần này chúng em xin phép được gửi đến thầy và 
các bạn cuốn tài liệu nói chi tiết về việc Tìm hiểu và triển khai MySQL Server trên Linux 
Mong rằng cuốn tài liệu này của chúng em sẽ giúp ích được cho những người 
muốn tìm hiểu về lĩnh vực nêu trên. 
Cuối cùng em xin cảm ơn sự giúp đỡ của thầy Phạm Đình Tân để nhóm chúng em 
hoàn thiện cuốn tài liệu này. Em xin cảm ơn thầy! 
Hà nội 01/11/2014 
Nhóm 01
5 
Phần 1: Tổng quan về MySQL 
1.1. MySQL 
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,... 
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). 
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,... 
1.1.1. Tính linh hoạt 
Máy chủ cơ sở dữ liệu MySQL cung cấp đặc tính linh hoạt, có sức chứa để xử lý 
các ứng dụng được nhúng sâu với dung lượng chỉ 1MB để chạy các kho dữ liệu đồ sộ lên
đến hàng terabytes thông tin. Sự linh hoạt về flatform là một đặc tính lớn của MySQL với 
tất cả các phiên bản của Linux, Unix, và Windows đang được hỗ trợ. Và dĩ nhiên, tính 
chất mã nguồn mở của MySQL cho phép sự tùy biến hoàn toàn theo ý muốn để thêm vào 
các yêu cầu thích hợp cho database server. 
6 
1.1.2. Tính thực thi cao 
Kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ 
cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù. Dù ứng dụng là một hệ thống 
xử lý giao dịch tốc độ cao hay web site dung lượng lớn phục vụ hàng triệu yêu cầu mỗi 
ngày, MySQL có thể đáp ứng khả năng xử lý những đòi hỏi khắt khe nhất của bất kì hệ 
thống nào. Với các tiện ích tải tốc độ cao, đặc biệt bộ nhớ caches, và các cơ chế xử lý 
nâng cao khác, MySQL đưa ra tất cả các vũ khí cần phải có cho các hệ thống doanh 
nghiệp khó tính ngày nay. 
1.1.3. Có thể sử dụng ngay 
Sự đáng tin cậy cao và tính “mì ăn liền” là những tiêu chuẩn đảm bảo của 
MySQL. MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu hình tái tạo chủ/tớ tốc 
độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có thể dùng ngay duy nhất cho 
server cơ sở dữ liệu MySQL. 
1.1.4. Hỗ trợ giao dịch mạnh 
MySQL đưa ra một trong số những engine giao dịch cơ sở dữ liệu mạnh nhất trên 
thị trường. Các đặc trưng bao gồm hỗ trợ giao dịch ACID hoàn thiện ( Atomic – tự động, 
Consistent – thống nhất, Isolated – độc lập, Durable – bền vững), khóa mức dòng không 
hạn chế, khả năng giao dịch được phân loại, và hỗ trợ giao dịch đa dạng (multi-version) 
mà người đọc không bao giờ gây trở ngại cho người viết và ngược lại. Tính toàn vẹn của 
dữ liệu cũng phải được bảo đảm trong suốt quá trình server có hiệu lực, các mức giao 
dịch độc lập được chuyên môn hóa, và phát hiện khóa chết ngay lập tức.
7 
1.1.5. Nơi lưu trữ Web và Data đáng tin cậy 
MySQL là nhà máy chuẩn cho các web sites phải trao đổi thường xuyên vì nó có 
engine xử lý tốc độ cao, khả năng chèn dữ liệu nhanh ghê gớm, và hỗ trợ mạnh cho các 
chức năng chuyên dụng của web như tìm kiếm văn bản nhanh. Những tính năng này cũng 
được áp dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte 
cho các server đơn. Các tính năng khác như bảng nhớ chính, cây B và chỉ số băm, và 
bảng lưu trữ đã được cô lại để giảm các yêu cầu lưu trữ đến 80% làm cho MySQL trở 
thành lựa chọn tốt nhất cho cả ứng dụng web và các ứng dụng doanh nghiệp. 
1.1.6. Chế độ bảo mật dữ liệu mạnh 
Vì bảo mật dữ liệu cho một công ty là công việc số một của các chuyên gia về cơ 
sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật 
tuyệt đối. Trong việc xác nhận truy cập cơ sở dữ liệu, MySQL cung cấp các kĩ thuật 
mạnh mà chắc chắn chỉ có người sử dụng đã được xác nhận mới có thể truy nhập được 
vào server cơ sở dữ liệu, với khả năng này để chặn người dùng ngay từ mức máy khách là 
điều có thể làm được. SSH và SSL cũng được hỗ trợ để chắc chắn các kết nối được an 
toàn và bảo mật. Một đối tượng framework đặc quyền được đưa ra mà người sử dụng chỉ 
có thể nhìn thấy dữ liệu, các hàm mã hóa và giải mã dữ liệu mạnh chắc chắn rằng dữ liệu 
sẽ được bảo mật. Cuối cùng, tiện ích backup và recovery cung cấp bởi MySQL và các 
hãng phần mềm thứ 3 cho phép backup logic và vật lý hoàn thiện cũng như recovery toàn 
bộ hoặc tại một thời điểm nào đó. 
1.1.7. Sự phát triển ứng dụng hỗn hợp 
Một trong số các lý do khiến cho MySQL là cơ sở dữ liệu mã nguồn mở phổ biến 
nhất thế giới là nó cung cấp hỗ trợ hỗn hợp cho bất kì sự phát triển ứng dụng nào cần. 
Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các stored procedure, trigger, 
function, view, cursor, ANSI-standard SQL, và nhiều nữa. Với các ứng dụng nhúng, thư 
viện plug-in có sẵn để nhúng vào cơ sở dữ liệu MySQL hỗ trợ trong bất kì ứng dụng nào. 
MySQL cũng cung cấp các bộ kết nối như: ODBC, JDBC, … để cho phép tất cả các form 
của ứng dụng sử dụng MySQL như một server quản lí dữ liệu được ưu tiên.
8 
1.1.8. Dễ dàng quản lý 
MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thời gian ở mức trung bình 
từ lúc download phần mềm đến khi cài đặt hoàn thành chỉ mất chưa đầy 15 phút. Điều 
này đúng cho dù flatform là Microsoft Windows, Linux, Macintosh hay Unix. Khi đã 
được cài đặt, tính năng tự quản lý như tự động mở rộng không gian, tự khởi động lại, và 
cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu làm việc. MySQL cũng cung cấp 
một bộ hoàn thiện các công cụ quản lý đồ họa cho phép một DBA quản lý, sửa chữa, và 
điều khiển hoạt động của nhiều server MySQL từ một máy trạm đơn. Nhiều công cụ của 
các hãng phần mềm thứ 3 cũng có sẵn trong MySQL để điều khiển các tác vụ từ thiết kế 
dữ liệu và ETL, đến việc quản trị cơ sở dữ liệu hoàn thiện, quản lý công việc, và thực 
hiện kiểm tra. 
1.1.9. Mã nguồn mở 
Nhiều công ty lưỡng lự trong việc giao phó toàn bộ cho phần mềm mã nguồn mở 
vì họ tin họ không thể tìm được một cách hỗ trợ hay mạng lưới an toàn phục vụ chuyên 
nghiệp, hiện tại, họ tin vào phần mềm có bản quyền để chắc chắn về sự thành công toàn 
diện cho các ứng dụng chủ chốt của họ. Những lo lắng của họ có thể được dẹp bỏ với 
MySQL, sự bồi thường là có trong mạng lưới MySQL. 
1.1.10. Chi phí thấp 
Bằng cách sử dụng MySQL cho các dự án phát triển mới, các công ty đang thấy rõ 
việc tiết kiệm chi phí. Được hoàn thành thông qua sử dụng server cơ sở dữ liệu MySQL 
và kiến trúc scale-out, các doanh nghiệp đã tìm ra cái mà họ có thể đạt được ở mức ngạc 
nhiên về khả năng xử lý. Thêm vào đó, tính tin cậy và dễ duy trì của MySQL ở mức trung 
bình mà người quản trị cơ sở dữ liệu không phải mất nhiều thời gian sửa chữa hay vấn đề 
thời gian chết
9 
1.2. PHP Làm việc cùng MySQL 
1.2.1. Định nghĩa cơ bản 
Trong BTL lần này chúng ta sẽ tìm hiểu về MySQL được làm việc trên nền web 
với PHP. 
MySQL là hệ quản trị dữ liệu miễn phí, được tích hợp sử dụng chung với apache, 
PHP. Chính yếu tố phát triển trong cộng đồng mã nguồn mở nên MySQL đã qua rất 
nhiều sự hỗ trợ của những lập trình viên yêu thích mã nguồn mở. MySQL cũng có cùng 
một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL. Nhưng MySQL không bao 
quát toàn bộ những câu truy vấn cao cấp như SQL. 
Về bản chất MySQL chỉ đáp ứng việc truy xuất đơn giản trong quá trình vận hành 
của website nhưng hầu hết có thể giải quyết các bài toán trong PHP 
1.2.2. Cài đặt MySQL 
Đầu tiên chúng ta sử dụng lệnh sau để cài đặt MySQL 5: 
create database quanlysinhvien; 
Sudo apt-get install mysql-server mysql-client
10
11 
Đến đây ta đã có thể làm việc với MySQL qua công cụ dòng lệnh 
Trong tài liệu này có sử dụng công cụ PHP MyAdmin để làm việc với MySQL 
Sau đây là phần triển khai cài đặt 
Cài đặt Apache2 
Bước 1 : Chuyển sang quyền root 
sudo su
12 
Nhập mật khẩu -> Enter 
Bước 2 : Cập nhật các Repository: 
apt-get update 
Bước 3 : Cài đặt apache2 bằng lệnh 
sudo apt-get install apache2
13
14 
Gõ "Y" rồi Enter 
Quá trình cài đặt sẽ diễn ra trong ít phút
15 
sau khi hoàn tất,mở bất kỳ trình duyệt nào và gõ vào địa chỉ IP server . Ví 
dụ http://192.168.1.80
16 
Cài đặt PHP5 
Gõ y rồi Enter 
Cài đặt phpMyAdmin bằng lệnh 
apt-get install phpmyadmin
17
18 
Gõ y rồi Enter 
Quá trình download package sẽ diễn ra trong ít phút. Cho đến khi hiện ra màn 
hình lựa chọn web server đang sử dụng.
19 
Chọn apache2 nếu bạn cài đặt apache2, rồi chọn Ok. Để di chuyển giữa các lựa 
chọn sử dụng phím Tab, để xác nhận lựa chọn di duyển màu đỏ đến vị trí cần và gõ phím 
Space (phím cách) 
Bạn nên chọn <NO> nếu không quá am hiểu về hệ thống.
20 
Cho đến khi màn hình như sau là đã hoàn tất. 
sau khi hoàn tất,mở bất kỳ trình duyệt nào và gõ vào địa chỉ IP 
server/phpmyadmin . Ví dụ http://192.168.1.80
21 
1.3. Cấu trúc của một cơ sở dữ liệu 
1.3.1. Định nghĩa cơ bản 
Định nghĩa cơ sở dữ liệu bảng, cột 
Cơ sở dữ liệu: là tên của cơ sở dữ liệu chúng ta muốn sử dụng 
Bảng: Là 1 bảng giá trị nằm trong cơ sở dữ liệu. 
Bảng là nơi lưu trữ dữ liệu. Trước khi thực hiện truy vấn và sử dụng dữ liệu, thì 
nhiệm vụ đầu tiên là phải lưu trữ nó. 
Bảng có thể chứa dữ liệu về các đối tượng thông tin như HÀNG HÓA, NHÂN 
VIÊN…. Mỗi dòng (row) của bảng chứa một thể hiện riêng của đối tượng nào đó. Ví dụ 
thông tin về một hàng hóa, thông tin về một nhân viên…. Dòng được thành lập từ các cột 
(column), mỗi cột là một thông tin về đối tượng được lưu trữ trong bản. Ví dụ trong bảng 
NHANVIEN chúng ta có các field như sau: Field MaNV(mã nhân viên), field HoNV (họ 
và chữ lót), field TenNV (tên), field Nu (nam/nữ), field NgaySinh (ngày sinh)….. 
Cột là 1 giá trị nằm trong bảng. Dùng để lưu trữ các trường dữ liệu. 
Thuộc tính 
Ví dụ: 
Sinhvien 
MSSV 1021050001 
Hovaten Le Cong Tuan Anh 
Ngaysinh 20/10/1992 
Email lecongtuananh@hotmail.com 
Diachi Trieu Son – Thanh Hoa
22 
Như vậy ta có thể hiểu như sau: 
1 cơ sở dữ liệu có thể bao gồm nhiều bảng. 
1 bảng có thể bao gồm nhiều cột 
1 cột có thể có hoặc không có những thuộc tính. 
1.3.2. Các kiểu dữ liệu cơ bản 
MySQL cung cấp các kiểu dữ liệu sau : 
1.3.2.1. Kiểu dữ liệu số (numeric) 
Tên ki ểu 
(type name) 
Bộ nhớ 
(memory space) 
bytes 
Vùng giá trị 
(value range) 
Vùng giá trị dương 
(Unsigned) 
Tinyint 1 -128 ÷ 172 0 ÷ 255 
Smallint 2 -32768 ÷ 32767 0 ÷ 65535 
Mediumint 3 -8388608 ÷8388607 0 0 ÷ 16777215 
Int 
4 2147483648 
÷ 
2147483647 
0 ÷ 4294967295 
Bigint 
8 - 
9223372036854775808 
÷ 
9223372036854775807 
0 ÷ 
18446744073709550 
615 
Float (M,D) 4 
Double (M,D) 8 
Decimal (M,D) M+2 
1.3.2.2. Kiểu chuỗi kí tự (string) 
ên ki ểu Kích thước tối đa 
(bytes) 
Khoảng lưu trữ 
(bytes) 
Char(x) 255 X 
Varchar(x) 255 X+1 
Tinytext 255 X+1 
Tinyblob 255 X+2 
Text 65535 X+2 
Blob 65535 X+2 
Mediumtext 1.6 MB X + 3
23 
Mediumblog 1.6 MB X + 3 
Longtext 4.2 MB X + 4 
Longblob 4.2 MB X + 4 
1.3.2.3. Kiểu hỗn hợp (Miscellaneous) 
Enum : kiểu dữ liệu liệt kê, cho phép định nghĩa trước các giá trị cho một cột, cột 
sẽ chỉ lưu trữ một trong các giá trị định sẵn đó. 
Vd : 
CREATE TABLE Test( 
Return ENUM('Y','N') DEFAULT 'N', 
Size ENUM('S','M','L','XL','XXL'), 
Color ENUM('Black','Red','White') 
) 
Set : kiểu dữ liệu liệt kê, tương tự enum nhưng cho phép cột lưu trữ nhiều giá trị 
trong các giá trị định sẵn, mỗi giá trị cách nhau bởi dấu ', ' 
Vd : 
CREATE Table Test( 
Advertiser SET('Web Page','Television','Newspaper') 
) 
1.3.2.4. Kiểu ngày giờ 
Tên ki ểu Định dạng chuẩn Giá trị 0 
DATETIME YYYY-MM-DD 
HH:MM:SS 
0000-00-00 
00:00:00 
DATE YYYY-MM-DD 0000-00-00 
TIME HH:MM:SS HH:MM:SS 
YEAR YEAR 0000 
TIMESTAMP (có nhiều giá trị) 00000000000000 
 Định dạng kiểu TIMESTAMP 
Tên ki ểu Định dạng
24 
TIMESTAMP(14) YYYYMMDDHHMMS 
S 
TIMESTAMP(12) YYMMDDHHMMSS 
TIMESTAMP(10) YYMMDDHHMM 
TIMESTAMP(8) YYYYMMDD 
TIMESTAMP(6) YYMMDD 
TIMESTAMP(4) YYMM 
TIMESTAMP(2) YY 
1.3.2.5. Các từ khoá định nghĩa cột (modifiers) 
Từ khoá Kiểu dữ 
liệuthích hợp 
Ý nghĩa 
Auto_Incr 
ement 
Int Tự động tăng dữ liệu của cột 
Binary Char, Varchar Thiết lập lưu trữ chuỗi nhị phân 
(phân biệt chữ hoa – thường) 
Default Tất cảtrừ text, 
blob 
Thiết lập giá trị mặc định cho cộ 
Not null Tất cả Không cho phép để giá trị null 
Null Tất cả Cho phép để giá trị null 
Primary 
Tất cả Thiết khoá chính cho cột 
key 
Unique Tất cả Giá trị duy nhất 
Unsigned Kiểu numeric Chỉ lưu giá trị số nguyên 
Zerofill Kiểu numeric Điền giá trị 0 cho đủ chiều dài số 
1.3.2.6. Định nghĩa một số thuật ngữ 
NULL : Giá trị cho phép rỗng. 
AUTO_INCREMENT : Cho phép giá trị tăng dần (tự động). 
UNSIGNED : Phải là số nguyên dương 
PRIMARY KEY : Cho phép nó là khóa chính trong bảng. 
1.3.2.7. Các loại dữ liệu trong MySQL 
Sau đây là một số kiểu dữ liệu thông dụng: 
Kiểu dữ liệu Mô tả
25 
Integers (số nguyên)  Bigint: khoảng giá trị từ -263 đến 263 -1 tức từ - 
9.223.372.036.854.775.808 đến 
9.223.372.036.854.775,807. 
 Int: khoảng giá trị từ -231 đến 231 -1 tức từ - 
2.147.483.648 đến 2.147.483.647. 
 Smallint: khoảng giá trị từ -215 đến 215 tức từ -32.768 
đến 32.767. 
 Tinyint: khoảng giá trị từ 0 đến 255. 
 Bit: chứa giá trị 0 hoặc 1. 
Decimal và numeric (số 
thập phân) 
 Decimal: có giá t rị từ -1038 +1 đến 1038 -1. 
 Numeric: tương đương sis decimal. 
Money và 
smallmoney (kiểu tiền tệ) 
 Money: khoảng giá trị từ -263 đến 263 tức từ - 
922.337.203.685.477,5808 922.337.203.685.477,5807. 
 Smallmoney: khoảng giá trị từ -214.748,3648 đến 
214.748,3647 
Approximate Numerics  Float: độ chính xác từ 1.79E + 308 đến 1.79E + 308. 
 Real: độ chính xác từ -3.40E + 38 đến 3.40E + 38. 
datetime and 
smalldatetime 
 datetime: khoảng giá trị từ 1/1/1753 đến 31/12/9999. 
 smalldatetime: khoảng giá trị từ 1/1/1900 đến 6/6/2079. 
Character Strings (kiểu 
chuỗi) 
 Char: không chứa Unicode, chiều dài tối đa là 8.000 ký 
tự. 
 Varchar: không chứa Unicode, chiều dài tối đa là 8.000 
ký tự. 
 Text: không chứa Unicode, chiều dài tối đa là 231 -1 
tương đương với 2.147.483.647 ký tự 
Unicode Character 
Strings (kiểu chuỗi có 
chứa Unicode) 
 nchar: có chứa Unicode, chiều dài tối đa là 4.000 ký tự 
 nvarchar: có chứa Unicode, chiều dài tối đa là 4.000 ký 
tự 
 ntext: có chứa Unicode, chiều dài tối đa là 230 – 1 tức 
1.073.741.823 ký tự.
26 
1.3.3. Kết nối vào MySQL Server 
PHP cung cấp hàm mysql_connect để kết nối vèo MySQL server. Cú pháp của 
hàm này như sau: 
mysql_connect($server_address, $username, $password) 
1.4. Các thao tác bằng dòng lệnh trên MySQL 
1.4.1. Các thao tác trên Database 
Tạo database và user MySql bằng dòng lệnh trên Linux Terminal, cách thiết lập 
quyền sử dụng cho user. 
1.4.1.1. Đăng nhập vào MySql Server bằng lệnh sau 
mysql -u root -p 
Tạo database 
1.4.1.2. Sau khi đăng nhập vào MySql Server bạn có thể tạo cơ sở dữ liệu bằng 
lệnh sau 
create database dbname; 
1.4.1.3. Bây giờ chúng ta tạo một database mới có tên quanlysinhvien 
create database quanlysinhvien; 
1.4.1.4. Để sử dụng database ta vừa tạo ta sử dụng lệnh 
use quanlysinhvien 
1.4.1.5. Tiếp theo ta tạo bảng tbl_sinhvien. 
CREATE TABLE tbl_sinhvien( 
sinhvien_id int(10) NOT NULL AUTO_INCREMENT, 
sinhvien_name varchar(50) NOT NULL, 
sinhvien_email varchar(50) NULL, 
sinhvien_address varchar(200) DEFAULT NULL,
27 
sinhvien_phone int(10), 
sinhvien_info text NULL, 
PRIMARY KEY(sinhvien_id) 
)ENGINE='innodb'; 
Xem cấu trúc của bảng 
show columns from tbl_sinhvien 
Kết quả như hình bên dưới 
• Chọn một database: 
- Chọn một database mà ta làm việc với chúng 
Cú pháp: use tên_database; 
• Xem bảng có trong database 
Cú pháp: show tables; 
• Xem các database hiện có 
- Dùng để xem các database đang có trên server 
Cú pháp: 
sh1o w databases;
28 
Hình minh họa 
• Chọn một database: 
- Chọn một database mà ta làm việc với chúng 
Cú pháp: 
use tên_database; 
• Xem bảng có trong database 
Cú pháp: 
show tables; 
3. Tạo user và thiết lập quyền cho user 
Sử dụng lệnh sau để thiết lập đầy đủ các quyền cho một user 
grant all on dbname.* to username@localhost; 
Tất nhiên trong thực tế chắc chắn bạn cần giới hạn một số quyền của user, khi đó 
hãy sử dụng lệnh sau 
grant SELECT on dbname.* to username@localhost; // SELECT là quyền 
Danh sách các quyền bạn có thể thiết lập cho user 
ALL 
ALTER 
CREATE VIEW 
CREATE
29 
DELETE 
DROP 
GRANT OPTION 
INDEX 
INSERT 
SELECT 
SHOW VIEW 
TRIGGER 
UPDATE 
Sau khi thiết lập các quyền cho user, bạn cần làm thêm một việc là thiết lập mật 
khẩu cho user 
set password for username@localhost = password('mat_khau'); 
- See more at: http://thuthuatvietnam.com/tao-database-va-user-mysql-bang-lenh-terminal. 
html#sthash.HP3oSxZO.dpuf 
Backup bằng Command Line (sử dụng mysqldump để backup database) 
Để có thể sử dụng dòng lệnh sao lưu cơ sở dữ liệu ta cần đăng nhập vào server 
thông qua kết nối ssh 
Sử dụng cấu trúc lệnh như sau 
$ mysqldump --opt -u [uname] -p [dbname] > [backupfile.sql] 
Trong đó: 
[uname] : user của database 
[dbname] : Tên của database 
[backupfile.sql] : Tên file backup muốn lưu 
[--opt] : Các tùy chọn mysqldump 
Ví dụ : Để backup database thuthuatvietnam
30 
$ mysqldump -u root -p thuthuatvietnam > backup_ttvn.sql 
Có thể tùy chọn các bảng để backup bằng cách liệt kê các bảng, các bảng cách 
nhau bằng khoảng trắng (dấu space) 
$ mysqldump -u root -p thuthuatvietnam bang_a bang_b > backup_ttvn.sql 
Back up MySQL Database và đồng thời nén lại 
Nếu database có dung lượng lớn, ta cần nén lại, khi đó có thể sử dụng cấu trúc 
lệnh nén cùng gzip 
$ mysqldump -u [uname] -p [dbname] | gzip -9 > [backupfile.sql.gz] 
2. Restore MySQL Database 
Ở trên là cách tạo bản backup, tiếp tục là cách restore. Cấu trúc lệnh như sau: 
$ mysql -u [uname] -p [dbname] < [backupfile.sql] 
Trong đó: 
[uname] : user của database 
[dbname] : Tên của database 
[backupfile.sql] : Tên file backup đã lưu (file backup muốn phục hồi) 
Ví dụ: Phục hồi database mangmaytinh 
$ mysql -u root -p mangmaytinh < backup_ttvn.sql 
Phục hồi database được nén 
gunzip< [backupfile.sql.gz] | mysql -u [uname] -p [dbname] 
Nếu muốn phục hồi một database đã tạo ra trước đó sử dụng lệnh mysqlimport. 
Cấu trúc lệnh như sau: 
mysqlimport -u [uname] -p [dbname] [backupfile.sql]
31 
CREATE TABLE tbl_sinhvien( 
sinhvien_id int(10) NOT NULL AUTO_INCREMENT, 
sinhvien_name varchar(50) NOT NULL, 
sinhvien_email varchar(50) NULL, 
sinhvien_address varchar(200) DEFAULT NULL, 
sinhvien_phone int(10), 
sinhvien_info text NULL, 
PRIMARY KEY(sinhvien_id) 
)ENGINE='innodb'; 
Xem cấu trúc của bảng 
show columns from tbl_sinhvien 
Kết quả như hình bên dưới 
• Chọn một database: 
- Chọn một database mà ta làm việc với chúng 
Cú pháp: 
use tên_database; 
• Xem bảng có trong database 
Cú pháp:
32 
show tables; 
• Xem các database hiện có 
- Dùng để xem các database đang có trên server 
Cú pháp: 
show databases; 
Hình minh họa 
• Chọn một database: 
- Chọn một database mà ta làm việc với chúng 
Cú pháp: 
use tên_database; 
• Xem bảng có trong database 
Cú pháp: 
show tables; 
3. Tạo user và thi ết l ập quyền cho user 
Sử dụng lệnh sau để thiết lập đầy đủ các quyền cho một user 
grant all on dbname.* to username@localhost; 
trong thực tế cần giới hạn một số quyền của user, khi đó hãy sử dụng lệnh sau 
grant SELECT on dbname.* to username@localhost; // SELECT là quyền 
Danh sách các quyền bạn có thể thiết lập cho user
33 
ALL 
ALTER 
CREATE VIEW 
CREATE 
DELETE 
DROP 
GRANT OPTION 
INDEX 
INSERT 
SELECT 
SHOW VIEW 
TRIGGER 
UPDATE 
Sau khi thiết lập các quyền cho user, bạn cần làm thêm một việc là thiết lập mật khẩu 
cho user 
set password for username@localhost = password('mat_khau'); 
Backup bằng Command Line (sử dụng mysqldump để backup database) 
Để có thể sử dụng dòng lệnh sao lưu cơ sở dữ liệu ta cần đăng nhập vào server thông 
qua kết nối ssh 
Sử dụng cấu trúc lệnh như sau 
$ mysqldump --opt -u [uname] -p [dbname] > [backupfile.sql] 
Trong đó: 
[uname] : user của database 
[dbname] : Tên của database 
[backupfile.sql] : Tên file backup muốn lưu
34 
[--opt] : Các tùy chọn mysqldump 
Ví dụ : Để backup database thuthuatvietnam 
$ mysqldump -u root -p thuthuatvietnam > backup_ttvn.sql 
Có thể tùy chọn các bảng để backup bằng cách liệt kê các bảng, các bảng cách nhau 
bằng khoảng trắng (dấu space) 
$ mysqldump -u root -p thuthuatvietnam bang_a bang_b > backup_ttvn.sql 
Back up MySQL Database và đồng thời nén l ại 
Nếu database có dung lượng lớn, ta cần nén lại, khi đó có thể sử dụng cấu trúc lệnh 
nén cùng gzip 
$ mysqldump -u [uname] -p [dbname] | gzip -9 > [backupfile.sql.gz] 
2. Restore MySQL Database 
Ở trên là cách tạo bản backup, tiếp tục là cách restore. Cấu trúc lệnh như sau: 
$ mysql -u [uname] -p [dbname] < [backupfile.sql] 
Trong đó: 
[uname] : user của database 
[dbname] : Tên của database 
[backupfile.sql] : Tên file backup đã lưu (file backup muốn phục hồi) 
Ví dụ: Phục hồi database mangmaytinh 
$ mysql -u root -p mangmaytinh < backup_ttvn.sql 
Phục hồi database được nén 
gunzip < [backupfile.sql.gz] | mysql -u [uname] -p [dbname] 
Nếu muốn phục hồi một database đã tạo ra trước đó sử dụng lệnh mysqlimport. Cấu 
trúc lệnh như sau: 
mysqlimport -u [uname] -p [dbname] [backupfile.sql]
35 
1.4.2. Các thao tác trên bảng 
1.4.2.1. Tạo bảng bằng lênh SQL 
 Tạo bảng mới 
Create table table_name ( column_names datatypes modifiers) 
Vd : Tạo bảng Customers (khách hàng) 
CREATE TABLE Customers (Customer_ID INT NOT NULL 
PRIMARY KEY AUTO_INCREMENT, First_Name VARCHAR(20) 
NOT NULL, Last_Name VARCHAR(30) NOT NULL, 
Address VARCHAR(50), City VARCHAR(20), 
State VARCHAR(2), Zip VARCHAR(20), 
E_Mail VARCHAR(20), Age INT, Race VARCHAR(20), 
Gender ENUM('M', 'F') DEFAULT 'F', 
Eye_Color VARCHAR(10), Hair_Color VARCHAR(10), 
Favorite_Activity ENUM('Programming', 'Eating', 'Biking', 'Running', 'None') 
DEFAULT 'None', 
Favorite_Movie VARCHAR(50),Occupation VARCHAR(30), Smoker 
CHAR(0)); 
 Tạo bảng tạm (bảng phụ) mới 
Create temporary table table_name (column_names datatypes modifiers) 
 Tạo bảng tạm (bảng phụ) từ một câu truy vấn 
Create temporary table select column_name from table_name 
vd : create temporary table select * from Customers 
 Tạo bảng sao chép từ một bảng khác 
Create table table_name select column_name from table_name_1 
vd : create table Customers_copy select * from Customers 
 Kiểm tra sự tồn tại của bảng trước khi tạo
36 
Create table If not Exists table_name (column_names datatypes modifiers) 
1.4.2.2. Xem thông tin của CSDL, Bảng 
 Xem các bảng của CSDL 
Show tables [from database_name]; 
 Xem các cột của bảng 
Show columns [from table_name]; 
 Xem cấu trúc của bảng 
Discribe table_name [from database_name]; 
1.4.2.3. Xoá bảng 
Drop table table_name [from database_name]; 
1.4.2.4. Thay đổi cấu trúc bảng 
 Thay đổi tên cột 
Alter table table_name change old_column_name 
new_column_name old_datatype; 
Vd : ALTER TABLE Customers 
CHANGE First_Name FirstName VARCHAR(20); 
 Thay đổi kiểu dữ liệu 
Alter table table_name change column_name column_name new_datatype; 
Vd : ALTER TABLE Customers 
CHANGE Last_Name Last_Name VARCHAR(50); 
 Đổi tên bảng 
Alter table table_name Rename new_table_name; 
Vd : ALTER TABLE Customers RENAME Customer_Table; 
 Thêm cột vào bảng 
Alter table table_name add column_name datatype;
37 
Vd : ALTER TABLE Customer ADD Last_Name VARCHAR(30); 
 Xoá một cột 
Alter table table_name Drop column_name; 
Vd : ALTER TABLE Customers DROP Last_Name; 
 Thêm khoá chính 
Alter table table_name Add Primary Key (column_names); 
Vd : ALTER TABLE Customers ADD PRIMARY KEY (Customer_ID); 
 Xoá khoá chính 
Alter table table_name Drop Primary Key; 
1.4.2.5. Chèn dữ liệu vào bảng 
 Chèn một dòng dữ liệu 
Insert into table_name (column_names) values (column_values); 
Vd : Tạo bảng một bảng có tên Test_Table và chèn dữ liệu 
CREATE TABLE Test_Table 
(Test_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
Test_Name VARCHAR(30), 
Test_Date DATETIME, 
Test_Giver VARCHAR(30)); 
INSERT INTO Test_Table (Test_ID, Test_Name, Test_Date, Test_Giver) 
VALUES (NULL, 'Test','2000-01-01','Glen'); 
 Chèn nhiều dòng dữ liệu 
Insert into table_name (column_names) values (column_values), 
(column_values), (…); 
Vd : 
INSERT INTO Test_Table (Test_ID, Test_Name, Test_Date, Test_Giver)
38 
VALUES (NULL, 'John','2000-01-01','Glen'), 
(NULL, 'Thomas','2000-01-01','Jose'); 
1.4.3. Các thao tác các trường 
Ghi Dữ Liệu 
1.4.3.1. Thêm dữ liệu 
Sau khi chúng ta đã tạo một một bảng dữ liệu trên MySQL, thì dữ liệu trong bảng 
chúng ta có thể tùy biến thay đổi và cập nhật một cách dễ dàng . 
Code SQL : 
INSERT INTO `id_student`(`AI`, `nick`, `name`, `ngaysinh`, `nhom`, `email`) 
VALUES ('3','dat','dat','31/10/92','TC 7',dtran3110''); 
 Trước hết các bạn dùng INSERT INTO để thông báo ‘tớ sắp chèn thêm một hàng 
vào đấy !’ 
 Tiếp theo, các bạn chỉ ra tên của cái bảng mà bạn định chèn, ở đây là 
bảng id_student, rồi đặt vào trong ngoặc đơn tên các cột của bảng đó. 
 Cuối cùng, bạn viết VALUE rồi ghi giá trị cần chèn vào theo đúng thứ tự với các 
cột để khỏi nhầm lẫn. 
 Riêng mục AI hiểu một cách khác là ID, thì làm trên MySQL cũng như trên 
Phpmyadmin nó sẽ tự động tăng dần. 
Nếu thích các bạn có thể không cần ghi ra tên các cột ngay sau tên bảng, code vẫn 
chạy đúng, nhưng như vậy sẽ thiếu sự rõ ràng khi mình đọc code : 
Code SQL: 
INSERT INTO VALUES ('3','dat','dat','31/10/92','TC 7',dtran3110'');
39 
Mình vừa thêm thành công dữ liệu vào bảng id_student 
Sau đây mình sẽ kiểm tra xem dữ liệu có AI = 4 đã có trong bảng chưa ? 
Sử dụng câu lệnh SQL : 
SELECT * FROM `id_student` WHERE 1; 
Dữ liệu trong bảng sẽ được hiển thị :
40 
1.4.3.2. Sửa dữ liệu 
Trên 4.1 chúng ta vừa thao tác là thêm dữ liệu vào bảng tiếp đây để cập hay thay 
đổi những thông tin dữ liệu trong bảng thì sử dụng câu lệnh Sql sau 
Lệnh SQL : 
UPDATE `id_student` SET `AI`=[value-1],`nick`=[value-2],`name`=[value- 
3],`ngaysinh`=[value-4],`nhom`=[value-5],`email`=[value-6] WHERE 1; 
Trước hết, từ khóa UPDATE cho biết mình sắp sửa đổi một dữ liệu 
Tiếp theo : tên của bảng cần sửa 
Từ khóa SET ngay sau đó dùng để thay đổi giá trị của dữ liệu cần sửa đổi 
Dùng phép gán để thay đổi giá trị 
WHERE để chỉ ra ID của hàng chứa dữ liệu cần sửa 
Nếu bạn không biết ID của nó là bao nhiêu, bạn có thể vào PhpMyAdmin để xem 
.
41 
1.4.3.3. Xóa dữ liệu 
Thao tác cuối cùng là Delete! , nói đến xóa dữ liệu thì các bạn thao tác thật thận 
trọng vì nhiều khi thực tế có nhiều dữ liệu quan trọng một khi Xóa rùi thì có thể không 
lấy lại được hoặc vô cùng phức tạp. 
Lệnh SQL : 
DELETE FROM `id_student` WHERE AI= ‘1’ ; 
DELETE mình dùng từ khóa 
FROM để chỉ ra xóa ở đâu (ở bảng nào) và chỉ ra tên của bảng, 
WHERE để chỉ ra hàng cần xóa! Bạn cũng có thể viết WHERE AI=1. Kết quả
42 
1.4.3.4. Kết luận 
Trên đây là thao tác thêm sửa xóa dữ liệu trên MySql bằng lệnh trên ubuntu Server 
Có cách khác để thao tác dễ dàng hơn là các bạn dùng trình duyệt web của máy 
client trong local truy cập vào địa chỉ mạng và tới phpmyadmin. 
Vd : 192.168.1.9/phpmyadmin
Bạn sẽ thao tác bằng hỉnh ảnh trực quan và cũng có thể kiểm tra khi chúng ta thao 
43 
tác bằng dòng lệnh đã thành công chưa … 
1.5. Liên kết mysql và PHP chúng ta cần nắm 6 hàm cơ bản: 
1.5.1.Kết nối cơ sở dữ liệu: 
Cú pháp: 
mysql_connect(“hostname”,”user”,”pass”) 
1.5.2. Lựa chọn cơ sở dữ liệu: 
Cú pháp: 
mysql_select_db(“tên_CSDL”) 
Ví dụ: 
$conn=mysql_connect(“localhost”,”root”,”root”) or die(” khong the 
ket noi”); 
mysql_select_db(“demo”); 
1.5.3. Thực thi câu lệnh truy vấn: 
Cú pháp: 
mysql_query(“Câu truy vấn ở đây”);
44 
1.5.4. Đếm số dòng dữ liệu trong bảng: 
Cú pháp: 
mysql_num_rows(); 
1.5.5. Lấy dữ liệu từ bảng đưa vào mảng: 
Cú pháp: 
mysql_fetch_array(); 
1.5.6. Đóng kết nối cơ sở dữ liệu: 
Cú pháp: 
mysql_close(); 
Tạo cơ sở dữ liệu dựa trên từng đoạn code sau: 
mysql -hlocalhost -uroot –proot 
mysql>create database demo_mysql; 
mysql> use demo_mysql; 
mysql>create table user(id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
username VARCHAR(50) NOT NULL, password CHAR(50) NOT NULL, PRIMARY 
KEY(id)); 
Tạo trang test.php. Đầu tiên chúng ta sẽ kết nối cơ sở dữ liệu. 
<? 
$conn=mysql_connect(“localhost”, “root”, “root”) or die(“can’t 
connect database”); 
mysql_select_db(“demo_mysql”,$conn); 
?> 
Tiếp đến viết câu truy vấn lấy ra tất cả user từ database. 
<? 
$sql=”select * from user”;
45 
$query=mysql_query($sql); 
?> 
Kiểm tra xem trong bảng dữ liệu đã tồn tại user nào chưa ?. Nếu chưa thì xuất ra 
thông báo lỗi, ngược lại thì đưa chúng vào mảng và lặp cho đến hết bảng dữ liệu. 
<? 
if(mysql_num_rows($query) == 0) 
{ 
echo “Chua co du lieu”; 
} 
else 
{ 
while($row=mysql_fetch_array($query)) 
{ 
echo $row[username] .” – “.$row[password].”<br />”; 
} 
} 
?> 
Và cuối cùng chúng ta đóng kết nối và kết thúc thao tác xử lý. 
<? 
mysql_close($conn); 
?> 
Và cuối cùng là file hoàn chỉnh của ứng dụng trên: 
<? 
$conn=mysql_connect(“localhost”, “root”, “root”) or die(“can’t 
connect database”); 
mysql_select_db(“demo_mysql”,$conn); 
$sql=”select * from user”; 
$query=mysql_query($sql); 
if(mysql_num_rows($query) == 0)
46 
{ 
echo “Chua co du lieu”; 
} 
else 
{ 
while($row=mysql_fetch_array($query)) 
{ 
echo $row[username] .” – “.$row[password].”<br />”; 
} 
} 
mysql_close($conn); 
?>
47
48 
Phần 2: PHP MYADMIN và MySQL Client 
Định nghĩa 
PhpMyAdmin là một công cụ nguồn mở miễn phí được viết bằng PHP dự định để 
xử lý quản trị của MySQL thông qua một trình duyệt web. Nó có thể thực hiện nhiều tác 
vụ như tạo, sửa đổi hoặc xóa bỏ cơ sở dữ liệu, bảng, các trường hoặc bản ghi; thực hiện 
báo cáo SQL; hoặc quản lý người dùng và cấp phép. 
2.1. Thao tác trên Phpmyadmin: 
2.1.1. Tạo Database (CSDL – Cơ Sở Dữ Liệu) 
Hình1 . giao diện của phpMyAdmin
49 
Hinh 2 tao database “Quan Ly” 
2.1.2. Tạo Bảng (table) 
Thêm bảng vào database: Ta thêm bảng user có cấu trúc như sau 
Field Kiểu dữ liệu Mô tả 
id Integer (10) 
Là Khóa chính của bảng có chiều dài ký tứ tối đa là 
10 
username Varchar (50) Là tên đăng nhập có chiều dài kí tự tối đa là 50 
password char (50) Là mật khẩu có chiều dài ký tự tối đa là 50 
Email Varchar Email với chiều dài ký tự tối đa là 50
50 
(50) 
address 
varchar 
(200) 
địa chỉ 
Phone integer (50) Số điện thoại 
gender char (1) thể hiện giới tính 
Tiếp theo ta chọn database Quan Ly mà ta cần thêm bảng User vào như hình bên 
dưới 
Nhấn Go 
Sau khi nhập đầy đủ thông tin ta được như hình bên dưới
51 
Sau đó nhấn save để lưu lại ta được bảng user như hình bên dưới 
2.1.3. Thêm dữ liệu vào Bảng (table) 
Tiếp theo ta thêm dữ liệu vào trong bảngClick vào bảng user và chọn Insert ta 
được giao diện như sau
52 
Tã đã thêm dữ liệu vào bảng 
2.1.4. Sửa và Xóa dữ liệu trong Bảng (table) 
Bước 1: Chọn table muốn xóa sửa (ví dụ danhmuc) 
Bước 2: Nhắp link Browse. 
Bước 3: Hiệu chỉnh/xóa: khi muốn sửa xóa phải tích vào dòng muốn thao tác 
Sửa record: Nhắp nút Edit (cây viết) trên dòng chứa record. 
Xóa record : Nhắp nút Drop (dấu nhân màu đỏ) trên dòng chứa record.
53 
2.1.5. Sửa cấu trúc Table (bảng): 
Bước 1: Chọn table 
Bước 2: Nhắp link Structure 
Bước 3: 
Chỉnh field: Nhắp nút Change (cây viết) 
Xóa field : Nhắp nút Drop (dấu nhân màu đỏ) 
Thêm field : Nhắp nút Go trong mục Add 
2.1.6. Đổi tên Bảng (table) 
Bước 1: Chọn table 
Bước 2: Nhắp link Operations 
Bước 3. Rename table to: gõ tên mới 
Bước 4: Nhắp nút Go 
Ví dụ: Đổi tên table User thành Nguoidung
54 
2.1.7. Xóa Bảng (table) 
Bước 1: Chọn database 
Bước 2: Nhắp Drop 
Ví dụ: Xóa table Manh 
2.2. Sử dụng MySQL Client để kết nối với MySQL server 
Hiện nay có rất nhiều phần mềm MySQL Client trong tài liệu này sẽ sử dụng 
dbForge Studio Express for MySQL 
Để sử dụng dbForge Studio Express for MySQL đầu tiên ta download phần mềm 
tại http://www.devart.com/dbforge/mysql/studio/download.html và cài đặt lên máy trạm 
như phần mềm bình thường 
Dưới đây là một vài minh họa về các thao tác cơ bản sử dụng trên 
dbForge Studio Express for MySQL
55 
Giao diện khi chạy dbForge Studio Express for MySQL 
2.2.1. Tạo kết nối với MySQL server 
Trong phần mềm các thao tác trên MySQL server được thực hiện qua giao hiện đồ 
họa trực quan thân thiện
56 
2.2.2. 
Thao tác tạo database 
Nhập tên và kiểu tham chiếu của database
57 
2.2.3. Tạo bảng
58 
2.2.4. Sửa cấu trúc bảng
59 
2.2.5. Xóa bảng 
2.2.6. Đổi tên bảng 
Các thao tác với dữ liệu
60 
2.2.7. Xóa database
61 
KẾT LUẬN 
Sau khi tìm hiểu và thực hành đề tài bài tập lớn nhóm chúng em đã có sự tập trung 
các ý để hoàn thiện tập tài liệu này với một số website tham khảo sau đây: 
http://vi.wikipedia.org/wiki/SQL 
http://forum.ubuntu-vn.org/viewtopic.php?f=51&t=10750 
http://www.quantrimang.com.vn/cai-dat-apache2-voi-php5-va-ho-tro-mysql-tren-ubuntu- 
11-10-lamp-83444 
và các tài liệu trên sách báo và thực hành trực tiếp trên máy. 
Chúng em đã hoàn thành cuốn tài liệu tìm hiểu và triển khai mysql server trên 
linux server, cuốn tài liệu chắc chắn còn những thiếu sót mong được thầy và các bạn góp 
ý để hoàn thiện hơn. Xin cảm ơn thầy và các bạn. 
Hà nội 10/11/2014 
Nhóm 01

More Related Content

What's hot

lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánNgo Trung
 
Hướng dẫn nâng cấp Windows Server 2008 lên thành Domain Controller
Hướng dẫn nâng cấp Windows Server 2008 lên thành Domain ControllerHướng dẫn nâng cấp Windows Server 2008 lên thành Domain Controller
Hướng dẫn nâng cấp Windows Server 2008 lên thành Domain ControllerThức Nguyễn Văn
 
Ứng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử websiteỨng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử websiteDotnet Open Group
 
Tự học sử dụng Linux
Tự học sử dụng LinuxTự học sử dụng Linux
Tự học sử dụng LinuxVu Hung Nguyen
 
ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices ArchitectureIT Expert Club
 
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]bookbooming1
 
Slide đồ án kiểm thử PM
Slide đồ án kiểm thử PMSlide đồ án kiểm thử PM
Slide đồ án kiểm thử PMNguyễn Anh
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhCao Toa
 
Hướng dẫn tự học Linux
Hướng dẫn tự học LinuxHướng dẫn tự học Linux
Hướng dẫn tự học LinuxNguyễn Duy Nhân
 
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Thuyet Nguyen
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêthuhuynhphonegap
 
Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.ssuser499fca
 
120 cau mon quan tri mang public_sv
120 cau mon quan tri mang public_sv120 cau mon quan tri mang public_sv
120 cau mon quan tri mang public_svTin Thấy
 
Báo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmBáo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmThuyet Nguyen
 
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonBáo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonjackjohn45
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmNguyễn Anh
 
악성코드 자동화 분석을 통한 인텔리전스(쿡쿠 샌드박스)
악성코드 자동화 분석을 통한 인텔리전스(쿡쿠 샌드박스)악성코드 자동화 분석을 통한 인텔리전스(쿡쿠 샌드박스)
악성코드 자동화 분석을 통한 인텔리전스(쿡쿠 샌드박스)FNGS Labs
 

What's hot (20)

lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
 
Hướng dẫn nâng cấp Windows Server 2008 lên thành Domain Controller
Hướng dẫn nâng cấp Windows Server 2008 lên thành Domain ControllerHướng dẫn nâng cấp Windows Server 2008 lên thành Domain Controller
Hướng dẫn nâng cấp Windows Server 2008 lên thành Domain Controller
 
Ứng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử websiteỨng dụng công cụ test tự động kiểm thử website
Ứng dụng công cụ test tự động kiểm thử website
 
Tự học sử dụng Linux
Tự học sử dụng LinuxTự học sử dụng Linux
Tự học sử dụng Linux
 
ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices Architecture
 
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]Giáo trình an toàn thông tin   ths.nguyễn công nhật[bookbooming.com]
Giáo trình an toàn thông tin ths.nguyễn công nhật[bookbooming.com]
 
Slide đồ án kiểm thử PM
Slide đồ án kiểm thử PMSlide đồ án kiểm thử PM
Slide đồ án kiểm thử PM
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tính
 
Hướng dẫn tự học Linux
Hướng dẫn tự học LinuxHướng dẫn tự học Linux
Hướng dẫn tự học Linux
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)Đảm bảo chất lượng phầm mềm (nguồn PTIT)
Đảm bảo chất lượng phầm mềm (nguồn PTIT)
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
 
KIỂM THỬ WEB BẰNG CÔNG CỤ SELENIUM.doc
KIỂM THỬ WEB BẰNG CÔNG CỤ SELENIUM.docKIỂM THỬ WEB BẰNG CÔNG CỤ SELENIUM.doc
KIỂM THỬ WEB BẰNG CÔNG CỤ SELENIUM.doc
 
Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.Báo cáo thực tập công nghệ thông tin.
Báo cáo thực tập công nghệ thông tin.
 
Đề tài: Hệ thống Iot phục vụ cho nông nghiệp ứng dụng Gateway
Đề tài: Hệ thống Iot phục vụ cho nông nghiệp ứng dụng GatewayĐề tài: Hệ thống Iot phục vụ cho nông nghiệp ứng dụng Gateway
Đề tài: Hệ thống Iot phục vụ cho nông nghiệp ứng dụng Gateway
 
120 cau mon quan tri mang public_sv
120 cau mon quan tri mang public_sv120 cau mon quan tri mang public_sv
120 cau mon quan tri mang public_sv
 
Báo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềmBáo cáo môn đảm bảo chất lượng phần mềm
Báo cáo môn đảm bảo chất lượng phần mềm
 
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonBáo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
악성코드 자동화 분석을 통한 인텔리전스(쿡쿠 샌드박스)
악성코드 자동화 분석을 통한 인텔리전스(쿡쿠 샌드박스)악성코드 자동화 분석을 통한 인텔리전스(쿡쿠 샌드박스)
악성코드 자동화 분석을 통한 인텔리전스(쿡쿠 샌드박스)
 

Similar to Tìm hiểu và triển khai MySQL Server trên Linux server

Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...
Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...
Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Data_Warehouse
Data_WarehouseData_Warehouse
Data_WarehouseThang Luu
 
Giáo trình sql server đại học công nghiệp[bookbooming.com]
Giáo trình sql server   đại học công nghiệp[bookbooming.com]Giáo trình sql server   đại học công nghiệp[bookbooming.com]
Giáo trình sql server đại học công nghiệp[bookbooming.com]bookbooming1
 
Hoc sql server 2000
Hoc sql server 2000Hoc sql server 2000
Hoc sql server 2000phamhuuai
 
Các tiêu chí kỹ thuật lựa chọn phần mềm thư viện số tích hợp.pdf
Các tiêu chí kỹ thuật lựa chọn phần mềm thư viện số tích hợp.pdfCác tiêu chí kỹ thuật lựa chọn phần mềm thư viện số tích hợp.pdf
Các tiêu chí kỹ thuật lựa chọn phần mềm thư viện số tích hợp.pdfPhan Minh Trí
 
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...bookbooming1
 
Tailieu.vncty.com co ban ve xml
Tailieu.vncty.com   co ban ve xmlTailieu.vncty.com   co ban ve xml
Tailieu.vncty.com co ban ve xmlTrần Đức Anh
 
Tai lieu-xml
Tai lieu-xmlTai lieu-xml
Tai lieu-xmlanhcubin
 
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệuTài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệuAnh Duong Pham
 
giai-phap-luu-tru-v2
giai-phap-luu-tru-v2giai-phap-luu-tru-v2
giai-phap-luu-tru-v2son2483
 
Cac giai phap lap trinh c# final
Cac giai phap lap trinh c# final Cac giai phap lap trinh c# final
Cac giai phap lap trinh c# final Cuong Nguyen Dinh
 
04. de cuong bai giang cong nghe web
04. de cuong bai giang cong nghe web04. de cuong bai giang cong nghe web
04. de cuong bai giang cong nghe webĐinh Luận
 
Xây dựng hệ thống thông tin quản lý khách hàng bằng PHP và MySQL
Xây dựng hệ thống thông tin quản lý khách hàng bằng PHP và MySQLXây dựng hệ thống thông tin quản lý khách hàng bằng PHP và MySQL
Xây dựng hệ thống thông tin quản lý khách hàng bằng PHP và MySQLAskSock Ngô Quang Đạo
 

Similar to Tìm hiểu và triển khai MySQL Server trên Linux server (20)

Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...
Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...
Đề tài: Tìm hiểu và triển khai quản trị mạng trên Ubuntu Server, 9đ - Gửi miễ...
 
NoSql Database
NoSql DatabaseNoSql Database
NoSql Database
 
Data_Warehouse
Data_WarehouseData_Warehouse
Data_Warehouse
 
Giáo trình sql server đại học công nghiệp[bookbooming.com]
Giáo trình sql server   đại học công nghiệp[bookbooming.com]Giáo trình sql server   đại học công nghiệp[bookbooming.com]
Giáo trình sql server đại học công nghiệp[bookbooming.com]
 
Tu hoc SQL 2000
Tu hoc SQL 2000Tu hoc SQL 2000
Tu hoc SQL 2000
 
Bao cao thuc tap
Bao cao thuc tapBao cao thuc tap
Bao cao thuc tap
 
Hoc sql server 2000
Hoc sql server 2000Hoc sql server 2000
Hoc sql server 2000
 
Các tiêu chí kỹ thuật lựa chọn phần mềm thư viện số tích hợp.pdf
Các tiêu chí kỹ thuật lựa chọn phần mềm thư viện số tích hợp.pdfCác tiêu chí kỹ thuật lựa chọn phần mềm thư viện số tích hợp.pdf
Các tiêu chí kỹ thuật lựa chọn phần mềm thư viện số tích hợp.pdf
 
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
A4 xay dung va quan tri moi truong mang doanh nghiep 5 8 (25-10-07)[bookboomi...
 
Huong dan sd_spss
Huong dan sd_spssHuong dan sd_spss
Huong dan sd_spss
 
Linq-to-sql-tutorial
Linq-to-sql-tutorialLinq-to-sql-tutorial
Linq-to-sql-tutorial
 
Xml
XmlXml
Xml
 
Tailieu.vncty.com co ban ve xml
Tailieu.vncty.com   co ban ve xmlTailieu.vncty.com   co ban ve xml
Tailieu.vncty.com co ban ve xml
 
Tai lieu-xml
Tai lieu-xmlTai lieu-xml
Tai lieu-xml
 
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệuTài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
 
giai-phap-luu-tru-v2
giai-phap-luu-tru-v2giai-phap-luu-tru-v2
giai-phap-luu-tru-v2
 
Cac giai phap lap trinh c# final
Cac giai phap lap trinh c# final Cac giai phap lap trinh c# final
Cac giai phap lap trinh c# final
 
04. de cuong bai giang cong nghe web
04. de cuong bai giang cong nghe web04. de cuong bai giang cong nghe web
04. de cuong bai giang cong nghe web
 
Lap trinhmangvoic sharp
Lap trinhmangvoic sharpLap trinhmangvoic sharp
Lap trinhmangvoic sharp
 
Xây dựng hệ thống thông tin quản lý khách hàng bằng PHP và MySQL
Xây dựng hệ thống thông tin quản lý khách hàng bằng PHP và MySQLXây dựng hệ thống thông tin quản lý khách hàng bằng PHP và MySQL
Xây dựng hệ thống thông tin quản lý khách hàng bằng PHP và MySQL
 

Tìm hiểu và triển khai MySQL Server trên Linux server

  • 1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT Đề tài: TÌM HIỂU VÀ TRIỂN KHAI MySQL SERVER TRÊN LINUX SERVER Giảng Viên: Phạm Đình Tân SV thực hiện: MSSV: Lê Công Tuấn Anh 1021050001 Trần Văn Mạnh 1021050060 Dương Tiến Dũng 1021050017 Trần Tiến Đạt 1021050023 Hà nội, tháng 04 năm 2014
  • 2. 2 MỤC LỤC MỤC LỤC ......................................................................................................................... 2 LỜI NÓI ĐẦU .................................................................................................................. 4 Phần 1: Tổng quan về MySQL ...................................................................................... 5 1.1. MySQL ............................................................................................................. 5 1.1.1. Tính linh hoạt .............................................................................................. 5 1.1.2. Tính thực thi cao ......................................................................................... 6 1.1.3. Có thể sử dụng ngay ................................................................................... 6 1.1.4. Hỗ trợ giao dịch mạnh ............................................................................... 6 1.1.5. Nơi lưu trữ Web và Data đáng tin cậy ..................................................... 7 1.1.6. Chế độ bảo mật dữ liệu mạnh ................................................................... 7 1.1.7. Sự phát triển ứng dụng hỗn hợp ............................................................... 7 1.1.8. Dễ dàng quản lý .......................................................................................... 8 1.1.9. Mã nguồn mở .............................................................................................. 8 1.1.10. Chi phí thấp ............................................................................................... 8 1.2. PHP Làm việc cùng MySQL ........................................................................ 9 1.2.1. Định nghĩa cơ bản....................................................................................... 9 1.2.2. Cài đặt MySQL ........................................................................................... 9 1.3. Cấu trúc của một cơ sở dữ liệu .................................................................... 21 1.3.1. Định nghĩa cơ bản..................................................................................... 21 1.3.2. Các kiểu dữ liệu cơ bản............................................................................ 22 1.3.3. Kết nối vào MySQL Server ..................................................................... 26 1.4. Các thao tác bằng dòng lệnh trên MySQL ................................................. 26 1.4.1. Các thao tác trên Database ......................................................................... 26 1.4.2. Các thao tác trên bảng ............................................................................... 35 1.4.3. Các thao tác các trường............................................................................ 38
  • 3. 1.5. Liên kết mysql và PHP chúng ta cần nắm 6 hàm cơ bản: ............................. 43 1.5.1. Lựa chọn cơ sở dữ liệu: .............................................................................. 43 1.5.2. Thực thi câu lệnh truy vấn: ........................................................................ 43 1.5.3. Đếm số dòng dữ liệu trong bảng: ............................................................. 44 1.5.4. Lấy dữ liệu từ bảng đưa vào mảng: ......................................................... 44 1.5.5. Đó ng kết nối cơ sở dữ liệu:....................................................................... 44 1.5.6. Tạo cơ sở dữ liệu dựa trên từng đoạn code sau: ...................................... 44 Phần 2: PHP MYADMIN và MySQL Client .............................................................. 48 2.1. Thao tác trên Phpmyadmin:............................................................................... 48 2.1.1. Tạo Database (CSDL – Cơ Sở Dữ Liệu) ............................................... 48 2.1.2. Tạo Bảng (table).......................................................................................... 49 2.1.3. Thêm dữ liệu vào Bảng (table) .................................................................. 51 2.1.4. Sửa và Xóa dữ liệu trong Bảng (table) .................................................... 52 2.1.5. Sửa cấu trúc Table (bảng): ......................................................................... 53 2.1.6. Đổi tên Bảng (table).................................................................................... 53 2.1.7. Xóa Bảng (table) ......................................................................................... 54 2.2. Sử dụng MySQL Client để kết nối với MySQL server ............................ 54 2.2.1. Tạo kết nối với MySQL server ............................................................... 55 2.2.2. Thao tác tạo database ............................................................................... 56 2.2.3. Tạo bảng .................................................................................................... 57 2.2.4. Sửa cấu trúc bảng...................................................................................... 58 2.2.5. Xóa bảng .................................................................................................... 59 2.2.6. Đổi tên bảng .............................................................................................. 59 2.2.7. Xóa database ............................................................................................. 60 KẾT LUẬN ..................................................................................................................... 61 3
  • 4. 4 LỜI NÓI ĐẦU Trong giới hạn đề tài của BTL lần này chúng em xin phép được gửi đến thầy và các bạn cuốn tài liệu nói chi tiết về việc Tìm hiểu và triển khai MySQL Server trên Linux Mong rằng cuốn tài liệu này của chúng em sẽ giúp ích được cho những người muốn tìm hiểu về lĩnh vực nêu trên. Cuối cùng em xin cảm ơn sự giúp đỡ của thầy Phạm Đình Tân để nhóm chúng em hoàn thiện cuốn tài liệu này. Em xin cảm ơn thầy! Hà nội 01/11/2014 Nhóm 01
  • 5. 5 Phần 1: Tổng quan về MySQL 1.1. MySQL 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,... 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). 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,... 1.1.1. Tính linh hoạt Máy chủ cơ sở dữ liệu MySQL cung cấp đặc tính linh hoạt, có sức chứa để xử lý các ứng dụng được nhúng sâu với dung lượng chỉ 1MB để chạy các kho dữ liệu đồ sộ lên
  • 6. đến hàng terabytes thông tin. Sự linh hoạt về flatform là một đặc tính lớn của MySQL với tất cả các phiên bản của Linux, Unix, và Windows đang được hỗ trợ. Và dĩ nhiên, tính chất mã nguồn mở của MySQL cho phép sự tùy biến hoàn toàn theo ý muốn để thêm vào các yêu cầu thích hợp cho database server. 6 1.1.2. Tính thực thi cao Kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù. Dù ứng dụng là một hệ thống xử lý giao dịch tốc độ cao hay web site dung lượng lớn phục vụ hàng triệu yêu cầu mỗi ngày, MySQL có thể đáp ứng khả năng xử lý những đòi hỏi khắt khe nhất của bất kì hệ thống nào. Với các tiện ích tải tốc độ cao, đặc biệt bộ nhớ caches, và các cơ chế xử lý nâng cao khác, MySQL đưa ra tất cả các vũ khí cần phải có cho các hệ thống doanh nghiệp khó tính ngày nay. 1.1.3. Có thể sử dụng ngay Sự đáng tin cậy cao và tính “mì ăn liền” là những tiêu chuẩn đảm bảo của MySQL. MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL. 1.1.4. Hỗ trợ giao dịch mạnh MySQL đưa ra một trong số những engine giao dịch cơ sở dữ liệu mạnh nhất trên thị trường. Các đặc trưng bao gồm hỗ trợ giao dịch ACID hoàn thiện ( Atomic – tự động, Consistent – thống nhất, Isolated – độc lập, Durable – bền vững), khóa mức dòng không hạn chế, khả năng giao dịch được phân loại, và hỗ trợ giao dịch đa dạng (multi-version) mà người đọc không bao giờ gây trở ngại cho người viết và ngược lại. Tính toàn vẹn của dữ liệu cũng phải được bảo đảm trong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, và phát hiện khóa chết ngay lập tức.
  • 7. 7 1.1.5. Nơi lưu trữ Web và Data đáng tin cậy MySQL là nhà máy chuẩn cho các web sites phải trao đổi thường xuyên vì nó có engine xử lý tốc độ cao, khả năng chèn dữ liệu nhanh ghê gớm, và hỗ trợ mạnh cho các chức năng chuyên dụng của web như tìm kiếm văn bản nhanh. Những tính năng này cũng được áp dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn. Các tính năng khác như bảng nhớ chính, cây B và chỉ số băm, và bảng lưu trữ đã được cô lại để giảm các yêu cầu lưu trữ đến 80% làm cho MySQL trở thành lựa chọn tốt nhất cho cả ứng dụng web và các ứng dụng doanh nghiệp. 1.1.6. Chế độ bảo mật dữ liệu mạnh Vì bảo mật dữ liệu cho một công ty là công việc số một của các chuyên gia về cơ sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật tuyệt đối. Trong việc xác nhận truy cập cơ sở dữ liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ có người sử dụng đã được xác nhận mới có thể truy nhập được vào server cơ sở dữ liệu, với khả năng này để chặn người dùng ngay từ mức máy khách là điều có thể làm được. SSH và SSL cũng được hỗ trợ để chắc chắn các kết nối được an toàn và bảo mật. Một đối tượng framework đặc quyền được đưa ra mà người sử dụng chỉ có thể nhìn thấy dữ liệu, các hàm mã hóa và giải mã dữ liệu mạnh chắc chắn rằng dữ liệu sẽ được bảo mật. Cuối cùng, tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3 cho phép backup logic và vật lý hoàn thiện cũng như recovery toàn bộ hoặc tại một thời điểm nào đó. 1.1.7. Sự phát triển ứng dụng hỗn hợp Một trong số các lý do khiến cho MySQL là cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới là nó cung cấp hỗ trợ hỗn hợp cho bất kì sự phát triển ứng dụng nào cần. Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các stored procedure, trigger, function, view, cursor, ANSI-standard SQL, và nhiều nữa. Với các ứng dụng nhúng, thư viện plug-in có sẵn để nhúng vào cơ sở dữ liệu MySQL hỗ trợ trong bất kì ứng dụng nào. MySQL cũng cung cấp các bộ kết nối như: ODBC, JDBC, … để cho phép tất cả các form của ứng dụng sử dụng MySQL như một server quản lí dữ liệu được ưu tiên.
  • 8. 8 1.1.8. Dễ dàng quản lý MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thời gian ở mức trung bình từ lúc download phần mềm đến khi cài đặt hoàn thành chỉ mất chưa đầy 15 phút. Điều này đúng cho dù flatform là Microsoft Windows, Linux, Macintosh hay Unix. Khi đã được cài đặt, tính năng tự quản lý như tự động mở rộng không gian, tự khởi động lại, và cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu làm việc. MySQL cũng cung cấp một bộ hoàn thiện các công cụ quản lý đồ họa cho phép một DBA quản lý, sửa chữa, và điều khiển hoạt động của nhiều server MySQL từ một máy trạm đơn. Nhiều công cụ của các hãng phần mềm thứ 3 cũng có sẵn trong MySQL để điều khiển các tác vụ từ thiết kế dữ liệu và ETL, đến việc quản trị cơ sở dữ liệu hoàn thiện, quản lý công việc, và thực hiện kiểm tra. 1.1.9. Mã nguồn mở Nhiều công ty lưỡng lự trong việc giao phó toàn bộ cho phần mềm mã nguồn mở vì họ tin họ không thể tìm được một cách hỗ trợ hay mạng lưới an toàn phục vụ chuyên nghiệp, hiện tại, họ tin vào phần mềm có bản quyền để chắc chắn về sự thành công toàn diện cho các ứng dụng chủ chốt của họ. Những lo lắng của họ có thể được dẹp bỏ với MySQL, sự bồi thường là có trong mạng lưới MySQL. 1.1.10. Chi phí thấp Bằng cách sử dụng MySQL cho các dự án phát triển mới, các công ty đang thấy rõ việc tiết kiệm chi phí. Được hoàn thành thông qua sử dụng server cơ sở dữ liệu MySQL và kiến trúc scale-out, các doanh nghiệp đã tìm ra cái mà họ có thể đạt được ở mức ngạc nhiên về khả năng xử lý. Thêm vào đó, tính tin cậy và dễ duy trì của MySQL ở mức trung bình mà người quản trị cơ sở dữ liệu không phải mất nhiều thời gian sửa chữa hay vấn đề thời gian chết
  • 9. 9 1.2. PHP Làm việc cùng MySQL 1.2.1. Định nghĩa cơ bản Trong BTL lần này chúng ta sẽ tìm hiểu về MySQL được làm việc trên nền web với PHP. MySQL là hệ quản trị dữ liệu miễn phí, được tích hợp sử dụng chung với apache, PHP. Chính yếu tố phát triển trong cộng đồng mã nguồn mở nên MySQL đã qua rất nhiều sự hỗ trợ của những lập trình viên yêu thích mã nguồn mở. MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL. Nhưng MySQL không bao quát toàn bộ những câu truy vấn cao cấp như SQL. Về bản chất MySQL chỉ đáp ứng việc truy xuất đơn giản trong quá trình vận hành của website nhưng hầu hết có thể giải quyết các bài toán trong PHP 1.2.2. Cài đặt MySQL Đầu tiên chúng ta sử dụng lệnh sau để cài đặt MySQL 5: create database quanlysinhvien; Sudo apt-get install mysql-server mysql-client
  • 10. 10
  • 11. 11 Đến đây ta đã có thể làm việc với MySQL qua công cụ dòng lệnh Trong tài liệu này có sử dụng công cụ PHP MyAdmin để làm việc với MySQL Sau đây là phần triển khai cài đặt Cài đặt Apache2 Bước 1 : Chuyển sang quyền root sudo su
  • 12. 12 Nhập mật khẩu -> Enter Bước 2 : Cập nhật các Repository: apt-get update Bước 3 : Cài đặt apache2 bằng lệnh sudo apt-get install apache2
  • 13. 13
  • 14. 14 Gõ "Y" rồi Enter Quá trình cài đặt sẽ diễn ra trong ít phút
  • 15. 15 sau khi hoàn tất,mở bất kỳ trình duyệt nào và gõ vào địa chỉ IP server . Ví dụ http://192.168.1.80
  • 16. 16 Cài đặt PHP5 Gõ y rồi Enter Cài đặt phpMyAdmin bằng lệnh apt-get install phpmyadmin
  • 17. 17
  • 18. 18 Gõ y rồi Enter Quá trình download package sẽ diễn ra trong ít phút. Cho đến khi hiện ra màn hình lựa chọn web server đang sử dụng.
  • 19. 19 Chọn apache2 nếu bạn cài đặt apache2, rồi chọn Ok. Để di chuyển giữa các lựa chọn sử dụng phím Tab, để xác nhận lựa chọn di duyển màu đỏ đến vị trí cần và gõ phím Space (phím cách) Bạn nên chọn <NO> nếu không quá am hiểu về hệ thống.
  • 20. 20 Cho đến khi màn hình như sau là đã hoàn tất. sau khi hoàn tất,mở bất kỳ trình duyệt nào và gõ vào địa chỉ IP server/phpmyadmin . Ví dụ http://192.168.1.80
  • 21. 21 1.3. Cấu trúc của một cơ sở dữ liệu 1.3.1. Định nghĩa cơ bản Định nghĩa cơ sở dữ liệu bảng, cột Cơ sở dữ liệu: là tên của cơ sở dữ liệu chúng ta muốn sử dụng Bảng: Là 1 bảng giá trị nằm trong cơ sở dữ liệu. Bảng là nơi lưu trữ dữ liệu. Trước khi thực hiện truy vấn và sử dụng dữ liệu, thì nhiệm vụ đầu tiên là phải lưu trữ nó. Bảng có thể chứa dữ liệu về các đối tượng thông tin như HÀNG HÓA, NHÂN VIÊN…. Mỗi dòng (row) của bảng chứa một thể hiện riêng của đối tượng nào đó. Ví dụ thông tin về một hàng hóa, thông tin về một nhân viên…. Dòng được thành lập từ các cột (column), mỗi cột là một thông tin về đối tượng được lưu trữ trong bản. Ví dụ trong bảng NHANVIEN chúng ta có các field như sau: Field MaNV(mã nhân viên), field HoNV (họ và chữ lót), field TenNV (tên), field Nu (nam/nữ), field NgaySinh (ngày sinh)….. Cột là 1 giá trị nằm trong bảng. Dùng để lưu trữ các trường dữ liệu. Thuộc tính Ví dụ: Sinhvien MSSV 1021050001 Hovaten Le Cong Tuan Anh Ngaysinh 20/10/1992 Email lecongtuananh@hotmail.com Diachi Trieu Son – Thanh Hoa
  • 22. 22 Như vậy ta có thể hiểu như sau: 1 cơ sở dữ liệu có thể bao gồm nhiều bảng. 1 bảng có thể bao gồm nhiều cột 1 cột có thể có hoặc không có những thuộc tính. 1.3.2. Các kiểu dữ liệu cơ bản MySQL cung cấp các kiểu dữ liệu sau : 1.3.2.1. Kiểu dữ liệu số (numeric) Tên ki ểu (type name) Bộ nhớ (memory space) bytes Vùng giá trị (value range) Vùng giá trị dương (Unsigned) Tinyint 1 -128 ÷ 172 0 ÷ 255 Smallint 2 -32768 ÷ 32767 0 ÷ 65535 Mediumint 3 -8388608 ÷8388607 0 0 ÷ 16777215 Int 4 2147483648 ÷ 2147483647 0 ÷ 4294967295 Bigint 8 - 9223372036854775808 ÷ 9223372036854775807 0 ÷ 18446744073709550 615 Float (M,D) 4 Double (M,D) 8 Decimal (M,D) M+2 1.3.2.2. Kiểu chuỗi kí tự (string) ên ki ểu Kích thước tối đa (bytes) Khoảng lưu trữ (bytes) Char(x) 255 X Varchar(x) 255 X+1 Tinytext 255 X+1 Tinyblob 255 X+2 Text 65535 X+2 Blob 65535 X+2 Mediumtext 1.6 MB X + 3
  • 23. 23 Mediumblog 1.6 MB X + 3 Longtext 4.2 MB X + 4 Longblob 4.2 MB X + 4 1.3.2.3. Kiểu hỗn hợp (Miscellaneous) Enum : kiểu dữ liệu liệt kê, cho phép định nghĩa trước các giá trị cho một cột, cột sẽ chỉ lưu trữ một trong các giá trị định sẵn đó. Vd : CREATE TABLE Test( Return ENUM('Y','N') DEFAULT 'N', Size ENUM('S','M','L','XL','XXL'), Color ENUM('Black','Red','White') ) Set : kiểu dữ liệu liệt kê, tương tự enum nhưng cho phép cột lưu trữ nhiều giá trị trong các giá trị định sẵn, mỗi giá trị cách nhau bởi dấu ', ' Vd : CREATE Table Test( Advertiser SET('Web Page','Television','Newspaper') ) 1.3.2.4. Kiểu ngày giờ Tên ki ểu Định dạng chuẩn Giá trị 0 DATETIME YYYY-MM-DD HH:MM:SS 0000-00-00 00:00:00 DATE YYYY-MM-DD 0000-00-00 TIME HH:MM:SS HH:MM:SS YEAR YEAR 0000 TIMESTAMP (có nhiều giá trị) 00000000000000  Định dạng kiểu TIMESTAMP Tên ki ểu Định dạng
  • 24. 24 TIMESTAMP(14) YYYYMMDDHHMMS S TIMESTAMP(12) YYMMDDHHMMSS TIMESTAMP(10) YYMMDDHHMM TIMESTAMP(8) YYYYMMDD TIMESTAMP(6) YYMMDD TIMESTAMP(4) YYMM TIMESTAMP(2) YY 1.3.2.5. Các từ khoá định nghĩa cột (modifiers) Từ khoá Kiểu dữ liệuthích hợp Ý nghĩa Auto_Incr ement Int Tự động tăng dữ liệu của cột Binary Char, Varchar Thiết lập lưu trữ chuỗi nhị phân (phân biệt chữ hoa – thường) Default Tất cảtrừ text, blob Thiết lập giá trị mặc định cho cộ Not null Tất cả Không cho phép để giá trị null Null Tất cả Cho phép để giá trị null Primary Tất cả Thiết khoá chính cho cột key Unique Tất cả Giá trị duy nhất Unsigned Kiểu numeric Chỉ lưu giá trị số nguyên Zerofill Kiểu numeric Điền giá trị 0 cho đủ chiều dài số 1.3.2.6. Định nghĩa một số thuật ngữ NULL : Giá trị cho phép rỗng. AUTO_INCREMENT : Cho phép giá trị tăng dần (tự động). UNSIGNED : Phải là số nguyên dương PRIMARY KEY : Cho phép nó là khóa chính trong bảng. 1.3.2.7. Các loại dữ liệu trong MySQL Sau đây là một số kiểu dữ liệu thông dụng: Kiểu dữ liệu Mô tả
  • 25. 25 Integers (số nguyên)  Bigint: khoảng giá trị từ -263 đến 263 -1 tức từ - 9.223.372.036.854.775.808 đến 9.223.372.036.854.775,807.  Int: khoảng giá trị từ -231 đến 231 -1 tức từ - 2.147.483.648 đến 2.147.483.647.  Smallint: khoảng giá trị từ -215 đến 215 tức từ -32.768 đến 32.767.  Tinyint: khoảng giá trị từ 0 đến 255.  Bit: chứa giá trị 0 hoặc 1. Decimal và numeric (số thập phân)  Decimal: có giá t rị từ -1038 +1 đến 1038 -1.  Numeric: tương đương sis decimal. Money và smallmoney (kiểu tiền tệ)  Money: khoảng giá trị từ -263 đến 263 tức từ - 922.337.203.685.477,5808 922.337.203.685.477,5807.  Smallmoney: khoảng giá trị từ -214.748,3648 đến 214.748,3647 Approximate Numerics  Float: độ chính xác từ 1.79E + 308 đến 1.79E + 308.  Real: độ chính xác từ -3.40E + 38 đến 3.40E + 38. datetime and smalldatetime  datetime: khoảng giá trị từ 1/1/1753 đến 31/12/9999.  smalldatetime: khoảng giá trị từ 1/1/1900 đến 6/6/2079. Character Strings (kiểu chuỗi)  Char: không chứa Unicode, chiều dài tối đa là 8.000 ký tự.  Varchar: không chứa Unicode, chiều dài tối đa là 8.000 ký tự.  Text: không chứa Unicode, chiều dài tối đa là 231 -1 tương đương với 2.147.483.647 ký tự Unicode Character Strings (kiểu chuỗi có chứa Unicode)  nchar: có chứa Unicode, chiều dài tối đa là 4.000 ký tự  nvarchar: có chứa Unicode, chiều dài tối đa là 4.000 ký tự  ntext: có chứa Unicode, chiều dài tối đa là 230 – 1 tức 1.073.741.823 ký tự.
  • 26. 26 1.3.3. Kết nối vào MySQL Server PHP cung cấp hàm mysql_connect để kết nối vèo MySQL server. Cú pháp của hàm này như sau: mysql_connect($server_address, $username, $password) 1.4. Các thao tác bằng dòng lệnh trên MySQL 1.4.1. Các thao tác trên Database Tạo database và user MySql bằng dòng lệnh trên Linux Terminal, cách thiết lập quyền sử dụng cho user. 1.4.1.1. Đăng nhập vào MySql Server bằng lệnh sau mysql -u root -p Tạo database 1.4.1.2. Sau khi đăng nhập vào MySql Server bạn có thể tạo cơ sở dữ liệu bằng lệnh sau create database dbname; 1.4.1.3. Bây giờ chúng ta tạo một database mới có tên quanlysinhvien create database quanlysinhvien; 1.4.1.4. Để sử dụng database ta vừa tạo ta sử dụng lệnh use quanlysinhvien 1.4.1.5. Tiếp theo ta tạo bảng tbl_sinhvien. CREATE TABLE tbl_sinhvien( sinhvien_id int(10) NOT NULL AUTO_INCREMENT, sinhvien_name varchar(50) NOT NULL, sinhvien_email varchar(50) NULL, sinhvien_address varchar(200) DEFAULT NULL,
  • 27. 27 sinhvien_phone int(10), sinhvien_info text NULL, PRIMARY KEY(sinhvien_id) )ENGINE='innodb'; Xem cấu trúc của bảng show columns from tbl_sinhvien Kết quả như hình bên dưới • Chọn một database: - Chọn một database mà ta làm việc với chúng Cú pháp: use tên_database; • Xem bảng có trong database Cú pháp: show tables; • Xem các database hiện có - Dùng để xem các database đang có trên server Cú pháp: sh1o w databases;
  • 28. 28 Hình minh họa • Chọn một database: - Chọn một database mà ta làm việc với chúng Cú pháp: use tên_database; • Xem bảng có trong database Cú pháp: show tables; 3. Tạo user và thiết lập quyền cho user Sử dụng lệnh sau để thiết lập đầy đủ các quyền cho một user grant all on dbname.* to username@localhost; Tất nhiên trong thực tế chắc chắn bạn cần giới hạn một số quyền của user, khi đó hãy sử dụng lệnh sau grant SELECT on dbname.* to username@localhost; // SELECT là quyền Danh sách các quyền bạn có thể thiết lập cho user ALL ALTER CREATE VIEW CREATE
  • 29. 29 DELETE DROP GRANT OPTION INDEX INSERT SELECT SHOW VIEW TRIGGER UPDATE Sau khi thiết lập các quyền cho user, bạn cần làm thêm một việc là thiết lập mật khẩu cho user set password for username@localhost = password('mat_khau'); - See more at: http://thuthuatvietnam.com/tao-database-va-user-mysql-bang-lenh-terminal. html#sthash.HP3oSxZO.dpuf Backup bằng Command Line (sử dụng mysqldump để backup database) Để có thể sử dụng dòng lệnh sao lưu cơ sở dữ liệu ta cần đăng nhập vào server thông qua kết nối ssh Sử dụng cấu trúc lệnh như sau $ mysqldump --opt -u [uname] -p [dbname] > [backupfile.sql] Trong đó: [uname] : user của database [dbname] : Tên của database [backupfile.sql] : Tên file backup muốn lưu [--opt] : Các tùy chọn mysqldump Ví dụ : Để backup database thuthuatvietnam
  • 30. 30 $ mysqldump -u root -p thuthuatvietnam > backup_ttvn.sql Có thể tùy chọn các bảng để backup bằng cách liệt kê các bảng, các bảng cách nhau bằng khoảng trắng (dấu space) $ mysqldump -u root -p thuthuatvietnam bang_a bang_b > backup_ttvn.sql Back up MySQL Database và đồng thời nén lại Nếu database có dung lượng lớn, ta cần nén lại, khi đó có thể sử dụng cấu trúc lệnh nén cùng gzip $ mysqldump -u [uname] -p [dbname] | gzip -9 > [backupfile.sql.gz] 2. Restore MySQL Database Ở trên là cách tạo bản backup, tiếp tục là cách restore. Cấu trúc lệnh như sau: $ mysql -u [uname] -p [dbname] < [backupfile.sql] Trong đó: [uname] : user của database [dbname] : Tên của database [backupfile.sql] : Tên file backup đã lưu (file backup muốn phục hồi) Ví dụ: Phục hồi database mangmaytinh $ mysql -u root -p mangmaytinh < backup_ttvn.sql Phục hồi database được nén gunzip< [backupfile.sql.gz] | mysql -u [uname] -p [dbname] Nếu muốn phục hồi một database đã tạo ra trước đó sử dụng lệnh mysqlimport. Cấu trúc lệnh như sau: mysqlimport -u [uname] -p [dbname] [backupfile.sql]
  • 31. 31 CREATE TABLE tbl_sinhvien( sinhvien_id int(10) NOT NULL AUTO_INCREMENT, sinhvien_name varchar(50) NOT NULL, sinhvien_email varchar(50) NULL, sinhvien_address varchar(200) DEFAULT NULL, sinhvien_phone int(10), sinhvien_info text NULL, PRIMARY KEY(sinhvien_id) )ENGINE='innodb'; Xem cấu trúc của bảng show columns from tbl_sinhvien Kết quả như hình bên dưới • Chọn một database: - Chọn một database mà ta làm việc với chúng Cú pháp: use tên_database; • Xem bảng có trong database Cú pháp:
  • 32. 32 show tables; • Xem các database hiện có - Dùng để xem các database đang có trên server Cú pháp: show databases; Hình minh họa • Chọn một database: - Chọn một database mà ta làm việc với chúng Cú pháp: use tên_database; • Xem bảng có trong database Cú pháp: show tables; 3. Tạo user và thi ết l ập quyền cho user Sử dụng lệnh sau để thiết lập đầy đủ các quyền cho một user grant all on dbname.* to username@localhost; trong thực tế cần giới hạn một số quyền của user, khi đó hãy sử dụng lệnh sau grant SELECT on dbname.* to username@localhost; // SELECT là quyền Danh sách các quyền bạn có thể thiết lập cho user
  • 33. 33 ALL ALTER CREATE VIEW CREATE DELETE DROP GRANT OPTION INDEX INSERT SELECT SHOW VIEW TRIGGER UPDATE Sau khi thiết lập các quyền cho user, bạn cần làm thêm một việc là thiết lập mật khẩu cho user set password for username@localhost = password('mat_khau'); Backup bằng Command Line (sử dụng mysqldump để backup database) Để có thể sử dụng dòng lệnh sao lưu cơ sở dữ liệu ta cần đăng nhập vào server thông qua kết nối ssh Sử dụng cấu trúc lệnh như sau $ mysqldump --opt -u [uname] -p [dbname] > [backupfile.sql] Trong đó: [uname] : user của database [dbname] : Tên của database [backupfile.sql] : Tên file backup muốn lưu
  • 34. 34 [--opt] : Các tùy chọn mysqldump Ví dụ : Để backup database thuthuatvietnam $ mysqldump -u root -p thuthuatvietnam > backup_ttvn.sql Có thể tùy chọn các bảng để backup bằng cách liệt kê các bảng, các bảng cách nhau bằng khoảng trắng (dấu space) $ mysqldump -u root -p thuthuatvietnam bang_a bang_b > backup_ttvn.sql Back up MySQL Database và đồng thời nén l ại Nếu database có dung lượng lớn, ta cần nén lại, khi đó có thể sử dụng cấu trúc lệnh nén cùng gzip $ mysqldump -u [uname] -p [dbname] | gzip -9 > [backupfile.sql.gz] 2. Restore MySQL Database Ở trên là cách tạo bản backup, tiếp tục là cách restore. Cấu trúc lệnh như sau: $ mysql -u [uname] -p [dbname] < [backupfile.sql] Trong đó: [uname] : user của database [dbname] : Tên của database [backupfile.sql] : Tên file backup đã lưu (file backup muốn phục hồi) Ví dụ: Phục hồi database mangmaytinh $ mysql -u root -p mangmaytinh < backup_ttvn.sql Phục hồi database được nén gunzip < [backupfile.sql.gz] | mysql -u [uname] -p [dbname] Nếu muốn phục hồi một database đã tạo ra trước đó sử dụng lệnh mysqlimport. Cấu trúc lệnh như sau: mysqlimport -u [uname] -p [dbname] [backupfile.sql]
  • 35. 35 1.4.2. Các thao tác trên bảng 1.4.2.1. Tạo bảng bằng lênh SQL  Tạo bảng mới Create table table_name ( column_names datatypes modifiers) Vd : Tạo bảng Customers (khách hàng) CREATE TABLE Customers (Customer_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, First_Name VARCHAR(20) NOT NULL, Last_Name VARCHAR(30) NOT NULL, Address VARCHAR(50), City VARCHAR(20), State VARCHAR(2), Zip VARCHAR(20), E_Mail VARCHAR(20), Age INT, Race VARCHAR(20), Gender ENUM('M', 'F') DEFAULT 'F', Eye_Color VARCHAR(10), Hair_Color VARCHAR(10), Favorite_Activity ENUM('Programming', 'Eating', 'Biking', 'Running', 'None') DEFAULT 'None', Favorite_Movie VARCHAR(50),Occupation VARCHAR(30), Smoker CHAR(0));  Tạo bảng tạm (bảng phụ) mới Create temporary table table_name (column_names datatypes modifiers)  Tạo bảng tạm (bảng phụ) từ một câu truy vấn Create temporary table select column_name from table_name vd : create temporary table select * from Customers  Tạo bảng sao chép từ một bảng khác Create table table_name select column_name from table_name_1 vd : create table Customers_copy select * from Customers  Kiểm tra sự tồn tại của bảng trước khi tạo
  • 36. 36 Create table If not Exists table_name (column_names datatypes modifiers) 1.4.2.2. Xem thông tin của CSDL, Bảng  Xem các bảng của CSDL Show tables [from database_name];  Xem các cột của bảng Show columns [from table_name];  Xem cấu trúc của bảng Discribe table_name [from database_name]; 1.4.2.3. Xoá bảng Drop table table_name [from database_name]; 1.4.2.4. Thay đổi cấu trúc bảng  Thay đổi tên cột Alter table table_name change old_column_name new_column_name old_datatype; Vd : ALTER TABLE Customers CHANGE First_Name FirstName VARCHAR(20);  Thay đổi kiểu dữ liệu Alter table table_name change column_name column_name new_datatype; Vd : ALTER TABLE Customers CHANGE Last_Name Last_Name VARCHAR(50);  Đổi tên bảng Alter table table_name Rename new_table_name; Vd : ALTER TABLE Customers RENAME Customer_Table;  Thêm cột vào bảng Alter table table_name add column_name datatype;
  • 37. 37 Vd : ALTER TABLE Customer ADD Last_Name VARCHAR(30);  Xoá một cột Alter table table_name Drop column_name; Vd : ALTER TABLE Customers DROP Last_Name;  Thêm khoá chính Alter table table_name Add Primary Key (column_names); Vd : ALTER TABLE Customers ADD PRIMARY KEY (Customer_ID);  Xoá khoá chính Alter table table_name Drop Primary Key; 1.4.2.5. Chèn dữ liệu vào bảng  Chèn một dòng dữ liệu Insert into table_name (column_names) values (column_values); Vd : Tạo bảng một bảng có tên Test_Table và chèn dữ liệu CREATE TABLE Test_Table (Test_ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Test_Name VARCHAR(30), Test_Date DATETIME, Test_Giver VARCHAR(30)); INSERT INTO Test_Table (Test_ID, Test_Name, Test_Date, Test_Giver) VALUES (NULL, 'Test','2000-01-01','Glen');  Chèn nhiều dòng dữ liệu Insert into table_name (column_names) values (column_values), (column_values), (…); Vd : INSERT INTO Test_Table (Test_ID, Test_Name, Test_Date, Test_Giver)
  • 38. 38 VALUES (NULL, 'John','2000-01-01','Glen'), (NULL, 'Thomas','2000-01-01','Jose'); 1.4.3. Các thao tác các trường Ghi Dữ Liệu 1.4.3.1. Thêm dữ liệu Sau khi chúng ta đã tạo một một bảng dữ liệu trên MySQL, thì dữ liệu trong bảng chúng ta có thể tùy biến thay đổi và cập nhật một cách dễ dàng . Code SQL : INSERT INTO `id_student`(`AI`, `nick`, `name`, `ngaysinh`, `nhom`, `email`) VALUES ('3','dat','dat','31/10/92','TC 7',dtran3110'');  Trước hết các bạn dùng INSERT INTO để thông báo ‘tớ sắp chèn thêm một hàng vào đấy !’  Tiếp theo, các bạn chỉ ra tên của cái bảng mà bạn định chèn, ở đây là bảng id_student, rồi đặt vào trong ngoặc đơn tên các cột của bảng đó.  Cuối cùng, bạn viết VALUE rồi ghi giá trị cần chèn vào theo đúng thứ tự với các cột để khỏi nhầm lẫn.  Riêng mục AI hiểu một cách khác là ID, thì làm trên MySQL cũng như trên Phpmyadmin nó sẽ tự động tăng dần. Nếu thích các bạn có thể không cần ghi ra tên các cột ngay sau tên bảng, code vẫn chạy đúng, nhưng như vậy sẽ thiếu sự rõ ràng khi mình đọc code : Code SQL: INSERT INTO VALUES ('3','dat','dat','31/10/92','TC 7',dtran3110'');
  • 39. 39 Mình vừa thêm thành công dữ liệu vào bảng id_student Sau đây mình sẽ kiểm tra xem dữ liệu có AI = 4 đã có trong bảng chưa ? Sử dụng câu lệnh SQL : SELECT * FROM `id_student` WHERE 1; Dữ liệu trong bảng sẽ được hiển thị :
  • 40. 40 1.4.3.2. Sửa dữ liệu Trên 4.1 chúng ta vừa thao tác là thêm dữ liệu vào bảng tiếp đây để cập hay thay đổi những thông tin dữ liệu trong bảng thì sử dụng câu lệnh Sql sau Lệnh SQL : UPDATE `id_student` SET `AI`=[value-1],`nick`=[value-2],`name`=[value- 3],`ngaysinh`=[value-4],`nhom`=[value-5],`email`=[value-6] WHERE 1; Trước hết, từ khóa UPDATE cho biết mình sắp sửa đổi một dữ liệu Tiếp theo : tên của bảng cần sửa Từ khóa SET ngay sau đó dùng để thay đổi giá trị của dữ liệu cần sửa đổi Dùng phép gán để thay đổi giá trị WHERE để chỉ ra ID của hàng chứa dữ liệu cần sửa Nếu bạn không biết ID của nó là bao nhiêu, bạn có thể vào PhpMyAdmin để xem .
  • 41. 41 1.4.3.3. Xóa dữ liệu Thao tác cuối cùng là Delete! , nói đến xóa dữ liệu thì các bạn thao tác thật thận trọng vì nhiều khi thực tế có nhiều dữ liệu quan trọng một khi Xóa rùi thì có thể không lấy lại được hoặc vô cùng phức tạp. Lệnh SQL : DELETE FROM `id_student` WHERE AI= ‘1’ ; DELETE mình dùng từ khóa FROM để chỉ ra xóa ở đâu (ở bảng nào) và chỉ ra tên của bảng, WHERE để chỉ ra hàng cần xóa! Bạn cũng có thể viết WHERE AI=1. Kết quả
  • 42. 42 1.4.3.4. Kết luận Trên đây là thao tác thêm sửa xóa dữ liệu trên MySql bằng lệnh trên ubuntu Server Có cách khác để thao tác dễ dàng hơn là các bạn dùng trình duyệt web của máy client trong local truy cập vào địa chỉ mạng và tới phpmyadmin. Vd : 192.168.1.9/phpmyadmin
  • 43. Bạn sẽ thao tác bằng hỉnh ảnh trực quan và cũng có thể kiểm tra khi chúng ta thao 43 tác bằng dòng lệnh đã thành công chưa … 1.5. Liên kết mysql và PHP chúng ta cần nắm 6 hàm cơ bản: 1.5.1.Kết nối cơ sở dữ liệu: Cú pháp: mysql_connect(“hostname”,”user”,”pass”) 1.5.2. Lựa chọn cơ sở dữ liệu: Cú pháp: mysql_select_db(“tên_CSDL”) Ví dụ: $conn=mysql_connect(“localhost”,”root”,”root”) or die(” khong the ket noi”); mysql_select_db(“demo”); 1.5.3. Thực thi câu lệnh truy vấn: Cú pháp: mysql_query(“Câu truy vấn ở đây”);
  • 44. 44 1.5.4. Đếm số dòng dữ liệu trong bảng: Cú pháp: mysql_num_rows(); 1.5.5. Lấy dữ liệu từ bảng đưa vào mảng: Cú pháp: mysql_fetch_array(); 1.5.6. Đóng kết nối cơ sở dữ liệu: Cú pháp: mysql_close(); Tạo cơ sở dữ liệu dựa trên từng đoạn code sau: mysql -hlocalhost -uroot –proot mysql>create database demo_mysql; mysql> use demo_mysql; mysql>create table user(id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password CHAR(50) NOT NULL, PRIMARY KEY(id)); Tạo trang test.php. Đầu tiên chúng ta sẽ kết nối cơ sở dữ liệu. <? $conn=mysql_connect(“localhost”, “root”, “root”) or die(“can’t connect database”); mysql_select_db(“demo_mysql”,$conn); ?> Tiếp đến viết câu truy vấn lấy ra tất cả user từ database. <? $sql=”select * from user”;
  • 45. 45 $query=mysql_query($sql); ?> Kiểm tra xem trong bảng dữ liệu đã tồn tại user nào chưa ?. Nếu chưa thì xuất ra thông báo lỗi, ngược lại thì đưa chúng vào mảng và lặp cho đến hết bảng dữ liệu. <? if(mysql_num_rows($query) == 0) { echo “Chua co du lieu”; } else { while($row=mysql_fetch_array($query)) { echo $row[username] .” – “.$row[password].”<br />”; } } ?> Và cuối cùng chúng ta đóng kết nối và kết thúc thao tác xử lý. <? mysql_close($conn); ?> Và cuối cùng là file hoàn chỉnh của ứng dụng trên: <? $conn=mysql_connect(“localhost”, “root”, “root”) or die(“can’t connect database”); mysql_select_db(“demo_mysql”,$conn); $sql=”select * from user”; $query=mysql_query($sql); if(mysql_num_rows($query) == 0)
  • 46. 46 { echo “Chua co du lieu”; } else { while($row=mysql_fetch_array($query)) { echo $row[username] .” – “.$row[password].”<br />”; } } mysql_close($conn); ?>
  • 47. 47
  • 48. 48 Phần 2: PHP MYADMIN và MySQL Client Định nghĩa PhpMyAdmin là một công cụ nguồn mở miễn phí được viết bằng PHP dự định để xử lý quản trị của MySQL thông qua một trình duyệt web. Nó có thể thực hiện nhiều tác vụ như tạo, sửa đổi hoặc xóa bỏ cơ sở dữ liệu, bảng, các trường hoặc bản ghi; thực hiện báo cáo SQL; hoặc quản lý người dùng và cấp phép. 2.1. Thao tác trên Phpmyadmin: 2.1.1. Tạo Database (CSDL – Cơ Sở Dữ Liệu) Hình1 . giao diện của phpMyAdmin
  • 49. 49 Hinh 2 tao database “Quan Ly” 2.1.2. Tạo Bảng (table) Thêm bảng vào database: Ta thêm bảng user có cấu trúc như sau Field Kiểu dữ liệu Mô tả id Integer (10) Là Khóa chính của bảng có chiều dài ký tứ tối đa là 10 username Varchar (50) Là tên đăng nhập có chiều dài kí tự tối đa là 50 password char (50) Là mật khẩu có chiều dài ký tự tối đa là 50 Email Varchar Email với chiều dài ký tự tối đa là 50
  • 50. 50 (50) address varchar (200) địa chỉ Phone integer (50) Số điện thoại gender char (1) thể hiện giới tính Tiếp theo ta chọn database Quan Ly mà ta cần thêm bảng User vào như hình bên dưới Nhấn Go Sau khi nhập đầy đủ thông tin ta được như hình bên dưới
  • 51. 51 Sau đó nhấn save để lưu lại ta được bảng user như hình bên dưới 2.1.3. Thêm dữ liệu vào Bảng (table) Tiếp theo ta thêm dữ liệu vào trong bảngClick vào bảng user và chọn Insert ta được giao diện như sau
  • 52. 52 Tã đã thêm dữ liệu vào bảng 2.1.4. Sửa và Xóa dữ liệu trong Bảng (table) Bước 1: Chọn table muốn xóa sửa (ví dụ danhmuc) Bước 2: Nhắp link Browse. Bước 3: Hiệu chỉnh/xóa: khi muốn sửa xóa phải tích vào dòng muốn thao tác Sửa record: Nhắp nút Edit (cây viết) trên dòng chứa record. Xóa record : Nhắp nút Drop (dấu nhân màu đỏ) trên dòng chứa record.
  • 53. 53 2.1.5. Sửa cấu trúc Table (bảng): Bước 1: Chọn table Bước 2: Nhắp link Structure Bước 3: Chỉnh field: Nhắp nút Change (cây viết) Xóa field : Nhắp nút Drop (dấu nhân màu đỏ) Thêm field : Nhắp nút Go trong mục Add 2.1.6. Đổi tên Bảng (table) Bước 1: Chọn table Bước 2: Nhắp link Operations Bước 3. Rename table to: gõ tên mới Bước 4: Nhắp nút Go Ví dụ: Đổi tên table User thành Nguoidung
  • 54. 54 2.1.7. Xóa Bảng (table) Bước 1: Chọn database Bước 2: Nhắp Drop Ví dụ: Xóa table Manh 2.2. Sử dụng MySQL Client để kết nối với MySQL server Hiện nay có rất nhiều phần mềm MySQL Client trong tài liệu này sẽ sử dụng dbForge Studio Express for MySQL Để sử dụng dbForge Studio Express for MySQL đầu tiên ta download phần mềm tại http://www.devart.com/dbforge/mysql/studio/download.html và cài đặt lên máy trạm như phần mềm bình thường Dưới đây là một vài minh họa về các thao tác cơ bản sử dụng trên dbForge Studio Express for MySQL
  • 55. 55 Giao diện khi chạy dbForge Studio Express for MySQL 2.2.1. Tạo kết nối với MySQL server Trong phần mềm các thao tác trên MySQL server được thực hiện qua giao hiện đồ họa trực quan thân thiện
  • 56. 56 2.2.2. Thao tác tạo database Nhập tên và kiểu tham chiếu của database
  • 57. 57 2.2.3. Tạo bảng
  • 58. 58 2.2.4. Sửa cấu trúc bảng
  • 59. 59 2.2.5. Xóa bảng 2.2.6. Đổi tên bảng Các thao tác với dữ liệu
  • 60. 60 2.2.7. Xóa database
  • 61. 61 KẾT LUẬN Sau khi tìm hiểu và thực hành đề tài bài tập lớn nhóm chúng em đã có sự tập trung các ý để hoàn thiện tập tài liệu này với một số website tham khảo sau đây: http://vi.wikipedia.org/wiki/SQL http://forum.ubuntu-vn.org/viewtopic.php?f=51&t=10750 http://www.quantrimang.com.vn/cai-dat-apache2-voi-php5-va-ho-tro-mysql-tren-ubuntu- 11-10-lamp-83444 và các tài liệu trên sách báo và thực hành trực tiếp trên máy. Chúng em đã hoàn thành cuốn tài liệu tìm hiểu và triển khai mysql server trên linux server, cuốn tài liệu chắc chắn còn những thiếu sót mong được thầy và các bạn góp ý để hoàn thiện hơn. Xin cảm ơn thầy và các bạn. Hà nội 10/11/2014 Nhóm 01