Files
sql_advanced/lab2-3/task2.sql
T
Vitalii Litvinchuk 6deed0469a first commit
2026-05-04 23:15:09 +03:00

92 lines
3.4 KiB
SQL
Executable File

use Mangata_Gallo;
-- 2.1
-- Створіть таблицю "Staff" з такими атрибутами та обмеженнями "не порожнє":
-- StaffID: первинний ключ, тип - цілі, не порожнє
-- PhoneNumber: тип - цілі, не порожнє, унікальні
-- FullName: тип - змінний символьний довжиною 100, не порожнє
-- email: тип - змінний символьний довжиною 100, не порожнє, знаходиться у домені "mangata-gallo.com"
-- Відобразіть схему таблиці
-- Додайте два записи у таблицю, які задовольняють обмеженням, спробуйте ввести один запис для якого значення домену не відповідає обмеженню
create table Staff (
staff_id int primary key auto_increment,
phone_number int not null unique,
full_name nvarchar (100) not null,
email nvarchar (100) not null check (
email like '%@mangata-gallo.com'
)
);
insert into
Staff (
phone_number,
full_name,
email
)
values (
123456789,
'John Doe 1',
'random1@mangata-gallo.com'
),
(
123456788,
'John Doe 2',
'random2@mangata-gallo.com'
);
insert into
Staff (
phone_number,
full_name,
email
)
values (
123456787,
'John Doe 3',
'random3@gallo.com'
);
-- 2.2
-- Створіть таблицю "ContractInfo" з такими атрибутами та обмеженнями "не порожнє":
-- ContractID: первинний ключ, тип - цілі, не порожнє
-- StaffID: тип - цілі, не порожнє
-- Location: тип - змінний символьний довжиною 50, не порожнє, значення за замовчуванням - "Texas"
-- StaffType: тип - змінний символьний довжиною 20, не порожнє, може набувати значень - "Junior" or a "Senior"
-- Salary: тип – десяткові (9 розрядів, 2 знаки після коми), не порожнє
-- Відобразіть схему таблиці
-- Додайте два записи у таблицю з довільними даними, які задовольняють обмеженням, для другого запису не додавайте значення поля Location
-- Спробуйте додати ще один запис, в якості StaffType використавши значення "Midle"
create table ContractInfo (
contract_id int primary key auto_increment,
staff_id int not null,
location nvarchar (50) default 'Texas',
staff_type nvarchar (20) check (
staff_type in ('Junior', 'Senior')
),
salary decimal(9, 2) not null,
constraint fk_staff foreign key (staff_id) references Staff (staff_id)
);
insert into
ContractInfo (
staff_id,
location,
staff_type,
salary
)
values (1, 'Texas', 'Junior', 100000);
insert into
ContractInfo (staff_id, staff_type, salary)
values (2, 'Senior', 200000);
insert into
ContractInfo (
staff_id,
location,
staff_type,
salary
)
values (3, 'Texas', 'Middle', 150000);