一、视图 1、作用:保护数据表 2、创建视图 Create view dcs as(select * from student); 3、查询视图中的数据 select * from dcs; 4、删除视图中的数据 delete from dcs; 5、往视图中插入数据 Insert into dcs values(1,’fg’) 6、更新视图 update dcs set name=’gg’ where id=1; 7、删除视图 Drop view dcs; 8、查看创建视图的结构 show create view dcs; 9、视图和基础表的关系 更新视图中的数据时,基础表的数据也会改变 删除视图中的数据时,基础表的数据也会改变 往视图中插入数据时,基础表也会插入数据 二、DDL和DML 1、DDL:数据定义语言 craete alter drop 2、DML:数据操纵语言 insert delete select update 3、数据库中你常用哪些DDL或者DML语言 DDL是数据定义语言,有数据库表的创建,数据表字段的修改以及表的删除,但这些语句在工作中一般都不怎么涉及到,在公司数据库定义都有专门的数据库管理员管理。 DML数据操作语言,有数据的插入、删除、查询、更新,而数据查询是我工作中会经常用到的。 三、外键 1、表的约束有 主键约束、非空约束、自增长约束、默认值约束、外键约束 2、外键约束 foreign key 约束的是表与表之间的关系 3、创建外键约束: Create table dcs1(id int(4) primary key,name varchar(32)) engine=innodb; Create table dcs2(sid int(4) primary key,sname constraint f_key foreign key(sid) references dcs1(id)) engine=innodb; 4、主表子表之间的关系 ①主表不存在的数据,在任何的子表当中无法插入与之相关的数据
②如果删除主表里的数据失败,报错提示存在一个子表里面有与之相关联的外键,就先删除子表数据,再执行上面删除主表数据的sql就能删除成功。
③创建外键约束,必须保证两个表有相同属性字段对应的相同数据 四、存储过程 1、创建存储过程 ①创建无参存储过程 drop procedure if exists dcs;#如果dcs这个存储过程存在的话就先进行删除 create procedure dcs() begin drop table if exists qq; create table qq(id int(20) primary key auto_increment,score float(20)); insert into qq values(1,56),(2,45); insert into qq values(3,46),(4,89); insert into qq values(5,86),(6,35); End; ②创建有参存储过程 + if 条件判断 + while 循环 drop procedure if exists dcs;#如果dcs这个存储过程存在的话就先进行删除 create procedure dcs(n int) begin declare i int(20); declare y int(20); drop table if exists qq; create table qq(id int(20) primary key auto_increment,score float(20)); insert into qq values(1,56),(2,45); insert into qq values(3,46),(4,89); insert into qq values(5,86),(6,35); insert into qq values(7,90),(8,98); set i=(select count(*) from qq); if n=0 then select count(*) from qq; else if n>0 && n<=i then select max(score) from qq; else while n>i do insert into qq(score) values(66); set i=i+1; end while; end if; end if; select * from qq; End;
|