SQL Создание таблицы Сотрудник отдела Оценка - PullRequest
0 голосов
/ 16 марта 2019

создание базы данных staff_management;

use staff_management;

создать таблицу Employee ( eID int (100) NOT NULL IDENTITY (1,1) ПЕРВИЧНЫЙ КЛЮЧ, eName varchar (255) НЕ NULL, Текст задания НЕ NULL, Зарплата int (100) НЕ NULL, Comm Int (100), hDate дата НЕ NULL, int (10) NOT NULL,

constraint emp_pk primary key (eID)

); изменить таблицу ID сотрудника (1,1) ПЕРВИЧНЫЙ КЛЮЧ = 1001;

Изменить таблицу Сотрудник добавить столбец Mgr int (100) после eName;

вставить в Employee (eName, Mgr, Job, Salary, Comm, hDate, dID) значения («Кен Адамс», 1004, «Продавец», 70000, 20000, «2008-04-12», 1), («Ру Джонс», 1004, «Продавец», 65000, 15000, «2010-01-18», 1), ("Dhal Sim", 1006, "Accountant", 88000, NULL, "2001-03-07", 2), («Эллен Хонда», 1006, «Менеджер», 118000, NULL, «2001-03-17», 1), («Mike Bal», 1006, «Receptionist», 68000, NULL, «2006-06-21», 3), («Мартин Бизон», NULL, «CEO», 210000, NULL, «2010-07-12», 3), («Шен Ли», 1004, «Продавец», 86000, 18000, «2014-09-18», 1), («Занг Росс», 1004, «Продавец», 65000, 10000, «2017-02-02», 1), («Сагар Кан», 1004, «Продавец», 70000, 15000, «2016-03-01», 1);

Изменить таблицу Сотрудник добавить ограничение emp_mgr_fk ссылки внешнего ключа (Mgr) Сотрудник (eID) при каскаде обновлений при удалении набора NULL;

создать таблицу отдела ( int (10) NOT NULL уникальный идентификатор (1,1) первичный ключ, dName varchar (255) не ноль, Текст адреса, текст телефона,

constraint d_pk primary key (dID)

);

alter table Employee добавить ограничение emp_d_fk Отдел ссылок внешнего ключа (dID) (dID);

создать таблицу Grade ( gID char (10) не является уникальным, MinSal int (100), MaxSal int (100), Оставьте Int (10),

constraint g_pk primary key (gID)

);

INSERT INTO Grade (gID, MinSal, MaxSal, Leavee) VALUES ('A', NULL, 60000, 20), («В», 60000, 80000, 20), ('C', 80000, 100000, 20), ('D', 100000, 120000, 25), ('E', 120000, NULL, 30);

выберите * из класса;

вставить в отдел (dName, Address, phone) значения («Продажи», «Сидней», «0425 198 053»), («Счета», «Мельбурн», «0429 198 955»), («Админ», «Мельбурн», «0428 198 758»), («Маркетинг», «Сидней», «0427 198 757»);

выберите * из отдела;

У меня проблема с моим кодом

Сообщение 156, уровень 15, состояние 1, строка 18 Неверный синтаксис рядом с ключевым словом «IDENTITY». Сообщение 156, уровень 15, состояние 1, строка 21 Неверный синтаксис рядом с ключевым словом «столбец».

Ответы [ 2 ]

1 голос
/ 16 марта 2019

Синтаксис для SQL Server : НЕ auto_increment - вместо него необходимо использовать столбец INT IDENTITY.А также: в T-SQL INT - это INT - это INT - "точность" не может быть определена):

Вместо этого:

create table Employee 
(
    eID int(100) NOT NULL auto_increment,

используйте это:

CREATE TABLE dbo.Employee 
(
    eID INT NOT NULL IDENTITY(1,1),
0 голосов
/ 16 марта 2019

Этот вопрос размещен в разделе SQL-Server, который является Microsoft, а не MySQL, но ваш синтаксис для MySQL.

Если вы используете MSSQL, приведенный ниже код будет работать, но вам нужно посмотреть на внешние ключи, когда вы пытаетесь создать внешний ключ для столбца в той же таблице. Обычно, когда вводится ключ, он связан с другой таблицей. I.E.FK на уровне класса ссылается на PK на сотрудника.

create database staff_management; 

use staff_management;

create table Employee 
(
    eID int NOT NULL IDENTITY(1,1) PRIMARY KEY,
    eName varchar(255) NOT NULL,
    Job text NOT NULL, 
    Salary int NOT NULL,
    Comm int,
    hDate date NOT NULL, 
    dID int NOT NULL,
);

alter table Employee 
add  Mgr int;

insert into Employee(eName,Mgr,  Job, Salary, Comm, hDate, dID)
values ('ken Adams', 1004, 'Salesman', 70000, 20000, '2008-04-12', 1),
       ('Ru Jones', 1004, 'Salesman', 65000, 15000, '2010-01-18', 1),
       ('Dhal Sim', 1006, 'Accountant', 88000, NULL, '2001-03-07', 2),
       ('Ellen Honda', 1006, 'Manager', 118000, NULL, '2001-03-17', 1),
       ('Mike Bal', 1006, 'Receptionist', 68000, NULL, '2006-06-21', 3),
       ('Martin Bison',NULL, 'CEO', 210000, NULL, '2010-07-12', 3),
       ('Shen Li', 1004, 'Salesman', 86000, 18000, '2014-09-18', 1),
       ('Zang Ross', 1004, 'Salesman', 65000, 10000, '2017-02-02', 1),
       ('Sagar Kahn', 1004, 'Salesman', 70000, 15000, '2016-03-01', 1);


--alter table Employee
--add constraint emp_mgr_fk 
--    foreign key (Mgr) references Employee(eID) 
--    on update cascade on delete set NULL;

create table Department
(
    dID int NOT NULL IDENTITY(1,1) PRIMARY KEY,
    dName varchar(255) not null,
    Address text, 
    phone text,
);

--alter table Employee
--add constraint emp_d_fk
--foreign key (dID) references Department(dID);


create table Grade
(
    gID char(10) not null unique,
    MinSal int, 
    MaxSal int,
    Leavee int,

    constraint g_pk primary key (gID)
);


INSERT INTO Grade (gID, MinSal, MaxSal, Leavee)
VALUES ('A', NULL, 60000, 20),
       ('B', 60000, 80000, 20),
       ('C', 80000, 100000, 20),
       ('D', 100000, 120000, 25), 
       ('E', 120000, NULL, 30);

select * from Grade;


insert into Department (dName, Address, phone)
values ('Sales', 'Sydney', '0425 198 053'),
       ('Accounts', 'Melbourne', '0429 198 955'),
       ('Admin', 'Melbourne', '0428 198 758'),
       ('Marketing', 'Sydney', '0427 198 757');

select * from Department;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...