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

Giáo trình (Web đóng)

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

MỤC LỤC
CƠ SỞ DỮ LIỆU 9
I. Các khái niệm về cơ sở dữ liệu 9
II. Hệ quản trị csdl mysql 10
III. Tạo và quản lý database với phpmyadmin 11
IV. Lab database 16
NGÔN NGỮ SQL 17
I. Các câu lệnh thường dùng 17
II. CÁC PHÉP TOÁN VÀ HÀM TRONG MYSQL 21
III. Lab SOL 23
QUẢN LÝ DATABASE VỚI EMS SQL MANAGER 24
I. Kết nối đến MySql Server 24
II. Tạo database 24
III. Tạo table trong database 24
IV. Tạo quan hệ giữa các table 25
V. Nhập dữ liệu vào bảng 26
VI. Export dữ liệu 26
VII. Import dữ liệu vào database 27
PHP CƠ BẢN 28
I. Tổng quan 28
II. Các hàm xử lý chuỗi 35
III. Các hàm thời gian 37
IV. Các hàm quản lý file 39
V. Tạo hàm mới trong php 41
VI. Array 45
VII. Lấy thông tin của client và server 49
VIII. Httpheader 49
IX. Cookie 53
X. Session 54
XI. CÁC HÀM DATABASE 54
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 1


XII. Cơ chế đăng nhập, thoát, hạn chế truy cập 56
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 60
I. Tổng quan 60
II. Tạo class và sử dụng 62
III. Ví dụ 63
LAB KẾT NỐI DB 72
I. Class db 72
II. Trình bày dữ liệu theo mẫu 1 80
III. Trình bày dữ liệu theo mẫu 2 80
IV. Trình bày dữ liệu theo mẫu 3 81
PHP ỨNG DỤNG: CHUẨN BỊ CHO WEBSITE ADMIN 83
I. Chuẩn bị table users 83
II. Chuẩn bị folder chứa các trang web trong phần admin 83
III. Tạo trang layout 83
IV. Tạo class quản trị 85
V. Tạo chức năng đăng nhập 85
VI. Tạo chức năng kiểm tra đăng nhập, kiểm tra admin 87
VII. Tạo chức năng thoát 88
VIII. Quản trị dữ liệu trong bảng 88
QUẢN TRỊ LOẠI TIN 90
I. Tạo trang thêm loại tin 90
II. Tạo trang xóa loại tin 93
III. Tạo trang chỉnh loại tin 95
IV. Tạo trang xem loại tin 97
V. Bài toán phân trang dữ liệu 101
QUẢN TRỊ TIN TỨC 104
I. Tạo trang xem danh sách tin 104
II. Tạo trang xóa tin 108
III. Tạo trang thêm tin 109
IV. Tạo trang chỉnh 1 tin 119

NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 2
V. Tạo trang ẩn hiện 1 tin 122
VI. Tạo trang chuyển trạng thái nổi bật của 1 tin 124
LAB TẠO TRANG CHỦ SITE TIN TUC 127
I. Tạo class tin 127
II. Tạo trang layout 127
TIN NỔI BẬT & TIN XEM NHIỀU 130
I. Tạo file noibat_xemnhieu.php 130
II. Tin xem nhiều 131
III. Tin nổi bật 132
TIN MỚI TRONG TỪNG THỂ LOẠI 135
I. Định nghĩa hàm TinMoiTrongTheLoai 135
II. Tạo file tinmoi.php 135
III. Định dạng CSS 136
IV. Nhúng vào trang chủ 137
V. Bổ sung 137
BÌNH CHỌN 138
I. Định nghĩa các hàm 138
II. Tạo form hiện câu hỏi và phương án 139
III. Tạo trang hiện kết quả bình chọn 140
FORM TÌM, VIDEO, QUẢNG CÁO 143
I. Form tìm kiếm 143
II. Video 144
III. div Info 144
IV. Quảng cáo 144
V. Form tìm nâng cao 145
HIỂN THỊ CHI TIẾT MỘT TIN 149
I. Phần 1: Tạo trang hiển thị chi tiết tin: 149
II. Phần 2: Nhúng vào trang chủ 151
III. Phần 3: Hiện số lần xem, ngày đăng, bản in , tin cũ hơn, mới hơn 151

NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 3
THANH MENU 155
I. Chép folder 155
II. Tạo file menu.php 155
III. Lấy các loại tin trong từng thể loại và hiển thị (sau tag a) 155
IV. Chèn menu.js, menu.css 155
V. Thêm div copyright ở sau cùng 155
VI. Đưa vào trang chủ: 155
LAB HIỂN THỊ CÁC TIN TRONG 1 LOẠI 156
I. Định nghĩa hàm 156
II. Tạo file tintrongloai.php 156
III. Đưa vào trang chủ 158
LAB XỬ LÝ TÌM KIẾM 159
I. Chỉnh file formtim.php và chỉnh các tham số 159
II. Định nghĩa hàm TimKiem 159
III. Tạo file ketquatimkiem.php 160
TẠO TIÊU ĐỀ CHO CÁC TRANG 163
I. Mở file classTin.php và định nghĩa hàm sau: 163
II. Mở file home.php 164
.HTACCESS 165
I. Chuẩn bị 165
II. Giả địa chỉ của 1 tin 165
III. Giả địa chỉ của loại tin 166
IV. Giả địa chỉ cho tìm kiếm 168
V. Các chỉ thị hữu ích khác trong file htaccess 168
LAB TẠO WEBSITE ĐA NGÔN NGỮ 170
I. Database 170
II. Phần xử lý interface 171
CÁC KỸ THUẬT TĂNG TỐC WEBSITE 178
I. Giảm bớt các request 178

NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 4
II. Sử dụng Content Delivery Network(CDN) 178
III. Nén html 178
IV. Cache ở client dùng htaccess 178
V. Tối ưu các MySQL Query 179
VI. Opcode caching 179
VII. Server file caching 179
ĐĂNG KÝ THÀNH VIÊN 183
I. Tạo form 183
II. Định dạng CSS 185
III. Xử lý khi submit 185
IV. Định nghĩa hàm DangKyThanhVien: 186
V. Lưu vào db 190
VI. Kích hoạt tài khoản 190
VII. Kiểm tra Username bằng Ajax 193
VIII. Trang đăng ký thành công 194
CAPTCHA IMAGE 195
I. Tạo hình 195
II. Đưa hình captcha vào form đăng ký 196
GỞI PASSWORD 197
ĐỔI PASSWORD 198
I. Tạo form 198
II. Code kiểm tra login (ở đầu trang): H 199
III. Xử lý đổi pass 199
IV. Hiện thông báo lỗi 199
V. Định nghĩa hàm đổi pass 199
VI. Hiện lại các giá trị trong form khi submit 201
VII. Tạo trang doipassthanhcong.php 201
HITCOUNTER 203
I. Chuẩn bị 203

II. Tạo file hiện số đếm 203
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 5
III. Chèn số đếm vào trang php: 205
GỬI MAIL DÙNG PHP MAILER 206
I. Tạo form gửi mail 206
II. Định dạng 206
III. Bật module mã hoá dữ liệu 207
IV. Chép thư viện PHP Mailer vào site 207
V. Viết hàm gửi mail 207
VI. Code xử lý 208
DOWNLOAD FILE 210
I. Chuẩn bị 210
II. Tạo trang web để down 1 file 210
III. Tạo trang web để hiện list dữ liệu từ database 211
UPLOAD FILE 212
IV. Tạo form upload 212
V. Hiện list dữ liệu từ db 215
CHUẨN BỊ SITE BÁN ĐIỆN THOẠI 218
I. Database 218
II. Tạo các table 218
III. Chuẩn bị/ dự định tạo các file/folder 222
SHOW SẢN PHẨM MỚI 224
I. Tạo file spmoi.php 224
TRANG LAYOUT 226
XÂY DỰNG GIỎ HÀNG 228
I. Hiện giỏ hàng – tóm tắt 232
II. Hiện giỏ hàng readonly: 233
III. Hiện giỏ hàng – update 236
ĐƯA GIỎ HÀNG VÀO TRANG CHỦ 240
I. Hiện giỏ hàng tóm tắt khi user nhắp nút đặt hàng 240

NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 6
II. Hiện giohang_update 241
FORM MUA HÀNG 244
I. Tạo file muahang.php 244
II. Hiện thông tin user đang đăng nhập 244
III. Hiện form thông tin người nhận 245
IV. Hiện các phương thức thanh toán và giao hàng: 247
V. Lồng trang muahang.php vào trang chủ 248
XỬ LÝ MUA HÀNG 249
I. Tạo file xulymuahang.php 249
II. Lưu đơn hàng và báo lỗi nếu có 249
III. Lưu chi tiết đơn hàng , hiện thông báo, hiện nút thanh toán 252
IV. Lồng trang xulymuahang vào trang chủ 256
YÊU CẦU SINH VIÊN THỰC HIỆN TẠI NHÀ 257
I. Tạo trang hiện chi tiết 1 sản phẩm 257
II. Tạo trang hiện các sản phẩm trong 1 loại 257
III. Thực hiện chức năng tìm kiếm 257
IV. Nhúng icon yahoo chat vào trang chủ 257
V. Làm form login trên trang chủ 257
VI. Làm phần quản trị 257
PHẦN BỔ SUNG: 258
ĐẾM SỐ NGƯỜI XEM TRONG TỪNG MỤC 258
I. Tạo table 258
II. Định nghĩa hàm lưu thông tin 258
III. Gọi hàm LuuThongTin 260
IV. Tạo hàm đếm số user đang xem trong từng loại tin , trong từng thể loại 260
V. Thống kê số người đang xem từng loại 262
VI. Hiện thông tin tổng kết 262
ĐĂNG NHẬP POPUP 264
I. Tạo form đăng nhập 264

NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 7
II. Tạo link đăng nhập: 265
III. Nạp form đăng nhập 265
IV. Thực hiện trang xử lý đăng nhập 267
V. Tạo file thoat.php (Mời bạn tự làm) 269
VI. Hiện lời chào khi user nạp lại trang 269
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 8
CƠ SỞ DỮ LIỆU
I. Các khái niệm về cơ sở dữ liệu
1. Dữ liệu
Là các thông tin cần lưu trữ để sử dụng lại
1. Cơ sở dữ liệu (database)
Là các dữ liệu được lưu trữ có tổ chức
2. Hệ quản trị cơ sở dữ liệu:
Là các chương trình giúp quản lý và tổ chức cơ sở dữ liệu. Ví dụ: MySQL, MSSQL, …
3. Table:
Mỗi database chứa nhiều table. Mỗi table là 1 bảng dữ liệu, chứa một mảng thông tin nào đó.
Mỗi table có 1 tên, gồm nhiều cột nhiều hàng.
Mỗi dòng của table là 1 đơn vị dữ liệu cần lưu trữ, ví dụ như 1 tin, 1 câu hỏi bình chọn, 1 user.
Mổi dòng gọi là 1 record hay mẫu tin.
Mỗi cột của table gọi là 1 field hay trường. Dữ liệu trong 1 cột thuộc 1 kiểu xác định nào đó.
4. Khoá chính
Là cột đặc biệt trong table, chứa thông tin để phân biệt từng record với nhau trong table.
Khoá chính có thể gồm nhiều field nhưng thường là 1 field.
Field làm khoá chínnh nên có kiểu số, tăng tự động.
5. Khoá ngoại
Là cột trong 1 table mà dữ liệu trong nó là tham khảo đến khoá chính ở bảng khác. Trong 1
table có thể có nhiều khoá ngoại, mỗi khoá ngoại.
6. Quan hệ giữa hai bảng
Hai bảng có quan hệ với nhau khi dữ liệu trong chúng là bổ sung cho nhau. Có ba loại quan hệ

thường gặp:
Quan hệ 1-1: 1 record bên bảng A có quan hệ với 1 record bên bảng B và ngược lại.
Quan hệ 1-nhiều: 1 record bên bảng A có quan hệ với nhiều record bên bảng B.
Quan hệ nhiều-nhiều:1 record ở bảng A có quan hệ với nhiều record bên bảng B & ngược lại.
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 9
I. Hệ quản trị csdl mysql
- Giới thiệu
MySQL là hệ quản trị cơ sở dữ liệu mã 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, hoạt động trên nhiều hệ điều hành,.
MySQL miễn phí hoàn toàn. Có nhiều phiên bản cho các hệ điều hành khác nhau:
Windows, Linux, Mac OS, Unix, SGI Irix,Solaris, SunOS,
- Storage Engine
Trong MySQL, có nhiều cách tổ chức lưu dữ liệu cho các table : MyISAM , InnoDB,
Memory,…
MyISAM là storage engine mặc định của MySQL. Mỗi table lưu theo kiểu MyISAM sẽ được
lưu trên 3 file : tableName.FRM (chứa định dạng của table), tableName.MYD (lưu dữ liệu),
tableName.MYI (lưu index) . MyISAM hỗ trợ full-text searches còn InnoDB thì không
InnoDB là engine hỗ trợ transaction (commit, rollback, and crash-recovery capabilities) để bảo
vệ dữ liệu. InnoDB hỗ trợ relationship còn MyISAM thì không.
- Các kiểu dữ liệu trong MySql
Kiểu chuỗi

CHAR và VARCHAR: Lưu text, trong đó char có độ dài cố định còn varchar có độ dài
không cố định.

BINARY và VARBINARY: Gần giống như Char và Varchar nhưng chứa những
binary strings (Char, Varchar là none binary string). Điều này có nghĩa là không có
Character set, do đó việc sort và compare sẽ chỉ dựa trên giá trị các byte được lưu. Độ
dài của chuỗi cũng tính bằng số byte (Char, varchar tính bằng số ký tự)


BLOG và TEXT: chứa text có độ dài lớn.
BLOB values chứa các binary strings (byte strings). Chúng không có character set, việc
sorting và comparison chỉ dựa trên giá trị các byte column. TEXT là các nonbinary
strings (character strings). Chúng có character set, việc sorting và comparison sẽ dựa
theo collation của character set được dùng
Kiểu Ngày tháng

DateTime: Lưu dữ liệu kiểu ngày giờ. MySql hiển thị ngày giờ theo kiểu 'YYYY-MM-
DD HH:MM:SS' có giá trị từ '1000-01-01 00:00:00' đến '9999-12-31 23:59:59'.
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 10

Date: Lưu dữ liệu kiểu ngày. MySql hiển thị ngày theo kiểu 'YYYY-MM-DD' , có giá
trị từ 1000-01-01 đến 9999-12-31

TimeStamp: Là 1 số nguyên diễn tả 1 thời điểm là số giây tính từ giây đầu tiên của
năm 1970 đến thời điểm hiện tại. Timestamp có giá trị trong khoảng từ '1970-01-01
00:00:01' đến '2038-01-19 03:14:07'

Time: Lưu giờ. Hiển thị theo kiểu 'HH:MM:SS'

Year: Lưu năm
Kiểu số
Type Bytes Minimum Value Maximum Value
(Signed/Unsigned) (Signed/Unsigned)
TINYINT 1 -128 127
0 255
SMALLINT 2 -32768 32767
0 65535
MEDIUMINT 3 -8388608 8388607

0 16777215
INT 4 -2147483648 2147483647
0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615
II. Tạo và quản lý database với phpmyadmin
1. Tạo Database (CSDL – Cơ Sở Dữ Liệu)
B1. Nhắp Home
B2. Trong mục Create new database, khai báo:
. Ô trên: đặt tên CSDL
. Ô dưới: chọn utf8_general_ci (thể lưu được tiếng việt)
B3. Nhắp Create
Ví dụ: Tạo database tên tintuc
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 11
7. Tạo Table (bảng)
B1. Chọn database
B2. Mục Name: khai báo tên table muốn tạo (theloai)
Mục Number of fields: khai báo số field trong table
B3. Nhắp nút Go
B5. Khai báo các field trong table
B6. Nhắp nút Save
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 12
8. Thêm dữ liệu vào Table (bảng)
- Chọn table rồi nhắp link Insert (xem hình)
- Nhập dữ liệu rồi nhắp nút Go
Ví dụ: Thêm 2 record vào table theloai như sau:
9. Xem dữ liệu trong Table (bảng)
-
Chọn table muốn xem dữ liệu rồi nhắp Browse (xem hình) à Mỗi lần hiện 30 records
10. Xóa / Sửa dữ liệu trong Table (bảng)

Chọn table muốn xóa sửa (ví dụ theloai) rồi nhắp link Browse
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 13
. Sửa record: Nhắp nút Edit (cây viết) trên dòng chứa record (xem hình)
. Xóa record : Nhắp nút Drop (dấu chéo) trên dòng chứa record (xem hình)
11. Sửa cấu trúc Table
- Chọn table rồi nhắp nhắp link Structure
. Chỉnh field: Nhắp nút Change
. Xóa field : Nhắp nút Drop (dấu chéo)
. Thêm field : Nhắp nút Go trong mục Add
Ví dụ: Sửa chiều dài của field TenTL trong table theloai từ 255 xuống còn 100.
12. Đổi tên Table
- Chọn table rồi nhắp link Operations
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 14
- Mục Rename table to: gõ tên mới rồi nhắp nút Go
Ví dụ: Đổi tên table theloai thành theloaitin
13. Xóa Table
Chọn table rồi nhắp link Drop
14. Import dữ liệu
- Chọn database rồi nhắp link Import
- Nhắp nút Browse để chọn file .sql rồi nhắp nút Go
15. Export dữ liệu
- Chọn database rồi nhắp link Export
- Mục Export: chọn các table cần export
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 15
- Chọn kiểu file là .SQL
- Chọn mục Save as file rồi nhắp nút GO
-
Nhắp nút Save è Khai báo: tên file, địa chỉ lưu è Save
16. Xoá Database
Nhắp tên database è Nhắp link Drop

III. Lab database
Mời bạn mở file LabDatabase lên để làm
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 16
NGÔN NGỮ SQL
I. Các câu lệnh thường dùng
1. Tạo database mới
CREATE DATABASE TênDB [CHARACTER SET=char_name] [COLLATE =col_name]
Ví dụ: CREATE DATABASE tin CHARACTER SET=utf8 COLLATE =utf8_general_ci;
17. Xoá database
DROP DATABASE [IF EXISTS] db_name
Ví dụ: DROP DATABASE tin;
18. Tạo table
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
(col_name column_definition, )
[table_options],
column_definition:
data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[UNIQUE [KEY] | [PRIMARY] KEY] [COMMENT 'string']
table_options:
ENGINE [=] engine_name | AUTO_INCREMENT [=] value | CHARACTER SET [=] charset_name
Ví dụ:
CREATE TABLE bandocykien (
`idYKien` int(11) NOT NULL auto_increment,
`idTin` int(11) NOT NULL default '0',
`Ngay` datetime NOT NULL default '0000-00-00',
`NoiDung` text NOT NULL,
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 17
`TieuDe` varchar(255) default NULL,
PRIMARY KEY (`idYKien`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

19. Xoá table
DROP TABLE [IF EXISTS] tbl_name
Ví dụ:
DROP TABLE bandocykien;
20. Chèn record vào table
INSERT INTO tbl_name VALUES (value1, value2,…);
INSERT INTO tbl_name (field1, field2,…) VALUES (val1, val2,…);
Ví dụ:
INSERT INTO theloai VALUES ('', 'JavaScript',1, 0);
INSERT INTO theloai (ThuTu, AnHien,TenTL) VALUES (1, 1,'PHP');
21. Xoá record trong table
DELETE FROM tbl_name [WHERE condition]
Ví dụ:
DELETE FROM theloai WHERE idTL=100;
22. Chỉnh các record trong table
UPDATE tbl_name SET Field1=value1, Field2=value2,… [WHERE condition]
Ví dụ:
UPDATE theloai SET TenTL='XML' WHERE idTL=50;
23. Lấy dữ liệu từ table
SELECT * | colname1, colname2,
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 18
FROM tbl_name1, table_name2
WHERE DieuKienKetBang | DieuKienLoc
GROUP BY colname1, colname2
HAVING DieuKienLocTheoNhom
ORDER BY colname1 ASC|DESC, colname2 ASC|DESC
LIMIT offset, rowcount
Ví dụ:
SELECT idTin, Ngay, TieuDe FROM Tin WHERE Ngay=curdate();
SELECT idTin, Ngay,TieuDe FROM Tin ORDER BY Ngay DESC LIMIT 0,10;

SELECT idTin, SoLanXem,TieuDe FROM Tin WHERE idLT=9 ORDER BY SoLanXem
DESC LIMIT 0,10;
SELECT idUser, count(idTin) as SoTin FROM tin GROUP BY idUser HAVING
count(idTin) >=20
SELECT idTin, Ngay, TieuDe FROM Tin WHERE TieuDe LIKE 'C%'
Ví dụ 2: select có kết bảng
SELECT idTin, Ngay, TieuDe , Tin.idLT, Ten
FROM Tin, LoaiTin
WHERE Tin.idLT= LoaiTin.idLT AND TieuDe like '%a%'
ORDER BY Ngay DESC, idTin DESC
Ví dụ 3: select lồng nhau
SELECT Ngay, TieuDe FROM tin WHERE Ngay >= All (SELECT Ngay FROM Tin)
Ví dụ 4: Lấy dữ liệu ngẫu nhiên
select idTin, TieuDe FROM tin WHERE idLT=25 ORDER BY rand() LIMIT 0,3;
24. Một số ví dụ câu lệnh SQL có thống kê
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 19
a. Đếm số lượng sản phẩm trong từng loại
SELECT loaisp.idLoai, loaisp.TenLoai, count(idSP) as SoSP
FROM loaisp, sanpham
WHERE loaisp.idLoai=sanpham.idLoai
GROUP BY loaisp.idLoai, loaisp.TenLoai
b. Đếm số lượng sản phẩm trong từng chủng loại
SELECT chungloai.idCL, chungloaisp.TenCL, count(idSP) as SoSP
FROM chungloai, sanpham
WHERE chungloai.idCL=sanpham.idCL
GROUP BY chungloai.idCL, chungloai.TenCL
c. Thống kê từng idDH, Tổng Số Lượng, Tổng Tiền
SELECT idDH, sum (soluong) as TongSoLuong, sum(soluong*gia) as TongTien
FROM donhangchitiet
GROUP BY idDH

d. Thống kê từng idDH, Ngay, Tổng Số Lượng, Tổng Tiền, sắp theo Ngày giảm dần. Chỉ
hiện những đơn hàng chưa giao hàng.
SELECT donhang.idDH, ThoiDiemDatHang as Ngay, sum (soluong) as
TongSoLuong, sum(soluong*gia) as TongTien
FROM donhangchitiet, donhang
WHERE donhangchitiet.idDH=donhang.idDH AND donhang.TinhTrang=0
GROUP BY idDH, Ngay
ORDER BY Ngay DESC
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 20
e. Hiện năm, tháng, Số đơn đặt hàng, Tổng số lượng, Tổng tiền. Chỉ chọn những đơn hàng
đã giao, sắp xếp theo Năm, Tháng giảm dần
SELECT year(ThoiDiemDatHang) as Nam, month(ThoiDiemDatHang) as
Thang, count(donhang.idDH) as SoDH, sum (soluong) as TongSoLuong,
sum(soluong*gia) as TongTien
FROM donhangchitiet, donhang
WHERE donhangchitiet.idDH=donhang.idDH AND donhang.TinhTrang=1
GROUP BY Nam , Thang
ORDER BY Nam DESC, Thang DESC
IV. CÁC PHÉP TOÁN VÀ HÀM TRONG MYSQL
1. Các phép toán
AND, && , OR ,||, NOT, BETWEEN … AND…, IN, NOT
Ví dụ 1:
SELECT idDH,SoLuong FROM donhangchitiet
WHERE soluong BETWEEN 5 AND 10 GROUP BY idDH ORDER BY idDH
Ví dụ 2:
SELECT idDH,SoLuong FROM donhangchitiet
WHERE soluong >=5 AND soluong<=10 GROUP BY idDH ORDER BY idDH
Ví dụ 3:
SELECT idDH, idUser FROM donhang WHERE idUser IN ( 21, 22 )


GROUP BY idDH ORDER BY idDH
25. Các hàm trong phát biểu GROUB BY
AVG: Trả về giá trị bình quân của cột
MIN: Trả về giá trị nhỏ nhất của cột
MAX: Trả về giá trị lớn nhất của cột
Count: Trả về số lượng record
Sum: Trả về tổng các giá trị của cột
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 21
Ví dụ:
SELECT idDH, COUNT(idSP) as SoSP, SUM(Gia*Soluong) as TongTien,
MAX(Soluong) as SoluongMax, MIN(SoLuong) as SoluongMin

FROM donhangchitiet GROUP By idDH ORDER BY idDH
26. Các hàm xử lý chuỗi
- Char: Chuyển đổi kiểu mã ASCII từ số nguyên sang dạng chuỗi
SELECT char(35)
è
K t qu : #
- Upper: chuyển đổi chuỗi sang kiểu chữ hoa:
SELECT UPPER(TieuDe) FROM Tin
- Lower: chuyển đổi chuỗi sang kiểu chữ thường:
SELECT LOWER(TieuDe) FROM Tin
- Length: Trả về chiều dài của chuỗi:
SELECT Length(TieuDe) as SoKyTu, TieuDe FROM Tin
- Left: trả về n ký tự bên trái tính của chuỗi
SELECT left(TieuDe, 40) as TieuDe FROM tin
SELECT TenBH FROM baihat WHERE left(TenBH, 1)='a'
- Right: trả về chuỗi bên phải tính từ cuối cho đến vị trí thứ n:
SELECT idTin,TieuDe FROM tin WHERE right(TieuDe, 1) ='c'
27. Các hàm về xử lý thời gian

- curdate(): Trả về ngày, tháng và năm hiện hành
SELECT idTin,TieuDe FROM tin WHERE Ngay =curdate()
- curtime(): Trả về giờ, phút và giây hiện hành
-
DateDiff: Hàm trả về số ngày trong khoảng thời gian giữa 2 ngày: 
SELECT idDH,DateDiff(ThoiDiemDatHang,ThoiDiemGiaoHang) as SoNgay
FROM donhang
- dayofmonth: trả về ngày thứ mấy trong tháng:
Select dayofmonth(curdate()) as homnay
- month: Trả về giá trị tháng
SELECT idTin,TieuDe FROM tin WHERE month(Ngay)=3
- Year: Trả về giá trị năm
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 22
SELECT idTin,TieuDe FROM tin WHERE year(Ngay)=2010
- STR_TO_DATE: Chuyển chuỗi thành dạng ngày giờ của MysQL
SELECT STR_TO_DATE('01/05/2013','%d/%m/%Y');
è
2013-05-01
- UNIX_TIMESTAMP : Hàm trả về số giây từ giây đầu tiên của năm 1970 đếm hiện tại
SELECT UNIX_TIMESTAMP();
- Date_add: Cộng thêm 1 khoảng thời gian
SELECT ThoiDiemDatHang, Date_Add( ThoiDiemDatHang, INTERVAL 7 DAY )
FROM donhang
V. Lab SOL
Mời bạn mở file LabSQL lên để làm
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 23
QUẢN LÝ DATABASE VỚI EMS SQL MANAGER
I. Kết nối đến MySql Server
Kết nối đến Mysql server là việc đầu tiên phải
làm khi bạn muốn quản lý database

Nhắp menu Database è chọn Register Host
HostName: Gõ địa chỉ my sql server muốn kết
nối tới (localhost)
Username: Tài khoản để kết nối đến mysql
server (root)
Password: Mật khẩu (root)
Port: Port kết nối đến mysql (cứ để 3306)
Nhắp Next
Chọn các database cần dùng (nên chọn hết) rồi
nhắp Next
Nhắp Finish
VI. Tạo database
a.
Nhắp nút phải chuột tại tên server của bạn bên cột trái è chọn Create database
b. Đặt tên database rồi nhắp Next
HostName, Username, Password: Khai
báo đúng để kết nối đến database
Use server settings: Bỏ dấu check và
chỉ định unicode
Xong nhắp Next
c.
Nhắp Finish è OK
VII. Tạo table trong database
a. Mở database muốn dùng (vd tintuc)
b.
Nhắp nút phải chuột tại mục Tables è chọn Create Table
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 24
Tab Table: Khai báo các thông số chung cho table
Table name: Đặt tên table. Vd: theloai
Stored engine: chọn Engine muốn dùng . Vd : InnoDB

Tab Field: Khai báo các cột trong table
Nhắp nút phải è chọn Insert Field để khai báo từng cột và các thuộc tính cho cột
`
c. Xong nhắp lệnh Compile
Mời bạn tiếp tục tạo 1 table (tên loaitin, InnoDB) , với các field như sau:
VIII. Tạo quan hệ giữa các table
a. Nhắp đúp table loaitin rồi chọn tab Foreign key
b.
Nhắp nút phải chuột è chọn lệnh New Foreign key
Foreign key: tên quan hệ
Table field: chọn field làm khóa ngoại (idTL) rồi nhắp nút chọn (nút mũi tên đỏ)
Foreign table name: chọn table bên quan hệ 1 (theloai)
Foreign table field: chọn field khóa chính (idTL) rồi nhắp nút chọn (mũi tên hồng)
On delete rule: chọn hành động khi xóa 1 record bên quan hệ 1
NHẤT NGHỆ – NƠI DUY NHẤT CHẤT LƯỢNG ĐÀO TẠO ĐƯỢC ĐẢM BẢO BẰNG NHỮNG CAM KẾT CỤ THỂ 25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×