рдПрдХ рдЕрд╕реНрдкрддрд╛рд▓ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрд╣рд╛рдБ рдорд░реАрдЬреЛрдВ рдХреА рдПрд▓рд░реНрдЬреА рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЦрд╛рд▓реА рдирд╣реАрдВ рдЫреЛрдбрд╝реА рдЬрд╛ рд╕рдХрддреА, рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рддреНрддреАрдп рдкреНрд░рдгрд╛рд▓реА рдХреА рдЬрд╣рд╛рдБ рд▓реЗрди-рджреЗрди рдХреА рд░рд╛рд╢рд┐ рд╣рдореЗрд╢рд╛ рдзрдирд╛рддреНрдордХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдФрд░ рдЕрдирдЧрд┐рдирдд рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдЯреАрдХ, рд╕реБрд╕рдВрдЧрдд рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рддреЗ рд╣реИрдВред┬а
SQL рдореЗрдВ, рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рд╡реЗ рдирд┐рдпрдо рд╣реИрдВ рдЬреЛ рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреЗрдмрд▓реНрд╕ рдкрд░ рдбреЗрдЯрд╛ рдЧреБрдгрд╡рддреНрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдпреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдбреЗрдЯрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░реЗред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо SQL рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╛рдЦреНрдпрд╛рдУрдВ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдордЭреЗрдВрдЧреЗ, рддрд╛рдХрд┐ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд╣рдо PostgreSQL рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рдЕрдиреНрдп SQL рдбрд╛рдпрд▓реИрдХреНрдЯреНрд╕ рдкрд░ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред
рдпрджрд┐ рдЖрдк SQL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ SQL рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВред
SQL рдореЗрдВ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреНрдпрд╛ рд╣реИрдВ?
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЯреЗрдмрд▓ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред рдХреБрдЫ рдбреЗрдЯрд╛, рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЖрдпреБ, рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рди рд╣реЗрддреБ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреЗрдмрд▓ рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреЙрд▓рдо рдкрд░ рдПрдХ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рдХрд┐ рдЗрд╕ рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдПрдВрдЯреНрд░реА рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рд╣реЛред
рд╕рд╛рд░ рд░реВрдк рдореЗрдВ, рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдЗрди рдмрд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ:
- рдбреЗрдЯрд╛ рдХреЗ рдЧрд╛рдпрдм рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ред
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рдорд╛рди рд╕реАрдорд╛рдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗред
- рд╡рд┐рднрд┐рдиреНрди рдЯреЗрдмрд▓реНрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдмреАрдЪ рдЙрдЪрд┐рдд рд▓рд┐рдВрдХ рдмрдирд╛рдП рд░рдЦрдирд╛ред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо SQL рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ:
PRIMARY KEY: рдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИред
NOT NULL: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓рдо рдореЗрдВ NULL рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред
UNIQUE: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЙрд▓рдо рдпрд╛ рдХреЙрд▓рдореЛрдВ рдХреЗ рд╕рдореВрд╣ рдореЗрдВ рд╕рднреА рдорд╛рди рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдВред
DEFAULT: рдЬрдм рдХреЛрдИ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рддреЛ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
CHECK: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЙрд▓рдо рдХреЗ рд╕рднреА рдорд╛рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╢рд░реНрдд рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред
FOREIGN KEY: рдХрд┐рд╕реА рдЕрдиреНрдп рдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рд╛рдЗрдорд░реА рдХреА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдХреЗ рдЯреЗрдмрд▓реНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕реНрдЯрдбреА рдХреЗрд╕: рдпреВрдирд┐рд╡рд░реНрд╕рд┐рдЯреА рдбреЗрдЯрд╛рдмреЗрд╕
рдЖрдЗрдП рдПрдХ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддреАрди рдЯреЗрдмрд▓реНрд╕ рд╣реИрдВ: students, courses, рдФрд░ enrollmentsред
Students рдЯреЗрдмрд▓
students рдЯреЗрдмрд▓ рдореЗрдВ рд╕рднреА рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдЫрд╛рддреНрд░реЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред
student_id: рдЫрд╛рддреНрд░ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛
first_name: рдЫрд╛рддреНрд░ рдХрд╛ рдкрд╣рд▓рд╛ рдирд╛рдоред
last_name: рдЫрд╛рддреНрд░ рдХрд╛ рдЕрдВрддрд┐рдо рдирд╛рдоред
email: рдЫрд╛рддреНрд░ рдХрд╛ рдИрдореЗрд▓ рдкрддрд╛ред
major: рдЫрд╛рддреНрд░ рдХрд╛ рдкреНрд░рдореБрдЦ рд╡рд┐рд╖рдп (рдореЗрдЬрд░)ред
enrollment_year: рд╡рд╣ рд╡рд░реНрд╖ рдЬрд┐рд╕рдореЗрдВ рдЫрд╛рддреНрд░ рдиреЗ рдирд╛рдорд╛рдВрдХрди рдХрд┐рдпрд╛ред
Courses рдЯреЗрдмрд▓
courses рдЯреЗрдмрд▓ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред
course_id: рдХреЛрд░реНрд╕ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред
course_name: рдХреЛрд░реНрд╕ рдХрд╛ рдирд╛рдоред
department: рдХреЛрд░реНрд╕ рдХрд╛ рд╡рд┐рднрд╛рдЧред
Enrollments рдЯреЗрдмрд▓
enrollments рдЯреЗрдмрд▓ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрддреА рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЫрд╛рддреНрд░ рдХрд┐рди рдХреЛрд░реНрд╕реЗрдЬ рдореЗрдВ рдирд╛рдорд╛рдВрдХрд┐рдд рд╣реИрдВред
student_id: рдХреЛрд░реНрд╕ рдореЗрдВ рдирд╛рдорд╛рдВрдХрд┐рдд рдЫрд╛рддреНрд░ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред
course_id: рдХреЛрд░реНрд╕ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ред
year: рдирд╛рдорд╛рдВрдХрди рд╡рд░реНрд╖ред
grade: рдЗрд╕ рдХреЛрд░реНрд╕ рдореЗрдВ рдЫрд╛рддреНрд░ рдХрд╛ рдЧреНрд░реЗрдбред
is_passing_grade: рдПрдХ рдмреВрд▓рд┐рдпрди рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░реЗрдб рдкрд╛рд╕рд┐рдВрдЧ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдкреВрд░реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрд╕реА рдЙрджрд╛рд╣рд░рдг рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдбреЗрдЯрд╛ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рджрд┐рдЦрд╛рдПрдБрдЧреЗред рд╣рдо рдЕрдкрдиреА рдХреНрд╡реЗрд░реАрдЬрд╝ рдореЗрдВ PostgreSQL рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рдЕрдиреНрдп SQL рдлреНрд▓реЗрд╡рд░реНрд╕ рдкрд░ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред
PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдФрд░ рдЕрдВрддрд┐рдо рдирд╛рдо рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЬреИрд╕реЗ рдирд╛рдо рд╡рд╛рд▓реЗ рдЫрд╛рддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕реА рддрд░рд╣, рдИрдореЗрд▓ рдкрддреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рднреА рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЫрд╛рддреНрд░ рдЕрдкрдиреЗ рдИрдореЗрд▓ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реМрдВрдкрдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо student_id рдХреЙрд▓рдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо student_id рдХреЙрд▓рдо рдкрд░ PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХрд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛред
рдпрд╣ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ CREATE TABLE рдХрдорд╛рдВрдб рдореЗрдВ, рдХреЙрд▓рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рдж рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ:
CREATE TABLE students (
student_id INT PRIMARY KEY,
first_name TEXT,
last_name TEXT,
email TEXT,
major TEXT,
enrollment_year INT
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдКрдкрд░ рджреА рдЧрдИ рдХреНрд╡реЗрд░реА рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЧрдП рдЫрд╣ рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде student рдЯреЗрдмрд▓ рдмрдирд╛рддреА рд╣реИред
PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐:
- рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХрд╛ рдПрдХ
student_id рд╣реЛред
- рдкреНрд░рддреНрдпреЗрдХ
student_id рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛред
рдХрдИ рдХреЙрд▓рдо рдкрд░ PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдХрдИ рдХреЙрд▓рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, enrollments рдЯреЗрдмрд▓ рдореЗрдВ рдПрдХ рдЫрд╛рддреНрд░ рдХрдИ рдХреЛрд░реНрд╕реЗрдЬ рдореЗрдВ рдирд╛рдорд╛рдВрдХрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рд╣реА student_id рд╡рд╛рд▓реА рдХрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕реА рддрд░рд╣, рдПрдХ рдХреЛрд░реНрд╕ рдореЗрдВ рдХрдИ рдЫрд╛рддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рд╣реА course_id рд╡рд╛рд▓реА рдХрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрди рд╕рдХрддреА рд╣реИрдВред
рдЪреВрдБрдХрд┐ рдХреЛрдИ рдПрдХрд▓ рдлрд╝реАрд▓реНрдб рдХрд┐рд╕реА рдкрдВрдХреНрддрд┐ рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдирд╛рдорд╛рдВрдХрди рд░рд┐рдХреЙрд░реНрдб student_id, course_id рдФрд░ year рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдЬрдм рдХрдИ рдХреЙрд▓рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ CREATE TABLE рдХрдорд╛рдВрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рджреА рдЬрд╛рддреА рд╣реИред
CREATE TABLE enrollments (
student_id INT,
course_id INT,
year INT,
grade INT,
is_passing_grade BOOLEAN,
PRIMARY KEY (student_id, course_id, year)
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЯреЗрдмрд▓ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕
рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рд╣рдордиреЗ рдЕрднреА рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕реЗ рдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдЯреЗрдмрд▓ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЧрдПред рдЖрдк ALTER TABLE рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:
ALTER TABLE enrollments
ADD CONSTRAINT enroll_pk
PRIMARY KEY (student_id, course_id, year);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
ALTER TABLE рдХреНрд╡реЗрд░реА рдореЗрдВ, рд╣рдордиреЗ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХрд╛ рдирд╛рдо enroll_pk рд░рдЦрд╛ рд╣реИ (enrollment primary key рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк)ред рдпрд╣ рдирд╛рдо рдЖрдкрдХреА рдкрд╕рдВрдж рдХрд╛ рдХреЛрдИ рднреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд▓рд╛рд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╛рдо рдЪреБрдиреЗрдВ рдЬреЛ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд░реЗред
рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХрд╛ рдирд╛рдордХрд░рдг рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдХрдИ рд▓рд╛рдн рдорд┐рд▓рддреЗ рд╣реИрдВ:
- рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдпрд╛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреЗ рдкреНрд░рдмрдВрдзрди рдФрд░ рд╕рдВрдЧрдарди рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓рддреА рд╣реИ, рд╡рд┐рд╢реЗрд╖рдХрд░ рдЙрди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬрд╣рд╛рдБ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИред
NOT NULL рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдЫрд╛рддреНрд░ рдХрд╛ рдирд╛рдо рдФрд░ рдИрдореЗрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджрд░реНрдЬ рд╣реЛред рд╡реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рд╕реНрдЯрд╛рдл рдЧрд▓рддреА рд╕реЗ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдлрд╝реАрд▓реНрдб рдХреЛ рдЫреЛрдбрд╝ рджреЗред
рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдЗрди рддреАрди рдХреЙрд▓рдореЛрдВ рдкрд░ NOT NULL рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
CREATE TABLE students (
student_id INT,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT NOT NULL,
major TEXT,
enrollment_year INT
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдКрдкрд░ рджреА рдЧрдИ рдХреНрд╡реЗрд░реА NOT NULL рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐ first_name, last_name рдФрд░ email рдХреЙрд▓рдо рдореЗрдВ NULL (рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд) рдорд╛рди рди рд╣реЛ рд╕рдХреЗрдВред
рдореМрдЬреВрджрд╛ рдЯреЗрдмрд▓ рдореЗрдВ NOT NULL рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЬреЛрдбрд╝рдирд╛ ALTER TABLE рдХрдорд╛рдВрдб рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред NOT NULL рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
ALTER TABLE students
ALTER COLUMN first_name SET NOT NULL,
ALTER COLUMN last_name SET NOT NULL,
ALTER COLUMN email SET NOT NULL;рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
UNIQUE рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдИрдореЗрд▓ рдкрддреЗ рд╕реНрд╡рднрд╛рд╡рддрдГ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрддреЗ рд╣реИрдВред рдЬрд╣рд╛рдБ рд╣рдореЗрдВ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХрднреА рднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣рд╛рдБ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрддрд░ рдкрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИред рдЗрд╕рд╕реЗ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддреА рд╣реИред
рдпрд╣ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЕрдиреНрдп рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреА рддрд░рд╣ рд╣реА рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИред
CREATE TABLE students (
...
email TEXT UNIQUE,
...
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо NOT NULL рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рднреА рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд╣реА рдХреЙрд▓рдо рдкрд░ рд╕реНрдкреЗрд╕ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдХреЗ рдХрдИ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:┬а
CREATE TABLE students (
...
email TEXT UNIQUE NOT NULL,
...
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреНрд░рдо рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛, рд╣рдо NOT NULL UNIQUE рднреА рд▓рд┐рдЦ рд╕рдХрддреЗ рдереЗред
рдореМрдЬреВрджрд╛ рдЯреЗрдмрд▓ рдореЗрдВ UNIQUE рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЬреЛрдбрд╝рдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
ALTER TABLE students
ADD CONSTRAINT unique_emails UNIQUE (email);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдХрдИ рдХреЙрд▓рдореЛрдВ рдкрд░ UNIQUE рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ courses рдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЧ рдХреЗ рднреАрддрд░ рдХреЛрд░реНрд╕ рдХрд╛ рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, course_name рдФрд░ department рдХреЙрд▓рдо рдПрдХ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
рдЬрдм рдХрдИ рдХреЙрд▓рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ CREATE TABLE рдХрдорд╛рдВрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИ:
CREATE TABLE courses (
course_id INT,
course_name TEXT,
department TEXT,
UNIQUE (course_name, department)
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рдореМрдЬреВрджрд╛ рдЯреЗрдмрд▓ рдХреЛ рдмрджрд▓рдХрд░ рднреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХреЙрд▓рдореЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЯрдкрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:
ALTER TABLE courses
ADD CONSTRAINT unique_course_name_department
UNIQUE (course_name, department);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
NOT NULL UNIQUE рдмрдирд╛рдо PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕┬а
рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐ PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЕрджреНрд╡рд┐рддреАрдпрддрд╛ рднреА рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ рдФрд░ рдпрд╣ рднреА рдХрд┐ рдорд╛рди рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рддреЛ рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдирдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ:
course_id INT PRIMARY KEYрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
course_id INT UNIQUE NOT NULLрд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдХрд┐рд╕реА рдЯреЗрдмрд▓ рдкрд░ NOT NULL UNIQUE рдФрд░ PRIMARY KEY рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдЙрдирдХреЗ рдкреНрд░рдпреЛрдЬрди рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИред┬а
рд╣рд╛рд▓рд╛рдБрдХрд┐ рджреЛрдиреЛрдВ рдХрд┐рд╕реА рдХреЙрд▓рдо(рдЬрд╝) рдкрд░ рдЕрджреНрд╡рд┐рддреАрдпрддрд╛ рдФрд░ рдиреЙрди-рдирд▓рд╛рдмрд┐рд▓рд┐рдЯреА рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдЯреЗрдмрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ PRIMARY KEY рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рд╣реИред
рджреВрд╕рд░реА рдУрд░, NOT NULL UNIQUE рдХрд╛ рд╕рдВрдпреЛрдЬрди рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓рдореЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдмрд┐рдирд╛ NULL рдорд╛рдиреЛрдВ рдХреЗ рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рди рд▓рд╛рдЧреВ рд╣реЛрдВ, рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдмрдирд╛рдП рд░рдЦрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЯреЗрдмрд▓ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ NOT NULL UNIQUE рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рджреЛрдиреЛрдВ рдХреЗ рд╣реЛрдиреЗ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдпрддрд╛ рдФрд░ рдбреЗрдЯрд╛ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╕рдВрднрд╡ рд╣реЛрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдХрд┐рд╕реА рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдЯреЗрдмрд▓ рдХреЗ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг, рдЕрджреНрд╡рд┐рддреАрдп рдЧреБрдгреЛрдВ рдХреЗ рдмреАрдЪ рднреЗрдж рднреА рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред
DEFAULT рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдЕрдкрдирд╛ рдореЗрдЬрд░ рдЪреБрдирдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рди рдЫрд╛рддреНрд░реЛрдВ рдиреЗ рдЕрднреА рдЕрдкрдирд╛ рдореЗрдЬрд░ рдирд╣реАрдВ рдЪреБрдирд╛ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП major рдХреЙрд▓рдо рдХрд╛ рдорд╛рди тАЩUndeclaredтАЩ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо DEFAULT рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдХреЙрд▓рдо рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо students рдЯреЗрдмрд▓ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
ALTER TABLE students
ALTER COLUMN major SET DEFAULT 'Undeclared';рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдпрджрд┐ рд╣рдо рдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╕рдордп рд╣реА DEFAULT рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ, рддреЛ рдЗрд╕реЗ рдХреЙрд▓рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рдж рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
CREATE TABLE students (
...
major TEXT DEFAULT 'Undeclared',
...
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
CHECK рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдЧреНрд░реЗрдб 0 рд╕реЗ 100 рддрдХ рд╣реЛрддреЗ рд╣реИрдВред рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХреЗ, enrollment рдЯреЗрдмрд▓ рдХрд╛ grade рдХреЙрд▓рдо рдХреЛрдИ рднреА рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдо CHECK рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдорд╛рди 0 рдФрд░ 100 рдХреЗ рдмреАрдЪ рд╕реАрдорд┐рдд рд░рд╣реЗрдВред
ALTER TABLE enrollments
ADD CONSTRAINT grade_range CHECK (grade BETWEEN 0 AND 100);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, CHECK рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рд╣рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд░реНрддреЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдХрд░рдиреЗ рджреЗрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдкреВрд░рд╛ рдХрд░реЗред рдпреЗ рдбреЗрдЯрд╛ рдХреА рд╕реБрд╕рдВрдЧрддрд┐ рдФрд░ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред
рдПрдХ CHECK рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреЙрд▓рдо рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ рдХрд┐ grade рдФрд░ is_passing_grade рдХреЗ рдорд╛рди рдЖрдкрд╕ рдореЗрдВ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдЧреНрд░реЗрдб рдкрд╛рд╕рд┐рдВрдЧ рд╣реИ рдпрджрд┐ рдЙрд╕рдХрд╛ рдорд╛рди рдХрдо рд╕реЗ рдХрдо 60 рд╣реИред рддрдм рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ is_passing_grade рддрдм рдФрд░ рдХреЗрд╡рд▓ рддрдм TRUE рд╣реЛ рдЬрдм рдЧреНрд░реЗрдб рдХрдо рд╕реЗ рдХрдо 60 рд╣реЛред рдЖрдЗрдП рдЗрд╕реЗ рдЯреЗрдмрд▓ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдХрд░реЗрдВ рддрд╛рдХрд┐ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ CHECK рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ CREATE TABLE рдХрдорд╛рдВрдб рдореЗрдВ рдХреИрд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:
CREATE TABLE enrollments (
...
grade INT,
is_passing_grade BOOLEAN,
CONSTRAINT grade_check CHECK (grade BETWEEN 0 AND 100),
CONSTRAINT is_passing_grade CHECK (
(grade >= 60 AND is_passing_grade = TRUE) OR
(grade < 60 AND is_passing_grade = FALSE)
)
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдЫрд╛рддреНрд░ рдХрд┐рд╕реА рдХреЛрд░реНрд╕ рдореЗрдВ рдирд╛рдорд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЕрднреА рдЧреНрд░реЗрдб рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЧреНрд░реЗрдб рдкрд░ NULL рдорд╛рдиреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдкрд╛рд╕рд┐рдВрдЧ рдЧреНрд░реЗрдб рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЧреНрд░реЗрдб рдЕрднреА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╡рд╣ рднреА NULL рд╣реЛред рдЗрдиреНрд╣реЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХреЛ рдЗрд╕ рддрд░рд╣ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
CREATE TABLE enrollments (
...
grade INT NULL DEFAULT NULL,
is_passing_grade BOOLEAN NULL DEFAULT NULL,
CONSTRAINT grade_check CHECK (grade BETWEEN 0 AND 100),
CONSTRAINT is_passing_grade CHECK (
(grade IS NULL AND is_passing_grade IS NULL) OR
(grade >= 60 AND is_passing_grade = TRUE) OR
(grade < 60 AND is_passing_grade = FALSE)
),
...
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ grade рдФрд░ is_passing_grade рджреЛрдиреЛрдВ рдХреЙрд▓рдореЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ NULL рдЬреЛрдбрд╝рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рд┐рд░реНрдл рдкрдардиреАрдпрддрд╛ рдмрдврд╝рд╛рдирд╛ рд╣реИред
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо CHECK рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рд╕реЗ рдХрд┐рди-рдХрд┐рди рдкреНрд░рдХрд╛рд░ рдХреА рд╢рд░реНрддреЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд░реЗрдВрдЬ (рд╕реАрдорд╛) рд╢рд░реНрддреЗрдВ
рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдХреЙрд▓рдо рдХреЗ рдорд╛рди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╣реЛрдВред
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK (column_name BETWEEN min_value AND max_value);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╕реВрдЪреА рдЖрдзрд╛рд░рд┐рдд рд╢рд░реНрддреЗрдВ
рд╣рдо рдпрд╣ рд╡реИрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдХреЙрд▓рдо рдХрд╛ рдорд╛рди рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛред
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK (column_name IN ('Value1', 'Value2', 'Value3'));рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рддреБрд▓рдирд╛рддреНрдордХ рд╢рд░реНрддреЗрдВ
рд╣рдо рдХрд┐рд╕реА рдХреЙрд▓рдо рдХреЗ рдорд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рджреА рдЧрдИ рд╢рд░реНрдд (рдмрдбрд╝рд╛, рдЫреЛрдЯрд╛, рдЖрджрд┐) рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK (column_name > some_value);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╢рд░реНрддреЗрдВ
рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди (рдЬреИрд╕реЗ LIKE рдпрд╛ SIMILAR TO) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK (column_name LIKE 'pattern');рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рддрд╛рд░реНрдХрд┐рдХ рд╢рд░реНрддреЗрдВ
рд╣рдо рд▓реЙрдЬрд┐рдХрд▓ рдСрдкрд░реЗрдЯрд░ (AND, OR, NOT) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рд╢рд░реНрддреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK (condition1 AND condition2 OR condition3);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╕рдордЧреНрд░ (рдХрдореНрдкреЛрдЬрд╝рд┐рдЯ) рд╢рд░реНрддреЗрдВ
рдХрдИ рдХреЙрд▓рдореЛрдВ рдкрд░ рдПрдХ рд╢рд░реНрдд рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK (column1 + column2 < some_value);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
FOREIGN KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдлреЙрд░реЗрди рдХреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рдЯреЗрдмрд▓реНрд╕ рдХреЗ рдХреЙрд▓рдореЛрдВ рдХреЛ рдЖрдкрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рдХреА рд░реЗрдлрд░реЗрдВрд╢рд┐рдпрд▓ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗред рдореВрд▓ рд░реВрдк рд╕реЗ, рдПрдХ рдЯреЗрдмрд▓ рдореЗрдВ рдлреЙрд░реЗрди рдХреА рджреВрд╕рд░реА рдЯреЗрдмрд▓ рдХреА рдкреНрд░рд╛рдЗрдорд░реА рдХреА рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрди рджреЛ рдЯреЗрдмрд▓реНрд╕ рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЖрдкрд╕ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдЗрд╕рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдЯреЗрдмрд▓ рдореЗрдВ рдРрд╕рд╛ рдлреЙрд░реЗрди рдХреА рдорд╛рди рд╡рд╛рд▓рд╛ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдЬрд┐рд╕рдХрд╛ рдорд┐рд▓рд╛рди рд▓рд┐рдВрдХреНрдб рдЯреЗрдмрд▓ рдХреА рдкреНрд░рд╛рдЗрдорд░реА рдХреА рд╡рд╛рд▓реА рдХрд┐рд╕реА рдкрдВрдХреНрддрд┐ рд╕реЗ рди рд╣реЛрддрд╛ рд╣реЛред
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, enrollments рдЯреЗрдмрд▓ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреНрд░рдорд╢рдГ student_id рдФрд░ course_id рдХреЙрд▓рдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рдЫрд╛рддреНрд░ рдФрд░ рдХрд┐рд╕реА рдХреЛрд░реНрд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХреЗ, enrollments рдЯреЗрдмрд▓ рдореЗрдВ рдЗрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдорд╛рдиреЛрдВ рдХреЗ students рдФрд░ courses рдЯреЗрдмрд▓реНрд╕ рдореЗрдВ рдореМрдЬреВрджрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред
enrollments рдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
CREATE TABLE enrollments (
student_id INT,
course_id INT,
...
FOREIGN KEY (student_id) REFERENCES Students(student_id),
FOREIGN KEY (course_id) REFERENCES Courses(course_id)
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрдирдХреЗ рдлреЙрд░реЗрди рдХреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпреЗ рдХреНрд░рдорд╢рдГ students рдФрд░ courses рдЯреЗрдмрд▓реНрд╕ рдореЗрдВ рдкреНрд░рд╛рдЗрдорд░реА рдХреА рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
рдЕрдиреНрдп рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреА рддрд░рд╣, рд╣рдо рдЗрдиреНрд╣реЗрдВ рдЯреЗрдмрд▓ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж рднреА ALTER TABLE рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
ALTER TABLE enrollments
ADD CONSTRAINT fk_student_id
FOREIGN KEY (student_id)
REFERENCES students(student_id);
ALTER TABLE enrollments
ADD CONSTRAINT fk_course_id
FOREIGN KEY (course_id)
REFERENCES courses(course_id);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛
рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджреМрд░рд╛рди, рд╣рдордиреЗ рдХрдИ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рджрд┐рдЦрд╛рдП рдФрд░ рдпрд╣ рднреА рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣рд╛рдБ CREATE TABLE рдХрдорд╛рдВрдб рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬреЛ рдЕрдм рддрдХ рд╕реАрдЦреА рдЧрдИ рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдкрд╣рд▓реЗ, рд╣рдо students рдЯреЗрдмрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ:
CREATE TABLE students (
student_id INT PRIMARY KEY,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
major TEXT DEFAULT 'Undeclared',
enrollment_year INT,
CONSTRAINT year_check CHECK (enrollment_year >= 1900),
CHECK (major IN (
'Undeclared',
'Computer Science',
'Mathematics',
'Biology',
'Physics',
'Chemistry',
'Biochemistry'
))
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдЧрд▓рд╛, рд╣рдо courses рдЯреЗрдмрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ:
CREATE TABLE courses (
course_id INT PRIMARY KEY,
course_name TEXT NOT NULL,
department TEXT NOT NULL,
UNIQUE (course_name, department),
CHECK (department IN (
'Physics & Mathematics',
'Sciences'
))
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рдЕрдВрдд рдореЗрдВ, рд╣рдо enrollments рдЯреЗрдмрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЫрд╛рддреНрд░реЛрдВ рдФрд░ рдХреЛрд░реНрд╕реЗрдЬ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧреА:
CREATE TABLE enrollments (
student_id INT,
course_id INT,
year INT CHECK (year >= 1900),
grade INT NULL DEFAULT NULL,
is_passing_grade BOOLEAN NULL DEFAULT NULL,
CONSTRAINT grade_check CHECK (grade BETWEEN 0 AND 100),
CONSTRAINT is_passing_grade CHECK (
(grade IS NULL AND is_passing_grade IS NULL) OR
(grade >= 60 AND is_passing_grade = TRUE) OR
(grade < 60 AND is_passing_grade = FALSE)
),
FOREIGN KEY (student_id) REFERENCES students(student_id),
FOREIGN KEY (course_id) REFERENCES courses(course_id),
PRIMARY KEY (student_id, course_id, year)
);рд╕рдВрдЪрд╛рд▓рд┐рдд рджреНрд╡рд╛рд░рд╛
рд╣рдордиреЗ рдЗрд╕ рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдЬреЛрдбрд╝реА рд╣реИрдВред рдХрд┐рд╕реА рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рд╡рд┐рднрд╛рдЧреЛрдВ рдФрд░ рдореЗрдЬрд░реНрд╕ рдХрд╛ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, major рдФрд░ department рдХреЙрд▓рдо рдЬрд┐рди рдорд╛рдиреЛрдВ рдХреЛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдХрд╛ рд╕рдореВрд╣ рд╕реАрдорд┐рдд рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реЛрддрд╛ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, CHECK рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ рддрд╛рдХрд┐ рдпреЗ рдХреЙрд▓рдо рдХреЗрд╡рд▓ рдЙрд╕реА рдЬреНрдЮрд╛рдд рд╕реЗрдЯ рдХреЗ рдорд╛рди рд▓реЗ рд╕рдХреЗрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ SQL рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдФрд░ рдЙрдиреНрд╣реЗрдВ PostgreSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд┐рдпрд╛ред рд╣рдордиреЗ рдкреНрд░рд╛рдЗрдорд░реА рдХреА, NOT NULL рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕, UNIQUE рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕, DEFAULT рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕, CHECK рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕, рдФрд░ FOREIGN KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд┐рдПред
рдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕рдордЭрдХрд░, рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреА рд╢реБрджреНрдзрддрд╛, рд╕реБрд╕рдВрдЧрддрд┐ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдЧрдард┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ Database Design рдкрд░ рдпрд╣ рдХреЛрд░реНрд╕ рджреЗрдЦреЗрдВред
рдПрдХ рдЕрд╕реНрдкрддрд╛рд▓ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрд╣рд╛рдБ рдорд░реАрдЬреЛрдВ рдХреА рдПрд▓рд░реНрдЬреА рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЦрд╛рд▓реА рдирд╣реАрдВ рдЫреЛрдбрд╝реА рдЬрд╛ рд╕рдХрддреА, рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рддреНрддреАрдп рдкреНрд░рдгрд╛рд▓реА рдХреА рдЬрд╣рд╛рдБ рд▓реЗрди-рджреЗрди рдХреА рд░рд╛рд╢рд┐ рд╣рдореЗрд╢рд╛ рдзрдирд╛рддреНрдордХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдФрд░ рдЕрдирдЧрд┐рдирдд рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдЯреАрдХ, рд╕реБрд╕рдВрдЧрдд рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рддреЗ рд╣реИрдВред┬а
SQL рдореЗрдВ, рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рд╡реЗ рдирд┐рдпрдо рд╣реИрдВ рдЬреЛ рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреЗрдмрд▓реНрд╕ рдкрд░ рдбреЗрдЯрд╛ рдЧреБрдгрд╡рддреНрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдпреЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдбреЗрдЯрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░реЗред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо SQL рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╛рдЦреНрдпрд╛рдУрдВ рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдордЭреЗрдВрдЧреЗ, рддрд╛рдХрд┐ PostgreSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред рд╣рдо PostgreSQL рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рдЕрдиреНрдп SQL рдбрд╛рдпрд▓реИрдХреНрдЯреНрд╕ рдкрд░ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред
рдпрджрд┐ рдЖрдк SQL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ SQL рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВред
SQL рдореЗрдВ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреНрдпрд╛ рд╣реИрдВ?
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЯреЗрдмрд▓ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИред рдХреБрдЫ рдбреЗрдЯрд╛, рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЖрдпреБ, рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рди рд╣реЗрддреБ рдкрд╛рд╕рд╡рд░реНрдб рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИред рдЗрд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреЗрдмрд▓ рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдХреЙрд▓рдо рдкрд░ рдПрдХ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рдХрд┐ рдЗрд╕ рдЯреЗрдмрд▓ рдХреА рд╣рд░ рдПрдВрдЯреНрд░реА рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рд╣реЛред
рд╕рд╛рд░ рд░реВрдк рдореЗрдВ, рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдЗрди рдмрд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ:
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо SQL рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВрдЧреЗ:
PRIMARY KEY: рдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИредNOT NULL: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓рдо рдореЗрдВ NULL рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗредUNIQUE: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЙрд▓рдо рдпрд╛ рдХреЙрд▓рдореЛрдВ рдХреЗ рд╕рдореВрд╣ рдореЗрдВ рд╕рднреА рдорд╛рди рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдВредDEFAULT: рдЬрдм рдХреЛрдИ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рддреЛ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИредCHECK: рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЙрд▓рдо рдХреЗ рд╕рднреА рдорд╛рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╢рд░реНрдд рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВредFOREIGN KEY: рдХрд┐рд╕реА рдЕрдиреНрдп рдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рд╛рдЗрдорд░реА рдХреА рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдХреЗ рдЯреЗрдмрд▓реНрд╕ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИредрд╕реНрдЯрдбреА рдХреЗрд╕: рдпреВрдирд┐рд╡рд░реНрд╕рд┐рдЯреА рдбреЗрдЯрд╛рдмреЗрд╕
рдЖрдЗрдП рдПрдХ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рддреАрди рдЯреЗрдмрд▓реНрд╕ рд╣реИрдВ:
students,courses, рдФрд░enrollmentsредStudents рдЯреЗрдмрд▓
studentsрдЯреЗрдмрд▓ рдореЗрдВ рд╕рднреА рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдЫрд╛рддреНрд░реЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИредstudent_id: рдЫрд╛рддреНрд░ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛first_name: рдЫрд╛рддреНрд░ рдХрд╛ рдкрд╣рд▓рд╛ рдирд╛рдоредlast_name: рдЫрд╛рддреНрд░ рдХрд╛ рдЕрдВрддрд┐рдо рдирд╛рдоредemail: рдЫрд╛рддреНрд░ рдХрд╛ рдИрдореЗрд▓ рдкрддрд╛редmajor: рдЫрд╛рддреНрд░ рдХрд╛ рдкреНрд░рдореБрдЦ рд╡рд┐рд╖рдп (рдореЗрдЬрд░)редenrollment_year: рд╡рд╣ рд╡рд░реНрд╖ рдЬрд┐рд╕рдореЗрдВ рдЫрд╛рддреНрд░ рдиреЗ рдирд╛рдорд╛рдВрдХрди рдХрд┐рдпрд╛редCourses рдЯреЗрдмрд▓
coursesрдЯреЗрдмрд▓ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИредcourse_id: рдХреЛрд░реНрд╕ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛редcourse_name: рдХреЛрд░реНрд╕ рдХрд╛ рдирд╛рдоредdepartment: рдХреЛрд░реНрд╕ рдХрд╛ рд╡рд┐рднрд╛рдЧредEnrollments рдЯреЗрдмрд▓
enrollmentsрдЯреЗрдмрд▓ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрддреА рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЫрд╛рддреНрд░ рдХрд┐рди рдХреЛрд░реНрд╕реЗрдЬ рдореЗрдВ рдирд╛рдорд╛рдВрдХрд┐рдд рд╣реИрдВредstudent_id: рдХреЛрд░реНрд╕ рдореЗрдВ рдирд╛рдорд╛рдВрдХрд┐рдд рдЫрд╛рддреНрд░ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛редcourse_id: рдХреЛрд░реНрд╕ рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛редyear: рдирд╛рдорд╛рдВрдХрди рд╡рд░реНрд╖редgrade: рдЗрд╕ рдХреЛрд░реНрд╕ рдореЗрдВ рдЫрд╛рддреНрд░ рдХрд╛ рдЧреНрд░реЗрдбредis_passing_grade: рдПрдХ рдмреВрд▓рд┐рдпрди рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░реЗрдб рдкрд╛рд╕рд┐рдВрдЧ рд╣реИ рдпрд╛ рдирд╣реАрдВредрдкреВрд░реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрд╕реА рдЙрджрд╛рд╣рд░рдг рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдбреЗрдЯрд╛ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рджрд┐рдЦрд╛рдПрдБрдЧреЗред рд╣рдо рдЕрдкрдиреА рдХреНрд╡реЗрд░реАрдЬрд╝ рдореЗрдВ PostgreSQL рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рдЕрдиреНрдп SQL рдлреНрд▓реЗрд╡рд░реНрд╕ рдкрд░ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред
PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдФрд░ рдЕрдВрддрд┐рдо рдирд╛рдо рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЬреИрд╕реЗ рдирд╛рдо рд╡рд╛рд▓реЗ рдЫрд╛рддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕реА рддрд░рд╣, рдИрдореЗрд▓ рдкрддреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рднреА рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЫрд╛рддреНрд░ рдЕрдкрдиреЗ рдИрдореЗрд▓ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реМрдВрдкрдирд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо
student_idрдХреЙрд▓рдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдоstudent_idрдХреЙрд▓рдо рдкрд░PRIMARY KEYрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдХрд╛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛредрдпрд╣ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
CREATE TABLEрдХрдорд╛рдВрдб рдореЗрдВ, рдХреЙрд▓рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рдж рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ:рдКрдкрд░ рджреА рдЧрдИ рдХреНрд╡реЗрд░реА рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЧрдП рдЫрд╣ рдХреЙрд▓рдо рдХреЗ рд╕рд╛рде student рдЯреЗрдмрд▓ рдмрдирд╛рддреА рд╣реИред
PRIMARY KEYрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐:student_idрд╣реЛредstudent_idрдЕрджреНрд╡рд┐рддреАрдп рд╣реЛредрдХрдИ рдХреЙрд▓рдо рдкрд░ PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдХрдИ рдХреЙрд▓рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
enrollmentsрдЯреЗрдмрд▓ рдореЗрдВ рдПрдХ рдЫрд╛рддреНрд░ рдХрдИ рдХреЛрд░реНрд╕реЗрдЬ рдореЗрдВ рдирд╛рдорд╛рдВрдХрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рд╣реАstudent_idрд╡рд╛рд▓реА рдХрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕реА рддрд░рд╣, рдПрдХ рдХреЛрд░реНрд╕ рдореЗрдВ рдХрдИ рдЫрд╛рддреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рд╣реАcourse_idрд╡рд╛рд▓реА рдХрдИ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдмрди рд╕рдХрддреА рд╣реИрдВредрдЪреВрдБрдХрд┐ рдХреЛрдИ рдПрдХрд▓ рдлрд╝реАрд▓реНрдб рдХрд┐рд╕реА рдкрдВрдХреНрддрд┐ рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдирд╛рдорд╛рдВрдХрди рд░рд┐рдХреЙрд░реНрдб
student_id,course_idрдФрд░yearрдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИредрдЬрдм рдХрдИ рдХреЙрд▓рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ
PRIMARY KEYрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯCREATE TABLEрдХрдорд╛рдВрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рджреА рдЬрд╛рддреА рд╣реИредрдЯреЗрдмрд▓ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕
рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рд╣рдордиреЗ рдЕрднреА рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕реЗ рдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдЯреЗрдмрд▓ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк
PRIMARY KEYрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЧрдПред рдЖрдкALTER TABLEрдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:ALTER TABLEрдХреНрд╡реЗрд░реА рдореЗрдВ, рд╣рдордиреЗ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХрд╛ рдирд╛рдоenroll_pkрд░рдЦрд╛ рд╣реИ (enrollment primary key рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк)ред рдпрд╣ рдирд╛рдо рдЖрдкрдХреА рдкрд╕рдВрдж рдХрд╛ рдХреЛрдИ рднреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд▓рд╛рд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдирд╛рдо рдЪреБрдиреЗрдВ рдЬреЛ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд░реЗредрдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХрд╛ рдирд╛рдордХрд░рдг рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдХрдИ рд▓рд╛рдн рдорд┐рд▓рддреЗ рд╣реИрдВ:
NOT NULL рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдЫрд╛рддреНрд░ рдХрд╛ рдирд╛рдо рдФрд░ рдИрдореЗрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджрд░реНрдЬ рд╣реЛред рд╡реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рд╕реНрдЯрд╛рдл рдЧрд▓рддреА рд╕реЗ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдлрд╝реАрд▓реНрдб рдХреЛ рдЫреЛрдбрд╝ рджреЗред
рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдЗрди рддреАрди рдХреЙрд▓рдореЛрдВ рдкрд░
NOT NULLрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:рдКрдкрд░ рджреА рдЧрдИ рдХреНрд╡реЗрд░реА
NOT NULLрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐first_name,last_nameрдФрд░emailрдХреЙрд▓рдо рдореЗрдВNULL(рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд) рдорд╛рди рди рд╣реЛ рд╕рдХреЗрдВредрдореМрдЬреВрджрд╛ рдЯреЗрдмрд▓ рдореЗрдВ
NOT NULLрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЬреЛрдбрд╝рдирд╛ALTER TABLEрдХрдорд╛рдВрдб рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредNOT NULLрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:UNIQUE рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдИрдореЗрд▓ рдкрддреЗ рд╕реНрд╡рднрд╛рд╡рддрдГ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрддреЗ рд╣реИрдВред рдЬрд╣рд╛рдБ рд╣рдореЗрдВ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХрднреА рднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдорд╛рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡рд╣рд╛рдБ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрддрд░ рдкрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕ рд╣реИред рдЗрд╕рд╕реЗ рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддреА рд╣реИред
рдпрд╣ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЕрдиреНрдп рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреА рддрд░рд╣ рд╣реА рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо
NOT NULLрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рднреА рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рд╣реА рдХреЙрд▓рдо рдкрд░ рд╕реНрдкреЗрд╕ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдХреЗ рдХрдИ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:┬ардзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреНрд░рдо рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛, рд╣рдо
NOT NULL UNIQUEрднреА рд▓рд┐рдЦ рд╕рдХрддреЗ рдереЗредрдореМрдЬреВрджрд╛ рдЯреЗрдмрд▓ рдореЗрдВ
UNIQUEрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЬреЛрдбрд╝рдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:рдХрдИ рдХреЙрд▓рдореЛрдВ рдкрд░ UNIQUE рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐
coursesрдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рднрд╛рдЧ рдХреЗ рднреАрддрд░ рдХреЛрд░реНрд╕ рдХрд╛ рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ,course_nameрдФрд░departmentрдХреЙрд▓рдо рдПрдХ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПредрдЬрдм рдХрдИ рдХреЙрд▓рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
CREATE TABLEрдХрдорд╛рдВрдб рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИ:рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рдореМрдЬреВрджрд╛ рдЯреЗрдмрд▓ рдХреЛ рдмрджрд▓рдХрд░ рднреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХреЙрд▓рдореЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЯрдкрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ:
NOT NULL UNIQUE рдмрдирд╛рдо PRIMARY KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕┬а
рд╣рдордиреЗ рд╕реАрдЦрд╛ рдХрд┐
PRIMARY KEYрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдЕрджреНрд╡рд┐рддреАрдпрддрд╛ рднреА рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ рдФрд░ рдпрд╣ рднреА рдХрд┐ рдорд╛рди рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рддреЛ рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдирдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ:рдХрд┐рд╕реА рдЯреЗрдмрд▓ рдкрд░
NOT NULL UNIQUEрдФрд░PRIMARY KEYрдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдЙрдирдХреЗ рдкреНрд░рдпреЛрдЬрди рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИред┬ард╣рд╛рд▓рд╛рдБрдХрд┐ рджреЛрдиреЛрдВ рдХрд┐рд╕реА рдХреЙрд▓рдо(рдЬрд╝) рдкрд░ рдЕрджреНрд╡рд┐рддреАрдпрддрд╛ рдФрд░ рдиреЙрди-рдирд▓рд╛рдмрд┐рд▓рд┐рдЯреА рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдЯреЗрдмрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ
PRIMARY KEYрд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреА рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рд╣реИредрджреВрд╕рд░реА рдУрд░,
NOT NULL UNIQUEрдХрд╛ рд╕рдВрдпреЛрдЬрди рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓рдореЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдмрд┐рдирд╛ NULL рдорд╛рдиреЛрдВ рдХреЗ рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рди рд▓рд╛рдЧреВ рд╣реЛрдВ, рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдмрдирд╛рдП рд░рдЦрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЯреЗрдмрд▓ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВNOT NULL UNIQUEрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рд╣реЛ рд╕рдХрддреА рд╣реИрдВредрджреЛрдиреЛрдВ рдХреЗ рд╣реЛрдиреЗ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдпрддрд╛ рдФрд░ рдбреЗрдЯрд╛ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╕рдВрднрд╡ рд╣реЛрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдХрд┐рд╕реА рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдЯреЗрдмрд▓ рдХреЗ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг, рдЕрджреНрд╡рд┐рддреАрдп рдЧреБрдгреЛрдВ рдХреЗ рдмреАрдЪ рднреЗрдж рднреА рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред
DEFAULT рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдЕрдкрдирд╛ рдореЗрдЬрд░ рдЪреБрдирдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рди рдЫрд╛рддреНрд░реЛрдВ рдиреЗ рдЕрднреА рдЕрдкрдирд╛ рдореЗрдЬрд░ рдирд╣реАрдВ рдЪреБрдирд╛ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП major рдХреЙрд▓рдо рдХрд╛ рдорд╛рди тАЩUndeclaredтАЩ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
DEFAULTрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдХреЙрд▓рдо рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо students рдЯреЗрдмрд▓ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:рдпрджрд┐ рд╣рдо рдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╕рдордп рд╣реА
DEFAULTрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ, рддреЛ рдЗрд╕реЗ рдХреЙрд▓рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рдж рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:CHECK рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдЧреНрд░реЗрдб 0 рд╕реЗ 100 рддрдХ рд╣реЛрддреЗ рд╣реИрдВред рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХреЗ,
enrollmentрдЯреЗрдмрд▓ рдХрд╛gradeрдХреЙрд▓рдо рдХреЛрдИ рднреА рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рдоCHECKрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдорд╛рди 0 рдФрд░ 100 рдХреЗ рдмреАрдЪ рд╕реАрдорд┐рдд рд░рд╣реЗрдВредрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ,
CHECKрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рд╣рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд░реНрддреЛрдВ рдХрд╛ рд╕рддреНрдпрд╛рдкрди рдХрд░рдиреЗ рджреЗрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдкреВрд░рд╛ рдХрд░реЗред рдпреЗ рдбреЗрдЯрд╛ рдХреА рд╕реБрд╕рдВрдЧрддрд┐ рдФрд░ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВредрдПрдХ
CHECKрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреЙрд▓рдо рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВ рдХрд┐gradeрдФрд░is_passing_gradeрдХреЗ рдорд╛рди рдЖрдкрд╕ рдореЗрдВ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдЧреНрд░реЗрдб рдкрд╛рд╕рд┐рдВрдЧ рд╣реИ рдпрджрд┐ рдЙрд╕рдХрд╛ рдорд╛рди рдХрдо рд╕реЗ рдХрдо 60 рд╣реИред рддрдм рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐is_passing_gradeрддрдм рдФрд░ рдХреЗрд╡рд▓ рддрдмTRUEрд╣реЛ рдЬрдм рдЧреНрд░реЗрдб рдХрдо рд╕реЗ рдХрдо 60 рд╣реЛред рдЖрдЗрдП рдЗрд╕реЗ рдЯреЗрдмрд▓ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рдХрд░реЗрдВ рддрд╛рдХрд┐ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐CHECKрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕CREATE TABLEрдХрдорд╛рдВрдб рдореЗрдВ рдХреИрд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЬрдм рдХреЛрдИ рдЫрд╛рддреНрд░ рдХрд┐рд╕реА рдХреЛрд░реНрд╕ рдореЗрдВ рдирд╛рдорд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЕрднреА рдЧреНрд░реЗрдб рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЧреНрд░реЗрдб рдкрд░
NULLрдорд╛рдиреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдкрд╛рд╕рд┐рдВрдЧ рдЧреНрд░реЗрдб рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХреЛ рднреА рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЧреНрд░реЗрдб рдЕрднреА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╡рд╣ рднреАNULLрд╣реЛред рдЗрдиреНрд╣реЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХреЛ рдЗрд╕ рддрд░рд╣ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ
gradeрдФрд░is_passing_gradeрджреЛрдиреЛрдВ рдХреЙрд▓рдореЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВNULLрдЬреЛрдбрд╝рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рд┐рд░реНрдл рдкрдардиреАрдпрддрд╛ рдмрдврд╝рд╛рдирд╛ рд╣реИредрдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо
CHECKрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рд╕реЗ рдХрд┐рди-рдХрд┐рди рдкреНрд░рдХрд╛рд░ рдХреА рд╢рд░реНрддреЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрд░реЗрдВрдЬ (рд╕реАрдорд╛) рд╢рд░реНрддреЗрдВ
рд╣рдо рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдХреЙрд▓рдо рдХреЗ рдорд╛рди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рд╣реЛрдВред
рд╕реВрдЪреА рдЖрдзрд╛рд░рд┐рдд рд╢рд░реНрддреЗрдВ
рд╣рдо рдпрд╣ рд╡реИрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдХреЙрд▓рдо рдХрд╛ рдорд╛рди рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛред
рддреБрд▓рдирд╛рддреНрдордХ рд╢рд░реНрддреЗрдВ
рд╣рдо рдХрд┐рд╕реА рдХреЙрд▓рдо рдХреЗ рдорд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рджреА рдЧрдИ рд╢рд░реНрдд (рдмрдбрд╝рд╛, рдЫреЛрдЯрд╛, рдЖрджрд┐) рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВред
рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╢рд░реНрддреЗрдВ
рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рдбреЗрдЯрд╛ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди (рдЬреИрд╕реЗ
LIKEрдпрд╛SIMILAR TO) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрддрд╛рд░реНрдХрд┐рдХ рд╢рд░реНрддреЗрдВ
рд╣рдо рд▓реЙрдЬрд┐рдХрд▓ рдСрдкрд░реЗрдЯрд░ (
AND,OR,NOT) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдИ рд╢рд░реНрддреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВредрд╕рдордЧреНрд░ (рдХрдореНрдкреЛрдЬрд╝рд┐рдЯ) рд╢рд░реНрддреЗрдВ
рдХрдИ рдХреЙрд▓рдореЛрдВ рдкрд░ рдПрдХ рд╢рд░реНрдд рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
FOREIGN KEY рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ
рдлреЙрд░реЗрди рдХреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рдЯреЗрдмрд▓реНрд╕ рдХреЗ рдХреЙрд▓рдореЛрдВ рдХреЛ рдЖрдкрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рдХреА рд░реЗрдлрд░реЗрдВрд╢рд┐рдпрд▓ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛ рд╕рдХреЗред рдореВрд▓ рд░реВрдк рд╕реЗ, рдПрдХ рдЯреЗрдмрд▓ рдореЗрдВ рдлреЙрд░реЗрди рдХреА рджреВрд╕рд░реА рдЯреЗрдмрд▓ рдХреА рдкреНрд░рд╛рдЗрдорд░реА рдХреА рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрди рджреЛ рдЯреЗрдмрд▓реНрд╕ рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдЖрдкрд╕ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдЗрд╕рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдЯреЗрдмрд▓ рдореЗрдВ рдРрд╕рд╛ рдлреЙрд░реЗрди рдХреА рдорд╛рди рд╡рд╛рд▓рд╛ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдЬрд┐рд╕рдХрд╛ рдорд┐рд▓рд╛рди рд▓рд┐рдВрдХреНрдб рдЯреЗрдмрд▓ рдХреА рдкреНрд░рд╛рдЗрдорд░реА рдХреА рд╡рд╛рд▓реА рдХрд┐рд╕реА рдкрдВрдХреНрддрд┐ рд╕реЗ рди рд╣реЛрддрд╛ рд╣реЛред
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, enrollments рдЯреЗрдмрд▓ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреНрд░рдорд╢рдГ
student_idрдФрд░course_idрдХреЙрд▓рдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рдЫрд╛рддреНрд░ рдФрд░ рдХрд┐рд╕реА рдХреЛрд░реНрд╕ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХреЗ, enrollments рдЯреЗрдмрд▓ рдореЗрдВ рдЗрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдорд╛рдиреЛрдВ рдХреЗ students рдФрд░ courses рдЯреЗрдмрд▓реНрд╕ рдореЗрдВ рдореМрдЬреВрджрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИредenrollmentsрдЯреЗрдмрд▓ рдмрдирд╛рддреЗ рд╕рдордп рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрдирдХреЗ рдлреЙрд░реЗрди рдХреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпреЗ рдХреНрд░рдорд╢рдГ
studentsрдФрд░coursesрдЯреЗрдмрд▓реНрд╕ рдореЗрдВ рдкреНрд░рд╛рдЗрдорд░реА рдХреА рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПредрдЕрдиреНрдп рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреА рддрд░рд╣, рд╣рдо рдЗрдиреНрд╣реЗрдВ рдЯреЗрдмрд▓ рдмрдирдиреЗ рдХреЗ рдмрд╛рдж рднреА
ALTER TABLEрдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдШреЛрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдирд╛
рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджреМрд░рд╛рди, рд╣рдордиреЗ рдХрдИ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рджрд┐рдЦрд╛рдП рдФрд░ рдпрд╣ рднреА рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣рд╛рдБ
CREATE TABLEрдХрдорд╛рдВрдб рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬреЛ рдЕрдм рддрдХ рд╕реАрдЦреА рдЧрдИ рд╣рд░ рдЪреАрдЬрд╝ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИредрдкрд╣рд▓реЗ, рд╣рдо
studentsрдЯреЗрдмрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ:рдЕрдЧрд▓рд╛, рд╣рдо
coursesрдЯреЗрдмрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ:рдЕрдВрдд рдореЗрдВ, рд╣рдо
enrollmentsрдЯреЗрдмрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдЫрд╛рддреНрд░реЛрдВ рдФрд░ рдХреЛрд░реНрд╕реЗрдЬ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧреА:рд╣рдордиреЗ рдЗрд╕ рдЕрдВрддрд┐рдо рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдЬреЛрдбрд╝реА рд╣реИрдВред рдХрд┐рд╕реА рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рд╡рд┐рднрд╛рдЧреЛрдВ рдФрд░ рдореЗрдЬрд░реНрд╕ рдХрд╛ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП,
majorрдФрд░departmentрдХреЙрд▓рдо рдЬрд┐рди рдорд╛рдиреЛрдВ рдХреЛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдХрд╛ рд╕рдореВрд╣ рд╕реАрдорд┐рдд рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдЬреНрдЮрд╛рдд рд╣реЛрддрд╛ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ,CHECKрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ рддрд╛рдХрд┐ рдпреЗ рдХреЙрд▓рдо рдХреЗрд╡рд▓ рдЙрд╕реА рдЬреНрдЮрд╛рдд рд╕реЗрдЯ рдХреЗ рдорд╛рди рд▓реЗ рд╕рдХреЗрдВредрдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ SQL рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдФрд░ рдЙрдиреНрд╣реЗрдВ PostgreSQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд┐рдпрд╛ред рд╣рдордиреЗ рдкреНрд░рд╛рдЗрдорд░реА рдХреА,
NOT NULLрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕,UNIQUEрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕,DEFAULTрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕,CHECKрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕, рдФрд░FOREIGN KEYрдХрдВрд╕реНрдЯреНрд░реЗрдВрдЯреНрд╕ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд┐рдПредрдЗрди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕рдордЭрдХрд░, рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреА рд╢реБрджреНрдзрддрд╛, рд╕реБрд╕рдВрдЧрддрд┐ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдЧрдард┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ Database Design рдкрд░ рдпрд╣ рдХреЛрд░реНрд╕ рджреЗрдЦреЗрдВред