mysql-----事务约束视图 存储过程流程控制自定义函数

本文详细介绍了MySQL数据库中的约束,包括主键、唯一约束、外键等,以及如何在创建和修改表时添加、删除这些约束。接着,讨论了事务的原子性、一致性、隔离性和持久性,并展示了事务的使用和不同隔离级别。此外,还阐述了视图的概念、应用,以及创建、修改和删除视图的方法。最后,讲解了存储过程的创建、调用、修改和删除,以及函数的相关操作。
摘要由CSDN通过智能技术生成

约束
PRIMARY KEY:主键
UNIQUE:唯一约束
FOREIGN KEY:外键
列级约束

#1.添加列级约束
USE test;
DROP TABLE IF EXISTS stuinfo;
CREATE TABLE stuinfo(
id INT NOT NULL UNIQUE,#非空约束+主键约束
stuName VARCHAR(20) UNIQUE,#唯一约束
gender CHAR DEFAULT ‘男’,#默认约束
age INT UNSIGNED CHECK (age BETWEEN 0 AND 120)#检查约束
);
DESC stuinfo;
SELECT * FROM stuinfo;
表级约束
#语法

CREATE TABLE stuinfo(
id INT ,
stuName VARCHAR(20),
gender CHAR,
age INT UNSIGNED,
【CONSTRAINT 约束名】约束类型(字段)
);
添加约束
#案例:

DROP TABLE IF EXISTS stuinfo;
CREATE TABLE stuinfo(
id INT ,
stuName VARCHAR(20),
gender CHAR,
age INT UNSIGNED,
gradeid INT
);

DESC stuinfo;
删除约束
#.删除非空

ALTER TABLE stuinfo MODIFY COLUMN gender
CHAR ;
1
#2.删除默认;

ALTER TABLE stuinfo MODIFY COLUMN age
INT UNSIGNED;
#3.删除主键

ALTER TABLE stuinfo MODIFY COLUMN id INT
;
ALTER TABLE stuinfo DROP PRIMARY KEY;
#4.删除唯一

ALTER TABLE stuinfo MODIFY COLUMN
stuname VARCHAR(20);
ALTER TABLE stuinfo DROP INDEX uq_stuinfo;
#查看指定表的所有索引

SHOW INDEX FROM stuinfo;
#5.删除外键

ALTER
TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_grade;
事务
概念
特点 原子性 一致性 隔离性 持久性
使用
以第一个 DML 语句的执行作为开始
以下面的其中之一作为结束:
COMMIT 或 ROLLBACK 语句
DDL 或 DCL 语句(自动提交)
用户会话正常结束
系统异常终了

SET autocommit=0;#取消自动提交
START TRANSACTION;#开启事务
ROLLBACK;#回滚事务
COMMIT;#提交事务
数据库的隔离级别
脏读 不可重复读 幻读
数据库规定了多种事务隔离级别, 不同隔离级别对应不同的干扰程度, 隔离级别越高, 数据一致性就越好, 但并发性越弱.

视图
概念 应用 实例
创建修改删除查看视图

CREATE VIEW my_v1
AS
SELECT studentname,majorname
FROM student s
NNER JOIN major m
ON s.majorid=m.majorid
WHERE s.majorid=1;
创建视图的语法:

create [or replace] view view_name
As
select_statement
[with|cascaded|local|check
option]
修改视图的语法
alter view view_name
As
select_statement
[with|cascaded|local|check option]
7、删除视图的语法
用户可以一次删除一个或者多个视图,前提是必须有该视图的drop权限。

drop view [if exists] view_name,view_name …[restrict|cascade]
8、查看视图结构的语法

show tables;
如果需要查询某个视图的定义,可以使用show
create view命令进行查看

show create view view_name \G
存储过程
在这里插入图片描述
概念
事先经过编译并存储在数据库中的一段sql语句的集合。
创建
1)创建存储过程

create procedure 存储过程名 ([proc_parameter[,…]])
[characteristic…]routine_body
1
(2)创建函数

create function 函数名([func_parameter[,…]])
returns type
[characteristic…]routine_body
(1)调用存储过程
call 存储过程名(参数列表)
2)调用函数
Select 函数名(参数列表)
修改
修改存储过程:

alter procedure 存储过程名 [charactristic…]
修改函数:

alter function 函数名 [charactristic…]
characteristic:
{contains sql|no sql|reads sql
data|modifies sql data}
|sql security{definer|invoker}
|comment ‘string’
删除
5、删除存储过程或函数
说明:一次只能删除一个存储过程或者函数,并且要求有该过程或函数的alter routine 权限
删除存储过程:

drop procedure [if exists] 存储过程名
删除函数:

drop function [if exists] 函数名
查看
1.查看存储过程或函数的状态:

show {procedure|function} status like 存储过程或函数名
2.查看存储过程或函数的定义:

show create {procedure|function} 存储过程或函数名
3.通过查看information_schema.routines了解存储过程和函数的信息(了解)

select * from rountines where rounine_name =存储过程名|函数名
实操
1、sqlyog 存储
、dos 实操

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值