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

mysql 专栏收录该内容
5 篇文章 0 订阅

约束

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 ;

#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

(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 实操

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 1 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

dai1770359801

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值