您的位置:首页 > 其它

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

2020-07-25 07:17 274 查看

约束

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: