MySQL是一個流行的關系型數據庫管理系統,在數據庫設計中,存儲過程是一塊相對較新的技術。在MySQL存儲過程中,可以使用4張表來管理不同的數據,這些表的用途如下:
CREATE TABLE `departments` ( `dept_no` char(4) NOT NULL, `dept_name` varchar(40) NOT NULL, PRIMARY KEY (`dept_no`), UNIQUE KEY `dept_name` (`dept_name`) ) ENGINE=InnoDB; CREATE TABLE `titles` ( `emp_no` int(11) NOT NULL, `title` varchar(50) NOT NULL, `from_date` date NOT NULL, `to_date` date DEFAULT NULL, PRIMARY KEY (`emp_no`,`title`,`from_date`), KEY `emp_no` (`emp_no`), CONSTRAINT `titles_ibfk_1` FOREIGN KEY (`emp_no`) REFERENCES `employees` (`emp_no`) ON DELETE CASCADE ) ENGINE=InnoDB; CREATE TABLE `employees` ( `emp_no` int(11) 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`) ) ENGINE=InnoDB; CREATE TABLE `salaries` ( `emp_no` int(11) NOT NULL, `salary` int(11) NOT NULL, `from_date` date NOT NULL, `to_date` date NOT NULL, PRIMARY KEY (`emp_no`,`from_date`), KEY `emp_no` (`emp_no`), CONSTRAINT `salaries_ibfk_1` FOREIGN KEY (`emp_no`) REFERENCES `employees` (`emp_no`) ON DELETE CASCADE ) ENGINE=InnoDB;
這些表的用途是:
1. departments表格:用于存儲公司的各個部門的信息,如部門編號、部門名字等。在實際應用中,我們常常需要根據部門信息來進行統計或者查詢。
2. titles表格:用于存儲員工職稱的變化信息。因為員工的職稱往往會因為升職、調整、離職等因素發生變化,所以我們需要一個表格來記錄這些變化。titles表格中存儲的是員工的職稱、職稱變化的起始日期和終止日期等信息。
3. employees表格:用于存儲公司員工的基本信息,如員工編號、員工姓名、性別、出生日期、入職日期等。我們可以借助employees表格來查詢員工的詳細信息,如員工的籍貫、學歷、工作經驗等。
4. salaries表格:用于存儲公司員工的薪資信息。salaries表格中存儲的是員工的薪資變化信息,包括薪資、起始日期和終止日期等。