【无标题】mysql-

这篇博客探讨了数据库中的视图创建与使用,包括简单视图、带约束条件的视图和多表视图。接着,介绍了如何修改视图以及通过视图更新基表数据。此外,还讲解了事务管理,展示了开启事务、插入数据并提交或回滚事务的过程。触发器的概念也被提及,用于在数据插入后自动更新相关表。最后,博客讨论了存储过程的创建与调用,以及局部变量的作用范围。
摘要由CSDN通过智能技术生成

#创建视图

CREATE VIEW s_t(编号,姓名,性别,出生日期)

AS

SELECT * FROM student WITH CHECK OPTION

 

#查询视图

SELECT * FROM s_t

 

 

#部分视图创建数据

CREATE VIEW s_t_2(编号,姓名,性别,出生日期)

AS

SELECT * FROM student WHERE NAME='卫庄' WITH CHECK OPTION 

 

#约束条件 name=‘卫庄’ 下面那条张三会报错

INSERT INTO s_t_2(编号,姓名,性别,出生日期) VALUES(20180052,'卫庄','nan','2020-02-02')

INSERT INTO s_t_2(编号,姓名,性别,出生日期) VALUES(20180052,'张三','nan','2020-02-02')

 

#创建多表视图

CREATE VIEW v_s_e(姓名,语文,英语,数学)

AS

SELECT s.name,e.chinese,e.english,e.math FROM student s LEFT JOIN exam e ON s.id=e.id

 

#修改视图,若是没有则创建,有就替换

CREATE OR REPLACE VIEW s_1(编号,姓名,性别,出生日期)

AS 

SELECT * FROM student WITH CHECK OPTION

 

 

#修改视图的数据->修改基表数据

UPDATE s_1 SET 姓名 = '改改' WHERE 编号 =20180001;

 
CREATE TABLE ab( id INT(5) ) ENGINE=INNODB
 
SELECT * FROM ab
 
 
#开启事务
BEGIN;
#插入语句
INSERT INTO ab VALUES(3),(4)
#提交事务
COMMIT;
 
#开启事务
BEGIN;
#插入语句
INSERT INTO ab VALUES('7'),(8)
#提交事务
COMMIT;
#回滚
ROLLBACK;

 

#触发器
CREATE TRIGGER ins_stu
AFTER INSERT ON  student  FOR EACH ROW
    INSERT INTO cj(NUMBER,stu_id,stu_name,math,chinese,english)
    VALUES(1,new.stuid,new.username,87,98,78)
#执行触发
INSERT INTO student (username,PASSWORD,birthday)
VALUES('张三','111111','2016-08-23')

 

#创建存储过程

DELIMITER $

CREATE PROCEDURE testa()

BEGIN

 SELECT * FROM student;

 SELECT * FROM cj;

 

END $

DELIMITER ;

 

#调用存储过程

CALL testa()

 

#创建存储过程

DELIMITER $

CREATE PROCEDURE testb()

BEGIN

 #声明变量类型

 DECLARE un VARCHAR(32) DEFAULT '';

 #给username变量赋值

 SET un='xiaoxaio';

 #将查询结果赋值给un变量

 SELECT username INTO un FROM student WHERE stuid=3;

 #查询un变量,返回

 SELECT un;

END $

DELIMITER ;

 

#调用存储过程

CALL testb()

 

 

#变量的作用范围

DELIMITER $

CREATE PROCEDURE testc()

BEGIN

 BEGIN

  #声明变量类型

  DECLARE un VARCHAR(32) DEFAULT '';

  #给username变量赋值

  SET un='xiaoxaio';

  #将查询结果赋值给un变量

  SELECT username INTO un FROM student WHERE stuid=3;

  #查询un变量,返回

  SELECT un;

 END;

 BEGIN

  #声明变量类型

  DECLARE un VARCHAR(32) DEFAULT '';

  #给username变量赋值

  SET un='xiaoxaio';

  #将查询结果赋值给un变量

  SELECT username INTO un FROM student WHERE stuid=3;

  #查询un变量,返回

  SELECT un;

 END;

END $

DELIMITER ;

 

CALL testc()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值