Tôi nghĩ rằng đây là một trong những câu hỏi đó là chủ quan và sẽ trở thành vấn đề ưu tiên, nhưng:
Từ góc độ dễ đọc, tôi cho rằng CHỈ rõ ràng khi cần thiết. Các câu lệnh SQL thường khá phức tạp mà không cần đọc nhiều văn bản không cần thiết.
Tôi nghĩ rằng
SELECT TOP 1000 [StoreNumber]
,[Address1]
,[Address2]
,[City]
,[St]
,[Zip]
,[ZipSuffix]
,[LocationType]
,[LocationSubType]
,[Corp]
,[Division]
,[ZoneNumber]
,[DistrictNumber]
,[StateNumber]
FROM [CommonData].[dbo].[vw_StoreData]
là một LOT dễ đọc hơn
SELECT TOP 1000 [CommonData].[dbo].[vw_StoreData].[StoreNumber]
,[CommonData].[dbo].[vw_StoreData].[[Address1]
,[CommonData].[dbo].[vw_StoreData].[[Address2]
,[CommonData].[dbo].[vw_StoreData].[[City]
,[CommonData].[dbo].[vw_StoreData].[[St]
,[CommonData].[dbo].[vw_StoreData].[[Zip]
,[CommonData].[dbo].[vw_StoreData].[[ZipSuffix]
,[CommonData].[dbo].[vw_StoreData].[[LocationType]
,[CommonData].[dbo].[vw_StoreData].[[LocationSubType]
,[CommonData].[dbo].[vw_StoreData].[[Corp]
,[CommonData].[dbo].[vw_StoreData].[[Division]
,[CommonData].[dbo].[vw_StoreData].[[ZoneNumber]
,[CommonData].[dbo].[vw_StoreData].[[DistrictNumber]
,[CommonData].[dbo].[vw_StoreData].[[StateNumber]
FROM [CommonData].[dbo].[vw_StoreData]
(Nó trở nên tệ hơn khi bạn bắt đầu bảng tham gia, và thậm chí tồi tệ hơn nếu bạn đang tham gia bảng trên cơ sở dữ liệu khác nhau.)
tôi có thể nhìn thấy nơi bạn có thể tranh luận rằng thứ hai là dễ đọc hơn nếu bạn cần phải biết chính xác cơ sở dữ liệu, lược đồ và bảng một lĩnh vực cụ thể xuất phát từ bằng cách nhìn vào truy vấn một mình.
Nhưng trong SQL Server, ví dụ, bạn có thể mở truy vấn đó trong một nhà thiết kế và xem nó trong chế độ xem đồ họa thân thiện hơn nhiều.
IMHO, thời gian duy nhất mà tôi có thể sử dụng cú pháp đầy đủ là khi cần thiết, khi vượt qua ranh giới bảng/cơ sở dữ liệu/lược đồ, hoặc nếu bạn đã có hai bảng với tên trường tương tự.
Ví dụ:
SELECT TOP 1000 [CommonData].[dbo].[vw_StoreData].[StoreNumber]
,[Address1]
,[Address2]
,[City]
,[St]
,[Zip]
,[ZipSuffix]
,[LocationType]
,[LocationSubType]
,[Corp]
,[Division]
,[ZoneNumber]
,[DistrictNumber]
,[StateNumber]
FROM [CommonData].[dbo].[vw_StoreData]
Inner Join [CommonData].[dbo].[vw_StorePhones]
ON [CommonData].[dbo].[vw_StorePhones].[StoreNumber] = [CommonData].[dbo].[vw_StoreData].[StoreNumber]
Và ngay cả trong trường hợp đó, tôi muốn sử dụng Table Aliases để rút ngắn nó lên và làm cho nó dễ đọc hơn.
Tất cả điều đó nói rằng, trong thế giới thực, rất có thể bạn sẽ thấy mình làm việc cho một công ty đã quyết định định dạng chuẩn và bạn sẽ cần phải mã hóa theo tiêu chuẩn của công ty.
Tôi không thể không đồng ý với điều đó. Sử dụng bí danh bảng chắc chắn sẽ giúp giảm sự lộn xộn và vẫn cung cấp gợi ý cần thiết để cho biết trường nào là một trường bằng cách xem xét truy vấn một mình. +1 cho bạn. – David