MySQL程序设计
#数据库视图和触发器

数据库有坑,大家慎重对待。

1.在job数据库中,有聘任人员信息表—Work_Info表,其结构表已知。
a.创建视图info_view,显示年龄大于20岁的聘任人员的id、name、sex、address信息
b.查看视图info_view的基本结构和详细结构
c.查看视图info_view的所有信息
d.修改视图info_view,显示年龄大于20岁的聘任人员的id、name、sex、address信息
e.更新视图,将id为3的聘任员的性别有“男”改为“女”
f.删除info_view视图

create database work;
use work;
create table work_info(
id int(4) NOT NULL  UNIQUE   PRIMARY KEY,
name varchar(20) NOT NULL,
sex varchar(4) NOT NULL,
age int(4) ,
address varchar(50) NOT NULL,
tel varchar(20));
insert into work_info(id,name,sex,age,address,tel)
values
(1,'张明','男',19,'北京市朝阳区','1234567'),
(2,'李广','男',21,'北京市昌平区','2345678'),
(3,'王丹','女',18,'湖南省永州市','3456789'),
(4,'赵一枚','女',24,'浙江省宁波市','4567890');
create algorithm = merge view info_view(id,name,sex,address)
as
select id,name,sex,address
from work_info where age>20
with local check option;
desc info_view;
show create view info_view\G;
select *from info_view;
alter algorithm = merge view info_view(id,name,sex,address)
as
select id,name,sex,address
from work_info where age<20
with local check option;
update info_view set sex='女' where id=3;
drop view info_view;

2.在学生管理系统中有学生信息表studentinfo,其结构表已知。
a.使用create view语句来创建视图college_view,显示studentinfo表中的number、name、age、major,并将字段名显示为student_num、student_name、student_age、department
b.执行show create view语句来查看视图的详细结构
c.更新视图。向视图中插入三条记录:
0901,’张三’,20,’外语’
0902,’李四’,22,’计算机’
0903,’王五’,19,’计算机’
d.修改视图,使视图中只显示专业为“计算机”的信息
e.删除视图

create database student;
use student;
create table student_info(
number int(4)not null unique primary key auto_increment,
name varchar(20)not null,
age varchar(20) not null,
major int(4));
create view college_view(student_num,student_name,student_age,department)
as select number,name,age,major
from student_info;
show create view college_view;
insert into college_view(student_num,student_name,student_age,department)
values
(0901,'zhangsan',20,'英语'),
(0902,'lisi',22,'Computer'),
(0903,'wangwu',19,'Computer');
create view collage_view as select * from student_info
where major='计算机';
drop view college_view;

Incorrect integer value: ‘英语’ for column ‘major’ at row 1
在这一过程中,上一句的语句报错经常出现,百度或者相关咨询都没有修正,不过原因很多,但是没有找到适合这一个的,希望有好心人纠正,谢谢。

3.某同学定义产品信息product表,主要信息有:产品编号、产品名称、主要功能、生产厂商、厂商地址,生产product表已知
(1)在product表上分别创建BEFORE INSERT、AFTER UPDATE和AFTER DELETE三个触发器,触发器的名称分别为Tproduct_bf_insert、Tproduct_af_update和Tproduct_af_del执行语句部分都是向operate表插入操作方法和操作时间。
a.创建Tproduct_bf_insert触发器的代码已知。
b.创建Tproduct_af_update触发器的代码已知
c.创建Tproduct_af_del触发器的代码已知
(2)对product表分别执行INSERT、UPDATE、DELETE操作,分别查看operate表
a.对product表中插入一条记录:1,’abc’,’治疗感冒’,’北京’,’北京abc制药厂’,’北京市昌平区’
b.更新记录,将产品编号为1的厂商住址改为“北京市海淀区”
c.删除产品编号为1的记录
(3)删除Tproduct_bf_update触发器

create database product_info;
use product_info;
create table product(
id int(4) not null unique primary key,
name varchar(20),
function varchar(50),
company varchar(20),
address varchar(50));
create table operate(
op_id int(10) not null unique primary key auto_increment,
op_name varchar(20) not null,
op_tiem time not null);
create trigger product_bf_insert before insert
on product for each row
insert into operate values(null,'insert product',now());
create trigger product_af_update after update
on product for each row
insert into operate values(null,'update product',now());
create trigger product_af_del after delete
on product for each row
insert into operate values(null,'delete product',now());
insert into product values(1,'abc','治疗感冒','北京abc制药厂','北京市昌平区');
update product set address = '北京市海淀区' where id=1;
delete from product where id=1;
drop trigger product_bf_insert;

4.(1) 在product表上分别创建BEFORE INSERT、AFTER UPDATE和AFTER DELETE三个触发器,触发器的名称分别为Tproduct_bf_insert、Tproduct_af_update和Tproduct_af_del执行语句部分都是向operate表插入操作方法和操作时间。
(2)查看product_bf_del触发器的基本结构
(3)对product表分别执行已知的INSERT、UPDATE和DELETE操作,分别查看operate表

create database product_info;
use product_info;
create table product(
id int(4) not null unique primary key,
name varchar(20),
function varchar(50),
company varchar(20),
address varchar(50));
create table operate(
op_id int(10) not null unique primary key auto_increment,
op_name varchar(20) not null,
op_tiem time not null);
create trigger product_af_insert before insert
on product for each row
insert into operate values(null,'insert product',now());
create trigger product_bf_update after update
on product for each row
insert into operate values(null,'update product',now());
create trigger product_bf_del after delete
on product for each row
insert into operate values(null,'delete product',now());
insert into product values(2,'止血灵','止血','北京止血灵制药厂','北京市昌平区');
update product set address = '天京市开发区' where id=2;
delete from product where id=2;
drop trigger product_bf_update;

第一次写这个博客,有点不会,慢慢熟悉。

数据库之视图和触发器相关推荐

  1. 【数据库】视图,触发器,存储过程

    数据库笔记 day04 2019/8/23 周五 学习内容:视图,触发器,存储过程,变量,if else语句,范式 关键字:create view:describe:select:drop:delim ...

  2. MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁

    浏览目录: 1.视图 2.触发器 3.存储过程 4.函数 5.事物 6.数据库锁 7.数据库备份 1.视图 视图:是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据 视 ...

  3. MySQL(学习笔记)——数据库视图、触发器及存储过程

     数据库视图.触发器及存储过程  1.什么是视图   定义:视图是从数据库中一个或多个表中导出来的虚拟表,不在内存中.   语法: create view 视图名 //(创建一张视图) as sele ...

  4. mysql存储过程输入参数拆分_一文看懂mysql数据库存储过程、函数、视图、触发器、表...

    概述 抽空总结一下mysql的一些概念性内容,涉及存储过程.函数.视图.触发器等. 一.查看存储过程.函数.视图.触发器.表 1.存储过程 select * from mysql.proc where ...

  5. mysql七:视图、触发器、事务、存储过程、函数

    阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名 ...

  6. MariaDB 视图与触发器(11)

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...

  7. MySQL中视图和触发器学习

    创建视图的语法: 其中,algorithm是可选参数,表示视图选择的算法,它有三个选项:undefined,merge,temptable.Undefined表示让MySQL自动选择所要使用的算法:m ...

  8. MySQL— 索引,视图,触发器,函数,存储过程,执行计划,慢日志,分页性能...

    一.索引,分页性能,执行计划,慢日志 (1)索引的种类,创建语句,名词补充(最左前缀匹配,覆盖索引,索引合并,局部索引等): import sys # http://www.cnblogs.com/w ...

  9. mysql视图存储过程触发器

    以下笔记借鉴于黑马MYSQL视频,记录为个人学习笔记参考. 包含视图/存储过程/触发器等概念 目录 视图 view 语法 视图的检查选项 视图更新 作用 存储过程 procedure 语法 变量 系统 ...

最新文章

  1. js回调与异步加载的用法
  2. js关闭手机浏览器_Unity 之 WebGL打开手机摄像头
  3. Vue Router路由及路由重定向
  4. 渐统江湖的项目原型生成工具 -- Maven Archetype
  5. office2010 启动man_Office2010打开慢速度怎么办?
  6. Reactive Streams规范及常见库
  7. 适用于Java开发人员的Elasticsearch:命令行中的Elasticsearch
  8. hadoop Connection refused: no further information原因排查(Centos7)
  9. 计算机网络拓扑结构说课稿,计算机网络应用基础说课稿修稿稿
  10. Hitv8 文件批量重命名工具
  11. Android BLE(3) ---FastBle解析
  12. mysql面试题 真的很不错
  13. 孙玄:转转如何打造AI工程架构体系
  14. 人工智能之产生式系统
  15. 百度世界2020再曝语义理解领域新进展:文心ERNIE全景图亮相
  16. cgb2107-day07
  17. 罗云彬:实现水波特效的代码例子
  18. 视频加密大全服务条款
  19. 如何在Ubuntu下为SI安装Fixedsys字体
  20. matlab loglog

热门文章

  1. 人工智能是什么,机器学习就是人工智能吗?
  2. 北航计算机控制系统实验报告,北航计算机控制系统实验报告.doc
  3. 周边pd是什么意思_韩国综艺里经常说的VJ、PD是什么意思
  4. win7下安装myODBC和使用
  5. python画饼图柱状图_荐【python数据分析(24)】Matplotlib库基本图形绘制(1)(线形图、柱状图、堆叠图、面积图、填图、饼图)...
  6. 今个没事,想仿做个qq农场助手,虽然很菜,不过有点收获
  7. 破解LanStar技术揭秘
  8. 微信公众号认证全过程
  9. win10新建虚拟机网络配置未连接服务器,Win10系统VMWare虚拟机无法连接网络怎么办?...
  10. 计算机考试怎么考申论,公务员考试申论评分标准,这些你都知道吗?