CodeGym/рдЕрднреНрдпрд╛рд╕рдХреНрд░рдо/SQL & Hibernate/рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ

рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ

рдЙрдкрд▓рдмреНрдз

рд╕рд╛рд░рдгреНрдпрд╛рдВрдЪреА рдЕрд░реНрдердкреВрд░реНрдг рдирд┐рд░реНрдорд┐рддреА

рдорд╛рдЧреАрд▓ рд▓реЗрдХреНрдЪрд░реНрд╕рдордзреНрдпреЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рдереЛрдбреАрд╢реА рдУрд│рдЦ рдЭрд╛рд▓реА рдЖрд╣реЗ, рдЖрддрд╛ рдпрд╛ рд╡рд┐рд╖рдпрд╛рдд рдЕрдзрд┐рдХ рдЦреЛрд▓рд╡рд░ рдЬрд╛рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ.

рд╕рд╛рд░рдгреА рддрдпрд╛рд░ рдХрд░рдгреЗ рд╣реЗ рдЬрд╛рд╡рд╛рдордзреНрдпреЗ рд╡рд░реНрдЧ рдШреЛрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рд░рдЦреЗрдЪ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдд рд╣рд╛ рдирдореБрдирд╛ рдЖрд╣реЗ:

CREATE TABLE table_name (
	column1 datatype,
	column2 datatype,
	column3 datatype,
   ....
);

рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрд╕рд╣ рдПрдХ рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рдгрд╛рд░реА рдХреНрд╡реЗрд░реА рд▓рд┐рд╣реВрдпрд╛:

CREATE TABLE user (
	id INT,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

рд╣реЗ рдЕрдЧрджреА рд╕реЛрдкреЗ рджрд┐рд╕рддреЗ, рдХрд╛рд░рдг рдпреЗрдереЗ рдмрд░реНрдпрд╛рдЪ рдмрд╛рд░рдХрд╛рд╡реЗ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛ рдЬрд╛рдд рдирд╛рд╣реАрдд.

рдкреНрд░рдердо, рдЯреЗрдмрд▓рдордзреНрдпреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЕрд╕реВ рд╢рдХрддрд╛рдд.

рдЖрдгрд┐ рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдВрднрд╛рдд рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдЕрд╕реВ рд╢рдХрддрд╛рдд.

рдЖрдгрд┐ рдЖрдореНрд╣реА рдХреЙрд▓рдо рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕реЗрдЯрд┐рдВрдЧрд╕рд╣ рдкреНрд░рд╛рд░рдВрдн рдХрд░реВ.

рдЯреЗрдмрд▓рдордзреАрд▓ рдХрд│рд╛

рдирд╛рд╡ рдЖрдгрд┐ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░рд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЯреЗрдмрд▓ рдХреЙрд▓рдордордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рджреЗрдЦреАрд▓ рдЕрд╕реВ рд╢рдХрддрд╛рдд:

рдкреНрд░рд╛рдердорд┐рдХ рдХрд│ рд╕реНрддрдВрдн рд╣реА рдЯреЗрдмрд▓рдЪреА рдХрд┐рд▓реНрд▓реА рдЖрд╣реЗ
рдпреБрдирд┐рдХ рдХреА рд╕рд░реНрд╡ рд╕реНрддрдВрдн рдореВрд▓реНрдпреЗ рдЕрджреНрд╡рд┐рддреАрдп рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдбреАрдлреЙрд▓реНрдЯ рдореВрд▓реНрдп рдбреАрдлреЙрд▓реНрдЯ рдореВрд▓реНрдп
рд╢реВрдиреНрдп рдирд╛рд╣реА NULL рдореВрд▓реНрдп рд╕реНрд╡реАрдХрд╛рд░рдгреНрдпрд╛рд╕ рдкреНрд░рддрд┐рдмрдВрдз
AUTO_INCREMENT рдЬреЗрд╡реНрд╣рд╛ рдЯреЗрдмрд▓рдордзреНрдпреЗ рдирд╡реАрди рд░реЗрдХреЙрд░реНрдб рдЬреЛрдбрд▓рд╛ рдЬрд╛рддреЛ рддреЗрд╡реНрд╣рд╛ SQL рд╕рд░реНрд╡реНрд╣рд░ рдЖрдкреЛрдЖрдк рдореВрд▓реНрдп рд╡рд╛рдврд╡реЗрд▓
рд╡реНрдпреБрддреНрдкрдиреНрди рдЧрдгрдирд╛ рдХреЗрд▓реЗрд▓реЗ рдлреАрд▓реНрдб
рд╕реНрдЯреЛрд░реЗрдЬ рдбреЗрдЯрд╛ рдХреБрдареЗ рд╕рд╛рдард╡рд╛рдпрдЪрд╛: рдбрд┐рд╕реНрдХрд╡рд░ рдХрд┐рдВрд╡рд╛ рдореЗрдорд░реАрдордзреНрдпреЗ
рдЯрд┐рдкреНрдкрдгреА рд╕реНрддрдВрдн рдЯрд┐рдкреНрдкрдгреА, рдЙрджрд╛. рд╕реНрдерд╛рдирд┐рдХ рднрд╛рд╖реЗрддреАрд▓ рд╢реАрд░реНрд╖рдХ

рдЦрд╛рд▓реА рдЖрдореНрд╣реА рддреНрдпрд╛рдкреИрдХреА рдХрд╛рд╣реА рдкрд╛рд╣реВ.

рдкреНрд░рдердо, рддреА рдкреНрд░рд╛рдердорд┐рдХ рдХреА рдЖрд╣реЗ .

рдмрд░реНтАНрдпрд╛рдЪрджрд╛, рд╣рд╛ рдЖрдпрдбреА рдирд╛рд╡рд╛рдЪрд╛ рдЖрдгрд┐ INT рдкреНрд░рдХрд╛рд░рд╛рд╕рд╣ рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕реНрддрдВрдн рдЕрд╕рддреЛ. рд╣реА рдЯреЗрдмрд▓рдЪреА рддрдерд╛рдХрдерд┐рдд "рдорд╛рд╕реНрдЯрд░ рдХреА" рдЖрд╣реЗ рдЖрдгрд┐ рддрд┐рдЪреНрдпрд╛ рд╕рд░реНрд╡ рдкрдВрдХреНрддреАрдВрдордзреНрдпреЗ рдпрд╛ рдХреАрд╕рд╛рдареА рдЕрджреНрд╡рд┐рддреАрдп рдореВрд▓реНрдпреЗ рдЖрд╣реЗрдд. рд╣реЗ рдкреНрд░рд╛рдореБрдЦреНрдпрд╛рдиреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ рдЬреЗрдгреЗрдХрд░реВрди рдЗрддрд░ рд╕рд╛рд░рдгреНрдпрд╛ рдЖрдордЪреНрдпрд╛ рдЯреЗрдмрд▓рдЪреНрдпрд╛ рд░реЗрдХреЙрд░реНрдбрдЪрд╛ рд╕рдВрджрд░реНрдн рдШреЗрдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реЗрдХреЙрд░реНрдбрдХрдбреЗ рдирд┐рд░реНрджреЗрд╢ рдХрд░реВ рд╢рдХрддрд╛рдд.

рджреБрд╕рд░реА рдпреБрдирд┐рдХ рдХреА рдЖрд╣реЗ .

рдХрд╛рд╣реА рдорд╛рд░реНрдЧрд╛рдВрдиреА, рддреА рдкреНрд░рд╛рдердорд┐рдХ рдХреА рд╕рд╛рд░рдЦреАрдЪ рдЖрд╣реЗ, рдЬрд░реА рддрд┐рдЪрд╛ рдЕрд░реНрдердкреВрд░реНрдг рднрд╛рд░ рдкреВрд░реНрдгрдкрдгреЗ рднрд┐рдиреНрди рдЖрд╣реЗ. рдЬрд░ рдПрдЦрд╛рджреНрдпрд╛ рд╕реНрддрдВрднрд╛рдд UNIQUE рд╡рд┐рд╢реЗрд╖рддрд╛ рдЕрд╕реЗрд▓, рддрд░ рддреНрдпрд╛ рд╕реНрддрдВрднрд╛рддреАрд▓ рд╕рд░реНрд╡ рдореВрд▓реНрдпреЗ рдЕрджреНрд╡рд┐рддреАрдп рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. UNIQUE KEY рдЖрдгрд┐ PRIMARY KE рдордзреАрд▓ рдлрд░рдХрд╛рдЪреЗ рдЙрддреНрддрдо рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгрдЬреЗ рдкрд╛рд╕рдкреЛрд░реНрдЯ рдХрд╛рд░реНрдпрд╛рд▓рдпрд╛рддреАрд▓ рд▓реЛрдХрд╛рдВрдЪреА рдпрд╛рджреА.

рдХрд░ рдХреНрд░рдорд╛рдВрдХ рд╣реА рдкреНрд░рд╛рдердорд┐рдХ рдХреА рдЖрд╣реЗ, рддреА рдЗрддрд░ рд╕рд╛рд░рдгреНрдпрд╛рдВрдордзреВрди рдпреЛрдЧреНрдп рд╡реНрдпрдХреНрддреАрдЪрд╛ рд╕рдВрджрд░реНрдн рдШреЗрдгреЗ рд╕реЛрдкреЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ.

рдкрд╛рд╕рдкреЛрд░реНрдЯ рдХреНрд░рдорд╛рдВрдХ рд╣реА рдПрдХ рдпреБрдирд┐рдХ рдХреА рдЖрд╣реЗ. рдХреЛрдгрддреНрдпрд╛рд╣реА рджреЛрди рд╡реНрдпрдХреНрддреАрдВрдЪрд╛ рдкрд╛рд╕рдкреЛрд░реНрдЯ рдХреНрд░рдорд╛рдВрдХ рд╕рдорд╛рди рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА. рдорд╛рддреНрд░, рдкрд╛рд╕рдкреЛрд░реНрдЯ рдХреНрд░рдорд╛рдВрдХ рдмрджрд▓рддрд╛ рдпреЗрддреЛ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдбрдирд╛рд╡ рдмрджрд▓рддрд╛рдирд╛. рдЖрдгрд┐ рдХрд░ рдХреНрд░рдорд╛рдВрдХ рдХрд╛рдпрдо рддреБрдордЪреНрдпрд╛рд╕реЛрдмрдд рд░рд╛рд╣реАрд▓. рд╣реЗ PRIMARY KEY рдЪреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЖрд╣реЗ. рдкреНрд░рд╛рдердорд┐рдХ рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдХреНрд╡реЗрд░реАрдЪреЗ рдЙрджрд╛рд╣рд░рдг:

CREATE TABLE user (
	id INT PRIMARY KEY,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ

рдХрдореА рдорд╣рддреНрд╡рд╛рдЪреЗ рдкрдг рдЙрдкрдпреБрдХреНрдд рдЧреБрдгрдзрд░реНрдо рдЖрд╣реЗрдд.

DEFAUL рдореВрд▓реНрдп

рдЯреЗрдмрд▓рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдШрд╛рд▓рддрд╛рдирд╛ (рдирд╡реАрди рдкрдВрдХреНрддреА рдЬреЛрдбрддрд╛рдирд╛), рдХрд╛рд╣реА рд╕реНрддрдВрднрд╛рдВрдЪреА рдореВрд▓реНрдпреЗ рдбреАрдлреЙрд▓реНрдЯ рдореВрд▓реНрдп рдЕрд╕рд▓реНрдпрд╛рд╕ рддреБрдореНрд╣реА рд╕реЛрдбреВ рд╢рдХрддрд╛. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, SQL рд╕рд░реНрд╡реНрд╣рд░ рдлрдХреНрдд рд╕реНрддрдВрднрд╛рдЪреЗ рдореВрд▓реНрдп рд╕реЗрдЯ рдХрд░реЗрд▓.

MySQL рдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреА 8 рдкрд╛рд╕реВрди рдкреНрд░рд╛рд░рдВрдн рдХрд░реВрди, рддреБрдореНрд╣реА рдореВрд▓реНрдп рдореНрд╣рдгреВрди рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛.

рд╢реВрдиреНрдп рдирд╛рд╣реА

рдЯреЗрдмрд▓ рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛ рддреБрдореНрд╣реА рд╕реНрддрдВрднрд╛рд╕рд╛рдареА NOT NULL рд╡рд┐рд╢реЗрд╖рддрд╛ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рд╕, SQL рд╕рд░реНрд╡реНрд╣рд░ рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрд▓ рдХреА рдпрд╛ рд╕реНрддрдВрднрд╛рдд NULL рдореВрд▓реНрдп рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреЗ рдЕрд╢рдХреНрдп рдЖрд╣реЗ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реНрддрдВрднрд╛рдд NULL рдореВрд▓реНрдп рдЕрд╕реВ рд╢рдХрддреЗ, рдЕрдЧрджреА INT рд╕реНрддрдВрдн рджреЗрдЦреАрд▓. рдЬреЗ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░рд╕рд╛рдареА рдереЛрдбреЗ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ.

AUTO_INCREMENT

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

AUTO_INCREMENT рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЗрдЪ рдХрд░рддреЗ. рдирд╡реАрди рдкрдВрдХреНрддреА рдЬреЛрдбрддрд╛рдирд╛, рдЖрдореНрд╣реА рдлрдХреНрдд рдЖрдпрдбреА рдореНрд╣рдгреВрди рдХрд╛рд╣реАрд╣реА рдкрд╛рд╕ рдХрд░рдд рдирд╛рд╣реА рдЖрдгрд┐ SQL рд╕рд░реНрд╡реНрд╣рд░ рдпрд╛ рд░реЗрдХреЙрд░реНрдбрд╕рд╛рдареА рдпреЛрдЧреНрдп рдЖрдпрдбреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрд▓: рддреЛ рдлрдХреНрдд рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рд╡рд┐рджреНрдпрдорд╛рди рд░реЗрдХреЙрд░реНрдбрдЪрд╛ рдЖрдпрдбреА рдШреЗрдИрд▓ рдЖрдгрд┐ рддреЛ 1 рдиреЗ рд╡рд╛рдврд╡реЗрд▓. рд╣реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдлрдХреНрдд рдЕрд╕реВ рд╢рдХрддреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдЖрдгрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдХрд╛рд░рд╛рдВрд╕рд╣ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рдЖрдгрд┐, рдЕрд░реНрдерд╛рддрдЪ, рдЕрд╢реА рд╕рд╛рд░рдгреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╡реВрдпрд╛:

CREATE TABLE user (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(100) NOT NULL,
	level INT DEFAULT 1,
	created_date DATE NOT NULL,
);
рдЯрд┐рдкреНрдкрдгреНрдпрд╛
  • рд▓реЛрдХрдкреНрд░рд┐рдп
  • рдирд╡реАрди
  • рдЬреБрдиреЗ
рдЯрд┐рдкреНрдкрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╕рд╛рдИрди рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
рдпрд╛ рдкрд╛рдирд╛рд╡рд░ рдЕрдЬреВрди рдХреЛрдгрддреНрдпрд╛рд╣реА рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдирд╛рд╣реАрдд