找回密码
 立即注册

推荐阅读

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

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

[复制链接]
本帖最后由 武汉16期-陈宇宙 于 2022-6-6 20:11 编辑

索引
普通索引
create index xiaoliu on emp(sid);==>为emp表中的sid创建个索引叫xiaoliu
show index from emp;==》查看索引
create index xiaoliu1 on emp(sid,name);==>为emp表中的sid,name创建一个索引叫xiaoliu1,
alter table 表名 drop index 索引名称==》删除索引

唯一索引:对应字段的值必须是唯一,但允许有空值。
create unique index aa on emp(sid);==>创建唯一索引
show index from emp;==>查看索引;

主键索引--(和主键约束相辅相成,有了主键索引,必然会产生主键约束,或者说主键约束是主键索引的一个特征)
注意:添加主键约束也就是添加了主键索引
alter table emp drop primary key;删除主键约束
alter table emp add primary key(sid);

数据库视图 view
1.什么是视图
视图是一个虚拟的表,他不在数据库中以存储的形式保存,是在使用视图的时候动态生成
2.视图的特点
2.1视图是由基本表产生的虚表
2.2视图的更新和删除会影响基础表
2.3基础表的更新和删除也会影响到视图
show tables;==》查看视图
select sid,name,age from emp;
create view dcs as {select sid,name,age from emp};==>创建视图
select * from dcs;
update dcs set name="张三" where sid=1789;==》修改视图数据
select * from emp:
update emp set name=“张三” where sid=1789;==》修改基本表数据
drop view dcs==>删除视图dcs

数据库中的DDL和DML
DDL(对表结构何表字段进行操作)数据库定义语言
create,alter table,drop
DML(对表数据进行操作)数据库操作语言
insert into,delete,update,select

数据库约束
主键约束———primary key
非空约束——not null
自增长约束——auto_increment
默认值约束——default   ====》》前四种都是对表结构的约束
外键约束——foreign key ====》》对表与表之间的约束

表1 姓名 年龄 身份证号 语文 数学 英语
表2 姓名 年龄 身份证号 语文 篮球
show create table test;==》查看建表语句
create table dcs1 (id int(4)primary key,name varchar(20)) engine=innodb
create table dcs2 (sid int(5)primary key,same varchar(10),constraint duoceshi foreign key(sid) references dcs1(id))engine=innodb;====》》创建dcs2表,同时创建外键约束
dcs1和dcs2存在外键约束,dcs1主表 dcs2子表
如果主表不存在的数据,在子表中是无法插入跟该数据相关的任何数据
主表一般存放:基础数据
delete from dcs1 where id=1;
如果要删除朱标的数据,需要先删除与主表相关的子表数据;
alter table dcs2 drop foreign key duoceshi;==》删除外键

存储过程
固定格式
create procedure 存储过程名称(参数名,数据类型)
创建存储过程
begin#存储过程开始
存储过程体
end#存储过程结束
call dcs(16);调用存储过程
例:
drop procedure if exits dcs16;如果存在dcs16这个存储过程删除
create procedure dcs16()==>创建dcs16的存储过程
begin ==>存储过程开始
存储过程体(写sql集合)
drop table if exists mm;如果mm表存在则删除,为了增强代码的健壮性
create table mm(id int(5)primary key auto_increment,score int(10));
insert into mm values(1,89),(2,76);
insert into mm values(3.75),(4.92);
insert into mm values(5,89),(6,83);
insert into mm values(7,79),(8,74);
select * from mm;
end==>存储过程结束
call dcs16();==》调用存储过程

分享至 : QQ空间
收藏

0 个回复

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