--------------- <> -----------------
--- KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
--- Học để đi cùng bà con trên thế giới ---

Tìm kiếm trong Blog

Web (4) - Muốn theo nghề lập trình bắt đầu từ đâu (học kiểu tự chế)

Bài trước: Web (3) - Muốn theo nghề lập trình bắt đầu từ đâu (học chính quy) 

---

1.1.1       Học theo chương trình tự chế

Như ở phần trước đã trình bày, bạn có thể hiểu nôm na: chương trình chính quy được thiết kế theo hướng “từ căn bản đến ứng dụng”, nghĩa là sẽ trang bị cho người học một nền tảng lý thuyết khá căn bản và đầy đủ, làm nền tảng cho người học, giúp họ dễ dàng theo học một chuyên ngành và ứng dụng được vào công việc khi đi làm.

Để có thêm một lựa chọn nữa cho người học, chúng ta sẽ tiếp cận theo hướng ngược lại, là “từ ứng dụng về căn bản”. Nghĩa là, bạn sẽ bắt đầu từ một công việc cụ thể (ví dụ nghề làm web), qua trải nghiệm học nghề và thử làm nghề, bạn sẽ biết cần phải học các chủ đề lý thuyết, các kiến thức và kĩ năng căn bản gì? Cách tiếp cận này giúp bạn học có trọng tâm và hứng thú hơn.

Tại sao lại gọi là chương trình tự chế? Vì nó do chính bạn tạo ra, dựa trên những thứ có sẵn, mang dấu ấn cá nhân. Kiểu học này giúp bạn hình thành được kĩ năng chọn tài liệu, học liệu, tự tìm ra được phương pháp học phù hợp nhất cho bản thân, luôn tiến về phía trước mà không phụ thuộc vào người khác, có khả năng tự thích ứng trong điều kiện thay đổi không ngừng của xã hội.

Dựa trên những thứ có sẵn

Hiện nay, bạn muốn học gì, thì trên mạng sẽ luôn có đủ tài nguyên giúp bạn tự học. Nó có thể là video hướng dẫn, bài giảng, sách điện tử (ebook), tài liệu trên các website bằng cả tiếng Việt và tiếng Anh, mã nguồn các dự án mẫu. Bạn có thể nghe, xem, đọc, làm theo, kiểm tra, trải nghiệm. Để tự học hiệu quả, bạn nên ghi chép, tổ chức và tổng hợp các kiến thức, tài nguyên, để có được một lộ trình học rõ ràng, một hệ thống kiến thức bài bản của riêng bạn, có thể tái sử dụng về sau.

Cá nhân hóa việc học

Với giả định là mỗi cá nhân có một khả năng, tố chất, điều kiện, tiến độ học tập, phương pháp, và mục tiêu học khác nhau. Vì vậy, với mỗi chủ đề, tài liệu sẽ cung cấp các nội dung như trải nghiệm rời rạc (xem, nghe, đọc, làm theo), phần lý thuyết tổng hợp, bài tập thực hành và ứng dụng vào thực tế. Bạn cần phải thực hiện đủ các nội dung thì mới đảm bảo là bạn đã nắm chắc được mỗi chủ đề. Bạn sẽ tự thiết lập tốc độ học cho phù hợp với bản thân, ví dụ bạn đặt ra mục tiêu là sau 6 tháng hoặc 1 năm tự học là có thể nộp đơn vào các công ty để  xin thực tập.

Học được phương pháp học

Việc tìm ra phương pháp học hiệu quả với mỗi bạn là một kĩ năng quan trọng. Với sự thay đổi không ngừng của công nghệ, của môi trường làm việc, khả năng tự học giúp bạn thích ứng tốt hơn trong công việc.

Trong thực tế, bạn phải học không ngừng để biết cách cải tiến các sản phẩm đã có hoặc tạo ra các sản phẩm có chất lượng và tiện dụng hơn. Nếu bạn có phương pháp học hiệu quả, nó sẽ giúp bạn nhanh chóng nắm bắt được công nghệ mới. Như vậy, bạn không chỉ tập trung vào học kiến thức chuyên môn mà cũng cần phải học phương pháp học.

Ở các phần sau sẽ có các chủ đề giúp bạn tìm ra được phương pháp học phù hợp với bản thân. Ví dụ: học và hành, tháp học tập, thang đo Bloom, chu trình học tập Kolb, mô hình Dreyfus.

Quay trở lại nghề Công nghệ thông tin, như ở phần trước đã giới thiệu một số công việc cụ thể theo tài liệu của Bộ thông tin và truyền thông. Để có thêm một góc nhìn nữa về các công việc phổ biến, bạn có thể tham khảo các thông tin từ trang Stackoverflow.

Stackoverflow là một mạng xã hội lớn, uy tín của các lập trình viên trên thế giới. Nó giúp các lập trình viên tìm kiếm giải pháp cho các vấn đề gặp phải trong công việc hàng ngày; là nơi mỗi cá nhân thể hiện trình độ của mình thông qua việc giúp đỡ các đồng nghiệp khác; tuyển người làm & tìm việc làm. Jeff Atwood và Joel Spolsky (người Mỹ) đã sáng lập ra Stackoverflow năm 2008. Hàng năm Stackoverflow thường thực hiện các khảo sát liên quan đến cộng đồng làm nghề Công nghệ thông tin trên thế giới, bạn nên đọc các khảo sát này để có thêm nhiều thông tin hơn.

Bảng sau liệt kê một số công việc phổ biến trong ngành Công nghệ thông tin.

Loại công việc

1. Full-stack developer

2. Back-end developer

3. Front-end developer

4. Desktop or enterprise applications developer

5. Mobile developer

6. DevOps specialist

7. System administrator

8. Database administrator

9. Designer

10. Embedded applications or devices developer

11. Data scientist or machine learning specialist

12. Data engineer

13. Engineering manager

14. Data or business analyst

15. QA or test developer

16. Product manager

17. Game or graphics developer

18. Academic researcher

19. Educator

20. Site reliability engineer

21. Scientist

Số thứ tự mỗi công việc ở bảng trên thể hiện mức độ phổ biến của nó, ví dụ công việc đang có nhiều người làm nhất là Full-stack developer, kế đến là Back-end developer, tiếp theo là Front-end developer. Nói chung, công việc nào đang có nhiều người làm thì sẽ dễ kiếm được việc hơn. Tất nhiên, tùy theo sở thích và điều kiện cá nhân, bạn có thể lựa chọn một trong các nghề ở trên để theo đuổi; cứ kiên trì và quyết tâm thì cơ hội việc làm sẽ đến với bạn.

Bạn có thể vào mạng, gõ tên của mỗi nghề để tìm hiểu thêm. Đây xem như một thử thách nhè nhẹ đầu tiên, trên con đường tự học của riêng mình.

---

Cập nhật: 4/3/2024

Bài sau: Web (5) - Làm web là làm gì?

---

Tải tài liệu đầy đủ: Tự học HTML căn bản

-----

LIÊN HỆ TÁC GIẢ

Web (3) - Muốn theo nghề lập trình bắt đầu từ đâu (học chính quy)

Bài trước: Web (2) - Nụ cười Stan Shih và nghề CNTT

---

1.1       Muốn theo nghề lập trình bắt đầu từ đâu?

Như trong phần Nụ cười Stan Shih đã đề cập, trong ngành Công nghệ thông tin, lập trình chính là công việc cần nhiều lao động, do vậy sẽ dễ tìm được việc làm. Lập trình là công việc khá đơn giản so với các công đoạn khác trong vòng đời của một sản phẩm, vì vậy bạn có thể lựa chọn để thử sức. Học được nghề lập trình sẽ giúp bạn có một nền tảng tốt, từ đó sẽ có nhiều lợi thế trước khi thử sức ở các công đoạn khác trong vòng đời của một sản phẩm công nghệ thông tin.

Như trong phần Lời nói đầu đã đề cập, bạn có thể theo nghề làm web (là một công việc cụ thể của nghề lập trình) bằng hai cách: học bài bản theo chương trình chính quy, hoặc tự học theo chương trình tự chế.

1.1.1       Học theo chương trình chính quy

Để có thể theo nghề lập trình, bạn cần phải được trang bị rất nhiều các kiến thức liên quan, chứ không đơn giản là học một ngôn ngữ lập trình. Bạn sẽ phải theo học một chương trình của trường đại học, trường cao đẳng hoặc một trung tâm đào tạo. Thông thường, chương trình sẽ được thiết kế theo 3 khối kiến thức, bao gồm:

– Khối kiến thức giáo dục đại cương

– Khối kiến thức cơ sở ngành

– Khối kiến thức chuyên ngành

Các trường sẽ sắp xếp các môn học theo thứ tự phù hợp, để đảm bảo người học được trang bị kiến thức một cách bài bản, có lớp lang, môn học trước là nền tảng cho môn học sau. Theo thứ tự, các bạn sẽ học Khối kiến thức giáo dục đại cương trước, sau đó đến Khối kiến thức cơ sở ngành, cuối cùng là chọn một chuyên ngành và học Khối kiến thức của chuyên ngành đó. Làm web là một công việc cụ thể của chuyên ngành Công nghệ phần mềm.

Lưu ý, chương trình đào tạo của mỗi trường sẽ có các môn học, và thứ tự học khác nhau một chút; tùy theo bối cảnh xã hội, xu thế công nghệ, nhu cầu việc làm, thế mạnh của mỗi trường. Cũng lưu ý thêm, đây là chương trình được thiết kế theo hướng nghề nghiệp; tuy nhiên, đối với các trường đào tạo theo hướng khai phóng thì chương trình sẽ rất khác, các bạn có thể tự tìm hiểu thêm. Dưới đây là ví dụ một số môn học của từng khối kiến thức để các bạn tham khảo:

Khối kiến thức giáo dục đại cương

– Tiếng Anh căn bản & chuyên ngành CNTT

– Toán (ví dụ Toán rời rạc, Xác suất thống kê)

– Nhập môn CNTT

– Nhập môn lập trình

– Kỹ thuật lập trình

– Phương pháp lập trình hướng đối tượng

– Kỹ năng mềm

Khối kiến thức cơ sở ngành

– Cấu trúc dữ liệu và thuật giải

– Cơ sở dữ liệu

– Hệ điều hành

– Kiến trúc máy tính và hợp ngữ

– Mạng máy tính

Khối kiến thức chuyên ngành (sinh viên chọn một chuyên ngành để theo học, trong mỗi chuyên ngành sẽ có các môn học tương ứng).

Tùy theo từng trường sẽ có các chuyên ngành khác nhau.

– Công nghệ phần mềm / kỹ nghệ phần mềm / kỹ thuật phần mềm (3 tên gọi là tương đương)

– Mạng máy tính và viễn thông

– Hệ thống thông tin

– Khoa học máy tính

– Công nghệ tri thức

– Thị giác máy tính và khoa học robot

– Thương mại điện tử

– Khoa học dữ liệu

– Digital marketing

– IoT

– Thiết kế mỹ thuật số

(còn nữa)

Để lựa chọn được chuyên ngành phù hợp, bạn cần xem xét đến một số yếu tố, như sở thích, thế mạnh của bản thân, cơ hội xin được việc làm, mức lương.

Như đã nói, sinh viên học ngành Công nghệ thông tin khi ra trường không nhất thiết phải theo nghề lập trình, mà thực tế có rất nhiều các công việc khác liên quan để các bạn lựa chọn. Dưới đây sẽ liệt kê một số tên công việc, bạn có thể tìm hiểu kĩ hơn về kiến thức, kĩ năng cần có của mỗi công việc để lựa chọn chuyên ngành cho phù hợp. Các công việc sẽ luôn luôn biến động, có công việc sẽ mất đi, có công việc mới sẽ xuất hiện, quan trọng là bạn phải nhanh nhạy, có khả năng tự học, luôn luôn thay đổi để thích ứng và bắt kịp với thị trường. Bạn có thể đọc kĩ hơn về các công việc trong tài liệu “Những điều cần biết về nghề Công nghệ thông tin – Bộ thông tin và truyền thông”.

Một số vị trí việc làm của ngành Công nghệ thông tin:

Lĩnh vực phát triển phần mềm

Lập trình viên – Kỹ sư phát triển phần mềm

(Dev, Software Developer, Software Programmer)

Kỹ sư thiết kế phần mềm

(Software Designer)

Kiến trúc sư phần mềm

(Software Architect)

Kỹ sư kiểm thử phần mềm

(Software Tester)

Chuyên viên phân tích nghiệp vụ

(System/Business Analyst)

Kỹ sư cầu nối

(Bridge Software Engineer)

Quản lý dự án

(Project Manager)

 

 

Lĩnh vực mạng và an toàn thông tin mạng

Kỹ sư quản trị mạng

(System/Network Administrator)

Kỹ sư an toàn thông tin

(Security Engineer)

Nhân viên hỗ trợ kỹ thuật

(IT/Technical Support Engineer)

Quản lý công nghệ thông tin

(IT manager)

 

 

Lĩnh vực đa phương tiện

Chuyên viên thiết kế đồ họa

(Graphics/Web/GUI Designer)

Chuyên viên truyền thông đa phương tiện

(Multimedia Engineer/Technician)

 

Kỹ sư hệ thống thông tin/Kỹ sư tích hợp hệ thống (ERP/MIS/SI Engineer)

gồm các công việc cụ thể sau

ERP: Enterprise Resource Planning – Hệ thống hoạch định nguồn lực doanh nghiệp

MIS: Management Information System – Hệ thống thông tin quản lý

SI: System Integration – Tích hợp hệ thống

Phân tích nghiệp vụ

(Business Analyst)

Phân tích hệ thống

(System Analyst)

Phân tích kinh doanh thông minh

(Business Intelligence Analyst)

Phát triển ứng dụng

(Business Application Developer/System Developer)

Tư vấn CNTT

(IT Consultant)

Tư vấn ERP

(ERP Consultant)

Chuyên viên phân tích/Quản trị cơ sở dữ liệu

(Database Analyst/Administrator)

Quản trị mạng

(Network Administrator)

Chuyên gia hỗ trợ kỹ thuật

(Technical Support Specialist)

Quản lý dự án CNTT

(IT Development Project Leader)

Quản lý hệ thống thông tin

(Information System Manager)

Giám đốc CNTT

(CIO – Chief Information Officer )

Lĩnh vực khác

Kỹ sư thiết kế vi mạch

(Integrated Circuit Designer)

Chuyên viên quản trị website

(Webmaster/Website Administrator)

Chuyên viên nghiên cứu phát triển CNTT

(IT Reseacher)

Giảng viên chuyên ngành CNTT

(IT Teacher/Instructor)

Chuyên viên tư vấn CNTT

(IT Consultant/Expert)

Chuyên viên kinh doanh kỹ thuật

(Technical Sales & Marketing)

Kỹ sư quản trị cơ sở dữ liệu

(Database Administrator)

Chuyên viên, chuyên gia, nhà tư vấn, nhà nghiên cứu trong lĩnh vực Thương mại điện tử

(eCommerce )

 

Các lĩnh vực công nghệ mới

SMAC: Social – Mạng xã hội, Mobility – Di động, Analytics – Phân tích dữ liệu, Cloud – Điện toán đám mây

Trí thông minh nhân tạo

(AI – Artificial Intelligence)

Mạng kết nối vạn vật

(IoT – Internet of Things)

Chuỗi khối

(Blockchain)

 

                                                                                                   

---

Cập nhật: 3/3/2024

Bài sau: Web (4) - Muốn theo nghề lập trình bắt đầu từ đâu (học kiểu tự chế)

-----

Tải tài liệu đầy đủ: Tự học HTML căn bản

-----

LIÊN HỆ TÁC GIẢ

DBMS (6) - Workbench

Bài trước: DBMS (5) - Thao tác với dữ liệu trong MySQL

-----

1.1       Workbench

Để kết nối và làm việc với hệ quản trị cơ sở dữ liệu, bạn có thể sử dụng giao diện dòng lệnh, giao diện đồ họa, hoặc ngôn ngữ lập trình. Ở phần trước bạn đã sử dụng giao diện dòng lệnh để làm việc với MySQL server, phần này bạn sẽ làm việc bằng giao diện đồ họa.

Để làm việc với MySQL server, có rất nhiều phần mềm giao diện đồ họa, ví dụ:

– MySQL Workbench

– phpMyAdmin

– HeidiSQL

– Navicat for MySQL

– dbForge Studio for MySQL

1.1.1       Tải và cài đặt MySQL Workbench

– Vào trang tìm kiếm, gõ từ khóa MySQL Workbench, mở trang cho phép tải MySQL Workbench về máy (ví dụ: https://dev.mysql.com/downloads/workbench/).  Kích thước của gói MySQL Workbench khoảng 45MB.

– Cài đặt MySQL Workbench

– Khởi chạy phần mềm MySQL Workbench

– Khởi chạy MySQL server ở chế độ dòng lệnh. Hướng dẫn: mở chương trình dòng lệnh (CMD, Command Prompt), chuyển dấu nhắc tới thư mục C:\Program Files\mysql/bin, chạy lệnh mysqld, thêm tham số --console để xuất các thông báo ra màn hình.

 C:\Program Files\mysql\bin>mysqld --console

2022-08-08T03:59:06.279226Z 0 [System] [MY-010116] [Server] C:\Program Files\mysql\bin\mysqld.exe (mysqld 8.0.30) starting as process 18720

2022-08-08T03:59:06.499289Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.

2022-08-08T03:59:11.153973Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.

2022-08-08T03:59:13.156572Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.

2022-08-08T03:59:13.157031Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.

2022-08-08T03:59:13.286810Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060

2022-08-08T03:59:13.287237Z 0 [System] [MY-010931] [Server] C:\Program Files\mysql\bin\mysqld.exe: ready for connections. Version: '8.0.30'  socket: ''  port: 3306  MySQL Community Server - GPL.

Nếu chạy thành công, bạn mở Task Manager\Processes\ sẽ thấy tiến trình mysqld.exe đang chạy (nếu không có trong tab Processes, bạn có thể tìm trong tab Task Manager/Details).

Tới thời điểm này, bạn cần biết các thông tin sau: trên máy tính của bạn đã có MySQL server đang chạy ở cổng 3306. Tên miền của máy tính hiện tại là localhost, địa chỉ IP của máy hiện tại là 127.0.0.1.

– Tại giao diện của MySQL Workbench, cạnh dòng chữ MySQL Connections, bấm vào biểu tượng dấu cộng (+) để tạo mới một kết nối tới MySQL server. Cửa sổ Setup New Connection xuất hiện (xem hình minh họa).


– Trong mục Connection Name, bạn đặt tên cho kết nối. Ví dụ: KetNoi1. Sau đó bấm nút OK. Hệ thống sẽ tạo ra một nút có tên là KetNoi1, bấm vào KetNoi1, nhập mật khẩu cho root. Nếu kết nối thành công, giao diện sẽ như sau:


– Bạn bấm vào nút Schemas, sẽ thấy được các cơ sở dữ liệu mà các bài học trước đã tạo ra (trên giao diện dòng lệnh). Như vậy, bạn sẽ thấy là máy MySQL server không thay đổi, dữ liệu trên đó không thay đổi (so với khi làm ở chế độ dòng lệnh), mà chỉ có giao diện làm việc là thay đổi mà thôi. Nghĩa là, bạn có thể cùng lúc làm việc với Hệ quản trị cơ sở dữ liệu trên nhiều giao diện khác nhau (dòng lệnh, đồ họa, ngôn ngữ lập trình).


1.1.2       Thao tác với MySQL Workbench

Để làm quen với MySQL Workbench, phần này sẽ thực hiện một số thao tác cơ bản liên quan đến hệ quản trị cơ sở dữ liệu MySQL gồm:

– Tạo tài khoản người dùng

– Thay đổi mật khẩu người dùng

– Xóa tài khoản người dùng

– Tạo cơ sở dữ liệu

– Đổi tên cơ sở dữ liệu

– Xóa cơ sở dữ liệu

– Tạo bảng cho cơ sở dữ liệu

– Đổi tên cho bảng

– Xóa bảng

– Thêm trường cho bảng

– Đổi tên trường

– Xóa trường

– Thêm dữ liệu cho bảng

– Thay đổi dữ liệu

– Xóa dữ liệu

– Truy vấn dữ liệu

– Phân quyền sử dụng

1.1.3       Xem và đọc thêm

– Dùng các từ khóa sau để tìm kiếm trên mạng và đọc thêm: MySQL Workbench,

 

1.1.4       Bài tập và thực hành

Bài 1. Làm lại các cài đặt ở phần lý thuyết.

1.1.5       Câu hỏi ôn tập

Câu 1. Các công cụ đồ họa để làm việc với MySQL server gồm:

A.

B.

C.

D.

Đáp án: 1(), 2()

 

////// 6


-----

Cập nhật: [5/9/2022]
-----

Trải nghiệm học bằng lái xe ô tô B2

 Trải nghiệm học bằng lái xe ô tô B2

Tại sao lại đi học để lấy bằng lái xe ô tô?

Lý do thì nhiều lắm, đại loại là:

– Để khi có nhiều tiền, muốn mua ô tô để đi cũng tiện, có thể mua liền mà không băn khoăn về bằng lái

– Nhiều bạn bè đã có bằng lái rồi, sao mình lại không có, học cho bằng bạn bằng bè

– Trong những tình huống khẩn cấp (ví dụ người nhà cần đi cấp cứu), có xe ô tô mà không thể sử dụng được thì cũng dở

– Có thêm một nghề dự phòng trong tay (có thể lái xe thuê, chạy xe công nghệ, chở hàng buôn bán)

– Học để trải nghiệm

Sau khi học xong, còn rút ra thêm được vài thứ:

– Đi ra đường bằng xe máy, xe đạp an toàn và cẩn thận hơn. Ví dụ sử dụng gương chiếu hậu của xe máy nhiều hơn, xưa thì hay dùng cổ, ngoái lại đằng sau để nhìn đường khi chuyển hướng; hiểu được quy tắc nhường đường, ý nghĩa của vạch kẻ đường, bảng hiệu, tâm lý của mấy bác lái xe ô tô.

– Rèn tâm lý khi phải thực hiện các bài tập, bài thi thực hành lái xe trong tình trạng áp lực, căng thẳng, hồi hộp

– Rút ra được một số ý hay trong quá trình học lái xe để áp dụng vào quá trình học hoặc  huấn luyện nghề nghiệp bất kì.

– Càng ngày càng thích đạp xe đạp

Chọn bằng gì để học?

Tùy theo nhu cầu và khả năng để chọn loại bằng cho phù hợp:

– Bằng B1_1: lái xe số tự động dưới 10 chỗ ngồi, xe tải dưới 3,5 tấn, không hành nghề lái xe được (ví dụ không được lái taxi).

– Bằng B1 (có người gọi là bằng B1_2): lái xe số sàn (xe có chân côn) dưới 10 chỗ ngồi, xe tải dưới 3,5 tấn, không được hành nghề lái xe (ví dụ không được lái taxi). Ít người chọn học bằng này, vì học bằng B2 lợi hơn.

– Bằng B2: lái xe số sàn (xe có chân côn) dưới 10 chỗ ngồi, xe tải dưới 3,5 tấn, được hành nghề lái xe (ví dụ được lái taxi). Có bằng B2 thì được lái luôn các xe của bằng B1, B11.

– Bằng C: lái xe tải trên 3,5 tấn, lái được xe của bằng B1, B2

– Chị em hiền hiền nên học B11, đàn ông, con trai nên học B2, mấy anh muốn theo nghề lái xe nên chọn C.

– Học phí bằng B11 và B2 thường là tương đương, bằng C cao hơn một chút. Ví dụ: B11: 11.8 triệu, B2: 12 triệu, C: 16 triệu (7/2022).

– Thời gian đào tạo: B1­1: 3 tháng, B2: 4 tháng, C :4,5 tháng

Đăng ký học ở đâu?

– Tới các trường đào tạo và sát hạch lái xe chính quy hoặc văn phòng đại diện của họ để đăng ký. Thường là đăng ký xong sẽ học liền, không phải chờ đợi lâu.

– Trường đào tạo chính quy là trường có địa điểm cụ thể, có nhiều xe, có sân bãi, có sân tập sa hình, thi sát hạch tại trường luôn

– Đừng nghe hay đăng ký với mấy đường dây, mấy cá nhân, dạy kèm riêng, bao đậu này kia, hên xui lắm, mất tiền oan, mất thời gian

– Học chính quy tại trường sẽ có thời gian học cụ thể, cố định, được học khá bài bản, giáo viên nghiêm túc, lịch sự; học xong kiến thức lý thuyết vững, lái xe an toàn, không bị phạt tiền oan vì không biết luật giao thông.

Kinh nghiệm khi học (bằng B2)

– Nên đi học đầy đủ, đúng giờ, nắm chắc nội dung từng buổi học dù là lý thuyết hay thực hành

– Học lý thuyết trước sẽ hỗ trợ rất nhiều khi thực hành lái xe, hiểu tại sao lại phải thực hiện các thao tác như vậy

– Mỗi bài thực hành đều được thiết kế để từng bước giúp người học tự tin và lái xe an toàn, vì vậy khi học, luôn đặt ra câu hỏi “bài thực hành/bài học này dùng để làm gì khi lái xe trong thực tế?”. Vì mục đích cuối cùng vẫn là lái xe AN TOÀN.

– Có thể tham khảo thêm các bài viết/các clip về chủ đề đang học để có thêm nhiều góc nhìn, tuy nhiên, chỉ cần làm theo chỉ dẫn của giáo viên là đủ, vừa đơn giản.

– Có thể có một số giáo viên chưa nắm bắt tốt tâm lý người đi học, hoặc kĩ năng sư phạm chưa ổn nên có thể gây ức chế cho người học qua lời nói, phương pháp truyền đạt, phương pháp huấn luyện. Nếu bạn gặp trường hợp này, hãy thích ứng với các tình huống như vậy, tập trung vào việc học, tập trung vào việc điều khiển CÁI XE, bớt tập trung vào NGƯỜI THẦY; hoặc có thể nói chuyện chân thành với giáo viên để 2 bên tìm được tiếng nói chung.

Kinh nghiệm khi thi (bằng B2)

– Thi sát hạch gồm 4 nội dung: trắc nghiệm lý thuyết > mô phỏng trên máy tính > sa hình > đường trường

– Trước khi thi sát hạch, nhà trường sẽ tổ chức 2 đợt thi nội bộ (tốt nghiệp và kiểm tra) nên có nhiều trải nghiệm và tự tin.

– Tự tin thực hiện từng bài thi, chỉ quan tâm tới nội dung thi, quan tâm tới bài thi, tâm lý thoải mái, nhẹ nhàng. Xem mọi thứ chỉ là một trải nghiệm thú vị.

Kết

Hi vọng, các thông tin trên có ích cho các bạn dự định học bằng lái xe ô tô.

Bản thân người viết bài này, sau khi có bằng lái xe, lâu lâu cũng chạy xe ô tô cho vui vui thôi, thực tế thì vẫn thích đi xe đạp hơn he he.

Đà Lạt, 1/9/2022

Tèo

 

DBMS (5) - Thao tác với dữ liệu trong MySQL

Bài trước: DBMS (4) - Tạo cơ sở dữ liệu quan hệ

-----

1.1       Thao tác với dữ liệu trong MySQL

Bạn đã tạo được cơ sở dữ liệu, đã tạo được bảng để chứa dữ liệu. Phần này bạn sẽ thực hiện thêm một số thao tác với hệ quản trị cơ sở dữ liệu MySQL:

– Thay đổi các cột của bảng

– Chèn dữ liệu vào bảng

– Truy vấn dữ liệu từ bảng

– Kết xuất cơ sở dữ liệu ra một tập tin (export database)

– Nhập một cơ sở dữ liệu có sẵn từ tập tin (import database)

1.1.1       Thay đổi các cột của bảng

Sau khi tạo bảng xong, bạn vẫn có thể thay đổi cấu trúc của nó. Ví dụ có thể thêm cột, xóa bớt cột, sửa tiêu đề của cột.

Ví dụ:

– Bảng loai_mon_an đang có cấu trúc là:

mysql> show columns from loai_mon_an;

+----------+--------------+------+-----+---------+-------+

| Field    | Type         | Null | Key | Default | Extra |

+----------+--------------+------+-----+---------+-------+

| ma_loai  | int          | YES  |     | NULL    |       |

| ten_loai | varchar(200) | YES  |     | NULL    |       |

| mo_ta    | varchar(500) | YES  |     | NULL    |       |

| hinh     | varchar(100) | YES  |     | NULL    |       |

+----------+--------------+------+-----+---------+-------+

4 rows in set (0.37 sec)

– Giờ sẽ thêm cột trang_thai (trạng thái: cho biết tình trạng của loại món ăn này: có (1)  hay không (0)). Cột trang_thai được thêm vào cuối bảng (sau cột hinh).

mysql> ALTER TABLE loai_mon_an ADD COLUMN trang_thai int AFTER hinh;

Query OK, 0 rows affected (0.53 sec)

Records: 0  Duplicates: 0  Warnings: 0

– Xem kết quả

mysql> show columns from loai_mon_an;

+------------+--------------+------+-----+---------+-------+

| Field      | Type         | Null | Key | Default | Extra |

+------------+--------------+------+-----+---------+-------+

| ma_loai    | int          | YES  |     | NULL    |       |

| ten_loai   | varchar(200) | YES  |     | NULL    |       |

| mo_ta      | varchar(500) | YES  |     | NULL    |       |

| hinh       | varchar(100) | YES  |     | NULL    |       |

| trang_thai | int          | YES  |     | NULL    |       |

+------------+--------------+------+-----+---------+-------+

5 rows in set (0.00 sec)

– Bạn có thể sửa tên cột trang_thai thành tinh_trang (tình trạng). Cú pháp là:

ALTER TABLE table_name RENAME COLUMN ten_cu TO ten_moi;

Ví dụ,

mysql> ALTER TABLE loai_mon_an RENAME COLUMN trang_thai TO tinh_trang;

Query OK, 0 rows affected (0.08 sec)

Records: 0  Duplicates: 0  Warnings: 0

Bạn có thể xem cấu trúc bảng để thấy kết quả.

– Xóa cột tinh_trang

mysql> ALTER TABLE loai_mon_an DROP COLUMN tinh_trang;

Query OK, 0 rows affected (0.12 sec)

Records: 0  Duplicates: 0  Warnings: 0

Bạn có thể xem cấu trúc bảng để thấy kết quả.

1.1.2       Chèn và truy vấn dữ liệu

Chèn dữ liệu vào bảng

Công việc của bạn là cần chèn các hàng dữ liệu sau vào bảng loai_mon_an:

Mã loại

Tên loại

Mô tả

Hình ảnh

1

Cơm

Các món cơm Việt

com.jpg

2

Lẩu

Các món lẩu

lau.jpg

3

Canh

Các món canh Việt

canh.jpg

4

Kho

Các món kho

kho.jpg

Giả sử bạn đã có cơ sở dữ liệu quan_ly_nha_hang, đã định nghĩa bảng loai_mon_an, đang kết nối vào MySQL server bằng user1. Sau đây là một số gợi ý để chèn dữ liệu cho một bảng.

 – Sử dụng lệnh sau để chèn dữ liệu cho một bảng.

INSERT INTO ten_bang (ten_cot1, ten_cot2,…)

VALUES (gia_tri_cot1, gia_tri_cot2,…)

– Để biết chắc chắn tên các cột của bảng (field), sử dụng lệnh SHOW COLUMNS FROM ten_bang. Ví dụ:

mysql> show columns from loai_mon_an;

+----------+--------------+------+-----+---------+-------+

| Field    | Type         | Null | Key | Default | Extra |

+----------+--------------+------+-----+---------+-------+

| ma_loai  | int          | YES  |     | NULL    |       |

| ten_loai | varchar(200) | YES  |     | NULL    |       |

| mo_ta    | varchar(500) | YES  |     | NULL    |       |

| hinh     | varchar(100) | YES  |     | NULL    |       |

+----------+--------------+------+-----+---------+-------+

4 rows in set (0.08 sec)

– Ví dụ chèn hàng dữ liệu đầu tiên cho bảng

mysql> insert into loai_mon_an(ma_loai, ten_loai, mo_ta, hinh) values(1, 'com', 'cac mon com Viet', 'com.jpg');

Query OK, 1 row affected (0.24 sec)

Lưu ý: nếu dữ liệu thuộc kiểu chuỗi thì phải bao lại bằng cặp dấu nháy đơn (‘’) hoặc nháy kép (“”). Ví dụ: ‘com’.

– Để kiểm tra xem việc chèn dữ liệu vào bảng được hay chưa? Sử dụng lệnh SELECT * FROM ten_bang. Ví dụ:

mysql> select * from loai_mon_an;

+---------+----------+------------------+---------+

| ma_loai | ten_loai | mo_ta            | hinh    |

+---------+----------+------------------+---------+

|       1 | com      | cac mon com Viet | com.jpg |

+---------+----------+------------------+---------+

1 rows in set (0.00 sec)

Bạn chèn hết các hàng dữ liệu còn lại của bảng loai_mon_an, để thực hành các bài tiếp theo.

mysql> select * from loai_mon_an;

+---------+----------+-------------------+----------+

| ma_loai | ten_loai | mo_ta             | hinh     |

+---------+----------+-------------------+----------+

|       1 | com      | cac mon an Viet   | com.jpg  |

|       2 | lau      | cac mon lau       | lau.jpg  |

|       3 | canh     | cac mon canh Viet | canh.jpg |

|       4 | kho      | cac mon kho       | kho.jpg  |

+---------+----------+-------------------+----------+

4 rows in set (0.00 sec)

Truy vấn dữ liệu

Truy vấn dữ liệu là bạn đặt ra các câu hỏi dựa trên các bảng dữ liệu, sau đó MySQL server sẽ tìm kiếm và hiển thị kết quả cho bạn.

Cú pháp căn bản của một câu truy vấn có dạng:

SELECT – FROM – WHERE: nghĩa là bạn muốn hiển thị cái gì, từ bảng nào và dựa trên điều kiện gì?

Tuy nhiên, cú pháp tổng quát thì nó gồm một số thành phần sau:

SELECT [*| DISTINCT] <Danh sách các cột [AS <Bí danh>]>

FROM <Danh sách Tên bảng/Tên View>

[WHERE <Biểu thức điều kiện>]

[GROUP BY <Danh sách cột>]

[HAVING <Điều kiện>]

[ORDER BY <Tên cột/ Số thứ tự cột/Biểu thức> [ASC/DESC]]

Ví dụ:

– Hiển thị tất cả các loại món ăn đang có trong bảng loai_mon_an

mysql> SELECT * FROM loai_mon_an WHERE true;

+---------+----------+-------------------+----------+

| ma_loai | ten_loai | mo_ta             | hinh     |

+---------+----------+-------------------+----------+

|       1 | com      | cac mon an Viet   | com.jpg  |

|       2 | lau      | cac mon lau       | lau.jpg  |

|       3 | canh     | cac mon canh Viet | canh.jpg |

|       4 | kho      | cac mon kho       | kho.jpg  |

+---------+----------+-------------------+----------+

4 rows in set (0.00 sec)

– Hiển thị loại món ăn có mã loại là 3

mysql> SELECT * FROM loai_mon_an WHERE ma_loai = 3;

+---------+----------+-------------------+----------+

| ma_loai | ten_loai | mo_ta             | hinh     |

+---------+----------+-------------------+----------+

|       3 | canh     | cac mon canh Viet | canh.jpg |

+---------+----------+-------------------+----------+

1 row in set (0.00 sec)

– Hiển thị các thông tin về món ăn có tên là lau (lẩu)

mysql> SELECT * FROM loai_mon_an WHERE ten_loai = 'lau';

+---------+----------+-------------+---------+

| ma_loai | ten_loai | mo_ta       | hinh    |

+---------+----------+-------------+---------+

|       2 | lau      | cac mon lau | lau.jpg |

+---------+----------+-------------+---------+

1 row in set (0.05 sec)

1.1.3       Xuất và nhập một cơ sở dữ liệu

Xuất một cơ sở dữ liệu thành một tập tin

Khi bạn đã có một cơ sở dữ liệu, với rất nhiều dữ liệu trong các bảng và các quan hệ đã được tạo. Để tạo ra một bản lưu dự phòng, hoặc chia sẻ cơ sở dữ liệu cho người khác bạn có thể xuất cơ sở dữ liệu thành một tập tin.

Sử dụng lệnh MYSQLDUMP. Lệnh này nằm trong thư mục \mysql\bin>

Ví dụ:

C:\Program Files\mysql\bin>mysqldump -u user1 -p quan_ly_nha_hang > quanLyNhaHang.sql

Enter password: ******

Tập tin kết quả quanLyNhaHang.sql sẽ được lưu trong thư mục \mysql\bin>

Việc xuất (export) một cơ sở dữ liệu sang dạng .sql, thực tế là việc ghi lại các lệnh: tạo bảng, thiết lập khóa, chèn dữ liệu …v.v vào một tập tin dạng văn bản. Để kiểm tra điều này, hãy xuất một cơ sở dữ liệu sang dạng một tập tin .sql, sau đó mở tập tin này bằng phần mềm Notepad chẳng hạn, rồi xem kết quả.

[quanLyNhaHang.sql]

-- MySQL dump 10.13  Distrib 8.0.30, for Win64 (x86_64)

--

-- Host: localhost    Database: quan_ly_nha_hang

-- ------------------------------------------------------

-- Server version 8.0.30

--

-- Table structure for table `loai_mon_an`

--

 

DROP TABLE IF EXISTS `loai_mon_an`;

/*!40101 SET @saved_cs_client     = @@character_set_client */;

/*!50503 SET character_set_client = utf8mb4 */;

CREATE TABLE `loai_mon_an` (

  `ma_loai` int DEFAULT NULL,

  `ten_loai` varchar(200) DEFAULT NULL,

  `mo_ta` varchar(500) DEFAULT NULL,

  `hinh` varchar(100) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

/*!40101 SET character_set_client = @saved_cs_client */;

 

--

-- Dumping data for table `loai_mon_an`

--

 

LOCK TABLES `loai_mon_an` WRITE;

/*!40000 ALTER TABLE `loai_mon_an` DISABLE KEYS */;

INSERT INTO `loai_mon_an` VALUES (1,'com','cac mon an Viet','com.jpg'),(2,'lau','cac mon lau','lau.jpg'),(3,'canh','cac mon canh Viet','canh.jpg'),(4,'kho','cac mon kho','kho.jpg');

/*!40000 ALTER TABLE `loai_mon_an` ENABLE KEYS */;

UNLOCK TABLES;

-- Dump completed on 2022-08-22  9:51:33

Nhập một cơ sở dữ liệu từ tập tin

Ngược lại, khi bạn muốn khôi phục lại, hoặc sử dụng lại một cơ sở dữ liệu đã được export trước đó. Bạn có thể thực hiện việc nhập (import) một cơ sở dữ liệu từ tập tin.

Để thực hành phần này, bạn sẽ thực hiện xóa cơ sở dữ liệu quan_ly_nha_hang. Lưu ý: bạn phải đảm bảo chắc chắn đã kết xuất cơ sở dữ liệu này sang một tập tin rồi.

Xem trong MySQL có cơ sở dữ liệu quan_ly_nha_hang không?

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| quan_ly_nha_hang   |

| sys                |

+--------------------+

5 rows in set (0.00 sec)

Thực hiện xóa:

mysql> DROP DATABASE quan_ly_nha_hang;

Query OK, 1 row affected (0.23 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.00 sec)

– Để nhập một cơ sở dữ liệu, bạn cần tạo một cơ sở dữ liệu “rỗng” trước.

mysql> CREATE DATABASE IF NOT EXISTS quan_ly_nha_hang_new;

Query OK, 1 row affected (0.08 sec)

– Sau đó, dùng lệnh sau để nhập cơ sở dữ liệu từ tập tin .sql vào

C:\Program Files\mysql\bin>mysql -u user1 -h localhost -p quan_ly_nha_hang_new < quanLyNhaHang.sql

Enter password: ******

C:\Program Files\mysql\bin>

– Đăng nhập lại vào MySQL server

C:\Program Files\mysql\bin>mysql -u user1 -h localhost -p

Enter password: ******

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 16

– Làm việc với cơ sở dữ liệu quan_ly_nha_hang_new

mysql> use quan_ly_nha_hang_new;

Database changed

– Thực hiện một số lệnh để kiểm tra cơ sở dữ liệu vừa được nhập mới

mysql> show tables from quan_ly_nha_hang_new;

+--------------------------------+

| Tables_in_quan_ly_nha_hang_new |

+--------------------------------+

| loai_mon_an                    |

+--------------------------------+

1 row in set (0.00 sec)

 

mysql> select * from loai_mon_an;

+---------+----------+-------------------+----------+

| ma_loai | ten_loai | mo_ta             | hinh     |

+---------+----------+-------------------+----------+

|       1 | com      | cac mon an Viet   | com.jpg  |

|       2 | lau      | cac mon lau       | lau.jpg  |

|       3 | canh     | cac mon canh Viet | canh.jpg |

|       4 | kho      | cac mon kho       | kho.jpg  |

+---------+----------+-------------------+----------+

4 rows in set (0.00 sec)

Lưu ý: việc nhập một cơ sở dữ liệu, chính là quá trình chạy lại các lệnh: tạo bảng, thiết lập khóa, chèn dữ liệu …v.v từ một tập tin dạng văn bản.

1.1.4       Xem và đọc thêm

– Dùng các từ khóa sau để tìm kiếm trên mạng và đọc thêm: chèn dữ liệu cho bảng mysql, mysql insert data into table, export và import cơ sở dữ liệu bằng dòng lệnh, export and import database in command line.

– INSERT: https://dev.mysql.com/doc/refman/8.0/en/insert.html

– Chu Thị Hường, Bài giảng Hệ quản trị CSDL, [chương 2: các câu lệnh SQL cơ bản] [ebook]

 

1.1.5       Bài tập và thực hành

Bài 1. Làm lại các câu lệnh ở phần lý thuyết.

Bài 2. Thực hiện một số yêu cầu sau:

1.      Tạo cơ sở dữ liệu “rỗng” có tên là quan_ly_sach

2.      Nhập (import) cơ sở dữ liệu này [chickenrainshop_structure_data.sql] vào cơ sở dữ liệu quan_ly_sach.

3.      Thực hiện các truy vấn, và ghi lại kết quả:

a.       Cơ sở dữ liệu quan_ly_sach có bao nhiêu bảng?

b.      Bảng books có bao nhiêu cột dữ liệu?

c.       Danh sách các cuốn sách có trong bảng books

d.      Sửa lại tên bảng writers thành writers_new.

Gợi ý:

Bài 2.3.a:

mysql> use quan_ly_sach

Database changed

mysql> show tables;

+------------------------+

| Tables_in_quan_ly_sach |

+------------------------+

| books                  |

| books_writers          |

| categories             |

| comments               |

| coupons                |

| groups                 |

| orders                 |

| users                  |

| writers                |

+------------------------+

9 rows in set (0.00 sec)

Bài 2.3.b

mysql> show columns from books;

+---------------+--------------+------+-----+---------+----------------+

| Field         | Type         | Null | Key | Default | Extra          |

+---------------+--------------+------+-----+---------+----------------+

| id            | int          | NO   | PRI | NULL    | auto_increment |

| category_id   | int          | YES  |     | NULL    |                |

| title         | varchar(100) | NO   |     | NULL    |                |

| slug          | varchar(255) | NO   |     | NULL    |                |

| image         | varchar(255) | YES  |     | NULL    |                |

| info          | text         | NO   |     | NULL    |                |

| price         | int          | NO   |     | NULL    |                |

| sale_price    | int          | NO   |     | NULL    |                |

| publisher     | varchar(100) | NO   |     | NULL    |                |

| publish_date  | date         | NO   |     | NULL    |                |

| link_download | varchar(255) | NO   |     | NULL    |                |

| published     | tinyint(1)   | YES  |     | 0       |                |

| created       | datetime     | YES  |     | NULL    |                |

| modified      | datetime     | YES  |     | NULL    |                |

+---------------+--------------+------+-----+---------+----------------+

14 rows in set (0.00 sec)

Bài 2.3.c

mysql> select title from books;

+-----------------------------------------+

| title                                   |

+-----------------------------------------+

| Ba ?i?m tinh y?u trên ???ng tu t?p      |

| Khám phá ngôn ng? t? duy                |

| Ng??i th?p sáng tâm h?n                 |

| Ánh sáng vô hình                        |

| Tr?i xanh c?a táo                       |

| Ông già và bi?n c?                      |

| Bi?n ??i thay                           |

| Chuông nguy?n h?n ai                    |

| Nhà ?ào t?o sành s?i                    |

| Nh?ng ?i?u s?p nói và không nói v?i b?n |

| M?t v?i m?t là ba                       |

+-----------------------------------------+

11 rows in set (0.00 sec)

2.3.d

mysql> alter table writers rename to writers_new;

Query OK, 0 rows affected (0.11 sec)

 

mysql> show tables;

+------------------------+

| Tables_in_quan_ly_sach |

+------------------------+

| books                  |

| books_writers          |

| categories             |

| comments               |

| coupons                |

| groups                 |

| orders                 |

| users                  |

| writers_new            |

+------------------------+

9 rows in set (0.00 sec)

1.1.6       Câu hỏi ôn tập

Câu 1. Lệnh [mysql> show columns from loai_mon_an;] dùng để làm gì?

A. Hiển thị các hàng dữ liệu của bảng loai_mon_an

B. Hiển thị tên các cột dữ liệu của bảng loai_mon_an

C. Lệnh trên bị lỗi và không thể thực thi

D. Hiển thị tên các bảng của cơ sở dữ liệu

Câu 2. Lệnh [mysql> ALTER TABLE loai_mon_an ADD COLUMN trang_thai int AFTER hinh;] dùng để làm gì?

A. Đổi tên bảng loai_mon_an thành trang_thai

B. Đổi tên cột trang_thai trong bảng loai_mon_an thành hinh

C. Trong bảng loai_mon_an, thêm cột trang_thai vào sau cột hinh

D. Trong bảng loai_mon_an, chuyển cột trang_thai ra sau cột hinh

Câu 3. Lệnh [C:\Program Files\mysql\bin>mysqldump -u user1 -p quan_ly_nha_hang > quanLyNhaHang.sql] dùng để làm gì?

A. Đăng nhập vào máy SQL server và truy cập vào cơ sở dữ liệu quan_ly_nha_hang

B. Hiển thị danh sách các bảng có trong cơ sở dữ liệu quan_ly_nha_hang

C. Đọc thông tin từ tập tin quanLyNhaHang.sql đưa vào cơ sở dữ liệu quan_ly_nha_hang

D. Kết xuất (export) cơ sở dữ liệu quan_ly_nha_hang vào tập tin quanLyNhaHang.sql

----

Đáp án: 1(B), 2(C), 3(D)

////// 5

-----

Cập nhật: [22/8/2022]
-----