From 0 To 1:SQL And Databases?—?Heavy Lifting?by Loony Corn
Introduction to SQL?by Jon Flanders
我強烈推薦后者。
# 第一種寫SQL的方式
SELECT e.emp_id, e.emp_name, d.dept_name, p.project_name from Employee e INNERJOIN Department d ON e.dept_id = d.dept_id INNERJOIN Projects p ON e.project_id = p.project_id Where d.dept_name="finance"and e.emp_name like'%A%'and e.salary > 5000;
SELECT e.emp_id, e.emp_name, d.dept_name, p.project_namefrom Employee eINNER JOIN Department d ON e.dept_id = d.dept_idINNER JOIN Projects p ON e.project_id = p.project_idWhere d.dept_name="finance" and e.emp_name like '%A%' and e.salary > 500;
改進:
1) SQL查詢被劃分為多行,使其更具可讀性
問題
1)大小寫混合
2) where子句上的所有條件位于同一行上,也就是說通過注釋排除它們不是那么容易。
# 第三種書寫SQL的方式,也是做好的一種
select e.emp_id, e.emp_name, d.dept_namefrom Employee einner join Department d on e.dept_id = d.dept_idwhere d.dept_name = 'finance'and e.emp_name like '%A%'and e.salary > 500;
1)將SQL查詢劃分為多行可以提高可讀性
2)使用適當?shù)目s進可以很容易地找到數(shù)據源,例如表和join
3)讓條件語句都放在單獨的行上,可以容易的注釋掉某個條件進行調試。
select e.emp_id, e.emp_name, d.dept_namefrom Employee einnerjoin Department d on e.dept_id = d.dept_idwhere d.dept_name = 'finance'-- and e.emp_name like '%A%';add e.salary > 5000