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 实操
相关文章推荐
- 初学mysql(十)-数据库之存储过程、函数与游标-自定义函数和流程控制(下)
- MySQL之视图、触发器、事务、存储、函数、流程控制
- MYSQL基础(视图、索引、存储过程与函数、流程控制语句)
- 【MySQL】视图,触发器,函数,存储过程,事务,动态执行SQL定义及使用
- 事务、触发器、函数、视图、存储过程
- 存储过程和函数、流程控制结构备忘录
- mySQL之视图、触发器、事务、存储过程、函数、流程控制
- ATM机小案例(库、表、约束、视图、存储过程和事务)
- SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则
- mysql基础三(视图、触发器、函数、存储过程、事务、防注入)
- SQLserver的事务,索引,视图,函数,存储过程
- SqlServer数据库字典--表.视图.函数.存储过程.触发器.主键.外键.约束.规则.sql
- 查看SQL SERVER 加密存储过程,函数,触发器,视图
- 存储过程和自定义函数的区别
- sqlserver 函数、存储过程、游标与事务模板
- Oracle 10g管理存储过程——查询数据库中的视图、存储过程、函数
- 存储过程中控制事务带来的问题
- 存储过程解密(破解函数,过程,触发器,视图.仅限于SQLSERVER2000)
- 存储过程、视图、触发器、函数 解密
- mysql 查询表,视图,触发器,函数,存储过程【转】