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

(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.计算列 而不是只是计算列

mysql怎么删除表中字段的数据库表_Mysql 数据库 表 字段的创建 修改 删除相关推荐

  1. mysql表中的中文是乱码_mysql插入表中的中文显示为乱码或问号的解决方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. 今天在做ssh的博客项目时发现mysql数据库中的中文显示为问号,网上查阅了很多资料,都不是很全,所以我总结一下,供大家参考和自己复习. 1.我的 ...

  2. MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制

    /*进阶 11 DDL 数据库定义语言库和表的管理一:库的管理:创建/修改/删除二:表的管理:创建/修改/删除创建: CREATE DATABASE [IF NOT EXISTS] 库名;修改: al ...

  3. mysql查询语文比数学成绩高的学号_MySQL数据库入门(九)多表复杂查询练习及讲解-中...

    建表与数据准备 j建库和建表的操作请参考"多表复杂查询练习及讲解-上"的内容,在此不再赘述. use day5; # 切换day5为当前数据库 show tables; +---- ...

  4. mysql从某表中查询数据插入到另一表的处理

    2019独角兽企业重金招聘Python工程师标准>>> MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表 中.此方法对于SQLServe ...

  5. mysql 一个字段走索引吗_mysql数据库--explain(查询表是否走索引)各个字段含义...

    1.1 id列 数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询. 1.2 select_type列 常见的有: ◆ simp ...

  6. mysql利用触发器删除数据库_[数据库]mysql 触发器的创建 修改 删除

    [数据库]mysql 触发器的创建 修改 删除 0 2015-12-16 23:00:04 //做一个简单的练习,创建一个简单的触发器 完成添加文章的时候,自动加上时间,默认作者 为 '日记本的回忆' ...

  7. jtable如何从表格中定位_ja中怎样将一个JTable表中的指定行添加到数据库

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:ja中怎样将一个JTable表中的指定行添加到数据库用的是回答:你首先得获取你选择的指定行 (getselectrow()方法),再 ...

  8. SQL数据库中如何把一个表中的数据复制到另一个表中?

    SQL数据库中如何把一个表中的数据复制到另一个表中?** 1整个表复制:** insert into table1 select * from table2 2部分列复制:** insert into ...

  9. mysql统计记录数据库设计_MYSQL数据库设计,查询规范

    MySQL数据库 (一)建表规约 1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint(1表示是,0表示否) .说明:任何字段如果为非负数,必须是 ...

  10. mysql数据库语言_mysql数据库sql语句基础知识

    1.数据库操作 查看当前数据库 SELECT DATABASE(); 显示用户名,数据库版本 SELECT user(), version(); 创建库 CREATE DATABASE[ IF NOT ...

最新文章

  1. Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)
  2. 大话设计模式读书笔记2----单一职责原则(SRP)
  3. Android中使用File文件进行数据存储
  4. Windows XP Ghost系统安装
  5. 超好用的简单的jquery tab选项卡切换代码(点击切换和导航栏滑过)
  6. Oracle大的存储层次体系,Oracle 数据库中的逻辑存储层次体系
  7. CString 和 char * 的相互转换
  8. Python程序的执行过程
  9. opencv︱图像的色彩空間cvtColor(HSV、HSL、HSB )及相关色彩学
  10. 2.Windows 界面技术发展现状
  11. svn中文路径 权限设定
  12. 查找100-200以内素数
  13. tex模版wins版本在mac中字体不对应问题解决方案
  14. 【AtCoder】AtCoder Grand Contest 041
  15. python-浮点数取整
  16. 计算机应用最普遍的汉字字符编码是什么,什么是计算机中应用最普遍的字符编码...
  17. 关于想使用kali中的foremost遇到的问题
  18. 郑智的最后一场亚洲杯哭成泪人 老队长不易
  19. mac 安装vue全网最详细教程
  20. Paddlehub+wechaty实现一个智能微信机器人-好友友好账户管家

热门文章

  1. 微信浏览器中,aler弹框不显示域名
  2. 指标实现层级_有了指标怎么用层次分析法建立模型?
  3. Android 4.0按键事件以及系统流程分析
  4. Spark入门知识--Day7
  5. 深入浅出JVM内存模型+垃圾回收算法
  6. java 创建一个date,java创建Date
  7. c#如何wmf图片转换成png图片_C# 批量转换图片格式 支持/JPG/TIF/PNG/WMF/GIF等
  8. Java二维数组声明与初始化
  9. 好看的随机小姐姐404页面网站源码
  10. 进网许可证鸿蒙系统,疑似Galaxy S9 mini获得工信部入网许可 采用骁龙845 +6GB运存...