Mysql 数据库 表 字段的创建 修改 删除

MYSQL基础上机练习题(一) 数据库、表、字段的创建、修改、删除

一、实验目的:

  1. 创建、修改、删除数据库
  2. 创建、修改、删除表
  3. 创建、修改、删除字段

二、内容:

创建一个用于企业管理的员工管理数据库,包括员工信息(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.计算列 而不是只是计算列

 

转载于:https://www.cnblogs.com/Pythons/p/10760631.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值