MYSQL基礎上機練習題(一) 數據庫、表、字段的創建、修改、刪除
一、實驗目的:
- 創建、修改、刪除數據庫
- 創建、修改、刪除表
- 創建、修改、刪除字段
二、內容:
創建一個用於企業管理的員工管理數據庫,包括員工信息(Employees)、部門信息(Departments)、員工薪水情況(Salary)三個表,並對該數據庫進行增刪改查
Employees表
列名 |
數據類型 |
長度 |
是否可空 |
說明 |
EmployeeID |
字符串型 |
6 |
否 |
員工編號,主鍵 |
Name |
字符串型 |
10 |
否 |
姓名 |
Education |
字符串型 |
4 |
否 |
學歷 |
Birthday date |
日期型 |
系統默認 |
否 |
出生日期 |
Gender |
位型 |
系統默認 |
否 |
性別,默認值為1 |
Workyear |
整數型 |
系統默認 |
是 |
工作時間 |
Address |
字符串型 |
40 |
是 |
地址 |
Phonenumber |
字符串型 |
12 |
是 |
電話號碼 |
DepartmentID |
字符型 |
3 |
否 |
員工部門號,外鍵 |
Departments表
列名 |
數據類型 |
長度 |
是否可空 |
說明 |
DepartmentID |
字符串型 |
3 |
否 |
部門編號,主鍵 |
DepartmentName |
字符串型 |
20 |
否 |
部門名 |
Note |
字符串型 |
100 |
是 |
備注 |
Salary表
列名 |
數據類型 |
長度 |
是否可空 |
說明 |
EmployeeID |
字符串型 |
6 |
否 |
員工編號,主鍵 |
InCome |
浮點型 |
(11,2) |
否 |
收入 |
OutCome |
浮點型 |
(11,2) |
否 |
支出 |
ActInCome |
浮點型 |
(11,2) |
是 |
收入-支出 |
三、題目
1. 創建、修改、刪除數據庫
(1)創建YGGL數據庫
(2)刪除該數據庫
2. 創建、修改、刪除表
(1)根據內容中表格的要求,創建員工信息(Employees)
(2)刪除Employees表中Address字段
(3)修改Employees表中Gender字段的默認值以及備注,改為默認值為1
(4)修改Employees表中Gender字段名稱,改為Sex
(5)顯示Employees中字段的所有屬性
(6)創建部門信息(Departments)表
(7)創建員工薪水情況(Salary)表
(8)編寫觸發器,使創建或修改ActIncome時,都遵循:
ActIncome = InCome - OutCome
3. 創建、修改、刪除字段
四、代碼及演示,以及易錯點
1. 創建、修改、刪除數據庫
(1)創建YGGL數據庫
‘CREATE DATABASE YGGL
(2)刪除該數據庫
‘DROP DATABASE YGGL
2. 創建、修改、刪除表
(1)根據內容中表格的要求,創建員工信息(Employees)
CREATE TABLE Employees1(
EmployeeID varchar(6) NOT NULL PRIMARY KEY COMMENT '員工編號,主鍵',
Name varchar(10) NOT NULL COMMENT '姓名',
Education varchar(4) NOT NULL COMMENT '學歷',
Birthday date NOT NULL COMMENT '出生日期',
Gender bit NOT NULL DEFAULT 0 COMMENT '性別,默認值為0' ,
WorkYear tinyint COMMENT '工作時間',
Address varchar(40) COMMENT '地址',
PhoneNumber varchar(12) COMMENT '電話號碼',
DepartmentID varchar(3) NOT NULL COMMENT '員工部門號,外鍵'
)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
(2)刪除Employees表中Address字段
ALTER TABLE Employees DROP Address
在運行了代碼之后,有可能Address依然存在列表中,刷新也刷新不出來刪除后的界面,可以嘗試關掉數據庫重新進入
(3)修改Employees表增加字段Address
ALTER TABLE Employees ADD Address varchar(40) COMMENT '地址'
(4)修改Employees表中Gender字段的默認值以及備注,改為默認值為1
ALTER TABLE Employees MODIFY COLUMN Gender bit COMMENT '性別,默認值為1
(5)修改Employees表中Gender字段名稱,改為Sex(改完記得改回來哦,不然可能會影響下一次練習)
ALTER TABLE Employees CHANGE Gender Sex bit DEFAULT 1 COMMENT '性別,默認值為1'
(注意:改名稱時要同時重新指定數據類型,默認值,備注等)
(6)顯示Employees中字段的所有屬性
首先,要進入information_schema的數據庫
USE information_schema
然后選擇yggl數據庫中的Employees表名進行查詢
select * from COLUMNS where TABLE_SCHEMA='yggl' and TABLE_NAME='Employees'
(7)創建部門信息(Departments)表
CREATE TABLE Departments(
DepartmentID varchar(3) NOT NULL PRIMARY KEY COMMENT '部門編號,主鍵',
DepartmentName varchar(20) NOT NULL COMMENT '部門名',
Note varchar(100) COMMENT '備注'
)
- 1
- 2
- 3
- 4
- 5
(8)增加Employees表中DepartmentID的約束,外鍵指向Departments表中的DepartmentID
ALTER TABLE Employees ADD CONSTRAINT department_employee FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
- 1
有可能遇到的錯誤:#1005 Errno 150
(9)員工薪水情況(Salary)表,並建立外鍵指向Employees表中的EmployeeID
CREATE TABLE Salary(
EmployeeID varchar(6) NOT NULL PRIMARY KEY,
InCome FLOAT(11,2) NOT NULL,
OutCome FLOAT(11,2) NOT NULL,
ActIncome FLOAT(11,2),
FOREIGN KEY(EmployeeID) references Employees(EmployeeID)
)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
(10)編寫觸發器,使創建或修改ActIncome時,都遵循:
ActIncome = InCome - OutCome
在插入數據時,會觸發addActIncome觸發器,計算ActIncome的值
CREATE TRIGGER addActIncome BEFORE INSERT ON salary
FOR EACH ROW
SET NEW.ActIncome = NEW.InCome - NEW.OutCome
在修改數據時,會觸發alterActIncome觸發器,重新計算ActIncome的值
CREATE TRIGGER alterActIncome BEFORE UPDATE ON salary
FOR EACH ROW
SET NEW.ActIncome=NEW.InCome-NEW.OutCome
- 1
- 2
- 3
在此操作中,注意SET后面的語法, NEW.計算列 而不是只是計算列