Đầu tiên và quan trọng nhất, có được sự hiểu biết thấu đáo về tham gia. Không chỉ bên trong và bên trái tham gia. Biết những gì một tham gia chéo làm và tham gia bên ngoài đầy đủ. Biết các trường hợp sẽ khiến bạn chọn một loại tham gia cụ thể. Hiểu rằng chúng không thể thay thế cho nhau và truy vấn sử dụng phép nối trái có thể trả về các kết quả khác với kết quả sử dụng phép nối bên trong. (Mọi người sẽ nghĩ điều đó là hiển nhiên nhưng tôi đã đọc quá nhiều câu hỏi trong đó mọi người giải mã vấn đề của họ, hơi ngẫu nhiên thử các cách tham gia khác nhau.)
Tiếp theo thực sự hiểu tổng hợp và cách họ làm việc. Mysql sẽ cho phép bạn thoát khỏi việc không làm theo nhóm theo cách tiêu chuẩn. Nhưng có kỷ luật để xác định hoàn toàn nhóm theo mệnh đề đúng. Nó sẽ giúp bạn hiểu những gì bạn đang làm và sẽ làm cho kiến thức của bạn dễ dàng chuyển sang các cơ sở dữ liệu khác.
Tìm hiểu những gì các tuyên bố trường hợp làm.
Khi thực hiện các truy vấn phức tạp, hãy học cách làm việc theo khối. Xác nhận tại mỗi đoạn mà bạn có kết quả mà bạn mong đợi. Vì vậy, ví dụ, giả sử bạn cần phải viết một truy vấn báo cáo về các đơn hàng đã được trả lại trong 3 tháng qua và lý do trả lại cũng như thông tin liên hệ cho khách hàng. Bước đầu tiên là nhận được các đơn đặt hàng được trả lại trong ba tháng qua. Một khi bạn biết bạn có chất rắn đó, bạn có thể thêm thông tin về lý do trả lại. Một khi bạn có sự vững chắc đó, bạn có thể thêm khách hàng đã trả lại nó. Một khi bạn có vững chắc, thêm thông tin liên lạc cho người đó. Ở mỗi giai đoạn, kiểm tra kết quả của bạn và xem nếu chúng có ý nghĩa. Trong trường hợp này, tôi có thể muốn kết thúc chỉ với một bản ghi cho mỗi đơn hàng được trả lại. Nếu ở bất kỳ giai đoạn trung gian nào, số lượng kết quả tăng hoặc giảm, bạn biết bạn có một vấn đề với truy vấn. Đôi khi trong các khối xây dựng, bạn sẽ muốn xem các trường bổ sung chỉ để xác minh xem thông tin có chính xác không. Tôi đặt chúng trên một dòng riêng biệt và nhận xét chúng khi tôi thực hiện bước tiếp theo (loại bỏ chúng ở cuối khi tôi biết tôi đúng) để chúng có thể nhìn thấy lại một cách dễ dàng nếu thêm một nếp nhăn làm cho truy vấn trở nên buồn cười. Bạn không thể thực hiện truy vấn phức tạp một cách chính xác mà không có sự hiểu biết thấu đáo về kết quả của bạn sẽ như thế nào. Nghĩ rằng nó có vẻ ổn vì nó trả về một số kết quả sẽ gần như đảm bảo rằng bạn có kết quả sai một phần thời gian tốt. m phải) để họ có thể gặp lại dễ dàng nếu thêm một nếp nhăn khác khiến cho truy vấn trở nên buồn cười. Bạn không thể thực hiện truy vấn phức tạp một cách chính xác mà không có sự hiểu biết thấu đáo về kết quả của bạn sẽ như thế nào. Nghĩ rằng nó có vẻ ổn vì nó trả về một số kết quả sẽ gần như đảm bảo rằng bạn có kết quả sai một phần thời gian tốt. m phải) để họ có thể gặp lại dễ dàng nếu thêm một nếp nhăn khác khiến cho truy vấn trở nên buồn cười. Bạn không thể thực hiện truy vấn phức tạp một cách chính xác mà không có sự hiểu biết thấu đáo về kết quả của bạn sẽ như thế nào. Nghĩ rằng nó có vẻ ổn vì nó trả về một số kết quả sẽ gần như đảm bảo rằng bạn có kết quả sai một phần thời gian tốt.
Dưới đây là danh sách một số điều cơ bản bạn có thể làm trong SQL mà không cần phải suy nghĩ về nó:
- Đầu tiên, chọn thẳng không có phép nối (và không chọn *) nhưng với điều kiện chọn
- Bạn nên biết cách kết hợp hai hoặc nhiều bảng và nhận các bản ghi trong tất cả các bảng
- Bạn nên biết cách kết hợp hai hoặc nhiều bảng và nhận các bản ghi trong tất cả các bảng nhưng chỉ trả lại một bản ghi từ bảng với nhiều mặt của mối quan hệ một-nhiều
- Bạn sẽ có thể lấy các bản ghi trong một bảng nhưng không có trong một bảng liên kết
- Bạn sẽ có thể Tổng hợp dữ liệu cho báo cáo
- Bạn sẽ có thể chèn một bản ghi vào bảng
- Bạn sẽ có thể cập nhật một bản ghi trong bảng
- Bạn sẽ có thể xóa một bản ghi trong bảng
- Bạn sẽ có thể chèn một nhóm các bản ghi vào một bảng mà không cần con trỏ
- Bạn sẽ có thể cập nhật một nhóm các bản ghi trong một bảng mà không cần con trỏ
- Bạn sẽ có thể xóa một nhóm các bản ghi trong một bảng mà không cần con trỏ
- Bạn sẽ có thể thực hiện nhiều hành động trong một giao dịch và xử lý bẫy lỗi
- Bạn sẽ có thể tạo liên minh các hồ sơ và biết khi nào nên sử dụng UNION vice UNION ALL
- Bạn sẽ có thể thay đổi dữ liệu cho một trường dựa trên một số tiêu chí (sử dụng CASE)
Khi bạn cảm thấy thoải mái với kiến thức SQL cơ bản của mình, hãy tìm hiểu cấu trúc cơ sở dữ liệu của bạn. Tôi có thể viết các truy vấn phức tạp đối với các dbs rất phức tạp mà tôi hỗ trợ nhanh hơn nhiều so với những người khác vì tôi hiểu cấu trúc và không phải suy nghĩ về nơi lưu trữ mọi thứ. Nếu bạn hiểu cấu trúc bảng và các mối quan hệ khóa ngoài và nơi lưu trữ giá trị tra cứu và ý nghĩa của các cột (không chỉ tên của chúng mà cả dữ liệu được lưu giữ trong chúng) thì bạn có thể là chuyên gia truy vấn cơ sở dữ liệu đó. Điều đầu tiên tôi làm trong bất kỳ công việc mới nào là tìm hiểu kỹ cấu trúc db.