top of page
Featured Posts
Recent Posts
Follow Me
  • Facebook Long Shadow
  • Google+ Long Shadow

SQL [CSDL]


General:

  • - Để sẵn các hàm xuất hết bảng để có gì kiểm tra tính đúng đắn

  • - Sử dụng diagram để xem liên kết các bảng và kiểu dữ liệu của chúng.

  • - Sử dụng phép kết cho dễ tư duy trước tiên rồi mới dùng các cách khác khó hơn đã học

1st (Chỉ dùng kết cho các bảng QLDT, QLCB) *QLDT

  • - Nên sử dụng các AS để truy vấn bảng như biến.

  • - Dùng A.* để truy xuất hết bảng của riêng A

  • - Xuất thông tin chung chung thì có thể xuất thông tin quan trọng là được

*QLCB

  • - Ngày và giờ ở riêng hai bảng PHANCONG, LICHBAY hướng NHANVIEN và hướng CHUYENBAY chứa ngày đi còn CHUYENBAY chứa giờ đi nên phải để ý

  • - Tự hiểu 'mm/dd/yyyy' là ngày và 'hh:mm:ss' là giờ trong cùng một thuộc tính kiểu datetime và hàm DATEPART(XX, DATE) trích các thành phần ra riêng. Dùng GETDATE() lấy ngày hiện tại.

  • - Loại nhân viên 1 là phi công còn 0 là tiếp viên

2nd (Kinh nghiệm về các ví dụ trong SLIDE và BOOK)

  • - Dùng mặc định phép kết vì là cách dễ và trực quan nhất

  • - Có thể dùng UNION, INTERSECT, EXCEPT giữa hai truy vấn thay cho trong where có AND OR NOT

  • - Lồng sử dụng rất nhiều các từ khóa ANY/SOME, ALL, IN/NOT IN đi cùng toán tử gọi là lồng phân cấp hoặc EXISTS/NOT EXISTS kiểm tra tồn tại gọi là lồng tương quan

  • - Phép chia có thể sử dụng với NOT EXISTS, EXCEPT, COUNT

  • - Các hàm kết hợp sử dụng chung với gom nhóm và phần của SELECT thường tương đồng với GROUP BY (SELECT hiển thị còn GROUP BY tính toán)

  • - Chú ý lỗi = MAX phải dùng >= ALL

  • - Có thể dùng kết trong FROM để tạo ra bảng mới và truy xuất thẳng trong đó thay vì kết trong where (Kết bằng INNER JOIN, kết ngoài LEFT|RIGHT OUTER JOIN nếu thấy "nếu có")

  • - Dùng CASE nếu thấy kiểm tra theo nhiều trường hợp khỏi phải OR nhiều

  • - Các loại hàm: ngày tháng, chuỗi, chuyển đổi dữ liệu, toán học có trong ebook

3rd (Dùng nhiều cách và đặt tên đàng hoàng cho các collumn)

  • - Thường thì COUNT dùng với * nếu COUNT distinct hoặc hàm tính toán thì thêm rõ ràng thuộc tính trong ngoặc

  • - Xài distinct khi có nhiều bảng thì phải xài để tránh tăng thêm số dòng (Do thằng Having cần thêm bảng)

  • - Đếm bằng 0 không được vì nó không có thể hiện cái COUNT(*) = 0

  • - Nếu dùng các hàm tập hợp thì đòi hỏi chung dữ liệu và dữ liệu đó dùng IN để lấy các dữ liệu liên quan khác

  • - Cẩn thận những trường hợp IN/NOT IN hoặc EXISTS/NOT EXISTS có khả năng sót dữ liệu

4th (Sau khi sửa từ cô bài QLDA)

  • Chú ý group by có gì thì select cũng có và ngược lại

  • Chuỗi nên gom hết tên rồi so sánh dùng like và nhớ N'%Chuỗi%'

  • Đối với mỗi cái gì đó thì phải xuất hết ra dùng LEFT|RIGHT JOIN ở FROM và COUNT(thằng được tính)

  • Để ý dùng tối thiểu số lượng bảng nhất có thể tránh dư thừa chẳng hạn PHANCONG là đếm được số NV làm cho DEAN đó rồi

  • In/exists hay All hay Count có thể thay thế cho nhau trong vài bài đã làm, dùng except thay thế cho in and not in và dùng intercept thay cho in and in và dùng union thay cho in or in

  • Dùng COUNT nên tính cái thuộc tính cần đếm số lượng và LEFT JOIN tránh tình trạng đếm 0 thành 1

  • Count(lớn) = Count(nhỏ) (Dùng COUNT) || lớn - nhỏ = 0 (Dùng EXCEPT) || lớn trong nhỏ (Không tồn tại một cái lớn nào ngoài cái nhỏ) (Dùng NOT EXISTS) (Mặc định: nhỏ trong lớn)


 
Search By Tags

© 2015 by SONICSPINOVEL. Proudly created with Wix.com

bottom of page