PHẦN IV
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL
TTTH Đại Học Bách Khoa
I. HÖ qu¶n trÞ CSDL MySQL. MySQL lµ hÖ qu¶n trÞ CSDL sö dông cho c¸c øng dông Web, ho¹t ®éng theo m« h×nh Client/Server. Chóng ta cã nhiÒu c¸ch thao t¸c víi CSDL MySQL, b»ng ®å häa hay b»ng chÕ ®é command line. + B»ng chÕ ®é ®å häa: Dïng MySQL Front hay PHPWebMyadmin. + B»ng chÕ ®é dßng lÖnh: Chän Run, gâ vµo: C:\Program Files\PHP Home Edition 2 \ mysql \ bin \ mysql.exe
TTTH Đại Học Bách Khoa
1. C¸c tham sè cÇn nhí khi kÕt nèi CSDL MySQL + Data Server: §Þa chØ cña m¸y chñ CSDL MySQL. VÝ dô: localhost + Port: Cæng kÕt nèi ®Õn m¸y chñ CSDL MySQL. VÝ dô: 3306 + User: User dïng kÕt nèi ®Õn m¸y chñ CSDL MySQL. VÝ dô: root + Password: MËt khÈu cña User dïng kÕt nèi ®Õn m¸y chñ CSDL MySQL. VÝ dô: root + Database name: Tªn CSDL trªn m¸y chñ CSDL MySQL mµ chóng ta muèn kÕt nèi. VÝ dô: sinhvien TTTH Đại Học Bách Khoa
II. C¸c kiÓu d÷ liÖu cña MySQL 1. KiÓu dò liÖu numerie: KiÓu dò liÖu numerie bao gåm kiÓu sè nguyªn vµ kiÓu sè thùc, trong trêng hîp sè thùc chóng ta cÇn chØ râ ra bao nhiªu sè sau dÊu ,.
TTTH Đại Học Bách Khoa
+
KiÓu sè nguyªn
Lo¹i
:
Giíi h¹n
tinyint
-127-128 hay 0… 255 smallint -32768… 32767 hay 0…65535 mediumi -8388608 … nt 8388607 hay 0… 16777215 int -231 … 231 -1 hay 0.. -232 -1 bigint
-263 … 263 -1 hay 0.. -264 -1
Sè bytes 1
DiÔn gi¶i
2
Sè nguyªn nhá Sè nguyªn võa Sè nguyªn
3 4 8
Sè rÊt nhá
Sè nguyªn lín TTTH Đại Học Bách Khoa
+
KiÓu sè thùc
:
Lo¹i
Sè bytes DiÔn gi¶i
float
4
Sè rÊt nhá
double
8
Sè nguyªn nhá
TTTH Đại Học Bách Khoa
+
KiÓu ngµy giê (DATE vµ TIME)
:
Lo¹i
Giíi h¹n
DiÔn gi¶i
Date
1000-0101
Date tr×nh bµy díi d¹ng yyyy-mm-dd
Time
00:00:00 23:59:59
DateTime
1000-0101 00:00:00
Time tr×nh bµy díi d¹ng Hh:mm:ss Date vµ Time tr×nh bµy díi d¹ng yyyy-mm-dd hh:mm:ss TimeStamp tr×nh bµy díi d¹ng yyyy-mm-dd hh:mm:ss tr×nh bµy díi d¹ng 2 sè
TimeStamp[( M)] Year[(2|4)]
hay 4 sè TTTH Đại Học Bách Khoa
+
C¸c ®¹i diÖn cña TimeStamp
:
Lo¹i (M= …)
HiÓn thÞ
TimeStamp
YYYYMMDDHHMMSS
TimeStamp(14)
YYYYMMDDHHMMSS
DateTime(12)
YYMMDDHHMMSS
DateTime(10)
YYMMDDHHMM
DateTime(8)
YYYYMMDD
DateTime(6)
YYMMDD
DateTime(4)
YYMM
DateTime(2)
YY
TTTH Đại Học Bách Khoa
2
KiÓu d÷ liÖu String
:
Lo¹i
Giíi h¹n
DiÔn gi¶i
char
ChiÒu dµI chuçi lín nhÊt kho¶ng 255 ký tù
tinyblob
1-255 ký tù 1-255 ký tù 28-1 ký tù
tinytext
28-1 ký tù
blob
216-1 ký tù ChiÒu dµI chuçi lín nhÊt kho¶ng 65535 ký tù
Text
216-1 ký tù ChiÒu dµI chuçi lín nhÊt kho¶ng 65535 ký tù
Medium
216-1 ký tù ChiÒu dµI chuçi lín nhÊt kho¶ng 16777215 ký tù
varchar
…. TTTH Đại Học Bách Khoa
III. C¸c ph¸t biÓu cña c©u lÖnh SQL: 1. Tạo một CSDL CREATE DATABASE tên_CSDL vd: CREATE DATABASE VIDU1 2. Tạo một bảng trong một CSDL CREATE TABLE tên_bảng ( tên_cột_1 kiểu_dữ_liệu, tên_cột_2 kiểu_dữ_liệu, ....... )
VD:
CREATE TABLE sinhvien(masv tenKhoa text); TTTH int, Đại Học Bách
3. Câu lệnh INSERT INTO Câu lệnh INSERT INTO được dùng để chèn dòng mới vào bảng. Cú pháp: INSERT INTO tên_bảng VALUES (giá_trị_1, giá_trị_2,....) VD: INSERT INTO sinhvien VALUES (2,“DUNG"); * Có thể chỉ rõ các cột/trường nào cần chèn: INSERT INTO tên_bảng (cột_1, cột_2,...) VALUES (giá_trị_1, giá_trị_2,....)
VD: INSERT INTO sinhvien (masv, ten) VALUES (3, "dao"); TTTH Đại Học Bách Khoa
4. Câu lệnh UPDATE Câu lệnh UPDATE được sử dụng để cập nhật/sửa đổi dữ liệu đã có trong bảng. Cú pháp: UPDATE tên_bảng SET tên_cột = giá_trị_mới WHERE tên_cột = giá_trị VD: UPDATE sinhvien SET masv = 4 WHERE ten = "dao” * Ta có thể cập nhật một dòng hay nhiều dòng trong cùng 1 câu lệnh SQL TTTH Đại Học Bách Khoa
5. Câu lệnh DELETE được dùng để xoá các dòng ra khỏi bảng. Cú pháp: DELETE FROM tên_bảng WHERE tên_cột = giá_trị VD: DELETE FROM sinhvien WHERE ten = "dao“ * Ta có thể xóa một dòng hay nhiều dòng trong cùng 1 câu lệnh SQL tùy vào điều kiện Where TTTH Đại Học Bách Khoa
6. Câu lệnh SELECT Câu lệnh SELECT được dùng để truy xuất dữ liệu từ một bảng. Kết quả trả về dưới dạng bảng được lưu trong 1 bảng, gọi là bảng kết quả - result table (còn được gọi là tập kết quả - result set). Cú pháp Cú pháp của câu lệnh SELECT như sau: SELECT tên_các_cột FROM tên_bảng
TTTH Đại Học Bách Khoa
7. Mệnh đề WHERE được dùng để thiết lập điều kiện truy xuất. Để truy xuất dữ liệu trong bảng theo các điều kiện nào đó, một mệnh đề WHERE có thể được thêm vào câu lệnh SELECT. Cú pháp Cú pháp mệnh đề WHERE trong câu lệnh SELECT như sau: SELECT tên_cột FROM tên_bảng WHERE tên_cột phép_toán giá_trị
TTTH Đại Học Bách Khoa
Trong mệnh đề WHERE, các phép toán được sử dụng là: Phép toán Mô tả = So sánh bằng <> So sánh không bằng > Lớn hơn < Nhỏ hơn >= Lớn hơn hoặc bằng <= Nhỏ hơn hoặc bằng BETWEEN Nằm giữa một khoảng LIKE So sánh mẫu chuỗi Lưu ý: Trong một số phiên bản của SQL, phép toán <> có thể được viết dưới dạng != TTTH Đại Học Bách Khoa
8. Sử dụng dấu nháy Lưu ý rằng ở ví dụ trên ta đã sử dụng hai dấu nháy đơn (') bao quanh giá trị điều kiện 'Sandnes'. SQL sử dụng dấu nháy đơn bao quanh các giá trị ở dạng chuỗi văn bản (text). Nhiều hệ CSDL còn cho phép sử dụng dấu nháy kép ("). Các giá trị ở dạng số không dùng dấu nháy để bao quanh. + Với dữ liệu dạng chuỗi văn bản: Câu lệnh đúng: SELECT * FROM Persons WHERE FirstName = 'Tove' Câu lệnh sai: SELECT * FROM Persons WHERE FirstName = Tove TTTH Đại Học Bách Khoa
+ Với dữ liệu dạng số: Câu lệnh đúng: SELECT * FROM Persons WHERE Year > 1965 Câu lệnh sai: SELECT * FROM Persons WHERE Year > '1965'
TTTH Đại Học Bách Khoa
9. Phép toán điều kiện LIKE Phép toán LIKE được dùng để tìm kiếm một chuỗi mẫu văn bản trên một cột. Cú pháp Cú pháp của phép toán LIKE như sau: SELECT tên_cột FROM tên_bảng WHERE tên_cột LIKE mẫu Một ký hiệu % có thể được sử dụng để định nghĩa các ký tự đại diện. % có thể được đặt trước và/hoặc sau mẫu.
TTTH Đại Học Bách Khoa
+ Sử dụng LIKE Câu lệnh SQL sau sẽ trả về danh sách những người có tên bắt đầu bằng chữ O: SELECT * FROM SINHVIEN WHERE ten LIKE 'O%' Câu lệnh SQL sau sẽ trả về danh sách những người có tên kết thúc bằng chữ a: SELECT * FROM sinhvien WHERE ten LIKE '%a' Câu lệnh SQL sau sẽ trả về danh sách những người có tên kết chứa chuỗi la: SELECT * FROM sinhvien WHERE ten LIKE '%la%' TTTH Đại Học Bách Khoa