mirror of
https://github.com/beekeeper-studio/beekeeper-studio.git
synced 2026-03-13 10:12:54 +08:00
131 lines
4.4 KiB
SQL
Executable File
131 lines
4.4 KiB
SQL
Executable File
-- Sample employee database
|
|
-- See changelog table for details
|
|
-- Copyright (C) 2007,2008, MySQL AB
|
|
--
|
|
-- Original data created by Fusheng Wang and Carlo Zaniolo
|
|
-- http://www.cs.aau.dk/TimeCenter/software.htm
|
|
-- http://www.cs.aau.dk/TimeCenter/Data/employeeTemporalDataSet.zip
|
|
--
|
|
-- Current schema by Giuseppe Maxia
|
|
-- Data conversion from XML to relational by Patrick Crews
|
|
--
|
|
-- This work is licensed under the
|
|
-- Creative Commons Attribution-Share Alike 3.0 Unported License.
|
|
-- To view a copy of this license, visit
|
|
-- http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to
|
|
-- Creative Commons, 171 Second Street, Suite 300, San Francisco,
|
|
-- California, 94105, USA.
|
|
--
|
|
-- DISCLAIMER
|
|
-- To the best of our knowledge, this data is fabricated, and
|
|
-- it does not correspond to real people.
|
|
-- Any similarity to existing people is purely coincidental.
|
|
--
|
|
|
|
DROP DATABASE IF EXISTS employees;
|
|
CREATE DATABASE IF NOT EXISTS employees;
|
|
USE employees;
|
|
|
|
SELECT 'CREATING DATABASE STRUCTURE' as 'INFO';
|
|
|
|
DROP TABLE IF EXISTS dept_emp,
|
|
dept_manager,
|
|
titles,
|
|
salaries,
|
|
employees,
|
|
departments;
|
|
|
|
/*!50503 set default_storage_engine = InnoDB */;
|
|
/*!50503 select CONCAT('storage engine: ', @@default_storage_engine) as INFO */;
|
|
|
|
CREATE TABLE employees (
|
|
emp_no INT NOT NULL,
|
|
birth_date DATE NOT NULL,
|
|
first_name VARCHAR(14) NOT NULL,
|
|
last_name VARCHAR(16) NOT NULL,
|
|
gender ENUM ('M','F') NOT NULL,
|
|
hire_date DATE NOT NULL,
|
|
PRIMARY KEY (emp_no)
|
|
);
|
|
|
|
CREATE TABLE departments (
|
|
dept_no CHAR(4) NOT NULL,
|
|
dept_name VARCHAR(40) NOT NULL,
|
|
PRIMARY KEY (dept_no),
|
|
UNIQUE KEY (dept_name)
|
|
);
|
|
|
|
CREATE TABLE dept_manager (
|
|
emp_no INT NOT NULL,
|
|
dept_no CHAR(4) NOT NULL,
|
|
from_date DATE NOT NULL,
|
|
to_date DATE NOT NULL,
|
|
FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,
|
|
FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE,
|
|
PRIMARY KEY (emp_no,dept_no)
|
|
);
|
|
|
|
CREATE TABLE dept_emp (
|
|
emp_no INT NOT NULL,
|
|
dept_no CHAR(4) NOT NULL,
|
|
from_date DATE NOT NULL,
|
|
to_date DATE NOT NULL,
|
|
FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,
|
|
FOREIGN KEY (dept_no) REFERENCES departments (dept_no) ON DELETE CASCADE,
|
|
PRIMARY KEY (emp_no,dept_no)
|
|
);
|
|
|
|
CREATE TABLE titles (
|
|
emp_no INT NOT NULL,
|
|
title VARCHAR(50) NOT NULL,
|
|
from_date DATE NOT NULL,
|
|
to_date DATE,
|
|
FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,
|
|
PRIMARY KEY (emp_no,title, from_date)
|
|
)
|
|
;
|
|
|
|
CREATE TABLE salaries (
|
|
emp_no INT NOT NULL,
|
|
salary INT NOT NULL,
|
|
from_date DATE NOT NULL,
|
|
to_date DATE NOT NULL,
|
|
FOREIGN KEY (emp_no) REFERENCES employees (emp_no) ON DELETE CASCADE,
|
|
PRIMARY KEY (emp_no, from_date)
|
|
)
|
|
;
|
|
|
|
CREATE OR REPLACE VIEW dept_emp_latest_date AS
|
|
SELECT emp_no, MAX(from_date) AS from_date, MAX(to_date) AS to_date
|
|
FROM dept_emp
|
|
GROUP BY emp_no;
|
|
|
|
# shows only the current department for each employee
|
|
CREATE OR REPLACE VIEW current_dept_emp AS
|
|
SELECT l.emp_no, dept_no, l.from_date, l.to_date
|
|
FROM dept_emp d
|
|
INNER JOIN dept_emp_latest_date l
|
|
ON d.emp_no=l.emp_no AND d.from_date=l.from_date AND l.to_date = d.to_date;
|
|
|
|
flush /*!50503 binary */ logs;
|
|
|
|
SELECT 'LOADING departments' as 'INFO';
|
|
source /docker-entrypoint-initdb.d/load_departments.dump ;
|
|
SELECT 'LOADING employees' as 'INFO';
|
|
source /docker-entrypoint-initdb.d/load_employees.dump ;
|
|
SELECT 'LOADING dept_emp' as 'INFO';
|
|
source /docker-entrypoint-initdb.d/load_dept_emp.dump ;
|
|
SELECT 'LOADING dept_manager' as 'INFO';
|
|
source /docker-entrypoint-initdb.d/load_dept_manager.dump ;
|
|
SELECT 'LOADING titles' as 'INFO';
|
|
source /docker-entrypoint-initdb.d/load_titles.dump ;
|
|
SELECT 'LOADING salaries' as 'INFO';
|
|
source /docker-entrypoint-initdb.d/load_salaries1.dump ;
|
|
source /docker-entrypoint-initdb.d/load_salaries2.dump ;
|
|
source /docker-entrypoint-initdb.d/load_salaries3.dump ;
|
|
|
|
source /docker-entrypoint-initdb.d/show_elapsed.sql;
|
|
|
|
source /docker-entrypoint-initdb.d/sakila/sakila-mv-schema.sql;
|
|
source /docker-entrypoint-initdb.d/sakila/sakila-mv-data.sql;
|