рдбреЗрдЯрд╛ рдорд╛рдЗрдирд┐рдВрдЧ: рдПрдХ DBMS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧред рднрд╛рдЧ реи

рд╣рд░ рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ, рдПрдХ рдирдпрд╛ рд▓реЗрдЦ рдЪрд┐рд▓реНрд▓рд╛рддреЗ рд╣реБрдП рдирд╛рд░рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдмрд┐рдЧ рдбреЗрдЯрд╛ - "рдиреНрдпреВ рдСрдпрд▓"! ред рд╡рд┐рдкрдгрди рдЧреНрд░рдВрдереЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рджреЗрд╡реАред рдмрд┐рдЧ рдбреЗрдЯрд╛ = рдмрдбрд╝рд╛ рддреЗрд▓ = рд▓рд╛рднред рдпрд╣ рдмрдпрд╛рди рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛? рдЖрдЗрдП рд╕реНрдЯреИрдВрдк рд╕реЗ рдЖрдЧреЗ рдЬрд╛рдПрдВ рдФрд░ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛ рдЦреБрджрд╛рдИ рдХрд░реЗрдВ:
2006 рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореЗрдВ рд╕реЗ рдПрдХ рдорд╛рдЗрдХрд▓ рдкрд╛рдорд░ рдерд╛ [ 1 ]:
рдбреЗрдЯрд╛ рд╕рд┐рд░реНрдл рдХрдЪреНрдЪрд╛ рддреЗрд▓ рд╣реИред рдпрд╣ рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд┐рдирд╛ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореВрд▓реНрдпрд╡рд░реНрдзрдХ рд▓рд╛рднрдкреНрд░рджрддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЧреИрд╕, рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ, рд░рд╕рд╛рдпрди рдЖрджрд┐ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП; рдЗрд╕рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ "рдХрд╛рдЯ" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдореВрд▓реНрдпрд╡рд╛рди рд╣реЛ рдЬрд╛рдПрдВред

рдЯреНрд░реЗрдВрдб рдХреА рдРрд╕реА рд╕рдордЭ "рдмрд┐рдЧ рдбреЗрдЯрд╛ - рдиреНрдпреВ рдСрдпрд▓!" рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдХрд░реАрдм рд╣реИред рдФрд░ Disraeli рдХреЗ рдмрдпрд╛рдиреЛрдВ рдХреЛ рд░рджреНрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
"рддреАрди рддрд░рд╣ рдХреЗ рдЭреВрда рд╣реИрдВ: рдЭреВрда, рдЭреВрда рдФрд░ рдЖрдБрдХрдбрд╝реЗ рд╣реИрдВ ред "
рдпрд╣ рдЖрд▓реЗрдЦ рдбреЗрдЯрд╛ рдорд╛рдЗрдирд┐рдВрдЧ рд╡рд┐рд╖рдп рдХрд╛ рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИ : DBMS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧред рднрд╛рдЧ 1
рдЪрд▓реЛ рдЙрддреНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦреЗрдВ!


рдпреБрдЧрд▓ рдирд┐рдХрд╛рд▓рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдХреЛрдб рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬреЛ рдЖрдкрдХреЛ "рдбрдмрд▓реНрд╕" рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдЙрд╕реА рджрд┐рд╢рд╛ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд░рд╣реЗред рд╕рдлрд▓ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдмрджрд▓рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
--    --     select nextval('titanik_train_seq') as id, a.* into titanik_test_pk from titanik_test a; --          select id,pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, m[1] as ticket_type, m[2] as ticket_number into titanik_test_1 from (select id,pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, regexp_matches(ticket, '^\s*?(.*?)\s*?(\d*?)$') as m from titanik_test_pk ) as a; 

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

рд╣рдо рдкрд░реАрдХреНрд╖рдг рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдорд╛рди рдЕрдкрдбреЗрдЯ рдСрдкрд░реЗрдЯрд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ (рд╕рд╛рде рд╣реА рдкреНрд░рд╢рд┐рдХреНрд╖рдг рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдирд╣реАрдВ рдереЗ рддрддреНрд╡реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рджреЛ рдФрд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ):
 update titanik_test_1 set ticket_type='A.5.' where ticket_type = 'A./5.'; update titanik_test_1 set ticket_type='A.5.' where ticket_type = 'A/5'; update titanik_test_1 set ticket_type='A.5.' where ticket_type = 'A/5.'; update titanik_test_1 set ticket_type='A.5.' where ticket_type = 'A/S'; update titanik_test_1 set ticket_type='A/4' where ticket_type = 'A/4.'; update titanik_test_1 set ticket_type='A/4' where ticket_type = 'A4.'; update titanik_test_1 set ticket_type='CA' where ticket_type = 'CA'; update titanik_test_1 set ticket_type='CA' where ticket_type = 'CA.'; update titanik_test_1 set ticket_type='SW/PP' where ticket_type = 'SW/PP'; update titanik_test_1 set ticket_type='SC/PARIS' where ticket_type = 'SC/Paris'; update titanik_test_1 set ticket_type='SOTON/OQ' where ticket_type = 'SOTON/OQ'; update titanik_test_1 set ticket_type='SOTON/O2' where ticket_type = 'STON/O 2.'; update titanik_test_1 set ticket_type='SOTON/O2' where ticket_type = 'STON/O2.'; update titanik_test_1 set ticket_type='W/C' where ticket_type = 'W./C.'; update titanik_test_1 set ticket_type='WEP' where ticket_type = 'WE/P'; update titanik_test_1 set ticket_type='SOTON/OQ' where ticket_type = 'STON/OQ.'; update titanik_test_1 set ticket_type='SC/PARIS' where ticket_type = 'SC/PARIS'; 

рдЯрд┐рдХрдЯ рдбреЗрдЯрд╛ - рд╕рдВрд╕рд╛рдзрд┐рддред рдЕрдм рд╢реЗрд╖ рдкрд╛рда рдбреЗрдЯрд╛ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
рд╕реЗрдХреНрд╕ - рдХреЛрдИ рдпреБрдЧрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ:
 select sex, count(sex) from titanik_train_1 group by 1 order by 1 asc; 

рд▓рд┐рдВрдЧрдЧрд┐рдирддреА
рдорд╣рд┐рд▓рд╛314
рдирд░577

 select sex, count(sex) from titanik_test_1 group by 1 order by 1 asc; 

рд▓рд┐рдВрдЧрдЧрд┐рдирддреА
рдорд╣рд┐рд▓рд╛152
рдирд░266

рдХреЗрдмрд┐рди - рдпрд╣рд╛рдБ рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ:
 -- ! -- select cabin, count(cabin) from titanik_train_1 group by 1 order by 1 asc; select cabin, count(id) from titanik_train_1 group by 1 order by 1 asc; 

рдпрджрд┐ рд╣рдо рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЯрд┐рдкреНрдкрдгреА рдХреА рдЬрд╛рддреА рд╣реИ), рддреЛ рд╣рдореЗрдВ рдПрдХ рдЕрдЬреАрдм рдореВрд▓реНрдп рдорд┐рд▓рддрд╛ рд╣реИ - 0 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХреЗрдмрд┐рди рдХреЛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХрддреНрд░реАрдХрд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИред рдЦрд╛рд▓реА рдорд╛рдиреЛрдВ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдвреЗрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЧрд┐рдирддреА (рдЖрдИрдбреА) рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдФрд░ рд╣рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ: рдПрдХ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрдмрд┐рди рд╡рд╛рд▓реЗ 687 рдпрд╛рддреНрд░реАред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ "рд╕рд╛рдорд╛рдиреНрдп" рдХрдореНрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рд╣реИред рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрд┐рдХрдЯ рд╡рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИред
рдЪрд▓реЛ рд╣рдорд╛рд░реА рдзрд╛рд░рдгрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
 select id, cabin, ticket_type from titanik_train_1 where cabin ISNULL; select id, cabin, ticket_type from titanik_train_1 where cabin NOTNULL; 

рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рд╣реБрдИред рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЯрд┐рдХрдЯ рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд (рдкреНрд░рд╢реНрди рд╕рдВрдЦреНрдпрд╛ 2)? рдЗрд╕рдХреА рднреА рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рд╣реБрдИред рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╛ рддреЛ рдЯрд┐рдХрдЯреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛ рдЬрд╛рддреА рд╣реИ, рдпрд╛ рдпрд╣ рдХреБрдЫ рдФрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдХреЗрдмрд┐рди рдореЗрдВ рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рд╕реНрдерд╛рди рдпрд╛ рдирд╣реАрдВред рдпрд╣реА рд╣реИ, рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╡рд╣рди рдХрд░рддреА рд╣реИред рд╣рдо рдкрд┐рдЫрд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВред
рдХреИрдм рдХреЗ рд▓рд┐рдП рдХреНрд╡реЗрд░реА рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рд╕рдореВрд╣реАрдХрд░рдг рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ, рджрд┐рд▓рдЪрд╕реНрдк рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ:
рдХреЗрдмрд┐рдирдЧрд┐рдирддреА
C23 C25 C274
C301
рдПрдл рдЬреА 732
рдЯреА1

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреЗрдмрд┐рди рдХреЗ рдкреНрд░рдХрд╛рд░ (рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рдордиреЗ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реАред
рджреВрд╕рд░реЗ, рдПрдХ рдЯрд┐рдХрдЯ рдХреЗ рд▓рд┐рдП - рдХрдИ рдХреЗрдмрд┐рдиред рдФрд░ рдмрд╣реБрдд рдмрд╛рд░, рдЯрд┐рдХрдЯ рд╡рд╛рд▓реЗ рдПрдХ рд╣реА рдХреЗрдмрд┐рди рдореЗрдВ рдХрдИ рд▓реЛрдЧ, рдЬреЛ рдХрдИ рдХреЗрдмрд┐рдиреЛрдВ (рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ) рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдбреЗрдЯрд╛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЛрд╕реНрддреЛрдВ рдпрд╛ рдкрд░рд┐рдЪрд┐рддреЛрдВ, рдпрд╛ рдХрд╛рдо рдХреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП - рдпрд╛рдиреАред рдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧ рдПрдХ рджреВрд╕рд░реЗ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реИрдВред рд╕рд╛рде рд╣реА, рдХреЗрдмрд┐рди рдореЗрдВ рдХрд┐рддрдиреЗ рд▓реЛрдЧ рдереЗ, рдЗрд╕рдХреА рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣рдореЗрдВ рдорд┐рд▓рддреА рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖ - рдХреИрдм рдЯрд╛рдЗрдк рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВред рдФрд░ рдЯрд┐рдХрдЯ рдкрд░ рдХреЗрдмрд┐рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛрдбрд╝реЗрдВред рд╣рдо рдХреЗрдмрд┐рди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рднреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред
рдпрд╛рдиреА 4 рдХрд╛ рдкрд░рд┐рд╡рд╛рд░ 2 рдХреЗрдмрд┐рдиреЛрдВ рдореЗрдВ рд░рд╣рддрд╛ рд╣реИред рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЛрдЧ рдПрдХ рд╣реА рдХреЗрдмрд┐рди рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВред рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдмрдврд╝ рд░рд╣реА рд╣реИ!
рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ PREG рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ PostgreSQL рдореЗрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред
рдЖрдк рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╕рдм рдХреБрдЫ рдлрд┐рдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рднрд╛рдЧ рдПрдХ рдХреЗрдмрд┐рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдкреНрд░рддрд┐ рдЯрд┐рдХрдЯ рдХреЗрдмрд┐рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЕрдиреБрд░реЛрдз рдЯрд┐рдХрдЯ рдкрд░ рдПрдХ рд╣реА рдХреЗрдмрд┐рди (рдХреЗрдмрд┐рди рдХреЗ рд╕реЗрдЯ) рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
 select id,survived,pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, cnt as cabin_cnt, cabin_type, ticket_type, ticket_number into titanik_train_2 from ( select id, survived, pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, ticket_type, ticket_number, regexp_matches(cabin, '^\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?.*?$') as m, 4 as cnt, substring(cabin, 1, 1) as cabin_type from titanik_train_1 UNION select id, survived, pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, ticket_type, ticket_number, regexp_matches(cabin, '^\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?$') as m, 3 as cnt, substring(cabin, 1, 1) as cabin_type from titanik_train_1 UNION select id, survived, pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, ticket_type, ticket_number, regexp_matches(cabin, '^\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?$') as m, 2 as cnt, substring(cabin, 1, 1) as cabin_type from titanik_train_1 UNION select id, survived, pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, ticket_type, ticket_number, regexp_matches(cabin, '^\s*?([AZ]\d*)\s*?$') as m, 1 as cnt, substring(cabin, 1, 1) as cabin_type from titanik_train_1 UNION select id, survived, pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, ticket_type, ticket_number, NULL as m, 0 as cnt, NULL as cabin_type from titanik_train_1 where cabin ISNULL) as a; 

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣рд╛рдВ рдПрдХрдорд╛рддреНрд░ рдореБрд╢реНрдХрд┐рд▓ рдмрд┐рдВрджреБ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛:
F C82 C45 - рдЙрд╕ рдирд╛рдо рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╣рдерд┐рдпрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрд░реЛрдз рдореБрдЦреНрдп рдмреНрд▓реЙрдХ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
((AZ] \ d *) - [AZ] рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╡рд░реНрдгрдирд╛рддреНрдордХ рдкреВрдВрдЬреА рд╡рд░реНрдг, \ d * рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - 0 рдХреА рдХреЛрдИ рднреА рд╕рдВрдЦреНрдпрд╛ ... рдЕрдВрдХред

рдФрд░ рджреВрд╕рд░рд╛ рдЕрдиреБрд░реЛрдз, рдЬреЛ рдХрд┐ рдХреЗрдмрд┐рдиреЛрдВ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЧрд┐рдирддрд╛ рд╣реИред
 select a.*, b.cnt as cabin_people_cnt into titanik_train_3 from titanik_train_2 a, ( select cabin as cabid, count(id) as cnt from titanik_train_1 group by 1) as b where a.cabin = b.cabid OR (a.cabin ISNULL AND b.cabid ISNULL); --.     -     687. update titanik_train_3 set cabin_people_cnt=0 where cabin ISNULL; 

рдирддреАрдЬрддрди, рд╣рдореЗрдВ рддреАрди рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖реЗрддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ: рдХреЗрдмрд┐рди рдХрд╛ рдкреНрд░рдХрд╛рд░, рдкреНрд░рддрд┐ рдЯрд┐рдХрдЯ рдХреЗрдмрд┐рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдХреЗрдмрд┐рди рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред

рдЗрд╕реА рддрд░рд╣, рд╣рдо рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ:
 select id,pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, cnt as cabin_cnt, cabin_type, ticket_type, ticket_number into titanik_test_2 from ( select id, pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, ticket_type, ticket_number, regexp_matches(cabin, '^\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?.*?$') as m, 4 as cnt, substring(cabin, 1, 1) as cabin_type from titanik_test_1 UNION select id, pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, ticket_type, ticket_number, regexp_matches(cabin, '^\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?$') as m, 3 as cnt, substring(cabin, 1, 1) as cabin_type from titanik_test_1 UNION select id, pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, ticket_type, ticket_number, regexp_matches(cabin, '^\s*?([AZ]\d*)\s*?([AZ]\d*)\s*?$') as m, 2 as cnt, substring(cabin, 1, 1) as cabin_type from titanik_test_1 UNION select id, pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, ticket_type, ticket_number, regexp_matches(cabin, '^\s*?([AZ]\d*)\s*?$') as m, 1 as cnt, substring(cabin, 1, 1) as cabin_type from titanik_test_1 UNION select id, pclass,"name",sex,age,sibsp,parch,ticket,fare,cabin,embarked, ticket_type, ticket_number, NULL as m, 0 as cnt, NULL as cabin_type from titanik_test_1 where cabin ISNULL) as a; 

рдФрд░ рджреВрд╕рд░рд╛ рднрд╛рдЧ:
 select a.*, b.cnt as cabin_people_cnt into titanik_test_3 from titanik_test_2 a, ( select cabin as cabid, count(id) as cnt from titanik_test_1 group by 1) as b where a.cabin = b.cabid OR (a.cabin ISNULL AND b.cabid ISNULL); 

рдПрдХ рдлрд╝реАрд▓реНрдб рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛: рдкреЛрд░реНрдЯ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛:
 select embarked, count(id) from titanik_train_3 group by 1 order by 1 asc; select embarked, count(id) from titanik_test_3 group by 1 order by 1 asc; 

рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ - рдХреЛрдИ рдбрдмрд▓реНрд╕ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЬреБрджрд╛рдИ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ:
рд╢реБрд░реВрдЧрд┐рдирддреА
рд╕реА168
рдХреНрдпреВ77
рдПрд╕644
2

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

рдирд┐рд╖реНрдХрд░реНрд╖

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

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

рдЕрджреНрдпрддрди
рднрд╛рдЧ рддреАрди: habrahabr.ru/post/165283
рднрд╛рдЧ рдЪрд╛рд░: habrahabr.ru/post/173819

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


All Articles