[Công nghệ Thông tin] -- [Web] -- [Công nghệ phần mềm] -- [PhoThong] -- [TỪ ĐIỂN] -- [Game] -- [Học viên cũ] -- [10.000 giờ]
--------------- <> -----------------
---  KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
---  Nhận làm website, web app, chạy quảng cáo, digital marketing --->>>  LIÊN HỆ...

Tìm kiếm trong Blog

Ngu ngơ học làm web (105) - Kết hợp PHP – mySQL – thư viện PDO

Tiếp theo của: Ngu ngơ học làm web (104) - mySQL – cập nhật dữ liệu
-----

Phần 105. Kết hợp PHP – mySQL –  thư viện PDO


Tới đây đã biết một chút về PHP, mySQL, phần này sẽ kết hợp PHP và mySQL để làm một số chức năng đơn giản.

Lưu ý phần này đang thực hiện lập trình ở phía server-side, nghĩa là các xử lý sẽ được biên dịch và thực thi tại web server. Khi dùng trình duyệt để xem kết quả nghĩa là đoạn mã đã được biên dịch và thực thi hai lần, lần một tại web server và lần hai tại trình duyệt của người dùng. Phía server-side xử lý mã của PHP, phía client-side xử lý mã HTML và CSS.

PDO viết tắt của PHP Data Objects, hiểu nôm na là các đối tượng dữ liệu, hay lớp truy cập cơ sở dữ liệu trong PHP. PDO là một thư viện được sử dụng để thao tác với cơ sở dữ liệu. Khi lập trình với PHP, ngoài PDO còn có hai thư viện khác có thể thao tác với cơ sở dữ liệu là MySQL (đã ngừng phát triển) và MySQLi.

Xem và làm theo clip số 11 của thầy Nguyễn Anh Tuấn:


Trong clip tác giả dùng Dreamweaver để lập trình, tuy nhiên có thể dùng editor bất kì, ví dụ Sublime text.

Các bước xử lý gồm:

- Kết nối cơ sở dữ liệu bằng PDO

- Đọc dữ liệu từ một bảng

- Duyệt qua từng dòng

- Đọc các trường (của mỗi dòng) để xuất ra giao diện

Kết nối tới cơ sở dữ liệu bằng PDO

Cú pháp:

$conn = new PDO("mysql:host=servername;dbname=myDB", username, password);

Trong đó,

- servername: tên của máy server chứa cơ sở dữ liệu.

- myDB: tên của cơ sở dữ liệu.

- username, password: tên và mật khẩu của tài khoản truy cập vào hệ quản trị cơ sở dữ liệu.

Ví dụ,

$pdo = new PDO("mysql:host=localhost;dbname=ql_nha_hang","root","");

Tạo câu truy vấn

$sql = "SELECT ma_loai,ten_loai,mo_ta FROM loai_mon_an";

Thực thi câu truy vấn, các mẩu tin kết quả chứa trong biến $loai_mon

$loai_mon = $pdo->query($sql);

Xuất số lượng mẩu tin kết quả để kiểm tra

echo $loai_mon->rowcount();

Ngắt kết nối tới cơ sở dữ liệu (giải phóng đối tượng PDO)

$pdo->NULL;

Đoạn mã để chạy kiểm tra,

<!DOCTYPE html>
<html lang="en">
<head>
            <meta charset="UTF-8">
            <title>Danh sách loại món ăn</title>
</head>
<?php
//Khai báo đối tượng PDO
$pdo = new PDO("mysql:host=localhost;dbname=ql_nha_hang","root","");
//Tạo câu truy vấn
$sql = "SELECT ma_loai,ten_loai,mo_ta FROM loai_mon_an";
//Thực thi câu truy vấn, các mẩu tin kết quả chứa trong biến $loai_mon
$loai_mon = $pdo->query($sql);
//Xuất số lượng mẩu tin kết quả để kiểm tra
echo $loai_mon->rowcount();
?>
<body>
</body>
</html>

Đoạn mã xuất các loại món ăn:

<!DOCTYPE html>
<html lang="en">
<head>
            <meta charset="UTF-8">
            <title>Danh sách loại món ăn</title>
</head>
<?php
//Khai báo đối tượng PDO
$pdo = new PDO("mysql:host=localhost;dbname=ql_nha_hang","root","");
//Xuất tiếng Việt
$pdo->query("SET NAMES UTF8");
//Tạo câu truy vấn
$sql = "SELECT ma_loai,ten_loai,mo_ta FROM loai_mon_an";
//Thực thi câu truy vấn, các mẩu tin kết quả chứa trong biến $loai_mon
$loai_mon = $pdo->query($sql);
?>
<body>
<?php
            if($loai_mon->rowcount() > 0 ){
?>
<table width="500" border="0" cellspacing="5" cellpadding="5" align="center">
            <caption>
                        <h2>THÔNG TIN LOẠI MÓN ĂN</h2>
            </caption>
            <tr>
                        <td>Mã loại</td>
                        <td>Tên loại</td>
                        <td>Diễn giải</td>
            </tr>
<?php
            foreach ($loai_mon as $loai) {
?>
            <tr>
                        <td><?php echo $loai[0] ?></td>
                        <td><?php echo $loai[1] ?></td>
                        <td><?php echo $loai[2] ?></td>
            </tr>  
<?php } ?>
</table>
<?php } ?>
</body>
</html>

Xem và làm theo clip số 12 của thầy Nguyễn Anh Tuấn:


Đoạn mã hiển thị danh sách khách hàng, và ngắt kết nối tới cơ sở dữ liệu.

<!DOCTYPE html>
<html lang="en">
<head>
            <meta charset="UTF-8">
            <title>Danh sách khách hàng</title>
</head>
<?php
//Khai báo đối tượng PDO
$pdo = new PDO("mysql:host=localhost;dbname=ql_nha_hang","root","");
//Xuất tiếng Việt
$pdo->query("SET NAMES UTF8");
//Tạo câu truy vấn
$sql = "SELECT * FROM khach_hang";
//Thực thi câu truy vấn, các mẩu tin kết quả chứa trong biến $khach_hang
$khach_hang = $pdo->query($sql);
?>
<body>
<?php
            if($khach_hang->rowcount() > 0 ){
?>
<table width="800" border="0" cellspacing="5" cellpadding="5" align="center">
            <caption>
                        <h2>THÔNG TIN KHÁCH HÀNG</h2>
            </caption>
            <tr>
                        <td>Mã KH</td>
                        <td>Họ tên</td>
                        <td>Địa chỉ</td>
                        <td>Điện thoại</td>
                        <td>Email</td>
            </tr>
<?php
            foreach ($khach_hang as $khach) {
?>
            <tr>
                        <td><?php echo $khach[ma_khach_hang] ?></td>
                        <td><?php echo $khach[ten_khach_hang] ?></td>
                        <td><?php echo $khach[dia_chi] ?></td>
                        <td><?php echo $khach[dien_thoai] ?></td>
                        <td><?php echo $khach[email] ?></td>
            </tr>  
<?php } ?>
</table>
<?php }
//Ngắt kết nối tới cơ sở dữ liệu (giải phóng đối tượng PDO)
            $pdo->NULL;
?>
</body>

</html>
-----------
Cập nhật 14/2/2017
-----------
Xem thêm:
Tổng hợp các bài viết về Ngu ngơ học làm web

Ngu ngơ học làm web (104) - mySQL – cập nhật dữ liệu

Tiếp theo của: Ngu ngơ học làm web (103) - mySQL – truy vấn con (sub query)
-----

Phần 104. mySQL – cập nhật dữ liệu


Xem và làm theo clip số 8 của thầy Nguyễn Anh Tuấn:

Cú pháp của lệnh UPDATE:

UPDATE <ten_bang>
SET ten_field = gia_tri, ten_field2 = gia_tri2
WHERE dieu_kien

Lưu ý: cẩn thận với các lệnh liên quan đến cập nhật dữ liệu, vì nó làm thay đổi giá trị của cơ sở dữ liệu.

Ví dụ,

1. Hãy cập nhật lại đơn giá cho món ăn có tên là Gà quay, giá mới là 60000 VNĐ.

UPDATE mon_an
SET don_gia = 60000
WHERE ten_mon = "Gà quay"

2. Hãy cập nhật lại đơn giá cho từng thực đơn là số tiền của các món ăn trong bảng mon_an.

UPDATE thuc_don td
SET don_gia = (SELECT sum(so_luong * don_gia) AS ThanhTien
FROM thuc_don_mon_an tdma INNER JOIN mon_an ma ON tdma.ma_mon = ma.ma_mon WHERE ma_thuc_don = td.ma_thuc_don ORDER BY 1)

3. Giảm 5% đơn giá cho hóa đơn có số hóa đơn là 2

UPDATE hoa_don
SET tong_tien = tong_tien * 0.95
WHERE ma_hoa_don = 2

4. Tạo thêm cột gia_tri cho bảng hoa_don, sau đó tính giá trị cho mỗi hóa đơn và cập nhật cho cột giá trị của bảng này.

UPDATE hoa_don hd
SET tri_gia = (SELECT sum(so_luong * don_gia) FROM chi_tiet_hoa_don WHERE ma_hoa_don = hd.ma_hoa_don)

Xem và làm theo clip số 9 của thầy Nguyễn Anh Tuấn:

Cú pháp của lệnh DELETE:

DELETE FROM <ten_bang>
WHERE dieu_kien

1. Xóa khách hàng có mã khách hàng là 5 trong bảng khach_hang

DELETE FROM khach_hang WHERE ma_khach_hang = 5

Lưu ý: nếu có thiết lập ràng buộc khóa ngoại giữa các bảng thì cần xóa các mẩu tin ở các bảng có liên quan trước.

2. Xóa các món ăn có loại món ăn là “Cơm”

DELETE m.* FROM mon_an m INNER JOIN loai_mon_an l ON m.ma_loai = l.ma_loai WHERE l.ten_loai = "Cơm"

Lưu ý: sử dụng bí danh m.* để xác định là sẽ xóa dữ liệu trên bảng mon_an.

3. Xóa những món ăn có đơn giá nhỏ hơn 50000

DELETE FROM mon_an WHERE don_gia < 50000

4. Xóa những thực đơn chưa có món ăn nào

DELETE FROM thuc_don WHERE ma_thuc_don NOT IN (SELECT ma_thuc_don FROM thuc_don_mon_an)

5. Xóa những khách hàng không có hóa đơn

DELETE FROM khach_hang WHERE ma_khach_hang NOT IN (SELECT ma_khach_hang FROM hoa_don)

Xem và làm theo clip số 10 của thầy Nguyễn Anh Tuấn:

Cú pháp của lệnh:

- Thêm một dòng: INSERT INTO <ten_bang> VALUES(các giá trị tương ứng với các field)

- Thêm nhiều dòng: INSERT INTO <ten_bang> SELECT danh_sach_field FROM <bang> [WHERE GROUP BY]; lưu ý: danh_sach_field phải tương ứng với các field của ten_bang.

Ví dụ,

1. Thêm thực đơn mới, thông tin gồm:

Tên thực đơn: Thực đơn 13
Đơn giá: 0
Nội dung: Súp cua, lẩu thái, tôm nướng, gà quay
Hình: thuc-don13.jpg

Câu lệnh:

INSERT INTO thuc_don
VALUES("NULL", "Thực đơn 13", 0, 0, "Súp cua, lẩu thái, tôm nướng, gà quay", "thuc-don13.jpg")

2. Sao chép cấu trúc bảng hoa_don ra bảng hoa_don_backup

Chọn bảng hoa_don, chọn mục Operations, trong mục Copy table to… đặt tên cho bảng mới là hoa_don_backup, chọn mục Structure only, bấm nút Go.

3. Thêm tất cả hóa đơn được lập trong tháng 1 năm 2017 từ bảng hoa_don vào hoa_don_backup

INSERT INTO hoa_don_backup
SELECT * FROM hoa_don WHERE MONTH(ngay_dat) = 1 AND YEAR(ngay_dat) = 2017

4. Thêm năm món ăn mới vào bảng mon_an

Chèn từng món ăn với các thông tin tương ứng với từng trường như sau:

INSERT INTO mon_an

VALUES(‘ma_mon’, ‘ma_loai’, ‘ten_mon’, ‘noi_dung_tom_tat’, ‘noi_dung_chi_tiet’, ‘don_gia’, ‘don_gia_khuyen_mai’, ‘khuyen_mai’, ‘hinh’, ‘ngay_cap_nhat’, ‘dvt’, ‘trong_ngay’)
-----------
Cập nhật 9/2/2017
-----------
Xem thêm:
Tổng hợp các bài viết về Ngu ngơ học làm web

Ngu ngơ học làm web (103) - mySQL - truy vấn con (sub query)

Tiếp theo của: Ngu ngơ học làm web (102) - mySQL – truy vấn có nhóm và thống kê
-----

Phần 103. mySQL – truy vấn con (sub query)


Xem và làm theo clip số 7 của thầy Nguyễn Anh Tuấn:

Truy vấn con là các truy vấn lồng nhau, chỉ liệt kê được một cột (field).

Cách làm: tạo câu lệnh truy vấn con > tạo câu lệnh truy vấn cha > lồng câu lệnh truy vấn con vào câu lệnh truy vấn cha.

Ví dụ,

1. Liệt kê loại món ăn chưa có món ăn nào

Sử dụng từ khóa distinct để loại bỏ các dòng tin trùng lặp trong kết quả truy vấn.

Câu truy vấn con: liệt kê tất cả các loại món ăn có xuất hiện trong bảng mon_an:

SELECT DISTINCT ma_loai
FROM mon_an

Câu truy vấn cha:

SELECT *
FROM loai_mon_an
WHERE ma_loai NOT IN (Câu truy vấn con)

Lồng câu truy vấn con vào câu truy vấn cha:

SELECT *
FROM loai_mon_an
WHERE ma_loai NOT IN (SELECT DISTINCT ma_loai FROM mon_an)

2. Liệt kê món ăn chưa có khách hàng nào mua

Tìm các món ăn đã có khách hàng mua.

Dựa vào bảng chi_tiet_mon_an.

Câu truy vấn con:

SELECT DISTINCT ma_mon FROM chi_tiet_hoa_don

Câu truy vấn cha:

SELECT ma_mon, ten_mon FROM mon_an
WHERE ma_mon NOT IN (câu truy vấn con)

Câu truy vấn kết quả:

SELECT ma_mon, ten_mon FROM mon_an
WHERE ma_mon NOT IN (SELECT DISTINCT ma_mon FROM chi_tiet_hoa_don)

3. Liệt kê món ăn có doanh thu cao nhất

Câu truy vấn con:

SELECT SUM(so_luong * don_gia) AS DoanhThu
FROM chi_tiet_hoa_don
GROUP BY ma_mon
ORDER BY 1 DESC
LIMIT 0, 1

Câu truy vấn kết quả:

SELECT m.ma_mon, ten_mon, SUM(so_luong * ct.don_gia) AS DoanhThu
FROM mon_an m INNER JOIN chi_tiet_hoa_don ct
ON m.ma_mon = ct.ma_mon
GROUP BY m.ma_mon, ten_mon
HAVING SUM(so_luong * ct.don_gia) = (SELECT SUM(so_luong * don_gia) AS DoanhThu
FROM chi_tiet_hoa_don
GROUP BY ma_mon
ORDER BY 1 DESC
LIMIT 0, 1
)

4. Liệt kê thực đơn chưa có món ăn nào

Do trong cơ sở dữ liệu chưa có bảng thuc_don_mon_an, nên sẽ tạo thêm bảng này.

thuc_don_mon_an
#
Name
Type
Collation
Attributes
Null
Default
Extra
1
ma_thuc_don
int(11)


No
None

2
ma_mon
int(11)


No
None

3
so_luong
int(11)


No
None


Lưu ý: ma_thuc_don và ma_mon là khóa ngoại, nên cần cấu hình ràng buộc khóa ngoại cho hai thuộc tính này.

Cách làm: đầu tiên thiết lập thuộc tính INDEX cho hai cột ma_thuc_don và ma_mon ở bảng thuc_don_mon_an.

Sau đó, chọn tab Structure, chọn tab Relation view, cấu hình trong mục Foreign key constraints.

Nhập một số thông tin cho bảng thuc_don_mon_an.

Câu lệnh truy vấn:

SELECT * FROM thuc_don
WHERE ma_thuc_don NOT IN (SELECT DISTINCT ma_thuc_don FROM thuc_don_mon_an)  

5. Liệt kê các thực đơn chưa có khách hàng mua

SELECT * FROM thuc_don
WHERE ma_thuc_don NOT IN (
SELECT DISTINCT ma_thuc_don FROM thuc_don_mon_an
WHERE ma_mon IN (SELECT DISTINCT ma_mon FROM chi_tiet_hoa_don)
ORDER BY 1)

6. Liệt kê khách hàng chưa đặt món

SELECT * FROM khach_hang
WHERE ma_khach_hang NOT IN (SELECT ma_khach_hang FROM hoa_don)

7. Liệt kê danh sách món ăn có cùng loại món ăn với món ăn có mã món ăn là 4

SELECT ma_loai, ma_mon, ten_mon FROM mon_an
WHERE ma_loai = (SELECT ma_loai FROM mon_an WHERE ma_mon=4)

8. Liệt kê các món ăn có đơn giá cao nhất theo từng loại món ăn

SELECT ma_loai, ten_mon, ma_mon, don_gia FROM `mon_an` as m
WHERE don_gia = (SELECT max(don_gia) FROM mon_an WHERE ma_loai = m.ma_loai)

ORDER BY 1
-----------
Cập nhật 7/2/2017
-----------
Xem thêm:
Tổng hợp các bài viết về Ngu ngơ học làm web

Ngu ngơ học làm web (102) - mySQL - truy vấn có nhóm và thống kê

Tiếp theo của: Ngu ngơ học làm web (101) - mySQL – truy vấn đơn giản (tt)
-----

Phần 102. mySQL – truy vấn có nhóm và thống kê


Để ý là mấy phần này mới dừng lại ở mức làm theo để quen với cơ sở dữ liệu. Để có thể làm việc tốt với cơ sở dữ liệu cần phải đọc các tài liệu lý thuyết bài bản về nó. Lúc đó sẽ hiểu tại sao lại phải tách ra thành nhiều bảng, tại sao lại phải có khóa chính, khóa ngoại, tại sao phải chuẩn hóa cơ sở dữ liệu, bản chất của các lệnh truy vấn, WHERE, GROUP BY là gì…v.v.

Xem và làm theo clip số 6 của thầy Nguyễn Anh Tuấn:


1. Thống kê tổng số Món ăn theo Loại, gồm các thông tin: Tên Loại món, tổng số món ăn, sắp tăng theo tổng số sản phẩm.

Thống kê tổng số Món ăn theo Loại: hiểu nôm na là thống kê xem trong cơ sở dữ liệu hiện tại, mỗi loại món ăn có bao nhiêu món ăn? Nghĩa là đếm xem mỗi loại món ăn có bao nhiêu món?

Cách làm: dựa vào bảng mon_an, với mỗi loại món ăn sẽ đếm món ăn dựa vào Mã món. Vì cần lấy Tên Loại món ăn nên cần thêm thông tin từ bảng loai_mon_an.

Tìm hiểu thêm về kết bảng (inner join) tại đây: http://freetuts.net/inner-join-trong-mysql-341.html

Inner join là phép tích hai bảng dựa trên điều kiện.

Cú pháp của inner join:

SELECT column_list
FROM t1 INNER JOIN t2 ON join_condition
WHERE where_conditions;

Trong đó,

- t1 và t2 là hai bảng cần kết
- join_condition1 là điều kiện để kết, nếu điều kiện trả về TRUE thì mẩu tin đó sẽ được chọn

Dùng alias để đặt tên mới (tạm thời) cho bảng và cột. Đọc thêm tại đây: http://freetuts.net/su-dung-as-alias-trong-mysql-338.html

Lệnh sau để hiển thị tất cả ten_loai và ma_mon:

SELECT ten_loai, ma_mon
FROM loai_mon_an loai INNER JOIN mon_an mon ON loai.ma_loai = mon.ma_loai

Thực hiện nhóm trên ten_loai và đếm theo ma_mon:

SELECT ten_loai, count(ma_mon)
FROM loai_mon_an loai INNER JOIN mon_an mon ON loai.ma_loai = mon.ma_loai
GROUP BY ten_loai

Sử dụng alias cho cột count(ma_mon):

SELECT ten_loai, count(ma_mon) TongSoMon
FROM loai_mon_an loai INNER JOIN mon_an mon ON loai.ma_loai = mon.ma_loai
GROUP BY ten_loai

Sắp tăng theo tổng số sản phẩm (TongSoMon):

SELECT ten_loai, count(ma_mon) TongSoMon
FROM loai_mon_an loai INNER JOIN mon_an mon ON loai.ma_loai = mon.ma_loai
GROUP BY ten_loai
ORDER BY TongSoMon

Hoặc group by theo cột số 2,

SELECT ten_loai, count(ma_mon) TongSoMon
FROM loai_mon_an loai INNER JOIN mon_an mon ON loai.ma_loai = mon.ma_loai
GROUP BY ten_loai
ORDER BY 2

2. Cho biết đơn giá trung bình của món ăn theo từng Loại món ăn.

SELECT loai.ma_loai, ten_loai, ROUND(AVG(don_gia),1) DonGiaTrungBinh
FROM loai_mon_an loai INNER JOIN mon_an mon ON loai.ma_loai = mon.ma_loai
GROUP BY loai.ma_loai, ten_loai

Trong đó,

- AVG: hàm tính trung bình
- ROUND(x,y) hàm làm tròn số x, lấy y chữ số phần thập phân.

3. Cho biết món ăn có đơn giá thấp nhất theo từng loại món ăn.

SELECT loai.ma_loai, ten_loai, MIN(don_gia) DonGiaThapNhat
FROM loai_mon_an loai INNER JOIN mon_an mon ON loai.ma_loai = mon.ma_loai
GROUP BY loai.ma_loai, ten_loai

Đơn giá cao nhất:

SELECT loai.ma_loai, ten_loai, MAX(don_gia) DonGiaCaoNhat
FROM loai_mon_an loai INNER JOIN mon_an mon ON loai.ma_loai = mon.ma_loai
GROUP BY loai.ma_loai, ten_loai

4. Cho biết tổng giá tiền và số món ăn của món ăn có đơn giá trong khoảng 50.000 VNĐ đến 100.000 VNĐ theo từng loại món ăn.

SELECT loai.ma_loai, ten_loai, SUM(don_gia) TongTien, COUNT(ma_mon) SoMon
FROM loai_mon_an loai INNER JOIN mon_an mon ON loai.ma_loai = mon.ma_loai
WHERE don_gia BETWEEN 50000 AND 100000
GROUP BY loai.ma_loai, ten_loai

5. Thống kê hóa đơn gồm các thông tin sau: số hóa đơn, ngày đặt, tổng số món ăn, tổng thành tiền.

Mối quan hệ giữa bảng hoa_don và chi_tiet_hoa_don là gì? Mỗi lần mua hàng sẽ có một hóa đơn, như vậy, một khách hàng có thể có nhiều hóa đơn, một hóa đơn có thể có nhiều món ăn. Để quản lý các thông tin chi tiết khác của hóa đơn, sẽ tạo thêm bảng chi_tiet_hoa_don.

SELECT hd.ma_hoa_don, ngay_dat, COUNT(ma_mon) AS TongMon, SUM(so_luong*don_gia) TongThanhTien
FROM `hoa_don` hd INNER JOIN chi_tiet_hoa_don cthd ON hd.ma_hoa_don = cthd.ma_hoa_don
GROUP BY ma_hoa_don, ngay_dat

Làm thêm, chỉ xem các hóa đơn có số món từ 2 trở lên.

Chú ý: WHERE sẽ thực hiện lọc trước khi nhóm, HAVING sẽ thực hiện lọc sau khi nhóm.

SELECT hd.ma_hoa_don, ngay_dat, COUNT(ma_mon) AS TongMon, SUM(so_luong*don_gia) TongThanhTien
FROM `hoa_don` hd INNER JOIN chi_tiet_hoa_don cthd ON hd.ma_hoa_don = cthd.ma_hoa_don
GROUP BY ma_hoa_don, ngay_dat
HAVING COUNT(ma_mon) >= 2

6. Cho biết đơn giá trung bình món ăn thuộc loại món ăn là “bún, mì, miến, phở”.

Vì dữ liệu nhập hơi khác, nên sẽ thay “bún, mì, miến, phở” bằng “cơm”.

SELECT ten_loai, ROUND(AVG(don_gia),1) AS ĐGTB
FROM loai_mon_an AS loai, mon_an AS mon
WHERE loai.ma_loai = mon.ma_loai AND ten_loai = "Cơm"

GROUP BY ten_loai
-----------
Cập nhật 6/2/2017
-----------
Xem thêm:
Tổng hợp các bài viết về Ngu ngơ học làm web

Tiếng Anh chuyên ngành Công nghệ Thông tin (1) - Cách học tiếng Anh chuyên ngành

1      Mở đầu

1.1        Về tài liệu này

Tài liệu này thích hợp cho các bạn sinh viên ngành Công nghệ Thông tin muốn học tiếng Anh để sử dụng trong việc học và làm việc sau này.

Cuốn sách gồm nhiều bài học, mỗi bài gồm các nội dung sau:

– Đọc hiểu

Gồm các bài học về ngữ pháp, tập dịch các tài liệu chuyên ngành CNTT (OS, computer, network, programming)

– Học phát âm

Học phát âm căn bản

– Học nói

Học các mẫu câu hay sử dụng

– Tập nghe

Luyện kỹ năng nghe, bắt từ khóa, nắm nội dung chính

– Tập viết 

Viết lại các bài mẫu, tập viết CV

Vì được viết theo kiểu tự học nên không tránh khỏi những hạn chế về kiến thức, mong các bạn đọc trong tâm thế hoài nghi.

Điều quan trọng là hi vọng giúp các bạn có thêm được những kiến thức, kĩ năng để có thể tự học tiếng Anh chuyên ngành một cách bền bỉ, hiệu quả; từng bước sử dụng được tiếng Anh trong quá trình học và làm việc.

1.2        Tại sao lại phải học tiếng Anh?

Từ quan sát thực tế, có vài lý do mà sinh viên Công nghệ Thông tin nên học tiếng Anh:

– Có rất ít người dịch các tài liệu công nghệ mới sang tiếng Việt;

– Giúp sinh viên có đủ khả năng học theo các giáo trình chuẩn của thế giới;

– Đọc được các tài liệu về công nghệ, cách khắc phục sự cố, các giải pháp bằng tiếng Anh; (stackoverflow)

– Tự tin giao tiếp và học hỏi công nghệ từ các chuyên gia nước ngoài (tutorial, webinar, workshop);

– Dễ dàng vượt qua được các kì phỏng vấn việc làm;

– Có khả năng làm việc tự tin, thoải mái trong môi trường quốc tế, chuyên nghiệp, lương cao, nhiều cơ hội thăng tiến;

– Thể hiện được đẳng cấp của bản thân.

1.3        Học những gì?

Học tiếng Anh là để sử dụng nên cần đạt được các yêu cầu sau: đọc hiểu được tài liệu viết bằng tiếng Anh, nghe được các khóa học bằng tiếng Anh, nói được ý tưởng của mình cho người nước khác hiểu bằng tiếng Anh, viết được ý tưởng, giải pháp của mình bằng tiếng Anh.

Để đạt được các mục tiêu trên cần học những thứ sau:

– Từ vựng

– Ngữ pháp

– Đọc hiểu

– Phát âm

– Nói

– Nghe

– Viết

1.4        Học như thế nào?

Có rất nhiều phương pháp học, tùy theo đặc điểm tâm sinh lý và sở thích của mỗi người. Tài liệu này sẽ giúp bạn học các nội dung: từ vựng, ngữ pháp, đọc hiểu, phát âm, nói, nghe và viết.

Các bạn có thể tự học, tuy nhiên khuyến khích học theo nhóm và có người hướng dẫn.

– Tự học là quan trọng nhất

Tự học là giải pháp vừa rẻ, vừa tiện lợi, bạn có thể mọi lúc, mọi nơi.

– Trải nghiệm đủ lâu để nhớ từ

Để nhớ được một từ vựng bạn phải có trải nghiệm đủ lâu với nó. Để có trài nghiệm đủ lâu bạn có thể thực hiện các gợi ý sau: tra từ điển thủ công (nghĩa là nên gõ từng chữ để tra nghĩa, hoặc viết lại chữ cần tra bằng tay, chứ không dùng các ứng dụng kiểu như bấm chuột vào là biết nghĩa), tự lập từ điển, dịch tài liệu; hạn chế sử dụng google translate

Viết lại các từ, câu, đoạn tiếng Anh mẫu

– Sử dụng từ điển Anh-Anh

Có thể sử dụng 2 từ điển sau : Longman, Cambridge (online hoặc offline)

“Bơi trong tiếng Anh”

Đọc sách, tài liệu; theo các khóa học; trao đổi bằng tiếng Anh

– Kiên trì, kiên trì, kiên trì

Học hàng ngày, vào một khung giờ cụ thể, đều đặn theo năm tháng

1.5        Bài tập

Bài tập 1. Dùng từ điển

Thứ tự các từ điển bạn nên ưu tiên để dùng khi cần tra cứu một từ mới:

– Từ điển Anh – Anh: Longman, Cambridge, giúp học lại các từ cũ, đọc các đoạn tiếng Anh và đoán nghĩa

– Từ điển Anh – Việt Sohatratu: có nghĩa của một từ theo các chuyên ngành, giúp bạn tìm được nghĩa chính xác hơn.

– Google translate: giúp dịch các một câu hoặc một đoạn dài giúp bạn nắm được ý của câu, của đoạn

– Google: gõ từ khóa > chuyển sang mục xem hình ảnh giúp dễ đoán nghĩa, dễ nhớ từ; hoặc đọc các định nghĩa với các từ chuyên ngành

– Nên ghi lại từ ra giấy giúp nhanh nhớ từ

Bài tập 2. Tự làm từ điển chuyên ngành

– Tự làm từ điển chuyên ngành cho bản thân bằng Google sheet

Bài tập 3. Rèn luyện thói quen học tiếng Anh

– Tự tạo thói quen học tiếng Anh vào một khung giờ cố định trong ngày. Ví dụ: 30 phút một ngày vào sáng sớm.

Bài tập 4. Thử thách bản thân

– Tự dịch một cuốn sách

– Hoàn thành một khóa học chuyên ngành bằng tiếng Anh.

– Luôn luôn bắt đầu bằng từ điển Anh-Anh

------

Cập nhật: 8/8/2021

Video: https://www.youtube.com/watch?v=4LIHOi5idfo

Đọc thêm: Tiếng Anh chuyên ngành CNTT (2) - The computer