This repository was archived by the owner on Jan 31, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInit.sql
More file actions
73 lines (64 loc) · 2.16 KB
/
Init.sql
File metadata and controls
73 lines (64 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
DROP DATABASE IF EXISTS school;
CREATE DATABASE school;
USE school;
CREATE TABLE student_hold (
INDEX_KEY INT NOT NULL AUTO_INCREMENT,
ID VARCHAR(20),
name VARCHAR(50) NOT NULL,
DOB VARCHAR(10) NOT NULL,
address VARCHAR(100) NOT NULL,
gender VARCHAR(10) NOT NULL,
email VARCHAR(50),
enroll_year INT,
major VARCHAR(100) NOT NULL,
PRIMARY KEY (INDEX_KEY)
);
CREATE TABLE student (
ID VARCHAR(20) NOT NULL,
name VARCHAR(50) NOT NULL,
DOB VARCHAR(10) NOT NULL,
address VARCHAR(100) NOT NULL,
gender VARCHAR(10) NOT NULL,
enroll_year INT NOT NULL,
email VARCHAR(50) NOT NULL,
major VARCHAR(100) NOT NULL,
PRIMARY KEY (ID)
);
CREATE TABLE course (
ID VARCHAR(50) NOT NULL,
name VARCHAR(50) NOT NULL,
attendance_weight INT NOT NULL,
midterm_weight INT NOT NULL,
final_weight INT NOT NULL,
lecturer_id VARCHAR(50) NOT NULL,
course_year INT NOT NULL,
ETCs INT NOT NULL,
PRIMARY KEY (ID)
);
CREATE TABLE grade (
ID INT NOT NULL AUTO_INCREMENT,
student_id VARCHAR(8) NOT NULL,
course_id VARCHAR(50) NOT NULL,
attendance INT,
midterm INT,
final INT,
PRIMARY KEY (ID)
);
CREATE TABLE lecturer (
lecturer_id VARCHAR(50) NOT NULL,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL,
phone VARCHAR(50) NOT NULL,
PRIMARY KEY (lecturer_id)
);
ALTER TABLE grade ADD CONSTRAINT student_id FOREIGN KEY (student_id) REFERENCES student(ID);
ALTER TABLE grade ADD CONSTRAINT course_id FOREIGN KEY (course_id) REFERENCES course(ID);
ALTER TABLE course ADD CONSTRAINT lecturer_id FOREIGN KEY (lecturer_id) REFERENCES lecturer(lecturer_id);
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
CREATE USER 'lecturer'@'localhost' IDENTIFIED BY 'lecturer';
CREATE USER 'student'@'localhost' IDENTIFIED BY 'student';
GRANT ALL PRIVILEGES ON school.* TO 'admin'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON school.course TO 'lecturer'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON school.grade TO 'lecturer'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON school.lecturer TO 'lecturer'@'localhost';
GRANT SELECT ON school.* TO 'student'@'localhost';