рднрд╛рдЧ 1 рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред
рдЕрдзреНрдпрд╛рдп 2. SQL / рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдо MUMPS
рдпрд╣ рдЕрдзреНрдпрд╛рдп рдирд┐рдпрдорд┐рдд SQL рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ MUMPS- рдЖрдзрд╛рд░рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░реЗрдЧрд╛ред
рдЕрдзреНрдпрд╛рдп 1 рдкрдврд╝реЗрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рд╣реИред
рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
рдЖрдЗрдП рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ - рдбреЗрдЯрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ 3 рдЯреЗрдмрд▓ рд╣реЛрдВрдЧреЗ:
1. рдЧреНрд░рд╛рд╣рдХ рддрд╛рд▓рд┐рдХрд╛ (рдЧреНрд░рд╛рд╣рдХ)
2. рдЖрджреЗрд╢ рддрд╛рд▓рд┐рдХрд╛ (рдЖрджреЗрд╢)
3. рдЙрди рдЪреАрдЬреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдЬреЛ рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЖрджреЗрд╢ (ITEM) рдмрдирд╛рддреА рд╣реИ

рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд╛рдо рдмреЛрд▓реНрдб рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ, рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЧреНрд░рд╛рд╣рдХрдХрдирд┐рд╖реН рдп рдЕрджреНрд╡рд┐рддреАрдп рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдЦреНрдпрд╛рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдирд╛рдордкрддрд╛
рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдкрддрд╛рдХреБрд▓ рдмрд┐рдХреНрд░реА рдЖрджреЗрд╢реЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛рдЖрджреЗрд╢рдЖрджреЗрд╢ рд╕рдВрдЦреНрдпрд╛ рдХреНрд░рдордЧреНрд░рд╛рд╣рдХ рд╕рдВрдЦреНрдпрд╛ (рдЧреНрд░рд╛рд╣рдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА)рдЖрджреЗрд╢ рджрд┐рдирд╛рдВрдХ рдЖрджреЗрд╢рдЪрд╛рд▓рд╛рди
рддрд┐рдерд┐ рдЪрд╛рд▓рд╛рди рдХрд░реЗрдВ
TotalValue
рдЖрджреЗрд╢ рдореВрд▓реНрдпрдорджрдЖрджреЗрд╢ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ (ORDER рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдХреБрдВрдЬреА рдХреЗ рдЕрдиреБрд░реВрдк)редрдЖрдЗрдЯрдо рдирдВрдмрд░ рдЖрдЗрдЯрдо рдирдВрдмрд░рдореВрд▓реНрдп
рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдЖрдЗрдЯрдо рдХреА
рдХреАрдордд (рд╕рднреА рдЫреВрдЯреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░)редрдЖрд░реЗрдЦ рдореЗрдВ рдПрдХ рд╕реЗ рдХрдИ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдкрд╛рд╕ рдХрдИ рдСрд░реНрдбрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдСрд░реНрдбрд░ рдореЗрдВ рдХрдИ рдЪреАрдЬреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЧреНрд░рд╛рд╣рдХ (CUSTOMER.totalOrders) рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, ORDERS рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ рд░рдЦреЗ рдЧрдП рдЖрджреЗрд╢реЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдкрд╣рдЪрд╛рдиреА рдЬрд╛рддреА рд╣реИрдВред
рдСрд░реНрдбрд░ рдореВрд▓реНрдп (ORDER.totalValue) рд╕рднреА рдЪреАрдЬреЛрдВ рдХреА рд▓рд╛рдЧрдд рдХрд╛ рдпреЛрдЧ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓рд╛рдЧрдд ITEM.price рдлрд╝реАрд▓реНрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред
рдлрд╝реАрд▓реНрдб CUSTOMER.totalOrders рдФрд░ ORDER.totalValue рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рджрд░реНрдЬ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - рдпреЗ рдкрд░рд┐рдХрд▓рд┐рдд рдлрд╝реАрд▓реНрдб рд╣реИрдВред
SQL / рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП, рдЗрди рддрд╛рд▓рд┐рдХрд╛ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ SQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛рдмреЗрд╕ (CREATE TABLE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдк рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
MUMPS рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЯреЗрдмрд▓ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╕реАрдзреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдмрд┐рдирд╛ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдПред
рдлрд┐рд░ рднреА, рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ SQL рд╕реНрдХреАрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рд▓реЗрд╢рдирд▓ рд╕реНрдХреАрдорд╛ рдХреЛ MUMPS рд╕реНрдЯреЛрд░реЗрдЬ рдкрд░ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╕реБрдкрд░рдЗрдореНрдкреЛрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдХреАрдорд╛ рдореМрдЬреВрджрд╛ MUMPS рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд░реВрдк рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЦреБрдж рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдзрд╛рд░ рджреЗрддреА рд╣реИрдВ)ред
рдЗрди рддреАрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ MUMPS рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
рдЧреНрд░рд╛рд╣рдХ рддрд╛рд▓рд┐рдХрд╛^ рдЧреНрд░рд╛рд╣рдХ (рдХрд╕реНрдЯрд░реНрдиреЛ) = рдирд╛рдо | рдкрддрд╛ | TotalOrders
рдЖрджреЗрд╢ рддрд╛рд▓рд┐рдХрд╛^ ORDER (рдЖрджреЗрд╢) = custNo | orderDate | рдЗрдирд╡реЙрдЗрд╕рдбреЗрдЯ | TotalValue
рдЖрдЗрдЯрдо рддрд╛рд▓рд┐рдХрд╛^ ITEM (рдСрд░реНрдбрд░рдиреЛ, рдЖрдЗрдЯрдордиреЛ) = рдореВрд▓реНрдп
CUSTOMER рдФрд░ ORDER рдХреЗ рдмреАрдЪ рдХреЗ рд╕рдВрдмрдВрдз рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛:
^ ORDERX1 (custNo, orderNo) = ""
рд╡рд╣ рдЧреНрд░рд╛рд╣рдХ рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЖрджреЗрд╢ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
MUMPS рдореЗрдВ рдЖрдк рдХрд┐рд╕реА рднреА рд╡реИрд╢реНрд╡рд┐рдХ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд┐рдХрд▓реНрдк рднреА рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЬреИрд╕рд╛ рд╣рдордиреЗ рдХрд┐рдпрд╛) рдпрд╛ рдХрдИ рдпрд╛ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╡реИрд╢реНрд╡рд┐рдХред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреА рд╕рдВрдкреВрд░реНрдг рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
^OrderDatabase(тАЬcustomerтАЭ,custNo)= name_тАЭ~тАЭ_address_тАЭ~тАЭ_totalOrders ^OrderDatabase(тАЬorderтАЭ,orderNo)= custNo_тАЭ~тАЭ_orderDate_тАЭ~тАЭ_invoiceDate_тАЭ~тАЭ_totalValue ^OrderDatabase(тАЬitemтАЭ,orderNo,itemNo)=price ^OrderDatabase(тАЬindex1тАЭ,custNo,orderNo)=тАЭтАЭ
рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд╢рд┐рдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдкреНрд░рддрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪреБрдирд╛ред
рд╣рдордиреЗ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд┐рд▓реНрдб рдЪрд░рд┐рддреНрд░ (~) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рдЪреБрдирд╛ (рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд░реНрдг рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдирд╛рдЪрд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЧреНрд░рд╛рд╣рдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдЧреНрд░рд╛рд╣рдХ рдЬреЛрдбрд╝реЗрдВред
рдПрд╕рдХреНрдпреВрдПрд▓ INSERT INTO CUSTOMER (CustNo, Name, Address) VALUES (100, 'Chris Munt', 'Oxford')
MUMPS Set ^CUSTOMER(100)= тАЬChris MuntтАЭ_"~"_"Oxford"
"_" рдЧреНрд▓реВрдЗрдВрдЧ (рд╕реБрд░реАрд▓реЗ) рддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдг рд╣реИред
рджрд╛рдИрдВ рдУрд░ рд╣рдо рдПрдХ рдЯрд┐рд▓реНрдб рдкреНрд░рддреАрдХ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП 2 рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ред рд╡реИрд╕реЗ, рдХрд┐рд╕реА рднреА рд╡рд░реНрдг рдХреЛ рдПрдХ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЧреИрд░-рдореБрджреНрд░рдг рдпреЛрдЧреНрдп рд╡рд░реНрдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╣рдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
Set ^CUSTOMER(100)= тАЬChris MuntтАЭ_$c(1)_"Oxford"
рдлрдВрдХреНрд╢рди $ c (1) рдХрд╛ рдЕрд░реНрде рд╣реИ "ASCII рд╡рд░реНрдг рдЬрд┐рд╕рдХрд╛ рдореВрд▓реНрдп 1" рд╣реИред
$ c, $ char рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╣реИред
рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ 1 рдЪрд░рд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдмреЗрд╢рдХ, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреЗрдЯрд╛ рдЬрд┐рд╕реЗ INSERT рдЕрдиреБрд░реЛрдз (рдпрд╛ MUMPS рдХрдорд╛рдВрдб рдореЗрдВ) рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрд╕рдХреНрдпреВрдПрд▓ INSERT INTO CUSTOMER (custNo, name, address) VALUES (:custNo, :name, :address)
рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ: рдПрдПрдирдПрд╕рдЖрдИ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ, рдкреВрд░реНрд╡рд╡рд░реНрддреА рдХреЛрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
MUMPS Set ^CUSTOMER(custNo)=name_"~"_address
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛рдПрд╕рдХреНрдпреВрдПрд▓ SELECT A.name, A.address FROM CUSTOMER A WHERE A.custNo = :custNo
MUMPS Set record=$get(^CUSTOMER(custNo)) Set name=$piece(record,"~",1) Set address=$piece(record,"~",2)
$ Get () рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдПрдХ рдиреЛрдЯред рдпрд╣ рдЧреНрд▓реЛрдмрд▓реНрд╕ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛ рд╣реИред рдпрджрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рдЖрдЗрдЯрдо рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ $ get () рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рдПрдЧреА ("")ред
рдпрджрд┐ рд╣рдордиреЗ $ get () рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рд╣рдореЗрдВ рдпрд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
Set record=^CUSTOMER(custNo)
рдпрджрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рд╡реИрд╢реНрд╡рд┐рдХ рддрддреНрд╡ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ MUMPS рдПрдХ рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛рдПрдЧрд╛ (рдпрд╛рдиреА рдбреЗрдЯрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ)ред
MUMPS рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрдорд╛рдВрдб рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣, рдЖрдк $ get рдХреЗ рдмрджрд▓реЗ рд╢реЙрд░реНрдЯрд╣реИрдВрдб $ g () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ():
Set record=$g(^CUSTOMER(custNo))
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╣рдЯрд╛рдПрдВрдПрд╕рдХреНрдпреВрдПрд▓ DELETE FROM CUSTOMER A WHERE A.custNo = :custNo
MUMPS
kill ^CUSTOMER(custNo)
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЕрднреА рддрдХ рдЪреЗрдХ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рддрд╛рд░реНрдХрд┐рдХ рдЕрдЦрдВрдбрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рд╣рдо рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрдИ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдПрд╕рдХреНрдпреВрдПрд▓ SELECT A.custNo, A.name, A.address FROM CUSTOMER A
MUMPS s custNo=тАЭтАЭ fs custNo=$order(^CUSTOMER(custNo)) Quit:custNo= тАЬтАЭ do . Set record=$get(^CUSTOMER(custNo)) . Set name=$piece(record,"~",1) . Set address=$piece(record,"~",2) . Set totalOrders=$piece(record,"~",3) . ;
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдбреЙрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ (рдбреЙрдЯ-рд╕рд┐рдВрдЯреИрдХреНрд╕) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкреАрд░рд┐рдпрдбреНрд╕ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ рдбреВ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдИ рдЧрдИ рд╕рдмрд░реВрдЯреАрди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИрдВ (рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХрд╛ рдЕрдВрдд рджреЗрдЦреЗрдВ)
рдЖрдк рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЙрдкрдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЕрдВрджрд░ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ (рдЖрдЦрд┐рд░реА рдкрдВрдХреНрддрд┐ ";" рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ);
MUMPS рдореЗрдВ $ рдСрд░реНрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреА рд╢рдХреНрддрд┐ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд╕реНрддрдВрднреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЗрд╕рдХреЗ рдХрд╛рдо рдХрд╛ рд╕рд╛рд░ рдЖрдорддреМрд░ рдкрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдорддреМрд░ рдкрд░ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ SQL рдФрд░ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП
рдЕрдзреНрдпрд╛рдп 1 рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ
рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВред
$ рдСрд░реНрдбрд░ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде, рд╣рдо рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрд╛рдИрдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдХреБрдВрдЬреА рдХрд┐рд╕реА рднреА рдорд╛рди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдФрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЧреНрд▓реЛрдмрд▓реНрд╕ рдПрдХ рд╢реНрд░реЗрдгреАрдмрджреНрдз рднрдВрдбрд╛рд░ рд╣реИрдВред рд╣рдордиреЗ рд╡реИрд╢реНрд╡рд┐рдХ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреБрдВрдЬреА рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рди рд╣реЛ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдмрдирд╛рдП рдЧрдП рдереЗ: рд╡реИрд╢реНрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪрдХрд╛рдВрдХ (рдХреБрдВрдЬреА) рдкрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ $ рдСрд░реНрдбрд░ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП MUMPS рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдХреЛрдб рдЕрддрд┐рд░реЗрдХ рдХреЛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП MUMPS рдХрдорд╛рдВрдб рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВред
рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдирд╛ setCustomer(custNo,data) ; If custNo="" Quit 0 Set ^CUSTOMER(custNo)=data("name")_"~"_data("address") Quit 1
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
kill data ; data ( RAM) set data("name")="Rob Tweed" set data("address")="London" set custNo=101 set ok=$$setCustomer(custNo,.data) ; $$ ,
рдбреЗрдЯрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдкрд╣рд▓реЗ рдмрд┐рдВрджреБ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдпрд╣ рдПрдХ рд▓рд┐рдВрдХ рдХреЙрд▓ рд╣реИред рдбреЗрдЯрд╛ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рд░рдгреА рд╣реИ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЪрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
SetCustomer рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, myFunctions) рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЪреВрдВрдХрд┐ MUMPS рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЧреНрд▓реЛрдмрд▓реНрд╕ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИрдВ, рд╡реИрд╢реНрд╡рд┐рдХ рд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ $ $ setCustomer ^ myFunctions (custNo, .data) рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
kill data ; clear down data local array set data("name")="Rob Tweed" set data("address")="London" set custNo=101 set ok=$$setCustomer^myFunctions(custNo,.data)
$ $ SetCustomer () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрд╛рд╣рд░реА рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред OOP рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдпрд╣ рдЬрдирддрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реЛред рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВред
рдпрджрд┐ рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдирдВрдмрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╢рдХреНрдд рд╣реИрдВ, рддреЛ $$ setCustomer () рдлрд╝рдВрдХреНрд╢рди рд╢реВрдиреНрдп (рдпрд╛рдиреА рдЧрд▓рдд) рджреЗрддрд╛ рд╣реИред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд░рд┐рдХреЙрд░реНрдб рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ $$ setCustomer () 1 рд▓реМрдЯреЗрдЧрд╛ (рдпрд╛рдиреА рд╕рддреНрдп)ред рдЖрдк рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдмрдЪрдд рдкреВрд░реНрдг рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЖрдк рдареАрдХ рдЪрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЪреВрдБрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ CUSTOMER рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреБрд▓ рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЛрдб рдореЗрдВ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ:
setCustomer(custNo,data) ; if custNo="" Quit 0 ; Set data(тАЬtotalOrdersтАЭ)=0 Set orderNo=тАЭтАЭ for set orderNo=$order(^ORDERX1(custNo,orderNo)) Quit:orderNo=тАЭтАЭ do . set data(тАЬtotalOrdersтАЭ)=data(тАЬtotalOrdersтАЭ)+1 set ^CUSTOMER(custNo)=data("name")_"~"_data("address")_тАЭ~тАЭ_data(тАЬtotalOrdersтАЭ) Quit 1
рд╣рдо рдмрд╛рдж рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдЕрдиреБрднрд╛рдЧреЛрдВ рдореЗрдВ рд╕рдВрдЧрдгрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди рдХрд╕реНрдЯрдорд░ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд▓реМрдЯрд╛рдПрдЧрд╛ред
getCustomer(custNo,data) ; new record kill data ; clear down data array if custNo="" Quit 0 set record=$get(^CUSTOMER(custNo)) set data("name")=$piece(record,"~",1) set data("address")=$piece(record,"~",2) set data("totalOrders")=$piece(record,"~",3) Quit 1
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
S custNo=101 set ok=$$getCustomer(custNo,.data)
рдпрд╣ рдПрдХ рд╕реНрдерд╛рдиреАрдп рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдЧрд╛ (рдпрд╛ рдмрд▓реНрдХрд┐, рдЗрд╕реЗ рдмрджрд▓ рджреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ 3 рдлрд╝реАрд▓реНрдбреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
рдбреЗрдЯрд╛ ("рдирд╛рдо")
рдбреЗрдЯрд╛ ("рдкрддрд╛")
рдбреЗрдЯрд╛ ("рдХреБрд▓")
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╣рдЯрд╛рдПрдВрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди рдХрд╕реНрдЯрдорд░ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣рдЯрд╛ рджреЗрдЧрд╛:
deleteCustomer(custNo) ; if custNo="" Quit 0 kill ^CUSTOMER(custNo) Quit 1
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
S custNo=101 S ok=$$deleteCustomer(custNo)
рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ: 3 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╣рдо рджреНрд╡рд┐рддреАрдпрдХ рд╕реВрдЪрдХрд╛рдВрдХ, рдЯреНрд░рд┐рдЧрд░ рдФрд░ рд▓реЗрдирджреЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рддреАрд╕рд░рд╛ рднрд╛рдЧ, рд╕рдорд╛рдкреНрддред