找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手

索引视图,外键约束和存储过程

[复制链接]
索引
索引是一种数据结构,可以利用索引快速访问数据库中的特定信息
分类:
普通索引
show index from emp;    查看emp表的索引
create index xiaoxu on emp(sid);   为emp表中的sid创建个索引xiaoxu     
create index xiaoxu1 on emp(sid,name);     为emp表中的sid和name创建个索引xiaoxu1
alter table emp drop index xiaoxu1;    删除索引
唯一索引:对应字段的值必须是唯一的,但允许有空值
create unique index aa on emp(sid);    创建唯一索引
主键索引: 和主键约束相辅相成,添加一个主键约束就是添加一个主键索引,主键索引就是主键约束
alter table emp  drop primary key; 删除索引
视图:
1、视图是由基本表产生的虚表
2、视图的更新和删除也会影响基础表
3、基础表的更新和删除也会影响到视图
create view des as(select sid,name,age from emp);  创建视图
select * from dcs;
update dcs set name='张三' where sid=1789;  修改视图数据
update emp set name='张三' where sid=1789;  修改基本表数据
drop view dcs;  删除视图

DDL: 数据库定义语言 对表和表结构进行操作
        create
        alter table  
        drop
DML:数据库操作语言  对表数据操作
     insert  into  
     delete
     update
     select

数据库约束
not null   非空约束
primary  key    主键约束,里面的值是唯一的,不能重复
auto_increment    自增长约束 作用在整数类型 字段默认从1开始增长
default   默认值约束
foreign  key      外键约束  表与表之间的约束
前四种都是对表结构的约束     foreign key : 表与表之间的约束


删除外键:
alter table +子表名 drop foreign key+外键名    删除外键
如果dcs1和dcs2存在外键约束,dcs1(主表)dcs2(子表)  主表中不存在的数据,不能在子表中进行插入,插入数据先在主表插入
delete from dcs1 where id=1;
delete from dcs2 where sid=1;
如果要删除主表的数据 ,要先删除子表中的数据
存储过程
固定格式:
create procedure 存储过程名称(参数名,数据类型)
begin
存储过程体
end   
call  存储过程名称()     调用存储过程

drop procedure if exists dcs18;#如果dcs18这个存储过程存在删除
create procedure dcs18()#创建存储过程
begin#存储过程开始
#sql 集合
drop table if exists aa;#如果aa存在删除
create table aa(id int(5)primary key auto_increment,score int(5));
insert into aa values(1,88),(2,75);
insert into aa values(3,79),(4,23);
insert into aa values(5,76),(6,77);
insert into aa values(7,78),(8,79);
end#存储过程结束

循环  条件成立进入循环 条件不成立 退出循环
while 语句格式
while 条件 do
执行循环体(sql)
end while;

用户名不重复  concat函数  concat(‘user’,i)






分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册