рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдорд╛рдирдХ


рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдУрд░ рдмрдврд╝рддреЗ рд╣реБрдП, рд╣рдо рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдорд╛рдирдХреЛрдВ рдХреА рдХрдореА рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдПрд╕рдХреНрдпреВрдПрд▓ рдХрдИ рджрд╢рдХреЛрдВ рд╕реЗ рдЖрд╕рдкрд╛рд╕ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддреЗ рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрд╛рдо рдкрд░ рд░рдЦрдиреЗ рдХреЗ рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдореИрдВ рдХреЗрд╡рд▓ рдХрдИ рдмрд╛рд░ рдорд┐рд▓рд╛ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдпрд╣ рдПрдХ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЬрд┐рди рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рд▓рд┐рдпрд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣, рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдХреМрд╢рд▓ рдирд╣реАрдВ рдерд╛ред

рдпрд╣ рд▓реЗрдЦ рдбреАрдмреА рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдореВрд▓ рдмрд╛рддреЗрдВ рдмрддрд╛рдИ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: "рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдорд╛рдирдХ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред" рдпрджрд┐ рдЗрди рдорд╛рдирдХреЛрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рдирдП рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХреЛрдВ рдХреЗ рдирдП рд╕реЗрдЯреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдФрд░ рдпрд╛рдж рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

CamelCase рдирд╛рдордХрд░рдг рдпрд╛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░?


рдореИрдВ рд▓рдЧрд╛рддрд╛рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЖрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдЯреЗрдмрд▓ рдХрд╛ рдирд╛рдо CustomerOrders рдпрд╛ customer_orders рдХреА рд╢реИрд▓реА рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдХреМрди рд╕рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ? рд╢рд╛рдпрдж рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдорд╛рдирдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдкрд╣реБрдВрдЪ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред "рдЕрдВрдбрд░рд╡реИрд▓реНрдпреВ" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ "рдЕрдВрдбрд░ рд╡реИрд▓реНрдпреВ" рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдЕрд░реНрде рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде, рдкрд╣рд▓рд╛ рд╣рдореЗрд╢рд╛ under_value , рдФрд░ рджреВрд╕рд░рд╛ undervalue рд╣реЛрдЧрд╛ред рдФрд░ CamelCase рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╣рдореЗрдВ Undervalue рдФрд░ UnderValue рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдкрдХреЛ рджреГрд╖реНрдЯрд┐ рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдФрд░ рд╢рдмреНрджреЛрдВ рдкрд░ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рд╣реЗрдбрд╕реЗрдЯ рдФрд░ рдкрд┐рди рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЕрдВрдбрд░рд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЛ рдкрдврд╝рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдЕрдВрдд рдореЗрдВ, CamelCase рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЕрдВрдЧреНрд░реЗрдЬреА рдореВрд▓ рдирд╣реАрдВ рд╣реИред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдПрдХ рд╕рдЦреНрдд рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред

рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдореЛрдВ рдореЗрдВ рдмрд╣реБрд╡рдЪрди рдпрд╛ рдПрдХрд╡рдЪрди?


рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЗрд╕ рдмрд╛рдд рдкрд░ рдмрд╣рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдПрдХрд╡рдЪрди (рдЧреНрд░рд╛рд╣рдХ) рдпрд╛ рдмрд╣реБрд╡рдЪрди (рдЧреНрд░рд╛рд╣рдХ) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред рдореБрдЭреЗ рдЗрд╕ рдЧреЙрд░реНрдбрд┐рдпрди рдЧрд╛рдБрда рдХреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдЯ рджреЗрдВ, рдмрд╕ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрддрд╛ рдХреА рдорджрдж рд╕реЗ: рдмрд╣реБрд╡рдЪрди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд╛рдо рдЖрд░рдХреНрд╖рд┐рдд рдЦреЛрдЬрд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ - users ? SQL рдореЗрдВ user рдХреАрд╡рд░реНрдб рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рдзрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? constraint рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрдж рд╣реИред audit рд╢рдмреНрдж
рдЖрд░рдХреНрд╖рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдкрдХреЛ audit рдЯреЗрдмрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдмрд╕ рд╕рдВрдЬреНрдЮрд╛рдУрдВ рдХреЗ рдмрд╣реБрд╡рдЪрди рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрдж рдЖрдкрдХреЛ SQL рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ PostgreSQL, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ SQL рдкрд╛рд░реНрд╕рд░ рд╣реИ, user рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рд╣реИред

рдмрд╕ рдмрд╣реБрд╡рдЪрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рд╕рдВрдШрд░реНрд╖ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдХрдо рд╣реЛрдЧреАред

"рдЖрдИрдбреА" рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдХреЙрд▓рдо рдХрд╛ рдирд╛рдо рди рджреЗрдВ


рдореИрдВрдиреЗ рдЦреБрдж рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдкрд╛рдк рдХрд┐рдпрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВрдиреЗ рдкреЗрд░рд┐рд╕ рдореЗрдВ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рдбреАрдмреАрдП рдиреЗ рдореЗрд░реЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХреА рдЬрдм рдореИрдВрдиреЗ id рдХреЙрд▓рдо рдХреЛ рдирд╛рдо id ред рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рд╡рд╣ рд╕рд┐рд░реНрдл рдПрдХ рдкреЗрдбреЗрдВрдЯ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реНрддрдВрдн рдирд╛рдо customers.id рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ, рдФрд░ customers.customer_id рдЬрд╛рдирдХрд╛рд░реА рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реИред

рдФрд░ рдмрд╛рдж рдореЗрдВ рдореБрдЭреЗ рдпрд╣ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛:

 SELECT thread.* FROM email thread JOIN email selected ON selected.id = thread.id JOIN character recipient ON recipient.id = thread.recipient_id JOIN station_area sa ON sa.id = recipient.id JOIN station st ON st.id = sa.id JOIN star origin ON origin.id = thread.id JOIN star destination ON destination.id = st.id LEFT JOIN route ON ( route.from_id = origin.id AND route.to_id = destination.id ) WHERE selected.id = ? AND ( thread.sender_id = ? OR ( thread.recipient_id = ? AND ( origin.id = destination.id OR ( route.distance IS NOT NULL AND now() >= thread.datesent + ( route.distance * interval '30 seconds' ) )))) ORDER BY datesent ASC, thread.parent_id ASC 

рд╕рдорд╕реНрдпрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ? рдпрджрд┐ SQL рдиреЗ рдкреВрд░реНрдг рдЖрдИрдбреА рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ email_id , star_id рдпрд╛ station_id , рддреЛ рдХреАрдбрд╝реЗ рддреБрд░рдВрдд рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдпрд╣ рдХреЛрдб рд▓рд┐рдЦрд╛ рдерд╛ , рдФрд░ рдмрд╛рдж рдореЗрдВ рдирд╣реАрдВ, рдЬрдм рдореИрдВрдиреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдореИрдВрдиреЗ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд┐рдпрд╛ред

рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рдПрд╣рд╕рд╛рди рдХрд░реЛ рдФрд░ рдЖрдИрдбреА рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдмрд╛рдж рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

рд╕реНрддрдВрдн рдирд╛рдо


рдХреЙрд▓рдо рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╡рд░реНрдгрдирд╛рддреНрдордХ рдирд╛рдо рджреЗрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ temperature рдХреЙрд▓рдо рдХрд╛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ:

 SELECT name, 'too cold' FROM areas WHERE temperature < 32; 

рдореИрдВ рдлреНрд░рд╛рдВрд╕ рдореЗрдВ рд░рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП 32 рдбрд┐рдЧреНрд░реА рдХрд╛ рддрд╛рдкрдорд╛рди "рдмрд╣реБрдд рдардВрдбрд╛" рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, fahrenheit рдХреЙрд▓рдо рдХрд╛ рдирд╛рдо рджреЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

 SELECT name, 'too cold' FROM areas WHERE fahrenheit < 32; 

рдЕрдм рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ, рддреЛ рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рджреЛрдиреЛрдВ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рдХреЙрд▓рдо рдХреЛ рдПрдХ рд╣реА рдирд╛рдо рджреЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реЛрдЪрд╛, рдЙрдЪрд┐рдд SQL рд╣реИ:

 SELECT * FROM some_table s JOIN some_other_table o ON o.owner = s.person_id; 

рдпрд╣ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдареАрдХ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ some_other_table.owner рдкрд╛рд╕ some_other_table.owner рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдмрд╛рдзрд╛ рд╣реИред рддреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдпрд╣ SQL рдЧрд▓рдд рд╣реИред рд╕рдорд╛рди рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛:

 SELECT * FROM some_table s JOIN some_other_table o ON o.company_id = s.person_id; 

рдЕрдм рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрдЧ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрд░реЛрдд рдЧреЛрджрд╛рдо рдФрд░ рдЧрдВрддрд╡реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ, рддреЛ рдЖрдк source_id рддреБрд▓рдирд╛ source_id рд╕рд╛рде source_id рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, source_warehouse_id рдФрд░ source_warehouse_id рдирд╛рдо рджреЗрдирд╛ рдмреЗрд╣рддрд░ destination_warehouse_id ред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, owner company_id рд╕реЗ рдмреЗрд╣рддрд░ рдЙрджреНрджреЗрд╢реНрдп рдХрд╛ рд╡рд░реНрдгрди company_id ред рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЛ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдЖрдк owning_company_id рдХреЗ owning_company_id рдХреЙрд▓рдо рдХрд╛ рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдирд╛рдо рдЖрдкрдХреЛ рдХреЙрд▓рдо рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдмрддрд╛рдПрдЧрд╛ред

рдлреБрд▓ рд╡реИрд▓реНрдпреВ рд╕реЗ рдмрдЪреЗрдВ


рдпрд╣ рд╕рд▓рд╛рд╣ рдХрдИ рдЕрдиреБрднрд╡реА рдбреЗрдЯрд╛рдмреЗрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдкрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╡реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдХреНрд╕рд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ: рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдЪреНрдЫреЗ рдХрд╛рд░рдг рдХреЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ NULL рдореВрд▓реНрдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рди рджреЗрдВред
рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓реЗрдХрд┐рди рдЬрдЯрд┐рд▓ рд╡рд┐рд╖рдп рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдЗрд╕рдХрд╛ рдкреНрд░рднрд╛рд╡, рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ рд╣рдо NULL рдореВрд▓реНрдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХрд╛рд░рдг рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░


рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ: INTEGER, JSON, DATETIME, рдЗрддреНрдпрд╛рджрд┐ рдкреНрд░рдХрд╛рд░ рд╕реНрддрдВрдн рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдХреЛрдИ рднреА рдорд╛рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд▓реЗрдХрд┐рди рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдПрдХ рдирд╛рдо рд╣реИ, рд╡реИрдз рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдФрд░ рд╡реИрдз рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдПрдХ рд╕реЗрдЯред рд╡реЗ рд╣рдореЗрдВ рдЕрд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ рд╕рдВрдЦреНрдпрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

 CustomerAccount.java:5: error: bad operand types for binary operator '>' if ( current > threshold ) { ^ first type: String second type: int 

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ current > threshold рдЕрддреБрд▓рдиреАрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдкрдХрдбрд╝ рд▓реЗрдЧрд╛ред

рд╡рд┐рдбрдВрдмрдирд╛ рдпрд╣ рд╣реИ рдХрд┐, рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреЛ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВ - рдФрд░ рдбреЗрдЯрд╛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЖрдкрдХреА рд░рдХреНрд╖рд╛ рдХреА рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рд╣реИ - рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ! рдмрд╕ рдШреГрдгрд┐рдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ customers рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рд░реЛрдЧреЗрдЯ рдХреБрдВрдЬреА рд╣реИ, рддреЛ рдЖрдк рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 SELECT name, birthdate FROM customers WHERE customer_id > weight; 

рдмреЗрд╢рдХ, рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреАред рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде, рд╡рд┐рдкрд░реАрдд рд╕рдЪ рд╣реИред

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рд╣реИ, рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдкрд╣рд▓рд╛ SQL рдорд╛рдирдХ 1992 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рдЙрди рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдзреАрдорд╛ рдерд╛, рдФрд░ рд╕рдм рдХреБрдЫ рдЬреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдФрд░ рдлрд┐рд░ NULL рдорд╛рди рджреГрд╢реНрдп рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред SQL рдорд╛рдирдХ рдиреЗ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ IS NULL рдФрд░ IS NOT NULL ред рдЪреВрдВрдХрд┐ NULL рдорд╛рди рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗ рдЕрдЬреНрдЮрд╛рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдСрдкрд░реЗрдЯрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рдФрд░ рдЗрд╕рд▓рд┐рдП IS NULL рдФрд░ IS NOT NULL рдмрдЬрд╛рдп = NULL рдФрд░ != NULL ред рдФрд░ NULL рдорд╛рди рдХреА рдХрд┐рд╕реА рднреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ NULL рдорд╛рди рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИред

рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк NULL рдХреЗ рдмрдЬрд╛рдп "рдЕрдЬреНрдЮрд╛рдд" рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

NULL рдЕрдЬреНрдЮрд╛рдд рдорд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╕реЗ NULL рдЕрдЬреНрдЮрд╛рдд рдорд╛рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред

рд╣рд╛рдБ, рдЕрдм рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ!

рдЕрд╢рдХреНрдд рдореВрд▓реНрдп рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ?


рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╢рд╕реНрддреНрд░, рд╣рдо рдЗрд╕рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ $ 500 рдХрд╛ рдмреЛрдирд╕ рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рдирдХреА рд╕рд╛рд▓ рднрд░ рдХреА рддрдирдЦреНрд╡рд╛рд╣ $ 50 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЖрдк рдпрд╣ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

 SELECT employee_number, name FROM employees WHERE salary > 50000; 

рдФрд░ рдЖрдк рдмрд╕ рдирд┐рдХрд╛рд▓ рджрд┐рдП рдЧрдП, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдмреЙрд╕ рдиреЗ $ 50 рд╣рдЬрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдХрдорд╛рдП, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рд╡реЗрддрди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд╣реАрдВ рд╣реИ ( employees.salary рдХреЙрд▓рдо рдХреЙрд▓рдо NULL рд╣реИ), рдФрд░ рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░ 50 000 рдХреЗ рд╕рд╛рде NULL рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдХреЙрд▓рдо рдореЗрдВ NULL рдХреНрдпреЛрдВ рд╣реИ? рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗрддрди рдЧреЛрдкрдиреАрдп рд╣реЛред рд╢рд╛рдпрдж рд╕реВрдЪрдирд╛ рдЕрднреА рддрдХ рдирд╣реАрдВ рдЖрдИ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рд╕рд▓рд╛рд╣рдХрд╛рд░ рд╣реИ рдФрд░ рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рдШрдВрдЯрд╛ рд╡реЗрддрди рд╣реЛ, рди рдХрд┐ рд╡реЗрддрдиред рдбреЗрдЯрд╛ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЙрд▓рдо рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдореМрдЬреВрджрдЧреА рдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ , рди рдХрд┐ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдирд┐рд░реВрдкрдг рдкрд░ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдРрд╕реЗ рдХреЙрд▓рдо рдЬрд┐рдирдореЗрдВ NULL рдорд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдирдП рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛, _ , __ , рдЖрджрд┐ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдЕрднреА рднреА рдиреЗрддреНрд░рд╣реАрди рд░реВрдк рд╕реЗ рд╡реЗрддрди рдФрд░ рдЖрдкрдХреЗ рдмреЙрд╕ рдХреЗ рдПрдХ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХрд╛ рдЖрдзрд╛рд░ рдЖрдкрдХреЛ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╡реЗрддрди рдореБрджреНрджреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред

рдФрд░ рд╣рд╛рдБ, рдпрд╣ рдПрдХ рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдЦрд┐рд░реА рддрд┐рдирдХрд╛ рдерд╛ред

рдкреВрд░реНрдг рдорд╛рди рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕рдВрднрд╡ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ


рдпрд╣ рдЖрдкрдХреЛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ NULL рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкрд╛рдВрдбрд┐рддреНрдп рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдЗрдП рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реИред

рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рд▓рдВрджрди рдореЗрдВ рдПрдХ рдбреЛрдореЗрди рд░рдЬрд┐рд╕реНрдЯреНрд░рд╛рд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ 80-рд▓рд╛рдЗрди рд╡рд╛рд▓реА SQL рдХреНрд╡реЗрд░реА рдЧрд▓рдд рдбреЗрдЯрд╛ рдХреНрдпреЛрдВ рджреЗрддреА рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬрд╛рдирдХрд╛рд░реА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рдЖрдиреА рдЪрд╛рд╣рд┐рдП рдереА, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖред рдореБрдЭреЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╢рд░реНрдо рдЖрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдПрдХ рджрд┐рди рд▓рдЧрд╛ рдХрд┐ рдХрд╛рд░рдг рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди рдерд╛:

  • рдореИрдВрдиреЗ OUTER JOIN рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред
  • рд╡реЗ рдЖрд╕рд╛рдиреА рд╕реЗ NULL рдорд╛рди рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рдереЗред
  • рдЧрд▓рдд рдорд╛рдиреЛрдВ рдХреЗ рдХрд╛рд░рдг SQL рдЧрд▓рдд рдЙрддреНрддрд░ рджреЗ рд╕рдХрддрд╛ рд╣реИред

рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмрд╛рдж рдХреЗ рдкрд╣рд▓реВ рд╕реЗ рдЕрд╡рдЧрдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдЗрдП рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрди рдбреЗрдкреНрде рдирд╛рдордХ рдкреБрд╕реНрддрдХ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рджреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЖрд░реЗрдЦ:

suppliers
supplier_id
рд╢рд╣рд░
рдПрд╕ 1
рд▓рдВрдбрди

parts

part_id
рд╢рд╣рд░
p1
рд╢реВрдиреНрдп

рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдЦреЛрдЬрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдпрд╣ рдХреЛрдб p1 рджреЗрддрд╛ рд╣реИред

 SELECT part_id FROM parts; 

рдпрд╣ рдХреЛрдб рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛?

 SELECT part_id FROM parts WHERE city = city; 

рдпрд╣ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрдХ NULL рдорд╛рди рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджреВрд╕рд░реЗ NULL рдпрд╛ рд╕рдорд╛рди NULL рдХреЗ рд╕рд╛рде рднреАред рдпрд╣ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдкрд░ рд╢рд╣рд░ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рд╣рдо рдЗрд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реЛрдВ, рд╣реИ рдирд╛? рдлрд┐рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреНрдпрд╛ рд▓реМрдЯрд╛рдПрдЧрд╛? рдЖрдЧреЗ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред

 SELECT s.supplier_id, p.part_id FROM suppliers s, parts p WHERE p.city <> s.city OR p.city <> 'Paris'; 

рд╣рдореЗрдВ рдЬрд╡рд╛рдм рдореЗрдВ рдПрдХ рддрд╛рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╢рд╣рд░ NULL ( p.city ) рдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП WHERE рдХреА рд╢рд╛рдЦрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА true ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрдЬреНрдЮрд╛рдд рд╢рд╣рд░ рдпрд╛ рддреЛ рдкреЗрд░рд┐рд╕ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рдпрд╣ рдкреЗрд░рд┐рд╕ рд╣реИ, рддреЛ рдкрд╣рд▓реА рд╢рд░реНрдд рд╕рдЪ рд╣реЛрдЧреА ( <> 'London' )ред рдпрджрд┐ рдпрд╣ рдкреЗрд░рд┐рд╕ рдирд╣реАрдВ рд╣реИ, рддреЛ рджреВрд╕рд░реА рд╢рд░реНрдд рд╕рд╣реА рд╣реЛрдЧреА ( <> 'Paris' )ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, WHERE true рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, SQL рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдЕрд╕рдВрднрд╡ рдкрд░рд┐рдгрд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдПрдХ рдмрдЧ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рд▓рдВрджрди рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк SQL рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ NULL рдорд╛рди рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЕрдХреНрд╕рд░ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкрд╣рдЪрд╛рдирдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдкрд░рд┐рдгрд╛рдо


  • CamelCase рдмрдЬрд╛рдп __ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  • рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рдмрд╣реБрд╡рдЪрди рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд╛рдо рджреЗрдВ ( id рдмрдЬрд╛рдп item_id )ред
  • рдЕрд╕реНрдкрд╖реНрдЯ рдХреЙрд▓рдо рдирд╛рдореЛрдВ рд╕реЗ рдмрдЪреЗрдВред
  • рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдирд╛рдо рджреЗрдВ, рдЬрд┐рд╕ рд╕реНрддрдВрдн рдХреЛ рд╡реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  • рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ, рд╕рднреА рдХреЙрд▓рдо рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ NULL рдХреЛ рди рдЬреЛрдбрд╝реЗрдВред
  • рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ, SQL рд▓рд┐рдЦрдиреЗ рд╕реЗ рдмрдЪреЗрдВ рдЬреЛ NULL рдорд╛рди рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХреЗред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдЧрд╛рдЗрдб рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред

Source: https://habr.com/ru/post/hi484188/


All Articles