@teckedd-code2save/datafy 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,117 @@
1
+ -- Sample employee database
2
+ -- See changelog table for details
3
+ -- Copyright (C) 2007,2008, MySQL AB
4
+ --
5
+ -- Original data created by Fusheng Wang and Carlo Zaniolo
6
+ -- http://www.cs.aau.dk/TimeCenter/software.htm
7
+ -- http://www.cs.aau.dk/TimeCenter/Data/employeeTemporalDataSet.zip
8
+ --
9
+ -- Current schema by Giuseppe Maxia
10
+ -- Data conversion from XML to relational by Patrick Crews
11
+ -- SQLite adaptation by Claude Code
12
+ --
13
+ -- This work is licensed under the
14
+ -- Creative Commons Attribution-Share Alike 3.0 Unported License.
15
+ -- To view a copy of this license, visit
16
+ -- http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to
17
+ -- Creative Commons, 171 Second Street, Suite 300, San Francisco,
18
+ -- California, 94105, USA.
19
+ --
20
+ -- DISCLAIMER
21
+ -- To the best of our knowledge, this data is fabricated, and
22
+ -- it does not correspond to real people.
23
+ -- Any similarity to existing people is purely coincidental.
24
+ --
25
+
26
+ PRAGMA foreign_keys = ON;
27
+
28
+ SELECT 'CREATING DATABASE STRUCTURE' as 'INFO';
29
+
30
+ DROP TABLE IF EXISTS dept_emp;
31
+ DROP TABLE IF EXISTS dept_manager;
32
+ DROP TABLE IF EXISTS title;
33
+ DROP TABLE IF EXISTS salary;
34
+ DROP TABLE IF EXISTS employee;
35
+ DROP TABLE IF EXISTS department;
36
+ DROP VIEW IF EXISTS dept_emp_latest_date;
37
+ DROP VIEW IF EXISTS current_dept_emp;
38
+
39
+ CREATE TABLE employee (
40
+ emp_no INTEGER NOT NULL,
41
+ birth_date DATE NOT NULL,
42
+ first_name TEXT NOT NULL,
43
+ last_name TEXT NOT NULL,
44
+ gender TEXT NOT NULL CHECK (gender IN ('M','F')),
45
+ hire_date DATE NOT NULL,
46
+ PRIMARY KEY (emp_no)
47
+ );
48
+
49
+ CREATE TABLE department (
50
+ dept_no TEXT NOT NULL,
51
+ dept_name TEXT NOT NULL,
52
+ PRIMARY KEY (dept_no),
53
+ UNIQUE (dept_name)
54
+ );
55
+
56
+ CREATE TABLE dept_manager (
57
+ emp_no INTEGER NOT NULL,
58
+ dept_no TEXT NOT NULL,
59
+ from_date DATE NOT NULL,
60
+ to_date DATE NOT NULL,
61
+ FOREIGN KEY (emp_no) REFERENCES employee (emp_no) ON DELETE CASCADE,
62
+ FOREIGN KEY (dept_no) REFERENCES department (dept_no) ON DELETE CASCADE,
63
+ PRIMARY KEY (emp_no,dept_no)
64
+ );
65
+
66
+ CREATE TABLE dept_emp (
67
+ emp_no INTEGER NOT NULL,
68
+ dept_no TEXT NOT NULL,
69
+ from_date DATE NOT NULL,
70
+ to_date DATE NOT NULL,
71
+ FOREIGN KEY (emp_no) REFERENCES employee (emp_no) ON DELETE CASCADE,
72
+ FOREIGN KEY (dept_no) REFERENCES department (dept_no) ON DELETE CASCADE,
73
+ PRIMARY KEY (emp_no,dept_no)
74
+ );
75
+
76
+ CREATE TABLE title (
77
+ emp_no INTEGER NOT NULL,
78
+ title TEXT NOT NULL,
79
+ from_date DATE NOT NULL,
80
+ to_date DATE,
81
+ FOREIGN KEY (emp_no) REFERENCES employee (emp_no) ON DELETE CASCADE,
82
+ PRIMARY KEY (emp_no,title,from_date)
83
+ );
84
+
85
+ CREATE TABLE salary (
86
+ emp_no INTEGER NOT NULL,
87
+ amount INTEGER NOT NULL,
88
+ from_date DATE NOT NULL,
89
+ to_date DATE NOT NULL,
90
+ FOREIGN KEY (emp_no) REFERENCES employee (emp_no) ON DELETE CASCADE,
91
+ PRIMARY KEY (emp_no,from_date)
92
+ );
93
+
94
+ CREATE VIEW dept_emp_latest_date AS
95
+ SELECT emp_no, MAX(from_date) AS from_date, MAX(to_date) AS to_date
96
+ FROM dept_emp
97
+ GROUP BY emp_no;
98
+
99
+ -- shows only the current department for each employee
100
+ CREATE VIEW current_dept_emp AS
101
+ SELECT l.emp_no, dept_no, l.from_date, l.to_date
102
+ FROM dept_emp d
103
+ INNER JOIN dept_emp_latest_date l
104
+ ON d.emp_no=l.emp_no AND d.from_date=l.from_date AND l.to_date = d.to_date;
105
+
106
+ SELECT 'LOADING department' as 'INFO';
107
+ .read load_department.sql
108
+ SELECT 'LOADING employee' as 'INFO';
109
+ .read load_employee.sql
110
+ SELECT 'LOADING dept_emp' as 'INFO';
111
+ .read load_dept_emp.sql
112
+ SELECT 'LOADING dept_manager' as 'INFO';
113
+ .read load_dept_manager.sql
114
+ SELECT 'LOADING title' as 'INFO';
115
+ .read load_title.sql
116
+ SELECT 'LOADING salary' as 'INFO';
117
+ .read load_salary1.sql
@@ -0,0 +1,10 @@
1
+ INSERT INTO department VALUES
2
+ ('d001','Marketing'),
3
+ ('d002','Finance'),
4
+ ('d003','Human Resources'),
5
+ ('d004','Production'),
6
+ ('d005','Development'),
7
+ ('d006','Quality Management'),
8
+ ('d007','Sales'),
9
+ ('d008','Research'),
10
+ ('d009','Customer Service');