MySQL - 基础表
empdb脚本_表结构
若报错,是因为数据库是由代码创建,未使用,加 use empdb;
以下文件也是整理所得,若是代码原主介意,私信可删,发出来只是为了基础学习。
create database empdb default character set utf8 COLLATE utf8_general_ci;
CREATE TABLE employees
( employee_id int not null
, first_name VARCHAR(20)
, last_name VARCHAR(25)
NOT NULL
, email VARCHAR(25)
NOT NULL
, phone_number VARCHAR(20)
, hire_date DATE
NOT NULL
, job_id VARCHAR(10)
NOT NULL
, salary decimal(8,2)
, commission_pct decimal(2,2)
, manager_id int
, department_id int
, CONSTRAINT emp_salary_min
CHECK (salary > 0)
, CONSTRAINT emp_email_uk
UNIQUE (email)
) ;
CREATE TABLE departments
( department_id int not null
, department_name VARCHAR(30)
NOT NULL
, manager_id int
, location_id int
) ;
CREATE TABLE locations
( location_id int not null
, street_address VARCHAR(40)
, postal_code VARCHAR(12)
, city VARCHAR(30)
NOT NULL
, state_province VARCHAR(25)
, country_id CHAR(2)
) ;
CREATE TABLE countries
( country_id CHAR(2)
NOT NULL
, country_name VARCHAR(40)
, region_id int
, CONSTRAINT country_c_id_pk
PRIMARY KEY (country_id)
) ;
CREATE TABLE regions
( region_id int NOT NULL
, region_name VARCHAR(25)
);
CREATE TABLE job_grades
(grade_level VARCHAR(3),
lowest_sal numeric(9,2),
highest_sal numeric(9,2));
CREATE TABLE jobs
( job_id VARCHAR(10) not null
, job_title VARCHAR(35)
NOT NULL
, min_salary int
, max_salary int
) ;
CREATE TABLE job_history
( employee_id int NOT NULL
, start_date DATEtime NOT NULL
, end_date DATEtime
NOT NULL
, job_id VARCHAR(10)
NOT NULL
, department_id int
, CONSTRAINT jhist_date_interval
CHECK (end_date > start_date)
) ;
ALTER TABLE regions
ADD CONSTRAINT reg_id_pk
PRIMARY KEY (region_id);
ALTER TABLE countries
ADD CONSTRAINT countr_reg_fk
FOREIGN KEY (region_id)
REFERENCES regions(region_id) ;
ALTER TABLE locations
ADD CONSTRAINT loc_id_pk
PRIMARY KEY (location_id);
alter table locations
add CONSTRAINT loc_c_id_fk
FOREIGN KEY (country_id)
REFERENCES countries(country_id);
ALTER TABLE departments
ADD CONSTRAINT dept_id_pk
PRIMARY KEY (department_id);
ALTER TABLE departments
add CONSTRAINT dept_loc_fk
FOREIGN KEY (location_id)
REFERENCES locations (location_id) ;
ALTER TABLE jobs
ADD CONSTRAINT job_id_pk
PRIMARY KEY(job_id) ;
ALTER TABLE employees
ADD CONSTRAINT emp_emp_id_pk
PRIMARY KEY (employee_id);
ALTER TABLE employees
add CONSTRAINT emp_dept_fk
FOREIGN KEY (department_id)
REFERENCES departments(department_id);
ALTER TABLE employees
add CONSTRAINT emp_job_fk
FOREIGN KEY (job_id)
REFERENCES jobs (job_id);
ALTER TABLE employees
add CONSTRAINT emp_manager_fk
FOREIGN KEY (manager_id)
REFERENCES employees(employee_id);
ALTER TABLE departments
ADD CONSTRAINT dept_mgr_fk
FOREIGN KEY (manager_id)
REFERENCES employees (employee_id);
ALTER TABLE job_history
ADD CONSTRAINT jhist_emp_id_st_date_pk
PRIMARY KEY (employee_id, start_date);
ALTER TABLE job_history
ADD CONSTRAINT jhist_job_fk
FOREIGN KEY (job_id)
REFERENCES jobs(job_id);
ALTER TABLE job_history
ADD CONSTRAINT jhist_emp_fk
FOREIGN KEY (employee_id)
REFERENCES employees(employee_id);
ALTER TABLE job_history
ADD CONSTRAINT jhist_dept_fk
FOREIGN KEY (department_id)
REFERENCES departments(department_id) ;
empdb脚本_表数据
-- ***************************insert data into the REGIONS table
INSERT INTO regions VALUES
( 1
, 'Europe'
);
INSERT INTO regions VALUES
( 2
, 'Americas'
);
INSERT INTO regions VALUES
( 3
, 'Asia'
);
INSERT INTO regions VALUES
( 4
, 'Middle East and Africa'
);
-- ***************************insert data into the COUNTRIES table
INSERT INTO countries VALUES
( 'IT'
, 'Italy'
, 1
);
INSERT INTO countries VALUES
( 'JP'
, 'Japan'
, 3
);
INSERT INTO countries VALUES
( 'US'
, 'United States of America'
, 2
);
INSERT INTO countries VALUES
( 'CA'
, 'Canada'
, 2
);
INSERT INTO countries VALUES
( 'CN'
, 'China'
, 3
);
INSERT INTO countries VALUES
( 'IN'
, 'India'
, 3
);
INSERT INTO countries VALUES
( 'AU'
, 'Australia'
, 3
);
INSERT INTO countries VALUES
( 'ZW'
, 'Zimbabwe'
, 4
);
INSERT INTO countries VALUES
( 'SG'
, 'Singapore'
, 3
);
INSERT INTO countries VALUES
( 'UK'
, 'United Kingdom'
, 1
);
INSERT INTO countries VALUES
( 'FR'
, 'France'
, 1
);
INSERT INTO countries VALUES
( 'DE'
, 'Germany'
, 1
);
INSERT INTO countries VALUES
( 'ZM'
, 'Zambia'
, 4
);
INSERT INTO countries VALUES
( 'EG'
, 'Egypt'
, 4
);
INSERT INTO countries VALUES
( 'BR'
, 'Brazil'
, 2
);
INSERT INTO countries VALUES
( 'CH'
, 'Switzerland'
, 1
);
INSERT INTO countries VALUES
( 'NL'
, 'Netherlands'
, 1
);
INSERT INTO countries VALUES
( 'MX'
, 'Mexico'
, 2
);
INSERT INTO countries VALUES
( 'KW'
, 'Kuwait'
, 4
);
INSERT INTO countries VALUES
( 'IL'
, 'Israel'
, 4
);
INSERT INTO countries VALUES
( 'DK'
, 'Denmark'
, 1
);
INSERT INTO countries VALUES
( 'HK'
, 'HongKong'
, 3
);
INSERT INTO countries VALUES
( 'NG'
, 'Nigeria'
, 4
);
INSERT INTO countries VALUES
( 'AR'
, 'Argentina'
, 2
);
INSERT INTO countries VALUES
( 'BE'
, 'Belgium'
, 1
);
-- ***************************insert data into the LOCATIONS table
INSERT INTO locations VALUES
( 1000
, '1297 Via Cola di Rie'
, '00989'
, 'Roma'
, NULL
, 'IT'
);
INSERT INTO locations VALUES
( 1100
, '93091 Calle della Testa'
, '10934'
, 'Venice'
, NULL
, 'IT'
);
INSERT INTO locations VALUES
( 1200
, '2017 Shinjuku-ku'
, '1689'
, 'Tokyo'
, 'Tokyo Prefecture'
, 'JP'
);
INSERT INTO locations VALUES
( 1300
, '9450 Kamiya-cho'
, '6823'
, 'Hiroshima'
, NULL
, 'JP'
);
INSERT INTO locations VALUES
( 1400
, '2014 Jabberwocky Rd'
, '26192'
, 'Southlake'
, 'Texas'
, 'US'
);
INSERT INTO locations VALUES
( 1500
, '2011 Interiors Blvd'
, '99236'
, 'South San Francisco'
, 'California'
, 'US'
);
INSERT INTO locations VALUES
( 1600
, '2007 Zagora St'
, '50090'
, 'South Brunswick'
, 'New Jersey'
, 'US'
);
INSERT INTO locations VALUES
( 1700
, '2004 Charade Rd'
, '98199'
, 'Seattle'
, 'Washington'
, 'US'
);
INSERT INTO locations VALUES
( 1800
, '147 Spadina Ave'
, 'M5V 2L7'
, 'Toronto'
, 'Ontario'
, 'CA'
);
INSERT INTO locations VALUES
( 1900
, '6092 Boxwood St'
, 'YSW 9T2'
, 'Whitehorse'
, 'Yukon'
, 'CA'
);
INSERT INTO locations VALUES
( 2000
, '40-5-12 Laogianggen'
, '190518'
, 'Beijing'
, NULL
, 'CN'
);
INSERT INTO locations VALUES
( 2100
, '1298 Vileparle (E)'
, '490231'
, 'Bombay'
, 'Maharashtra'
, 'IN'
);
INSERT INTO locations VALUES
( 2200
, '12-98 Victoria Street'
, '2901'
, 'Sydney'
, 'New South Wales'
, 'AU'
);
INSERT INTO locations VALUES
( 2300
, '198 Clementi North'
, '540198'
, 'Singapore'
, NULL
, 'SG'
);
INSERT INTO locations VALUES
( 2400
, '8204 Arthur St'
, NULL
, 'London'
, NULL
, 'UK'
);
INSERT INTO locations VALUES
( 2500
, 'Magdalen Centre, The Oxford Science Park'
, 'OX9 9ZB'
, 'Oxford'