Số tiết:
 30 tiết lý thuyết
 60 tiết thực hành
 Đánh giá kết thúc môn học:
 Điểm kiểm tra quá trình: 40%
 Thi hết môn (thực hành + lý thuyết): 60%
              
                                            
                                
            
 
            
                 347 trang
347 trang | 
Chia sẻ: Mr Hưng | Lượt xem: 1012 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Lập trình PHP 1, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
// in “c, d, e, ” 
6.2. KIỂU MẢNG 
 Các hàm liên quan tới mảng 
 Sắp xếp dữ liệu trong mảng chỉ số nguyên: sort() 
Ví dụ: 
 Sắp thứ tự ngược bằng hàm: rsort() 
 Không nên sử dụng hàm sort() để sắp mảng chỉ số 
chuỗi vì sau khi sắp xong khóa sẽ bị mất. 
230 
$an_array = array("x","a","f","c"); 
sort($an_array); 
foreach ( $an_array as $var ) 
 print "$var, "; // in “a, c, f, x, ” 
6.2. KIỂU MẢNG 
 Các hàm liên quan tới mảng 
 Sắp theo giá trị sử dụng: asort() 
Ví dụ: 
 Sắp thứ tự ngược bằng hàm: arsort() 
231 
$first = array("first"=>5,"second"=>2,"third"=>1); 
asort( $first ); 
foreach ( $first as $key => $val ){ 
 print "$key = $val, "; 
} 
 // in “third = 1, second = 2, first = 5, ” 
6.2. KIỂU MẢNG 
 Các hàm liên quan tới mảng 
 Sắp theo khóa sử dụng hàm: ksort() 
Ví dụ: 
 Sắp thứ tự ngược bằng hàm: krsort() 
232 
$first = array("x"=>5,"a"=>2,"f"=>1); 
ksort( $first ); 
foreach ( $first as $key => $val ){ 
 print "$key = $val, "; 
} 
// in “a = 2, f = 1, x = 5, ” 
6.3. KIỂU NGÀY GIỜ 
 Các hàm liên quan tới ngày giờ 
 Kiểm tra giá trị ngày có hợp lệ không 
• Nếu hợp lệ, hàm trả về true 
• Nếu không hợp lệ trả về false 
233 
checkdate (tháng, ngày, năm) 
6.3. KIỂU NGÀY GIỜ 
 Các hàm liên quan tới ngày giờ 
 Lấy các giá trị của ngày hiện tại 
 Lấy các giá trị giờ hiện tại 
 Định dạng hiển thị cho ngày hiện tại 
234 
getdate () 
localtime() 
time() 
date(chuỗi định dạng) 
6.3. KIỂU NGÀY GIỜ 
 Các tham số định dạng liên quan tới ngày giờ 
235 
Tham số Ý nghĩa 
a Buổi sáng/Chiều bằng hai ký tự thường am/pm. 
A Buổi sáng/Chiều bằng hai ký tự hoa AM/PM. 
d Ngày (01-31) trong tháng với hai ký số. 
D Thứ (Mon-Sun) trong tuần với 3 ký tự. 
F 
Tháng (January-December) trong năm với tên tháng đầy đủ 
dạng text. 
6.3. KIỂU NGÀY GIỜ 
 Các tham số liên quan tới ngày giờ 
236 
Tham số Ý nghĩa 
g Giờ (1-12) trong ngày với 1 hoặc 2 ký số. 
G Giờ (0-23) trong ngày với 1 hoặc 2 ký số. 
h Giờ (01-12) trong ngày với 2 ký số. 
H Giờ (00-23) trong ngày với 2 ký số. 
i Phút (01-59) đã trôi qua với 2 ký số. 
j Ngày (1-31) trong tháng với 1 hoặc 2 số. 
l Thứ (Monday-Sunday) trong tuần với tên đầy đủ dạng text. 
L Năm nhuần trả về 1, ngược lại hàm trả về 0. 
6.3. KIỂU NGÀY GIỜ 
 Các tham số liên quan tới ngày giờ 
237 
Tham số Ý nghĩa 
m Tháng (01-12) trong năm với 2 ký số. 
M Tháng (Jan-Dec) trong năm với 3 ký tự. 
n Tháng (1-12) trong năm với 1 hoặc 2 ký số. 
s Giây (01-59) đã trôi qua với 2 ký số. 
S 
Thêm hai ký tự st, nd, rd hay th theo sau ngày dạng hai ký tự số 
(ví dụ như 12th). 
t Trả về tổng số ngày trong tháng (từ 28 -31). 
6.3. KIỂU NGÀY GIỜ 
 Các tham số liên quan tới ngày giờ 
238 
Tham số Ý nghĩa 
w Thứ (0-6) trong tuần, 0 ứng với Sunday và 6 ứng với Saturday. 
y Năm định dạng 2 ký số (03). 
Y Năm định dạng 4 ký số (2003). 
z Ngày trong năm (0-365). 
TRƯỜNG ĐẠI HỌC TÀI CHÍNH MARKETING 
KHOA CÔNG NGHỆ THÔNG TIN 
CHƯƠNG 4: 
MySQL 
NỘI DUNG CHƯƠNG 4 
240 
Giới thiệu CSDL MySQL 1 
Các kiểu dữ liệu trong MySQL 2 
Tạo/xóa cơ sở dữ liệu 3 
4 Thao tác trên bảng 
Thực thi câu lệnh Select 5 
1. GIỚI THIỆU CSDL MYSQL 
241 
1.2. CSDL MySQL 
1.1. CSDL quan hệ 
1.1. CSDL QUAN HỆ 
Các đối tượng chính của CSDL quan hệ 
(1) Bảng dữ liệu (table) 
(2) Quan hệ 
242 
1.1. CSDL QUAN HỆ (tt) 
Các đối tượng chính của CSDL quan hệ 
(1) Bảng dữ liệu (table) 
• Là thành phần trung tâm của CSDL, được dùng 
để lưu trữ thông tin của CSDL 
• Gồm hai thành phần: dòng và cột 
243 
1.1. CSDL QUAN HỆ (tt) 
Các đối tượng chính của CSDL quan hệ 
(1) Bảng dữ liệu (table) 
Cột: là một khối dữ liệu trong bảng, có cùng loại 
dữ liệu, có các thông tin chính: 
 - Tên cột: dùng để phân biệt với các cột khác trong bảng. 
Tên cột trong bảng phải duy nhất và không dùng các ký tự 
đặc biệt. 
 - Kiểu dữ liệu của cột: xác định loại giá trị nào được 
phép lưu trữ trong cột. 
244 
1.1. CSDL QUAN HỆ (tt) 
Các đối tượng chính của CSDL quan hệ 
(1) Bảng dữ liệu (table) 
• Dòng: Là tập hợp các thông tin của tất cả cột dữ 
liệu trong bảng. 
245 
1.1. CSDL QUAN HỆ (tt) 
 Các đối tượng chính của CSDL quan hệ 
(2) Quan hệ 
• Là thành phần được dùng để tạo mối liên kết giữa 
các bảng dữ liệu với nhau nhằm đảm bảo tính 
nhất quán, đúng đắn của dữ liệu trong CSDL. 
246 
1.2. CSDL MYSQL 
MySQL là một hệ quản trị cơ sở dữ liệu mã 
nguồn mở phổ biến trên thế giới. 
Sử dụng cho các ứng dụng Web có quy mô vừa 
và nhỏ. 
Để thực hiện các thao tác trên CSDL, có thể sử 
dụng giao diện đồ họa hay dùng dòng lệnh 
(command line) 
247 
1.2. CSDL MYSQL (tt) 
248 
MySQL hoàn 
toàn miễn 
phí 
Website 
ysql.com/ 
-Tốc độ cao, 
ổn định. 
- Hoạt động 
trên nhiều 
hệ điều 
hành 
Open 
source Free Fast 
1.2. CSDL MYSQL (tt) 
CÁC TẬP TIN VẬT LÝ LƯU TRỮ CSDL 
Mỗi bảng sẽ được lưu trữ dưới ba tập tin vật lý: 
 .frm: lưu định dạng (cấu trúc) của bảng 
 .MYD : lưu nội dung của bảng 
 .MYI : lưu chỉ mục của bảng 
Các tập tin này sẽ được tự động lưu trữ trong thư 
mục: 
AppServ\MySQL\data\tên_CSDL 
249 
1.2. CSDL MYSQL (tt) 
 QUY TẮC ĐẶT TÊN 
 Tên không kết thúc bằng khoảng trắng. 
 Tên CSDL không có các ký tự 
 /, \, ., :, *, ‘’, 
 Tên bảng không có các ký tự 
 /, \, ., :, *, ‘’, , | 
 Chiều dài của tên tối đa là 64 ký tự không dấu. 
250 
2. CÁC KIỂU DỮ LIỆU TRONG MYSQL 
251 
2.4. Kiểu Date/Time 
2.3. Kiểu True/False 
2.2. Kiểu số thực 
2.1. Kiểu số nguyên 
2.5. Kiểu chuỗi 
2.1. KIỂU SỐ NGUYÊN 
Kiểu dữ liệu Kích thước Miền giá trị 
TINYINT 1 byte -128127 hay 0255 
SMALLINT 2 byte -3276832767 hay 065535 
MEDIUMINT 3 byte -83886088388607 hay 016777215 
INT 4 byte -231  231-1 hay 0 232-1 
BIGINT 8 byte -263  263-1 hay 0 264-1 
252 
2.2. KIỂU SỐ THỰC 
Kiểu dữ liệu Kích thước Miền giá trị 
FLOAT 4 byte 
-3,402823466E+38 đến -1,175494351E-38, 
số 0, và từ 1,175494351E-38 đến 
3,402823466E+38 
DOUBLE 8 byte 
-1,7976931348623157E+308 đến -
2,2250738585072014E-308, số 0 và 
2,2250738585072014E-308 đến 
1,7976931348623157E+308 
253 
2.3. KIỂU TRUE/FALSE 
Kiểu dữ liệu Kích thước Miền giá trị 
BOOL 1 byte Có 2 giá trị True và False 
254 
2.4. KIỂU DATE/TIME 
255 
Kiểu dữ liệu Diễn giải Miền giá trị 
Date 
Ngày với định dạng 
yyyy-mm-dd 
‘1000-01-01’ đến ‘9999-12-31’ 
Datetime 
Ngày giờ với định dạng 
yyyy-mm-dd hh:mm:ss 
‘1000-01-01 00:00:00’ đến ‘9999-12-
31 23:59:59’ 
Time 
Giờ với định dạng 
hh:mm:ss 
‘00:00:00’ đến ‘23:59:59’ 
Year[(2|4)] 
Năm với định dạng 2 
hoặc 4 ký số 
2 ký số: ‘1970’ đến ‘2069’ 
4 ký số: ‘1901’ đến ‘2155’ 
Timestamp 
[(kích cỡ 
định dạng)] 
Thời gian với dạng yyyy-
mm-dd hh:mm:ss 
‘1970-01-01 00:00:01’ 
2.4. KIỂU DATE/TIME 
256 
Kiểu dữ liệu Diễn giải 
Timestamp Định dạng yyyy-mm-dd hh:mm:ss 
Timestamp (14) Định dạng yyyy-mm-dd hh:mm:ss 
Timestamp (12) Định dạng yy-mm-dd hh:mm:ss 
Timestamp (10) Định dạng yy-mm-dd hh:mm 
Timestamp (8) Định dạng yyyy-mm-dd 
Timestamp (6) Định dạng yy-mm-dd 
Timestamp (4) Định dạng yy-mm 
Timestamp (2) Định dạng yy 
2.5. KIỂU CHUỖI 
257 
Kiểu dữ liệu Diễn giải Miền giá trị 
Char Chuỗi cố định 1 – 255 ký tự 
Varchar Chuỗi động 1 – 255 ký tự 
Tinyblob Kiểu đối tượng nhị phân 255 ký tự 
Tinytext Kiểu đối tượng chuỗi văn bản 255 ký tự 
Blob Kiểu đối tượng nhị phân 65.635 ký tự 
Text Kiểu đối tượng chuỗi văn bản 65.635 ký tự 
Mediumblob Kiểu đối tượng nhị phân 16.777.215 ký tự 
Mediumtext Kiểu đối tượng chuỗi văn bản 16.777.215 ký tự 
Longblob Kiểu đối tượng nhị phân 4GB ký tự 
Longtext Kiểu đối tượng chuỗi văn bản 4GB ký tự 
3. TẠO/XÓA CƠ SỞ DỮ LIỆU 
Ví dụ: Tạo CSDL quản lý sinh viên đơn giản như 
sau: 
Tạo CSDL như thế nào? 
258 
3. TẠO/XÓA CƠ SỞ DỮ LIỆU 
Có hai cách để tạo một CSDL là dùng giao diện 
đồ họa hoặc dùng dòng lệnh. 
 Lưu ý: 
 Tên CSDL: phải duy nhất trong một hệ quản trị 
CSDL MySQL 
 Vị trí lưu trữ: Khi tạo mới một CSDL hệ thống sẽ 
tự động tạo ra một thư mục có tên của CSDL và 
được lưu tại thư mục 
 AppServ\MySQL\data\tên_CSDL 
259 
3. THAO TÁC VỚI CƠ SỞ DỮ LIỆU 
260 
3.2. Tạo CSDL bằng dòng lệnh 
3.1. Tạo CSDL bằng giao diện đồ họa 
3.5. Xóa CSDL bằng dòng lệnh 
3.4. Xóa CSDL bằng giao diện đồ họa 
3.3. Đổi tên CSDL 
3.1. TẠO CSDL BẰNG GIAO DIỆN ĐỒ 
HỌA 
 Bước1: khởi động PHPMyAdmin 
 Bước 2: Nhập tên CSDL muốn tạo vào mục Create 
New Database và chọn các thông tin khác 
 Bước 3: Nhấn “Create” để hoàn thành việc tạo CSDL 
261 
3.2. TẠO CSDL BẰNG DÒNG LỆNH 
 Bước1: Trong cửa sổ PHPMyAdmin chọn mục 
SQL 
262 
3.2. TẠO CSDL BẰNG DÒNG LỆNH (tt) 
 Bước 2: Dùng câu lệnh CREATE DATABASE 
CREATE DATABASE Tên_CSDL 
[CHARACTER SET ] 
[COLLATE ] 
Với: 
 CHARACTER SET: xác định bộ ký tự mặc định cho CSDL mới 
 COLLATE: xác định bộ collation 
 Character set name: tên của một bộ mã bao gồm các ký tự, ký số, 
và biểu tượng để lưu trữ các thông tin trong CSDL 
 Collation name: tên của bộ mã tùy theo từng khu vực dựa trên bộ 
mã chuẩn character set name 
263 
3.2. TẠO CSDL BẰNG DÒNG LỆNH (tt) 
Ví dụ: Tạo CSDL tên qlsv 
264 
CREATE DATABASE qlsv 
 CHARACTER SET utf8 
 COLLATE utf8_unicode_ci 
3.3. ĐỔI TÊN CSDL 
Bước 1: chọn CSDL 
Bước 2: chọn link Operations 
265 
3.3. ĐỔI TÊN CSDL (tt) 
Bước 3: Nhập tên mới cho CSDL 
Bước 4: Nhấn GO 
266 
3.4. XÓA CSDL BẰNG GIAO DIỆN ĐỒ 
HỌA 
 Bước 1: Chọn CSDL cần xóa, sau đó nhấn 
DROP 
267 
3.4. XÓA CSDL BẰNG GIAO DIỆN ĐỒ 
HỌA (tt) 
 Bước2: Xác nhận việc xóa CSDL đã chọn, nhấn 
OK để xóa 
268 
3.5. XÓA CSDL BẰNG DÒNG LỆNH 
Dùng câu lệnh DROP DATABASE 
DROP DATABASE TÊN_CSDL 
Ví dụ: Xóa CSDL ql_ban_sua 
269 
DROP DATABASE ql_ban_sua 
4. THAO TÁC TRÊN BẢNG 
270 
4.10. Export bảng 
4.8. Xóa bảng 
4.6. Sửa cấu trúc bảng 
4.4. Xem dữ liệu 
4.1. Khái niệm 
4.9. Import bảng 
4.7. Đổi tên bảng 
4.5. Xóa/Sửa dữ liệu 
4.3. Thêm dữ liệu 
4.2. Tạo bảng 
4.1. KHÁI NIỆM 
 Dùng để lưu trữ thông tin của những đối tượng, 
thực thể trong thế giới thực. 
 Các thông tin trong bảng sẽ được tổ chức thành 
các dòng (row) và các cột (column). 
 Mỗi dòng thông tin trong bảng là duy nhất do có 
một hoặc nhiều cột làm khóa chính. Dữ liệu của 
cột làm khóa chính không trùng lắp trong bảng. 
 Các bảng thường có quan hệ với nhau giúp trao 
đổi và chia sẻ thông tin. 
271 
4.1. KHÁI NIỆM (tt) 
Ví dụ: CSDL quản lý sinh viên như sau: 
272 
4.1. KHÁI NIỆM (tt) 
Thuộc tính: 
 Table name(Tên bảng): Duy nhất trong CSDL 
 Field (Cột): Tên duy nhất trong Table 
• Data type: Kiểu dữ liệu 
• Length/Value: Độ dài dữ liệu (đối với kiểu dữ liệu 
chuỗi hoặc số) 
• Collation: Kiểu hiển thị (Quy định bảng mã hiển thị 
cho dữ liệu trong cột) 
273 
4.1. KHÁI NIỆM (tt) 
Thuộc tính: 
 Field (Cột): 
• Attribute: Quy định thuộc tính cho cột. 
• NULL: Cho phép để trống dữ liệu khi thêm, cập 
nhật dữ liệu. 
• Default: Giá trị mặc định sẽ thêm vào cho cột khi 
thêm mới mẩu tin mà người dùng không nhập giá 
trị cho cột này. 
274 
4.1. KHÁI NIỆM (tt) 
Thuộc tính: 
 Field (Cột): 
• Extra (Thuộc tính mở rộng): Cho phép thiết lập 
thuộc tính auto increment (cột có giá trị tự động 
tăng dần khi thêm mới mẩu tin) cho khóa chính. 
• Comment: Chuỗi chú thích cho cột 
275 
4.2. TẠO BẢNG 
4.2.2. Tạo bảng bằng câu lệnh SQL 
4.2.1. Tạo bảng bằng giao diện đồ họa 
276 
4.2.1. TẠO BẢNG BẰNG GIAO DIỆN ĐỒ 
HỌA 
 Bước1: 
277 
4.2.1. TẠO BẢNG BẰNG GIAO DIỆN ĐỒ 
HỌA (tt) 
 Bước 2: Nhập thông tin cho các field 
278 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL 
 (1) Tạo bảng đơn giản 
 CREATE TABLE Tên_bảng 
 ( 
 Tên_cột_1 kiểu_dữ_liệu[(kích_cỡ)] [NOT NULL], 
 Tên_cột_2 kiểu_dữ_liệu[(kíchcỡ)] [NOT NULL], 
 ... 
 ) 
 NOT NULL: không cho phép để trống dữ liệu trong cột 
 279 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL (tt) 
Ví dụ: tạo bảng khoa với hai cột dữ liệu không 
được phép bỏ trống 
280 
CREATE TABLE khoa 
( 
 makh char(2) NOT NULL, 
 tenkh varchar(20) NOT NULL 
) 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL (tt) 
 (2) Tạo bảng có giá trị mặc định 
 CREATE TABLE Tên_bảng 
 ( 
 Tên_cột_1 kiểu_dữ_liệu[(kích_cỡ)] DEFAULT giá_trị, 
 Tên_cột_2 kiểu_dữ_liệu[(kíchcỡ)] [NOT NULL], 
 ... 
 ) 
281 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL (tt) 
(3) Tạo khóa chính 
 PRIMARY KEY 
(Các_cột_tham_gia_làm_khóa_chính) 
 Đối với bảng mà khóa chính chỉ có một cột: có 
thể khai báo khóa chính ngay sau khi khai báo 
cột. 
 Đối với bảng có nhiều cột tham gia làm khóa: 
thiết lập các cột trước rồi tạo khóa chính sau. 
282 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL (tt) 
 Ví dụ: 
283 
CREATE TABLE khoa 
( 
 makh char(2) NOT NULL PRIMARY KEY, 
 tenkh varchar(20) NOT NULL 
) 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL (tt) 
 Ví dụ: 
284 
CREATE TABLE ketqua 
( mamh char(2) NOT NULL, 
 masv char(3) NOT NULL, 
 diem tinyint UNSIGNED NOT NULL, 
 PRIMARY KEY (mamh, masv) 
) 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL (tt) 
Ví dụ: 
285 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL (tt) 
(4) Tạo cột tự tăng giá trị 
Xác định cột tự tăng giá trị (Auto_Increment) 
Thuộc tính auto_increment chỉ có thể thiết lập 
cho cột có kiểu dữ liệu là kiểu số nguyên. 
Trong một bảng, chỉ có thể có một cột có thuộc 
tính auto_increment, cột này phải là khóa và 
không thiết lập giá trị mặc định DEFAULT. 
286 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL (tt) 
 Ví dụ: 
287 
CREATE TABLE monhoc 
( mamh int NOT NULL AUTO_INCREMENT PRIMARY KEY , 
 tenmh varchar(30) NOT NULL 
) 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL (tt) 
(5) Tạo bảng có dữ liệu duy nhất 
 UNIQUE (Các cột có dữ liệu duy nhất) 
 Đối với bảng chỉ có một cột có dữ liệu duy nhất: 
có thể khai báo ngay sau khi khai báo cột. 
 Đối với bảng có nhiều cột có dữ liệu duy nhất: 
thiết lập các cột trước rồi tạo duy nhất sau. 
288 
4.2.2. TẠO BẢNG BẰNG CÂU LỆNH 
SQL (tt) 
 Ví dụ: 
289 
CREATE TABLE monhoc 
( 
 mamh int NOT NULL AUTO_INCREMENT PRIMARY KEY , 
 tenmh varchar(30) NOT NULL UNIQUE 
) 
4.3. THÊM DỮ LIỆU 
4.3.2. Thêm dữ liệu bằng câu lệnh SQL 
4.3.1. Thêm dữ liệu bằng giao diện đồ họa 
290 
4.3.1. THÊM DỮ LIỆU BẰNG GIAO DIỆN 
ĐỒ HỌA 
291 
4.3.2. THÊM DỮ LIỆU BẰNG CÂU LỆNH 
SQL 
Thêm mới một hay nhiều dòng dữ liệu vào bên 
trong một bảng. 
 INSERT INTO Tên_bảng [(tên các cột trong bảng)] 
 VALUES (Danh_sách_các_giá_trị) 
Ví dụ: 
292 
INSERT INTO monhoc ('mamh','tenmh') 
VALUES ('3', 'Anh văn 1'), ('4', 'Đại số tuyến tính') 
4.4. XEM DỮ LIỆU 
293 
4.5. XÓA / SỬA DỮ LIỆU 
4.5.2. Xóa/sửa dữ liệu bằng câu lệnh SQL 
4.5.1. Xóa/sửa dữ liệu bằng giao diện đồ họa 
294 
4.5.1. XÓA / SỬA DỮ LIỆU BẰNG GIAO 
DIỆN ĐỒ HỌA 
295 
4.5.2. XÓA / SỬA DỮ LIỆU BẰNG CÂU 
LỆNH SQL 
Cập nhật (sửa đổi) dữ liệu đã có trong bảng. 
UPDATE Tên_bảng 
SET Tên_cột = Giá_trị(hoặc biểu thức) [,...] 
WHERE Điều_kiện_cập_nhật 
Ví dụ: 
296 
UPDATE monhoc 
SET tenmh = 'Toán rời rạc' 
WHERE mamh =4 
4.5.2. XÓA / SỬA DỮ LIỆU BẰNG CÂU 
LỆNH SQL 
Xoá các dòng ra khỏi bảng. 
Ví dụ: 
297 
DELETE FROM Tên_bảng 
WHERE Điều_kiện_xóa 
DELETE FROM monhoc 
WHERE mamh = 4 
4.6. SỬA CẤU TRÚC BẢNG 
4.6.2. Sửa cấu trúc bảng 
bằng câu lệnh SQL 
4.6.1. Sửa cấu trúc bảng 
bằng giao diện đồ họa 
298 
4.6.1. SỬA CẤU TRÚC BẢNG BẰNG 
GIAO DIỆN ĐỒ HỌA 
a) Thêm cột 
 Bước1: Chọn Structure để hiển thị cấu trúc của 
bảng cần thêm cột 
299 
4.6.1. SỬA CẤU TRÚC BẢNG BẰNG 
GIAO DIỆN ĐỒ HỌA 
a) Thêm cột 
 Bước 2: nhập số cột muốn thêm vào ô Add và 
chọn vị trí cần thêm cột đó trong bảng là: 
• At End of Table: thêm vào cuối bảng 
• At Beginning of Table: thêm vào đầu bảng 
• After : thêm vào sau tên_cột được chọn 
 Sau đó nhấn Go 
300 
4.6.1. SỬA CẤU TRÚC BẢNG BẰNG 
GIAO DIỆN ĐỒ HỌA 
a) Thêm cột 
 Bước 3: điền các thông tin cho cột mới như tên 
cột (Field), kiểu dữ liệu (Type), rồi nhấn Save 
để hoàn thành việc thêm cột mới vào bảng 
301 
4.6.1. SỬA CẤU TRÚC BẢNG BẰNG 
GIAO DIỆN ĐỒ HỌA 
b) Xóa cột 
 Bước1: Chọn Structure để hiển thị cấu trúc của 
bảng 
302 
4.6.1. SỬA CẤU TRÚC BẢNG BẰNG 
GIAO DIỆN ĐỒ HỌA 
b) Xóa cột 
 Bước 2: chọn cột cần xóa và nhấn nút 
303 
4.6.1. SỬA CẤU TRÚC BẢNG BẰNG 
GIAO DIỆN ĐỒ HỌA 
b) Xóa cột 
 Bước 3: chọn OK 
304 
4.6.1. SỬA CẤU TRÚC BẢNG BẰNG 
GIAO DIỆN ĐỒ HỌA 
c) Sửa đổi cột 
 Bước1: Chọn cột muốn sửa đổi dữ liệu trong 
bảng, sau đó nhấn chọn biểu tượng sửa. 
305 
4.6.1. SỬA CẤU TRÚC BẢNG BẰNG 
GIAO DIỆN ĐỒ HỌA 
c) Sửa đổi cột 
 Bước 2: sửa đổi xong nhấn Save. 
306 
4.6.2. SỬA CẤU TRÚC BẢNG BẰNG 
CÂU LỆNH SQL 
a) Thêm cột 
 ALTER TABLE Tên_bảng 
 ADD 
 Tên_cột kiểu_dữ_liệu [(kích_cỡ)] [...] 
Chú ý: Tên cột mới thêm vào phải khác với 
tên các cột đã có trong bảng. 
307 
4.6.2. SỬA CẤU TRÚC BẢNG BẰNG 
CÂU LỆNH SQL 
a) Thêm cột 
Ví dụ: thêm cột mo_ta có kiểu varchar(255) cho 
bảng sinhvien đã tạo ở trên 
308 
ALTER TABLE sinhvien 
 ADD mo_ta varchar(255) 
4.6.2. SỬA CẤU TRÚC BẢNG BẰNG 
CÂU LỆNH SQL 
b) Xóa cột 
ALTER TABLE Tên_bảng 
 DROP COLUMN Tên_cột, ... 
309 
4.6.2. SỬA CẤU TRÚC BẢNG BẰNG 
CÂU LỆNH SQL 
c) Sửa đổi cột 
 ALTER TABLE Tên_bảng 
 CHANGE tên_cột_cũ tên_cột_mới 
 kiểu_dữ_liệu_mới[kích_cỡ] 
310 
4.6.2. SỬA CẤU TRÚC BẢNG BẰNG 
CÂU LỆNH SQL 
c) Sửa đổi cột 
Ví dụ: thêm cột mo_ta có kiểu text cho bảng 
sinhvien đã tạo ở trên 
311 
ALTER TABLE sinhvien 
 CHANGE mo_ta mo_ta text 
4.7. ĐỔI TÊN BẢNG 
Bước 1: chọn bảng 
Bước 2: chọn link OPERATIONS 
312 
4.7. ĐỔI TÊN BẢNG 
Bước 3: Nhập tên mới cho bảng 
Bước 4: Nhấn Go 
313 
4.8. XÓA BẢNG 
4.8.2. Xóa bảng 
bằng câu lệnh SQL 
4.8.1. Xóa bảng 
bằng giao diện đồ họa 
314 
4.8.1. XÓA BẢNG BẰNG GIAO DIỆN ĐỒ 
HỌA 
315 
4.8.2. XÓA BẢNG BẰNG CÂU LỆNH 
SQL 
DROP TABLE Tên_bảng 
316 
4.9. IMPORT BẢNG 
Bước 1: Chọn CSDL 
Bước 2: Chọn link Import 
317 
4.9. IMPORT BẢNG 
Bước 3: Chọn tập tin .sql 
Bước 4: Nhấn Go để tiến hành import dữ liệu từ 
file .sql vào CSDL. 
318 
4.10. EXPORT BẢNG 
319 
4.10. EXPORT BẢNG 
320 
5. THỰC THI CÂU LỆNH SELECT 
321 
5.4. Câu lệnh Select có giới hạn 
5.3. Câu lệnh Select có phân nhóm 
5.2. Câu lệnh Select có sắp xếp dữ liệu 
5.1. Câu lệnh Select đơn giản 
5.1. CÂU LỆNH SELECT ĐƠN GIẢN 
 Chọn ra dữ liệu của các cột có trong 
bảng. 
 Dùng * khi muốn lấy dữ liệu từ tất cả các cột 
trong bảng 
322 
SELECT * | tên_các_cột 
FROM tên_các_bảng 
5.1. CÂU LỆNH SELECT ĐƠN GIẢN 
Lọc các dòng dữ liệu trong bảng theo điều kiện 
đưa ra trong mệnh đề WHERE 
Các phép toán thường gặp trong điều kiện lọc 
 So sánh: >, >=, 
 Logic: and, or, not, in, not in, between, like, not like 
 So sánh chuỗi: phép toán like kết hợp ký tự đại diện 
%, _ 
323 
SELECT tên_các_cột 
FROM tên_các_bảng 
WHERE điều_kiện_lọc 
5.2. CÂU LệNH SELECT CÓ SẮP XẾP 
DỮ LIệU 
 Sắp xếp lại dữ liệu theo thứ tự tăng dần 
hoặc giảm dần. 
Mặc định, cột sẽ được sắp xếp tăng dần, nếu 
muốn sắp xếp cột theo thứ tự giảm dần thì cần 
thêm từ khóa DESC 
324 
SELECT tên_các_cột 
FROM tên_các_bảng 
ORDER BY tên_cột_sắp_xếp [DESC, ] 
5.3. CÂU LỆNH SELECT CÓ PHÂN 
NHÓM 
Nhóm dữ liệu của các dòng trong bảng và 
sử dụng thêm các hàm thống kê để tính 
toán dữ liệu có tính chất thống kê. 
325 
SELECT tên_các_cột , hàm_thống_kê [as tên] 
FROM tên_các_bảng 
GROUP BY tên_các_cột_nhóm_dữ_liệu 
5.3. CÂU LỆNH SELECT CÓ PHÂN 
NHÓM 
Các hàm thống kê: 
 MAX: hàm trả về giá trị lớn nhất theo nhóm 
 MIN: hàm trả về giá trị nhỏ nhất theo nhóm 
 AVG: hàm trả về giá trị trung bình theo nhóm 
trong câu lệnh truy vấn trên bảng 
 SUM: hàm trả về tổng các giá trị theo nhóm 
 COUNT: hàm trả về số lượng mẩu tin theo nhóm 
trong câu truy vấn trên bảng 
326 
5.3. CÂU LỆNH SELECT CÓ PHÂN 
NHÓM 
Lọc lại dữ liệu sau khi đã gom nhóm dữ 
liệu bằng mệnh đề GROUP BY 
327 
SELECT tên_các_cột , hàm_thống_kê [as tên] 
FROM tên_các_bảng 
GROUP BY tên_các_cột_nhóm_dữ_liệu 
HAVING điều_kiện_lọc_sau_khi_nhóm 
5.4. CÂU LỆNH SELECT CÓ GIỚI HẠN 
Giúp lấy ra m mẩu tin trong bảng tính từ vị trí n, 
theo một tiêu chuẩn sắp xếp nào đó 
328 
SELECT tên_các_cột , hàm_thống_kê [as tên] 
FROM tên_các_bảng 
WHERE điều_kiện_lọc 
GROUP BY tên_các_cột_nhóm_dữ_liệu 
HAVING điều_kiện_lọc_sau_khi_nhóm 
ORDER BY tên_cột_sắp_xếp [DESC, ] 
LIMIT n,m 
TRƯỜNG ĐẠI HỌC TÀI CHÍNH MARKETING 
KHOA CÔNG NGHỆ THÔNG TIN 
CHƯƠNG 5 
Kết hợp PHP và 
MySQL 
NỘI DUNG CHƯƠNG 5 
Kết nối CSDL 1 
Chọn CSDL sử dụng 2 
Thực thi các câu lệnh truy vấn 3 
Duyệt recordset 4 
Thêm dữ liệu 6 
Cập nhật dữ liệu 7 
Xóa dữ liệu 8 
Thông báo lỗi trong MySQL 9 
Đếm số record trong recordset 5 Quy định bảng mã 10 
1.KẾT NỐI CSDL 
Cú pháp: 
 Trong đó: 
 host: địa chỉ của máy cài MySQL. Nếu máy nội bộ thì 
dùng localhost. 
 username: tài khoản kết nối 
 password: mật khẩu kết nối 
331 
mysql_connect (,,); 
1.KẾT NỐI CSDL 
 Ví dụ: 
 Host: localhost 
 Username: root 
 Password: root 
Câu lệnh kết nối CSDL: 
332 
$conn= mysql_connect ("localhost", "root", “root"); 
Tên kết nối 
1.KẾT NỐI CSDL 
Cú pháp đóng kết nối CSDL: 
 Ví dụ: 
333 
mysql_close (Tên kết nối); 
$conn= mysql_connect ("localhost", "root", “root"); 
mysql_close ($conn); 
2.CHỌN CSDL SỬ DỤNG 
Cú pháp: 
 Trong đó: 
 Tên CSDL: là tên của cơ sở dữ liệu muốn dùng 
 Tên kết nối: là tên biến kết nối CSDL (do hàm 
mysql_connect trả về). Tên kết nối có thể bỏ qua. 
334 
mysql_select_db("Tên CSDL" [, Tên kết nối]); 
2.CHỌN CSDL SỬ DỤNG 
 Ví dụ: 
 Cần dùng CSDL sanpham 
Câu lệnh chọn CSDL: 
Hoặc 
335 
mysql_select_db ("sanpham", $conn); 
Tên kết nối 
mysql_select_db ("sanpham"); 
3. THỰC THI CÂU LỆNH TRUY VẤN 
Cú pháp: 
 Nếu câu lệnh truy vấn không thực hiện được, hàm trả về 
false. 
 Nếu câu lệnh truy vấn thực thi thành công: 
• Hàm trả về 1 recordset (bảng dữ liệu) đối với câu lệnh 
select. 
• Hàm trả về true đối với các câu lệnh khác như insert, 
update, delete 
336 
mysql_query("Câu lệnh sql"); 
3. THỰC THI CÂU LỆNH TRUY VẤN 
Ví dụ: 
337 
$sanpham = mysql_query(“select * from sanpham”) 
$result=mysql_query(“delete from sanpham where 
idSP=1”) 
4.DUYỆT RECORDSET 
Cú pháp: 
 Hàm trả về thông tin của record hiện hành 
 Nếu rỗng thì trả về false 
 Đồng thời di chuyển con trỏ sang record kế 
Muốn hiện dữ liệu của field nào trong recordset thì ghi: 
$result['tên field'] 
338 
$result=mysql_fetch_assoc("Tên recordset"); 
4.DUYỆT RECORDSET 
 Ví dụ: 
339 11/1/2010 
<?php 
$sql="select * from sanpham"; 
$sanpham=mysql_query($sql); 
$row_sanpham=mysql_fetch_assoc($sanpham);?> 
<?php 
} while 
$row_sanpham=mysql_fetch_assoc($sanpham)); 
?> 
5.ĐẾM SỐ RECORD TRONG 
RECORDSET 
Cú pháp: 
 Hàm trả về tổng số record trong recordset đang chọn 
 Nếu rỗng thì trả về 0 
340 
$result=mysql_num_rows(Tên recordset); 
5.ĐẾM SỐ RECORD TRONG 
RECORDSET 
 Ví dụ: 
341 
<?php 
$sql="select * from sanpham"; 
$sanpham=mysql_query($sql); 
$numrow_sanpham=mysql_num_rows($sanpham);?> 
echo $numrow_sanpham; 
?> 
6. THÊM DỮ LIỆU 
Cú pháp 
Hàm liên quan 
 mysql_affected_rows(): Số bản ghi bị tác động bởi 
lệnh mysql_query liền trước. 
 mysql_insert_id(): lấy id vừa mới cập nhật. 
342 
<?php 
$sql="insert into Tên_bảng values('  ', )"; 
$result = mysql_query($sql); 
?> 
7. CẬP NHẬT DỮ LIỆU 
Cú pháp 
Hàm liên quan 
 mysql_affected_rows(): Số bản ghi bị tác động bởi 
lệnh mysql_query liền trước. 
343 
<?php 
$sql=“update  set  values( )"; 
$result = mysql_query($sql); 
?> 
8. XÓA DỮ LIỆU 
Cú pháp 
Hàm liên quan 
 mysql_affected_rows(): Số bản ghi bị tác động bởi 
lệnh mysql_query liền trước. 
344 
<?php 
$sql=“delete  from  where "; 
$result = mysql_query($sql); 
?> 
9. THÔNG BÁO LỖI CỦA MYSQL 
Cú pháp: 
 Ví dụ: 
<?php 
$sql="select * from sanpham"; 
$sanpham=mysql_query($sql) or die (mysql_error()); 
?> 
345 
mysql_error (); 
10. QUY ĐỊNH BẢNG MÃ 
Cú pháp: 
 Ví dụ: 
346 
mysql_query("set names 'utf8'"); 
<?php 
$conn= mysql_connect ("localhost", "root", “root"); 
mysql_select_db ("sanpham", $conn); 
mysql_query("set names 'utf8'"); 
?> 
TRƯỜNG ĐẠI HỌC TÀI CHÍNH MARKETING 
KHOA CÔNG NGHỆ THÔNG TIN 
            Các file đính kèm theo tài liệu này:
 baigianglaptrinhphp1_4702.pdf baigianglaptrinhphp1_4702.pdf