БД ЗАЧЁТ (Pilet 7)

create table departments(
department_id int primary key identity(1,1),
name varchar(20));
create table employees(
employee_id int primary key identity(1,1),
firstmane varchar(20),
lastname varchar(20),
birthdate date,
department_id int,
FOREIGN KEY (department_id) REFERENCES departments(department_id)
)
insert into departments(name) values('Accounting'), ('HR Department'), ('IT department')
insert into employees(firstmane, lastname, birthdate, department_id) values('Kyrylo', 'Chernykh', '2005-10-05', 2);
insert into employees(firstmane, lastname, birthdate, department_id) values('Oleksei', 'Rudenko', '2004-02-05', 1);
insert into employees(firstmane, lastname, birthdate, department_id) values('Mikhail', 'Bajandin', '2004-11-05', 3);
create table employeeInfo(
employeeInfoID int primary key identity(1,1),
salary int,
hiringDate date,
);

insert into employeeInfo(salary, hiringDate) values( 1200, '2005-10-05');
insert into employeeInfo(salary, hiringDate) values( 1500, '2004-02-05');
insert into employeeInfo(salary, hiringDate) values( 2500, '2004-11-05');
alter table employees 
add employeeInfoID int

alter table employees 
add foreign key employeeInfoID references employeeInfo(employeeInfoID)

UPDATE employees
SET employeeInfoID = 1
WHERE firstmane ='Kyrylo';
UPDATE employees
SET employeeInfoID = 2
WHERE firstmane ='Oleksei';
UPDATE employees
SET employeeInfoID = 3
WHERE firstmane ='Mikhail';
select e.*, d.name as department_name
from employees e
inner join departments d on e.department_id = d.department_id;
select e.*, ei.salary, ei.hiringDate
from employees e
left join employeeInfo ei on e.employeeInfoID = ei.employeeInfoID;
select e.*, ei.salary, ei.hiringDate
from employees e
right join employeeInfo ei on e.employeeInfoID = ei.employeeInfoID;
CREATE PROCEDURE SearchEmployeeNamesByLength
    @NameLength INT
AS
BEGIN
    SELECT *
    FROM employees
    WHERE LEN(firstmane) = @NameLength;
END;
exec SearchEmployeeNamesByLength @NameLength = 7;
create table departments(
department_id int AUTO_INCREMENT primary key,
name varchar(20));
create table employees(
employee_id int primary key AUTO_INCREMENT,
firstname varchar(20),
lastname varchar(20),
birthdate date,
department_id int,
FOREIGN KEY (department_id) REFERENCES departments(department_id)
)
insert into departments(name) values('Accounting'), ('HR Department'), ('IT department')
insert into employees(firstname, lastname, birthdate, department_id) values('Kyrylo', 'Chernykh', '2005-10-05', 2);
insert into employees(firstname, lastname, birthdate, department_id) values('Oleksei', 'Rudenko', '2004-02-05', 1);
insert into employees(firstname, lastname, birthdate, department_id) values('Mikhail', 'Bajandin', '2004-11-05', 3);
create table employeeInfo(
employeeInfoID int primary key AUTO_INCREMENT,
salary int,
hiringDate date
);

insert into employeeInfo(salary, hiringDate) values( 1200, '2005-10-05');
insert into employeeInfo(salary, hiringDate) values( 1500, '2004-02-05');
insert into employeeInfo(salary, hiringDate) values( 2500, '2004-11-05');
alter table employees 
add employeeInfoID int

alter table employees 
add constraint fk_employeeInfoID 
foreigh key (employeeInfoID) 
references employeeInfo(employeeInfoID);

update employees 
set employeeInfoID = 1 
where firstname = 'Kyrylo';
update employees 
set employeeInfoID = 2 
where firstname = 'Oleksei';
update employees 
set employeeInfoID = 3 
where firstname = 'Mikhail';

select e.*, d.name as department_name
from employees e
inner join departments d on e.department_id = d.department_id;
select e.*, ei.salary, ei.hiringDate
from employees e
left join employeeInfo ei on e.employeeInfoID = ei.employeeInfoID;
select e.*, ei.salary, ei.hiringDate
from employees e
right join employeeInfo ei on e.employeeInfoID = ei.employeeInfoID;
CALL SearchEmployeeNamesByLength(7);


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *